我正在尝试使用 ext4 文件系统测试需要压缩存储的项目,因为我使用的应用程序依赖于 ext4 功能。
是否有任何用于在 ext4 上进行透明压缩的生产/稳定解决方案?
我尝试过的:
启用压缩的ZFS 卷上的Ext4。这实际上产生了不利影响。我尝试创建一个启用 lz4 压缩的 ZFS 卷,并在 /dev/zvol/... 上创建一个 ext4 文件系统,但 zfs 卷显示实际使用量翻了一番,压缩似乎没有任何效果。
# du -hs /mnt/test
**1.1T** /mnt/test
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
pool 15.2T 2.70G 290K /pool
pool/test 15.2T 13.1T **2.14T** -
Run Code Online (Sandbox Code Playgroud)
ZFS 创建命令
zpool create pool raidz2 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde2 /dev/sdf1 /dev/sdg1 /dev/sdh2 /dev/sdi1
zfs set recordsize=128k pool
zfs create -p -V15100GB pool/test
zfs set compression=lz4 pool/test
mkfs.ext4 -m1 -O 64bit,has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink …Run Code Online (Sandbox Code Playgroud) 我正在考虑构建一个更大的 ZFS 池(150TB+),我想听听人们关于由于硬件故障导致数据丢失情况的经验,特别是区分仅丢失一些数据的实例与整个文件系统(如果在 ZFS 中甚至有这样的区别)。
例如:假设 vdev 由于外部驱动器机箱断电或控制器卡故障等故障而丢失。从我读到的池应该进入故障模式,但如果返回 vdev 池应该恢复?或不?或者如果 vdev 部分损坏,是否会丢失整个池、某些文件等?
如果 ZIL 设备出现故障会怎样?或者只是几个 ZIL 之一?
真正感谢以深厚的技术知识为后盾的所有轶事或假设场景!
谢谢!
更新:
由于我们是一家小型企业(大约 9 人),因此我们以低廉的价格执行此操作,但我们生成了大量成像数据。
数据主要是小文件,据我统计,每 TB 大约有 50 万个文件。
数据很重要,但不是超级关键。我们计划使用 ZFS 池来镜像 48TB 的“实时”数据阵列(使用了 3 年左右),并将其余存储用于“归档”数据。
该池将使用 NFS 共享。
机架应该在建筑物备用发电机线上,我们有两个 APC UPS,能够在满载时为机架供电 5 分钟左右。
最近看了很多关于btrfs的资料。我一直在考虑将 ext4 用于我的下一个文件系统,但是却被 btrfs 所吸引。btrfs 的使用范围有多广?优缺点都有什么?