linux – 与ext4结合使用的透明压缩文件系统

linux – 与ext4结合使用的透明压缩文件系统,第1张

概述我正在尝试使用ext4文件系统来测试需要压缩存储的项目,因为我使用的应用程序依赖于ext4功能. 在ext4上有透明压缩的生产/稳定解决方案吗? 我试过的: 在启用压缩的情况下,在ZFS卷上启用Ext4.这实际上产生了不利影响.我尝试创建一个启用了lz4压缩的ZFS卷,并在/ dev / zvol / …上创建了一个ext4文件系统,但是zfs卷显示实际使用量的两倍,压缩似乎没有任何影响. # d 我正在尝试使用ext4文件系统来测试需要压缩存储的项目,因为我使用的应用程序依赖于ext4功能.

在ext4上有透明压缩的生产/稳定解决方案吗?

我试过的:

在启用压缩的情况下,在ZFS卷上启用Ext4.这实际上产生了不利影响.我尝试创建一个启用了lz4压缩的ZFS卷,并在/ dev / zvol / …上创建了一个ext4文件系统,但是zfs卷显示实际使用量的两倍,压缩似乎没有任何影响.

# du -hs /mnt/test**1.1T**    /mnt/test# zfs Listname        USED  AVAIL  REFER  MOUNTPOINTpool       15.2T  2.70G   290K  /poolpool/test  15.2T  13.1T  **2.14T**  -

ZFS创建命令

zpool create pool raIDz2 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde2 /dev/sdf1 /dev/sdg1 /dev/sdh2 /dev/sdi1zfs set recordsize=128k poolzfs create -p -V15100GB pool/testzfs set compression=lz4 pool/testmkfs.ext4 -m1 -O 64bit,has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink /dev/zvol/pool/test

Fusecompress:似乎工作但不是100%稳定.寻找替代品.

LessFS:是否可以将Lessfs与ext4结合使用?我还没有尝试,但会对用户洞察感兴趣.

一个主要问题:不是真正的透明度

我在fusecompress看到的一个问题是配额.例如,如果我在文件系统上启用压缩,我希望我的系统受益于压缩,而不一定是最终用户.如果我为一个用户启用了1GB的配额,压缩率为1.5,他们就可以上传1.5GB的数据,而不是1GB的数据,系统可以从压缩中获益.这似乎也显示在df -h上.是否有压缩对配额透明的解决方案?

解决方法 我使用 ZFS on Linux作为卷管理器,并为传统文件系统提供额外的保护和功能.这包括将块级快照,复制,重复数据删除,压缩和 advanced caching引入XFS或ext4文件系统.

有关其他说明,请参阅:https://pthree.org/2012/12/21/zfs-administration-part-xiv-zvols/.

在我最常见的用例中,我利用ZFS zvol功能在现有zpool上创建稀疏卷. zvol的属性可以像普通的ZFS文件系统一样设置.此时,您可以设置压缩类型,卷大小,缓存方法等属性.

创建这个zvol会为linux提供一个块设备,可以使用您选择的文件系统进行格式化.使用fdisk或parted创建分区并mkfs完成的卷.

安装这个,你基本上有一个由zvol支持的文件系统及其所有属性.

这是我的工作流程……

创建一个由四个磁盘组成的zpool:
对于您正在使用的磁盘类型,您需要ashift = 12指令.在这种情况下,zpool名称为“vol0”.

zpool create -o ashift=12 -f vol0 mirror
scsi-AccOW140403AS1322043
scsi-AccOW140403AS1322042 mirror
scsi-AccOW140403AS1322013
scsi-AccOW140403AS1322044

设置初始zpool设置:
我在zpool级别设置autoexpand = on,以防我用更大的驱动器替换磁盘或在ZFS镜像设置中扩展池.我通常不使用ZFS raIDz1 / 2/3,因为性能不佳以及无法扩展zpool.

zpool set autoexpand=on vol0

设置初始zfs文件系统属性:
请使用lz4 compression algorithm进行新的ZFS安装.可以随时保留它.

zfs set compression=lz4 vol0zfs set atime=off vol0

创建ZFS zvol:
对于linux上的ZFS,使用大块大小非常重要. -o volblocksize = 128k绝对必不可少. -s选项会创建稀疏zvol,并且在需要之前不会占用池空间.如果你很了解你的数据,你可以在这里过度使用.在这种情况下,我在池中有大约444GB的可用磁盘空间,但我向XFS提供了800GB的容量.

zfs create -o volblocksize=128K -s -V 800G vol0/pprovol

分区zvol设备:(对于第一个zvol应该是/ dev / zd0;对于后续的zvol应该是/ dev / zd16,/ dev / zd32等)

fdisk /dev/zd0 # (create new aligned partition with the "c" and "u" parameters)

在新创建的分区/ dev / zd0p1上创建并挂载文件系统:mkfs.xfs或ext4.

mkfs.xfs -f -l size=256m,version=2 -s size=4096 /dev/zd0p1

使用blkID获​​取UUID并修改/ etc / fstab.

UUID=455cae52-89e0-4fb3-a896-8f597a1ea402 /ppro       xfs     noatime,logbufs=8,logbsize=256k 1 2

挂载新文件系统.

mount /ppro/

结果…

[root@Testa ~]# df -hfilesystem      Size  Used Avail Use% Mounted on/dev/sde2        20G  8.9G  9.9G  48% /tmpfs            32G     0   32G   0% /dev/shm/dev/sde1       485M   63M  397M  14% /boot/dev/sde7       2.0G   68M  1.9G   4% /tmp/dev/sde3        12G  2.6G  8.7G  24% /usr/dev/sde6       6.0G  907M  4.8G  16% /var/dev/zd0p1      800G  398G  403G  50% /ppro  <-- Compressed ZFS-backed XFS filesystem.vol0            110G  256K  110G   1% /vol0

ZFS文件系统列表.

[root@Testa ~]# zfs Listname           USED  AVAIL  REFER  MOUNTPOINTvol0           328G   109G   272K  /vol0vol0/pprovol   326G   109G   186G  -   <-- The actual zvol provIDing the backing for XFS.vol1           183G   817G   136K  /vol1vol1/images    183G   817G   183G  /images

ZFS zpool列表.

[root@Testa ~]# zpool List -vname   SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOTvol0   444G   328G   116G    73%  1.00x  ONliNE  -  mirror   222G   164G  58.1G         -    scsi-AccOW140403AS1322043      -      -      -         -    scsi-AccOW140403AS1322042      -      -      -         -  mirror   222G   164G  58.1G         -    scsi-AccOW140403AS1322013      -      -      -         -    scsi-AccOW140403AS1322044      -      -      -         -

ZFS zvol属性(注意引用,压缩和volsize).

[root@Testa ~]# zfs get all vol0/pprovolname          PROPERTY               VALUE                  SOURCEvol0/pprovol  type                   volume                 -vol0/pprovol  creation               Sun May 11 15:27 2014  -vol0/pprovol  used                   326G                   -vol0/pprovol  available              109G                   -vol0/pprovol  referenced             186G                   -vol0/pprovol  compressratio          2.99x                  -vol0/pprovol  reservation            none                   defaultvol0/pprovol  volsize                800G                   localvol0/pprovol  volblocksize           128K                   -vol0/pprovol  checksum               on                     defaultvol0/pprovol  compression            lz4                    inherited from vol0vol0/pprovol  Readonly               off                    defaultvol0/pprovol  copIEs                 1                      defaultvol0/pprovol  refreservation         none                   defaultvol0/pprovol  primarycache           all                    defaultvol0/pprovol  secondarycache         all                    defaultvol0/pprovol  usedbysnapshots        140G                   -vol0/pprovol  usedbydataset          186G                   -vol0/pprovol  usedbychildren         0                      -vol0/pprovol  usedbyrefreservation   0                      -vol0/pprovol  logbias                latency                defaultvol0/pprovol  dedup                  off                    defaultvol0/pprovol  mlslabel               none                   defaultvol0/pprovol  sync                   standard               defaultvol0/pprovol  refcompressratio       3.32x                  -vol0/pprovol  written                210M                   -vol0/pprovol  snapdev                hIDden                 default
总结

以上是内存溢出为你收集整理的linux – 与ext4结合使用的透明压缩文件系统全部内容,希望文章能够帮你解决linux – 与ext4结合使用的透明压缩文件系统所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1049739.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存