[Linux] ubuntu系统使用zfs记录
关于zfs
之前从B站视频里面了解到了btrfs这个文件系统,说是能够实现cow,然后我第一时间觉得这是个极好的特性,结果后来才发现,使用的时候并不多,而且只能通过cp --reflink
的方式使用,但是绝大多数情况下的复制都是伴随着修改的。所以这个功能并不常用,能够节省的空间也确实有限。
然后无意间发现了zfs系统,它的去重功能才是我想要的那种东西,而且去重功能能够实现块级的去重,而要付出的代价就是会消耗大量的内存。这个根据网友的数据,大概1t的数据会吃掉2g的内存(实际上我自己测试大概是1.4g),其实在我看来也不是不能接受的样子。而且这个功能真的很酷的不是?而且一定程度上也能节约ssd的写入次数。
基础使用
-
安装zfs
在ubuntu系统上,已经自带了对这个的支持,尤其是在安装系统的时候就能够选择直接安装在zfs分区上,这点好评(但是没有开启去重功能) -
创建zfs池
zpool create -f pool2 /dev/sda -m /export
这样就能把/dev/sda
作为zfs
分区,然后挂载到/export
目录 -
查看状态
zpool status
能看到这个zfs池的设备构成 -
查看开启去重的分区
zfs get dedup pool1
-
设置开启去重
zfs set dedup=on pool1
-
创建文件系统
zfs create pool1/fs1
我觉得这个更像是子卷一类的东西,可以对某些文件夹单独做出规则设置
测试去重
通过cp -r /var /export/
指令复制文件夹到zfs分区,然后看下面的结果
zpool list
显示分区只使用了2.07G
df -sh var
显示这个文件夹占用3.0G
df -h
也认为占用了3.0G