Jas*_*nes 2 solaris zfs storage filesystems
问题在底部。
我有几个 ZFS 文件系统我想使用 ZFS 压缩,但是由于启用压缩只会影响写入文件系统的新数据,我想编写一个可以迁移文件系统的脚本,因此所有数据都被压缩。
这是我的测试尝试
du -h /tmp/dump.txt
zfs create -p tank3/xtest1/fs
cp /tmp/dump.txt /tank3/xtest1/fs
zfs list | grep xtest
zfs create tank3/xtest2
zfs set compression=lzjb tank3/xtest2
zfs inherit compression tank3/xtest2
zfs snapshot tank3/xtest1/fs@snap
zfs send tank3/xtest1/fs@snap | zfs receive tank3/xtest2/fs
zfs get compression tank3/xtest2/fs
zfs list | grep xtest
zfs destroy -r tank3/xtest1
zfs destroy -r tank3/xtest2
echo "test 2"
zfs create tank3/xtest2
zfs set compression=lzjb tank3/xtest2
zfs list | grep xtest
cp /tmp/dump.txt /tank3/xtest2
zfs list | grep xtest
zfs get compressratio tank3/xtest2
zfs destroy -r tank3/xtest2
Run Code Online (Sandbox Code Playgroud)
这使
344M /tmp/dump.txt
tank3/xtest1 575K 6.38T 288K /tank3/xtest1
tank3/xtest1/fs 288K 6.38T 288K /tank3/xtest1/fs
NAME PROPERTY VALUE SOURCE
tank3/xtest2/fs compression off default
tank3/xtest1 344M 6.38T 304K /tank3/xtest1
tank3/xtest1/fs 344M 6.38T 344M /tank3/xtest1/fs
tank3/xtest2 344M 6.38T 288K /tank3/xtest2
tank3/xtest2/fs 344M 6.38T 344M /tank3/xtest2/fs
test 2
tank3/xtest2 288K 6.38T 288K /tank3/xtest2
tank3/xtest2 288K 6.38T 288K /tank3/xtest2
NAME PROPERTY VALUE SOURCE
tank3/xtest2 compressratio 1.00x -
Run Code Online (Sandbox Code Playgroud)
在第一个测试中,我预计复制会在创建时压缩数据,tank3/xtest2/fs但新创建的文件系统在使用发送/接收接缝时不会继承压缩。
在测试 2 中,我看不到 344MB 的文件占用任何空间。
据我所知,压缩不起作用。
题
为什么我会看到这些奇怪的结果?
我应该如何迁移未压缩的文件系统以进行压缩?
更新
添加了compressratio显示未进行压缩的属性。dump.txt可以压缩到190MB。