Ubuntuをzfsルートにしたときのメモ
ただのzfsルートだとUbuntu 24.04のインストーラでできるが、raidzもやろうとするとできない。
インストーラが複数メディアへのインストールを想定していないよう。
なのでOpenZFSのドキュメントを見ながら手動でUbuntuをインストールした。
Ubuntu 22.04 Root on ZFS — OpenZFS documentation
debootstrapから構築したのいつぶりだろう。
基本的にはドキュメント通りにやっていけばよい。英文を読むとRAIDを組むときにコマンドをいじる部分が書いてある。自分はzfsのネイティブ暗号化で構築した。
成功すると↑のようにログインより前にディスクの暗号鍵を訊かれる
ただしブートシステムがlegacyかUEFIか、シングルディスクかマルチディスクかで選択になるコマンドを間違って叩くと破滅する(一敗)。
どれがクリティカルだったのか分からないが、ミスって実行したのは2つ。
1つは /boot もraidに入れてるのにシングルディスク向けのコマンドを叩いてしまった点
mkdir /boot/efi/grub /boot/grub
echo /boot/efi/grub /boot/grub none defaults,bind 0 0 >> /etc/fstab
mount /boot/grub
もう1つはUEFIにしたいのにlegacyのコマンドを叩いてしまった点。
apt install --yes grub-pc linux-image-generic zfs-initramfs zsys
どっちも元に戻したつもりだったが再起動したら動かなかった。多分grub-pcをインストールするときにMBRを書き換えてしまったとかそういう系だと思う。
あ、あと手順の中で再起動するときにファイルシステムをアンマウントするコマンドが動かなかった
mount | grep -v zfs | tac | awk '/\/mnt/ {print $3}' | \
xargs -i{} umount -lf {}
zpool export -a
exportでrpoolがbusyって言われる。シェルのカレントディレクトリが/mnt/に入ってて使用中判定されたかなと思ったけどそれでもなかった。
よくわからないのでそのまま再起動したらinitramfsに落ちた。exportできてないのでimportできなかったらしい。強制importが必要。initramfsでもzpoolが使えるので zpool import -alf
かそんな感じのコマンドを叩いたら直った。
ほかにハマった点だとネットワークの設定が上手くいかずに再起動後にaptをインストールできなかった。
仕方ないのでインストールメディアからchrootで入って作業した。その状態でubuntu-desktopさえ入れてしまえばNetworkManagerが入るのでネットワーク設定しなくても自動で管理してくれる。
でもインストールメディアからchrootで入るとDNSが解決できなかったので困った。一旦chrootする前にpingなどでarchive.ubuntu.comのIPアドレスを確かめてから/etc/apt/souces.list.d/ubuntu.sourcesの中の archive.ubuntu.comをIPアドレスに置換した。IPv6はURLでは http://[..]/...
のように[]
で囲んで書く。そうしないとアドレス中の :
がポート番号(など)の指定と区別がつかない。
で、btrfsでやってたバックアップの仕組みをzfsでも再現しようとして調べ物をした。
やっていたのは2つ。
- 1時間ごとにスナップショットをとる
- 1週間ごとに最新のスナップショットからtarを作って~/Dropboxに放り込む
これができるかを調べた。
後者はスナップショットの中身がファイルシステムとして見えればあとはどうにかなる。
で、実際にそれはできる。
一旦ホームディレクトリのdatasetに対してlistsnapshotsをonにしておく。
zpool set listsnapshots=on rpool/USERDATA/name_UUID
すると ~/.zfs
からアクセスできるようになる。
$ ls ~/.zfs
shares snapshot
$ ls ~/.zfs/snapshot
autozsys_0d9if2 autozsys_65gxqu autozsys_blltdr autozsys_itlpj1 autozsys_mbrnwy autozsys_t1o84s autozsys_ys2zk3 test
autozsys_38ce9m autozsys_8030et autozsys_f4jwq4 autozsys_ivitc6 autozsys_mqoe9w autozsys_ulzf75 autozsys_zfpc9b
autozsys_3qv38f autozsys_aavh0k autozsys_f8vell autozsys_jsun4n autozsys_oq1m7f autozsys_vaj3ma autozsys_zqa5ba
autozsys_55tp0o autozsys_b61cav autozsys_i31d62 autozsys_len7sx autozsys_p8r8dm autozsys_wuvhse autozsys_zt5hxj
この autozsys_xxx
とついているのがスナップショットの名前で、さらにこの中を ls
するとスナップショットをとったときのツリーがそのまま見える。これにて後者は解決。
不思議なことに ls
にはこの .zfs
はでてこない。まあ、出てきても困るんだけど、同名ディレクトリとか作ったらどうなるんだろうね。
$ ls -a ~/ | grep zfs
$
で、↑で出てきた autozsys_xxx
なんだけど、そもそもUbuntu側で勝手にスナップショットを撮ってるみたい。zsysという仕組み。
システムディレクトリに関してはブートに成功したりaptとかでシステムに変更を加えたりのタイミングで、ユーザデータに関しては1時間ごとにスナップショットを撮っている。
この仕組みはsystemdのタイマーで設定されている。
$ systemctl --user list-timers zsys-user-savestate
NEXT LEFT LAST PASSED UNIT ACTIVATES
Sun 2024-04-28 10:08:11 JST 32s Sun 2024-04-28 09:08:10 JST 59min ago zsys-user-savestate.timer zsys-user-savestate.service
1 timers listed.
Pass --all to see loaded but inactive timers, too.
$ ls /etc/systemd/user/timers.target.wants
launchpadlib-cache-clean.timer zsys-user-savestate.timer
[Unit]
Description=Save current user state periodically
# We can't run it in a container
ConditionVirtualization=!container
[Service]
Type=oneshot
ExecStart=/sbin/zsysctl state save
[Unit]
Description=Save current user state periodically
ConditionUser=!@system
[Timer]
OnStartupSec=1min
OnUnitActiveSec=1h
[Install]
WantedBy=timers.targe
そしてzsysの設定ファイルはデフォルトでは存在しない。バイナリにこの設定が埋め込まれている。
設定を変えたかったらコピペして /etc/zsys.conf
に置いていじることになるが、デフォルト設定が変わったときの挙動とかで影響受けそうだし明示的に置いといてほしかったなという思いも。
とりあえず、1時間ごとにスナップショットをとる仕組みは存在するので考えることは減った。
あとは
- 最新のスナップショットを取得したい
-
~/Dropbox
はzsysに管理してほしくない
をやっていきたい。前者はなんか頑張ればできそう。
後者はzsysの仕組みの理解が必要。
zsysは解説ブログがある。↓の記事から始まる一連の記事。
その中でもこの記事が多分欲しかった情報。
ROOT BOOT USERDATA下にあるデータセットはzsysが管理するので、管理から外したければそれ以外に置けばいい。記事中でPersistent datasetsと呼ばれているもの。
今まだDropboxが同期中で作業できないので後で試す。
因みに最新のスナップショットを取得したいについてもある程度は答えてくれていた。
プロパティにcreationがあるのでこれをみれば最新が分かる。問題はどうやってシェルスクリプトで取得するかだけどな!
creationが日本語で表示されるのはロケールの問題なんだろうと思ったけど LANG=C
でも日本語だった。多分これ値を入れる時点で日本語で入れてるな
$ LANG=C zfs get creation rpool/USERDATA/shun_wfj4mu@autozsys_0d9if2
NAME PROPERTY VALUE SOURCE
rpool/USERDATA/shun_wfj4mu@autozsys_0d9if2 creation 日 4月 28 2:12 2024 -
いや、さすがにそんなことなかった。zfs getに-pつけると数値で出してくれた
$ zfs get -p creation rpool/USERDATA/shun_wfj4mu@autozsys_0d9if2
NAME PROPERTY VALUE SOURCE
rpool/USERDATA/shun_wfj4mu@autozsys_0d9if2 creation 1714237933 -
zfs list
に -S
を渡すとその値でソートしてくれるからそれ使えば最新のを取得はできそう。
$ zfs list -S creation -o name | grep -m1 "rpool/USERDATA/${USER}_.*@autozsys_.*"
rpool/USERDATA/shun_wfj4mu@autozsys_gcfdtp
Dropboxの同期が終わったのでデータセットを別のものにしてみた。
これを先にやってからDropboxの同期すればよかったな。
最初にこれをやったら思ったとおりにならなかった。
$ sudo zfs create -p -ocanmount=off rpool/home/shun/Dropbox
$ sudo zfs set canmount=on rpool/home/shun/Dropbox
/home/shun
に rpool/home/shun
と rpool/USERDATA/shun
両方がマウントしようとしてしまうし、 rpool/home/shun/Dropbox
は rpool/home/shun
にしかマウントしなかった。 ``rpool/home/shun` はcanmount=offのはずなんだけどなあ。結局上で作ったやつは全部destroyして以下で作り直した。
$ sudo zfs create -omountpoint=/home/shun/Dropbox rpool/home-shun-Dropbox
既にディレクトリがある状態なのでちょっと怪しいかも
$ mv Dropbox Dropbox.bk
したあとに新しく作った Dropbox
のマウントポイントが生えてきた。
そのあとは mv
した。
$ mv Dropbox.bk/* Dropbox
autozsysのスナップショットのせいでディスクスペースが足りなくなったので先にスナップショットは削除しといた方がいい。
ディスクスペースで詰まったあとはmv先にディレクトリがあったりしてmvできなくなるのでrsyncを使った。
$ rsync -r --remove-source-files --verbose -p ./Dropbox2/ Dropbox/
ただ、これだとmtimeとかが上書きされてしまうので -a
オプションをつけるべきだった。
最後、この記事の内容をzfsに移植する。
最新のスナップショットからtarを作るというは骨子は変わらないのでそこまで変更はない。
#!/bin/sh
# templated by http://qiita.com/blackenedgold/items/c9e60e089974392878c8
usage() {
cat <<HELP
NAME:
$0 -- backup home
SYNOPSIS:
$0 [-h|--help]
$0 [--verbose]
DESCRIPTION:
Backup home from the latest snapshot. It logs to $LOG_FILE
-h --help Print this help.
--verbose Enables verbose mode.
HELP
}
main() {
SCRIPT_DIR="$(cd $(dirname "$0"); pwd)"
while [ $# -gt 0 ]; do
case "$1" in
--help) usage; exit 0;;
--verbose) set -x; shift;;
--) shift; break;;
-*)
OPTIND=1
while getopts h OPT "$1"; do
case "$OPT" in
h) usage; exit 0;;
esac
done
shift
;;
*) break;;
esac
done
NAME=shun
mv -f /home/${NAME}/Dropbox/backup/home.tar.xz /home/${NAME}/Dropbox/backup/home.old.tar.xz
mv -f /home/${NAME}/Dropbox/backup/home.tar.xz.sha1 /home/${NAME}/Dropbox/backup/home.old.tar.xz.sha1
chown -f ${NAME}:${NAME} /home/${NAME}/Dropbox/backup/home.old.tar.xz /home/${NAME}/Dropbox/backup/home.old.tar.xz.sha1
latest_snapshot="$(zfs list -S creation -o name | grep -m1 "rpool/USERDATA/${NAME}_.*@autozsys_.*" | grep -o 'autozsys.*')"
nice tar cvf /home/${NAME}/Dropbox/backup/home.tar.xz \
--sparse \
--use-compress-prog=pixz \
-p --xattrs \
--exclude=./Dropbox \
--exclude=./.cache \
-C "/home/${NAME}/.zfs/snapshot/$latest_snapshot/" \
.
sha1sum /home/${NAME}/Dropbox/backup/home.tar.xz > /home/${NAME}/Dropbox/backup/home.tar.xz.sha1
chown ${NAME}:${NAME} /home/${NAME}/Dropbox/backup/home.tar.xz /home/${NAME}/Dropbox/backup/home.tar.xz.sha1
}
set -e
export PATH=/usr/bin:/usr/sbin
LOG_FILE=/var/log/backup-home.log
start_time="$(date +%s)"
main "$@" 2>&1 > $LOG_FILE
end_time="$(date +%s)"
echo "$(($end_time - $start_time)) seconds" >> $LOG_FILE
あとはlogrotateも書く。zfsを作るときにcompressionをonにしているのでcompressはつけない。
/var/log/backup-home.log {
weekly
missingok
rotate 7
notifempty
copytruncate
}
ところで前まで気付いてなくてやられたんだけど、tarのexcludeは部分一致っぽい。
こういうディレクトリを用意して、
$ tree -a dir
dir
├── .cache
├── hoge
│ └── .cache
└── test
dir/.cache
を除外するつもりで --exclude=.cache
と書いていた。しかしこれだと hoge/.cache
まで除外されてしまう。
$ tar cvf dir.tar --exclude=.cache -C dir .
./
./hoge/
./test
正しくは ./.cache
だった。
$ tar cvf dir.tar --exclude=./.cache -C dir .
./
./hoge/
./hoge/.cache
./test
ところでzfsにしてからやたらメモリ使用量が多い。
slabtop -sc
でトップに zfs_znode_cache
が上にくるから恐らくzfsのキャッシュのせいだろう。
多分これでトピックは終わりかな。次あるとしたらPC移行時だろうけど、そのときはまた別スクラップを作ろう。
追加で1つ。zfsがデフォルトでメモリの半分をキャッシュに使う設定になっている。このキャッシュは他のファイルシステムのキャッシュと設定が違うのか、メモリを調査するときには使用中のメモリに分類される。
一応メモリ負荷が高まるとキャッシュアウトするはずだが、なんか気持ち悪いし半分は使いすぎじゃねみたいな気持があれば以下の記事に基いて設定を変更できる。
今回はルートをzfsにしているのでinitramfsの更新まで必要。
zfs関係ないけど作業する前に知っておきたかったので追記。
NVMeはHDDでいうところのセクタサイズ、LBA Formatというのがある。メーカーにもよるが、デフォルトではHDDと同じ512が設定されている。ところが4096もサポートしており、そっちの方が速いケースがある。nvme-toolsの nvme
コマンドで情報をみてみよう。
$ sudo nvme id-ns -H /dev/nvme0n1 | grep 'LBA Format'
[6:5] : 0 Most significant 2 bits of Current LBA Format Selected
[3:0] : 0x1 Least significant 4 bits of Current LBA Format Selected
LBA Format 0 : Metadata Size: 0 bytes - Data Size: 512 bytes - Relative Performance: 0x1 Better
LBA Format 1 : Metadata Size: 0 bytes - Data Size: 4096 bytes - Relative Performance: 0 Best (in use)
この出力の例ではformat 0の512bytesはBetter、format 1の4096bytesはBestと言われている。zfsを構築するときも ashift
に12、つまり4096bytesを設定しているはずなのでこっちも合わせないとベストにならない。
どっちのフォーマットを使うかは nvme format
コマンドを使って切り替える。
$ sudo nvme format -l 1 /dev/nvme0n1
これをやるとストレージのデータが吹き飛ぶ(んだ)。
参考情報
NVMe low level formatting | Hardware — OpenZFS documentation
うちはRAID Zなので吹き飛んでも1枚ずつならオンラインのまま復元できる。
$ zpool offline bpool /dev/nvme0n1p2
$ zpool offline rpool /dev/nvme0n1p3
$ nvme format -l 1 /dev/nvme0n1
# sgdiskとかでディスクの切り直し
$ zpool replace bpool /dev/nvme0n1p2
$ zpool replace rpool /dev/nvme0n1p3
# grubとかその辺のあれこれの復元
# zpool statusを監視しながら完了するまで待つ
この作業を全てのストレージに繰り返せばよい。
参考資料:
ZFS ストレージプール内のデバイスを置き換える
適切なメモ場がないのでここに追記しとく。そのうち記事にする。
zfsはデフォルトでcompressがonになる。が、これが遅い。まあ、PCIe 5.0のNVMe SSDなのでストレージが速すぎるという見方もできるけど。
OpenZFSのドキュメントで使われているlz4でみてもRead (decompress)が5.7 GBps、Write(compress)が0.7 GBps。一方でストレージの性能はシーケンシャルでRead 6.7 GBps、Write 4.4 GBps。ランダムIOはどのみち圧縮の効果がないだろうことを考えると圧縮がボトルネックになっていることが分かる。ストレージサイズに余裕があるなら特に圧縮する意味はないので圧縮オプションはオフにした方がいい。
因みにベンチマークはRAID-Z+暗号化オプションつき。
$ ./lzbench -t16,16 -eall ~/Downloads/silesia.tar
lzbench 1.8 (64-bit Linux) AMD Ryzen Threadripper 7980X 64-Cores
Assembled by P.Skibinski
Compressor name Compress. Decompress. Compr. size Ratio Filename
memcpy 17692 MB/s 17263 MB/s 211957760 100.00 /home/shun/Downloads/silesia.tar
blosclz 2.0.0 -1 15144 MB/s 20578 MB/s 211943490 99.99 /home/shun/Downloads/silesia.tar
blosclz 2.0.0 -3 1378 MB/s 9489 MB/s 199275779 94.02 /home/shun/Downloads/silesia.tar
blosclz 2.0.0 -6 532 MB/s 1219 MB/s 137673394 64.95 /home/shun/Downloads/silesia.tar
blosclz 2.0.0 -9 525 MB/s 1152 MB/s 135610821 63.98 /home/shun/Downloads/silesia.tar
brieflz 1.3.0 -1 314 MB/s 454 MB/s 81137399 38.28 /home/shun/Downloads/silesia.tar
brieflz 1.3.0 -3 203 MB/s 474 MB/s 75550226 35.64 /home/shun/Downloads/silesia.tar
brieflz 1.3.0 -6 32.3 MB/s 541 MB/s 67205412 31.71 /home/shun/Downloads/silesia.tar
brieflz 1.3.0 -8 3.69 MB/s 584 MB/s 64530693 30.45 /home/shun/Downloads/silesia.tar
brotli 1.0.9 -0 531 MB/s 534 MB/s 78282250 36.93 /home/shun/Downloads/silesia.tar
brotli 1.0.9 -2 225 MB/s 635 MB/s 68051716 32.11 /home/shun/Downloads/silesia.tar
brotli 1.0.9 -5 58.3 MB/s 710 MB/s 59559402 28.10 /home/shun/Downloads/silesia.tar
brotli 1.0.9 -8 19.8 MB/s 728 MB/s 57091888 26.94 /home/shun/Downloads/silesia.tar
brotli 1.0.9 -11 0.88 MB/s 640 MB/s 50487753 23.82 /home/shun/Downloads/silesia.tar
bzip2 1.0.8 -1 23.2 MB/s 64.1 MB/s 60497276 28.54 /home/shun/Downloads/silesia.tar
bzip2 1.0.8 -5 22.2 MB/s 56.7 MB/s 55724261 26.29 /home/shun/Downloads/silesia.tar
bzip2 1.0.8 -9 20.8 MB/s 53.5 MB/s 54542212 25.73 /home/shun/Downloads/silesia.tar
crush 1.0 -0 95.6 MB/s 570 MB/s 73063935 34.47 /home/shun/Downloads/silesia.tar
crush 1.0 -1 11.3 MB/s 653 MB/s 66490138 31.37 /home/shun/Downloads/silesia.tar
crush 1.0 -2 1.52 MB/s 697 MB/s 63740846 30.07 /home/shun/Downloads/silesia.tar
csc 2016-10-13 -1 28.4 MB/s 61.8 MB/s 56225370 26.53 /home/shun/Downloads/silesia.tar
csc 2016-10-13 -3 11.0 MB/s 55.5 MB/s 53504222 25.24 /home/shun/Downloads/silesia.tar
csc 2016-10-13 -5 4.63 MB/s 61.8 MB/s 49842392 23.52 /home/shun/Downloads/silesia.tar
density 0.14.2 -1 2407 MB/s 3641 MB/s 133044928 62.77 /home/shun/Downloads/silesia.tar
density 0.14.2 -2 1204 MB/s 1922 MB/s 101627602 47.95 /home/shun/Downloads/silesia.tar
density 0.14.2 -3 575 MB/s 604 MB/s 87633406 41.34 /home/shun/Downloads/silesia.tar
fastlz 0.5.0 -1 446 MB/s 1085 MB/s 104628501 49.36 /home/shun/Downloads/silesia.tar
fastlz 0.5.0 -2 452 MB/s 1074 MB/s 100906284 47.61 /home/shun/Downloads/silesia.tar
fastlzma2 1.0.1 -1 35.1 MB/s 121 MB/s 59022494 27.85 /home/shun/Downloads/silesia.tar
fastlzma2 1.0.1 -3 19.0 MB/s 125 MB/s 53995248 25.47 /home/shun/Downloads/silesia.tar
fastlzma2 1.0.1 -5 10.1 MB/s 133 MB/s 51291089 24.20 /home/shun/Downloads/silesia.tar
fastlzma2 1.0.1 -8 6.02 MB/s 137 MB/s 49159656 23.19 /home/shun/Downloads/silesia.tar
fastlzma2 1.0.1 -10 4.40 MB/s 137 MB/s 48710650 22.98 /home/shun/Downloads/silesia.tar
gipfeli 2016-07-13 475 MB/s ERROR 87933385 41.49 /home/shun/Downloads/silesia.tar
libdeflate 1.9 -1 299 MB/s 983 MB/s 73510991 34.68 /home/shun/Downloads/silesia.tar
libdeflate 1.9 -3 204 MB/s 1017 MB/s 70169503 33.11 /home/shun/Downloads/silesia.tar
libdeflate 1.9 -6 127 MB/s 1045 MB/s 67511506 31.85 /home/shun/Downloads/silesia.tar
libdeflate 1.9 -9 43.3 MB/s 1044 MB/s 66716492 31.48 /home/shun/Downloads/silesia.tar
libdeflate 1.9 -12 8.78 MB/s 1056 MB/s 64699155 30.52 /home/shun/Downloads/silesia.tar
lz4 1.9.3 899 MB/s 5669 MB/s 100881470 47.60 /home/shun/Downloads/silesia.tar
lz4fast 1.9.3 -3 1021 MB/s 5666 MB/s 107061458 50.51 /home/shun/Downloads/silesia.tar
lz4fast 1.9.3 -17 1544 MB/s 6176 MB/s 131726253 62.15 /home/shun/Downloads/silesia.tar
lz4hc 1.9.3 -1 173 MB/s 5024 MB/s 83804173 39.54 /home/shun/Downloads/silesia.tar
lz4hc 1.9.3 -4 114 MB/s 5307 MB/s 79808302 37.65 /home/shun/Downloads/silesia.tar
lz4hc 1.9.3 -9 45.4 MB/s 5329 MB/s 77884847 36.75 /home/shun/Downloads/silesia.tar
lz4hc 1.9.3 -12 16.7 MB/s 5466 MB/s 77263028 36.45 /home/shun/Downloads/silesia.tar
lzf 3.6 -0 521 MB/s 1039 MB/s 105682449 49.86 /home/shun/Downloads/silesia.tar
lzf 3.6 -1 518 MB/s 1011 MB/s 102041600 48.14 /home/shun/Downloads/silesia.tar
lzfse 2017-03-08 117 MB/s 1127 MB/s 67628015 31.91 /home/shun/Downloads/silesia.tar
lzg 1.0.10 -1 123 MB/s 817 MB/s 108554127 51.21 /home/shun/Downloads/silesia.tar
lzg 1.0.10 -4 70.2 MB/s 825 MB/s 95931025 45.26 /home/shun/Downloads/silesia.tar
lzg 1.0.10 -6 43.4 MB/s 877 MB/s 89490622 42.22 /home/shun/Downloads/silesia.tar
lzg 1.0.10 -8 14.0 MB/s 954 MB/s 83607395 39.45 /home/shun/Downloads/silesia.tar
lzham 1.0 -d26 -0 17.8 MB/s 347 MB/s 64063023 30.22 /home/shun/Downloads/silesia.tar
lzham 1.0 -d26 -1 4.34 MB/s 468 MB/s 54642890 25.78 /home/shun/Downloads/silesia.tar
lzjb 2010 458 MB/s 715 MB/s 122672178 57.88 /home/shun/Downloads/silesia.tar
lzlib 1.12-rc2 -0 53.8 MB/s 85.8 MB/s 63829937 30.11 /home/shun/Downloads/silesia.tar
lzlib 1.12-rc2 -3 11.8 MB/s 99.2 MB/s 56320757 26.57 /home/shun/Downloads/silesia.tar
lzlib 1.12-rc2 -6 4.00 MB/s 102 MB/s 49796624 23.49 /home/shun/Downloads/silesia.tar
lzlib 1.12-rc2 -9 2.30 MB/s 108 MB/s 48318073 22.80 /home/shun/Downloads/silesia.tar
lzma 19.00 -0 47.1 MB/s 104 MB/s 64014125 30.20 /home/shun/Downloads/silesia.tar
lzma 19.00 -2 38.0 MB/s 127 MB/s 58868144 27.77 /home/shun/Downloads/silesia.tar
lzma 19.00 -4 26.0 MB/s 127 MB/s 57198534 26.99 /home/shun/Downloads/silesia.tar
lzma 19.00 -5 4.40 MB/s 143 MB/s 49735911 23.47 /home/shun/Downloads/silesia.tar
lzma 19.00 -9 3.47 MB/s 154 MB/s 48721519 22.99 /home/shun/Downloads/silesia.tar
lzo1 2.10 -1 369 MB/s 1066 MB/s 106474431 50.23 /home/shun/Downloads/silesia.tar
lzo1 2.10 -99 169 MB/s 1154 MB/s 94947687 44.80 /home/shun/Downloads/silesia.tar
lzo1a 2.10 -1 384 MB/s 1168 MB/s 104201701 49.16 /home/shun/Downloads/silesia.tar
lzo1a 2.10 -99 173 MB/s 1215 MB/s 92667653 43.72 /home/shun/Downloads/silesia.tar
lzo1b 2.10 -1 330 MB/s 1063 MB/s 97033987 45.78 /home/shun/Downloads/silesia.tar
lzo1b 2.10 -3 315 MB/s 1075 MB/s 94045126 44.37 /home/shun/Downloads/silesia.tar
lzo1b 2.10 -6 301 MB/s 1065 MB/s 91375301 43.11 /home/shun/Downloads/silesia.tar
lzo1b 2.10 -9 242 MB/s 1132 MB/s 89264148 42.11 /home/shun/Downloads/silesia.tar
lzo1b 2.10 -99 168 MB/s 1063 MB/s 85658503 40.41 /home/shun/Downloads/silesia.tar
lzo1b 2.10 -999 21.4 MB/s 1246 MB/s 76594790 36.14 /home/shun/Downloads/silesia.tar
lzo1c 2.10 -1 341 MB/s 1112 MB/s 99551587 46.97 /home/shun/Downloads/silesia.tar
lzo1c 2.10 -3 333 MB/s 1132 MB/s 96716554 45.63 /home/shun/Downloads/silesia.tar
lzo1c 2.10 -6 271 MB/s 1117 MB/s 93304025 44.02 /home/shun/Downloads/silesia.tar
lzo1c 2.10 -9 221 MB/s 1058 MB/s 91039298 42.95 /home/shun/Downloads/silesia.tar
lzo1c 2.10 -99 161 MB/s 1132 MB/s 88115297 41.57 /home/shun/Downloads/silesia.tar
lzo1c 2.10 -999 34.3 MB/s 1197 MB/s 80397222 37.93 /home/shun/Downloads/silesia.tar
lzo1f 2.10 -1 310 MB/s 978 MB/s 99742096 47.06 /home/shun/Downloads/silesia.tar
lzo1f 2.10 -999 29.4 MB/s 1047 MB/s 80890692 38.16 /home/shun/Downloads/silesia.tar
lzo1x 2.10 -1 788 MB/s 1165 MB/s 100646763 47.48 /home/shun/Downloads/silesia.tar
lzo1x 2.10 -11 855 MB/s 1147 MB/s 106652994 50.32 /home/shun/Downloads/silesia.tar
lzo1x 2.10 -12 871 MB/s 1095 MB/s 103305015 48.74 /home/shun/Downloads/silesia.tar
lzo1x 2.10 -15 832 MB/s 1118 MB/s 101524890 47.90 /home/shun/Downloads/silesia.tar
lzo1x 2.10 -999 11.1 MB/s 1023 MB/s 75302361 35.53 /home/shun/Downloads/silesia.tar
lzo1y 2.10 -1 793 MB/s 1077 MB/s 101333713 47.81 /home/shun/Downloads/silesia.tar
lzo1y 2.10 -999 11.3 MB/s 1009 MB/s 75504276 35.62 /home/shun/Downloads/silesia.tar
lzo1z 2.10 -999 11.0 MB/s 982 MB/s 75061787 35.41 /home/shun/Downloads/silesia.tar
lzo2a 2.10 -999 37.4 MB/s 821 MB/s 82809800 39.07 /home/shun/Downloads/silesia.tar
lzrw 15-Jul-1991 -1 372 MB/s 841 MB/s 113763334 53.67 /home/shun/Downloads/silesia.tar
lzrw 15-Jul-1991 -3 431 MB/s 992 MB/s 105426564 49.74 /home/shun/Downloads/silesia.tar
lzrw 15-Jul-1991 -4 498 MB/s 865 MB/s 100132909 47.24 /home/shun/Downloads/silesia.tar
lzrw 15-Jul-1991 -5 219 MB/s 868 MB/s 90814131 42.85 /home/shun/Downloads/silesia.tar
lzsse2 2019-04-18 -1 34.9 MB/s 5027 MB/s 87976975 41.51 /home/shun/Downloads/silesia.tar
lzsse2 2019-04-18 -6 12.2 MB/s 5653 MB/s 75837976 35.78 /home/shun/Downloads/silesia.tar
lzsse2 2019-04-18 -12 11.9 MB/s 5663 MB/s 75830841 35.78 /home/shun/Downloads/silesia.tar
lzsse2 2019-04-18 -16 11.9 MB/s 5662 MB/s 75830841 35.78 /home/shun/Downloads/silesia.tar
lzsse4 2019-04-18 -1 33.6 MB/s 6681 MB/s 82542882 38.94 /home/shun/Downloads/silesia.tar
lzsse4 2019-04-18 -6 17.1 MB/s 7306 MB/s 76119038 35.91 /home/shun/Downloads/silesia.tar
lzsse4 2019-04-18 -12 16.6 MB/s 7307 MB/s 76113767 35.91 /home/shun/Downloads/silesia.tar
lzsse4 2019-04-18 -16 16.5 MB/s 7234 MB/s 76113767 35.91 /home/shun/Downloads/silesia.tar
lzsse8 2019-04-18 -1 31.4 MB/s 7001 MB/s 81867054 38.62 /home/shun/Downloads/silesia.tar
lzsse8 2019-04-18 -6 15.7 MB/s 7495 MB/s 75470465 35.61 /home/shun/Downloads/silesia.tar
lzsse8 2019-04-18 -12 15.0 MB/s 7467 MB/s 75465064 35.60 /home/shun/Downloads/silesia.tar
lzsse8 2019-04-18 -16 15.2 MB/s 7404 MB/s 75465064 35.60 /home/shun/Downloads/silesia.tar
lzvn 2017-03-08 110 MB/s 1489 MB/s 80814981 38.13 /home/shun/Downloads/silesia.tar
pithy 2011-12-24 -0 817 MB/s 2785 MB/s 103428872 48.80 /home/shun/Downloads/silesia.tar
pithy 2011-12-24 -3 764 MB/s 2734 MB/s 97248863 45.88 /home/shun/Downloads/silesia.tar
pithy 2011-12-24 -6 716 MB/s 2849 MB/s 92012073 43.41 /home/shun/Downloads/silesia.tar
pithy 2011-12-24 -9 640 MB/s 2888 MB/s 90353035 42.63 /home/shun/Downloads/silesia.tar
quicklz 1.5.0 -1 732 MB/s 840 MB/s 94730274 44.69 /home/shun/Downloads/silesia.tar
quicklz 1.5.0 -2 351 MB/s 805 MB/s 84566060 39.90 /home/shun/Downloads/silesia.tar
quicklz 1.5.0 -3 98.6 MB/s 1368 MB/s 81823218 38.60 /home/shun/Downloads/silesia.tar
slz_gzip 1.2.0 -1 502 MB/s 571 MB/s 99663555 47.02 /home/shun/Downloads/silesia.tar
slz_gzip 1.2.0 -2 497 MB/s 578 MB/s 96858222 45.70 /home/shun/Downloads/silesia.tar
slz_gzip 1.2.0 -3 487 MB/s 578 MB/s 96193321 45.38 /home/shun/Downloads/silesia.tar
snappy 2020-07-11 654 MB/s 2389 MB/s 102223632 48.23 /home/shun/Downloads/silesia.tar
tornado 0.6a -1 548 MB/s 777 MB/s 107406969 50.67 /home/shun/Downloads/silesia.tar
tornado 0.6a -2 483 MB/s 745 MB/s 90010612 42.47 /home/shun/Downloads/silesia.tar
tornado 0.6a -3 289 MB/s 450 MB/s 72617538 34.26 /home/shun/Downloads/silesia.tar
tornado 0.6a -4 241 MB/s 474 MB/s 70492793 33.26 /home/shun/Downloads/silesia.tar
tornado 0.6a -5 116 MB/s 371 MB/s 64132629 30.26 /home/shun/Downloads/silesia.tar
tornado 0.6a -6 70.8 MB/s 365 MB/s 62360019 29.42 /home/shun/Downloads/silesia.tar
tornado 0.6a -7 26.2 MB/s 356 MB/s 59020387 27.85 /home/shun/Downloads/silesia.tar
tornado 0.6a -10 7.33 MB/s 349 MB/s 57618860 27.18 /home/shun/Downloads/silesia.tar
tornado 0.6a -13 7.72 MB/s 368 MB/s 55619433 26.24 /home/shun/Downloads/silesia.tar
tornado 0.6a -16 3.04 MB/s 384 MB/s 53249367 25.12 /home/shun/Downloads/silesia.tar
ucl_nrv2b 1.03 -1 75.2 MB/s 461 MB/s 81703465 38.55 /home/shun/Downloads/silesia.tar
ucl_nrv2b 1.03 -6 28.1 MB/s 529 MB/s 73902548 34.87 /home/shun/Downloads/silesia.tar
ucl_nrv2b 1.03 -9 3.27 MB/s 625 MB/s 71031935 33.51 /home/shun/Downloads/silesia.tar
ucl_nrv2d 1.03 -1 80.3 MB/s 495 MB/s 81462298 38.43 /home/shun/Downloads/silesia.tar
ucl_nrv2d 1.03 -6 29.7 MB/s 567 MB/s 73758029 34.80 /home/shun/Downloads/silesia.tar
ucl_nrv2d 1.03 -9 3.35 MB/s 614 MB/s 70054615 33.05 /home/shun/Downloads/silesia.tar
ucl_nrv2e 1.03 -1 78.7 MB/s 495 MB/s 81195891 38.31 /home/shun/Downloads/silesia.tar
ucl_nrv2e 1.03 -6 29.7 MB/s 575 MB/s 73302363 34.58 /home/shun/Downloads/silesia.tar
ucl_nrv2e 1.03 -9 3.40 MB/s 620 MB/s 69645959 32.86 /home/shun/Downloads/silesia.tar
xpack 2016-06-02 -1 253 MB/s 1201 MB/s 71047379 33.52 /home/shun/Downloads/silesia.tar
xpack 2016-06-02 -6 72.0 MB/s 1484 MB/s 62173935 29.33 /home/shun/Downloads/silesia.tar
xpack 2016-06-02 -9 26.5 MB/s 1488 MB/s 61206730 28.88 /home/shun/Downloads/silesia.tar
xz 5.2.5 -0 37.5 MB/s 107 MB/s 62579726 29.52 /home/shun/Downloads/silesia.tar
xz 5.2.5 -3 13.9 MB/s 130 MB/s 55741158 26.30 /home/shun/Downloads/silesia.tar
xz 5.2.5 -6 4.78 MB/s 140 MB/s 49206607 23.22 /home/shun/Downloads/silesia.tar
xz 5.2.5 -9 4.03 MB/s 137 MB/s 48765104 23.01 /home/shun/Downloads/silesia.tar
yalz77 2015-09-19 -1 183 MB/s 778 MB/s 93952529 44.33 /home/shun/Downloads/silesia.tar
yalz77 2015-09-19 -4 108 MB/s 793 MB/s 87384584 41.23 /home/shun/Downloads/silesia.tar
yalz77 2015-09-19 -8 75.5 MB/s 796 MB/s 85147312 40.17 /home/shun/Downloads/silesia.tar
yalz77 2015-09-19 -12 58.0 MB/s 806 MB/s 84044075 39.65 /home/shun/Downloads/silesia.tar
yappy 2014-03-22 -1 202 MB/s 3476 MB/s 105755144 49.89 /home/shun/Downloads/silesia.tar
yappy 2014-03-22 -10 159 MB/s 3737 MB/s 100020376 47.19 /home/shun/Downloads/silesia.tar
yappy 2014-03-22 -100 124 MB/s 3789 MB/s 98673435 46.55 /home/shun/Downloads/silesia.tar
zlib 1.2.11 -1 151 MB/s 524 MB/s 77254059 36.45 /home/shun/Downloads/silesia.tar
zlib 1.2.11 -6 41.6 MB/s 563 MB/s 68225305 32.19 /home/shun/Downloads/silesia.tar
zlib 1.2.11 -9 16.8 MB/s 570 MB/s 67650199 31.92 /home/shun/Downloads/silesia.tar
zling 2018-10-12 -0 128 MB/s 296 MB/s 62978357 29.71 /home/shun/Downloads/silesia.tar
zling 2018-10-12 -1 117 MB/s 303 MB/s 62046238 29.27 /home/shun/Downloads/silesia.tar
zling 2018-10-12 -2 104 MB/s 305 MB/s 61520701 29.02 /home/shun/Downloads/silesia.tar
zling 2018-10-12 -3 93.4 MB/s 306 MB/s 61037631 28.80 /home/shun/Downloads/silesia.tar
zling 2018-10-12 -4 77.9 MB/s 310 MB/s 60654692 28.62 /home/shun/Downloads/silesia.tar
zstd 1.5.5 -1 688 MB/s 2174 MB/s 73406339 34.63 /home/shun/Downloads/silesia.tar
zstd 1.5.5 -2 558 MB/s 2012 MB/s 69484337 32.78 /home/shun/Downloads/silesia.tar
zstd 1.5.5 -5 205 MB/s 1947 MB/s 63019116 29.73 /home/shun/Downloads/silesia.tar
zstd 1.5.5 -8 107 MB/s 2163 MB/s 59993458 28.30 /home/shun/Downloads/silesia.tar
zstd 1.5.5 -11 61.0 MB/s 2245 MB/s 58238906 27.48 /home/shun/Downloads/silesia.tar
zstd 1.5.5 -15 14.0 MB/s 2290 MB/s 57144905 26.96 /home/shun/Downloads/silesia.tar
zstd 1.5.5 -18 6.49 MB/s 1953 MB/s 53434008 25.21 /home/shun/Downloads/silesia.tar
zstd 1.5.5 -22 3.46 MB/s 1714 MB/s 52443650 24.74 /home/shun/Downloads/silesia.tar
shrinker 0.1 1417 MB/s 5142 MB/s 171783093 81.05 /home/shun/Downloads/silesia.tar
wflz 2015-09-16 409 MB/s 1639 MB/s 109605908 51.71 /home/shun/Downloads/silesia.tar
lzmat 1.01 47.4 MB/s 654 MB/s 76485977 36.09 /home/shun/Downloads/silesia.tar
done... (cIters=1 dIters=1 cTime=16.0 dTime=16.0 chunkSize=1706MB cSpeed=0MB)
圧縮オプションは構築後にも変更できる。
sudo zfs set compression=off rpool
既存のファイルは圧縮されたまま。圧縮を解除したいならファイルを一旦/tmpとかにmvしてまたmvし戻す必要がある。それをやってくれるスクリプトを書いている人とかもいるが、途中で止まったらどうしようとか、静止点とるためにはUSBから起動したりしてとか、色々考えると面倒だよね。
decompress性能は素のディスクReadに近いしよく使うファイルだけ手動でやって、あとは放置でもいいのかも。ものによるけど性能が2倍になるケースもあったのでよく使うならやっといて損はない。
今しか取れないから参考データ貼っとくか。一番最後の行がバックアップにかかった時間。
圧縮オプションあり
$ zcat /var/log/backup-home.log.2.gz | tail
./.cargo/registry/src/index.crates.io-6f17d22bba15001f/ndk-context-0.1.1/CHANGELOG.md
./.cargo/registry/src/index.crates.io-6f17d22bba15001f/ndk-context-0.1.1/Cargo.toml.orig
./.cargo/.global-cache
./.cargo/.package-cache
./.cargo/.crates.toml
./.ocp/
./.ocp/ocp-build.prefs
./.mplayer/
./.mplayer/config
6313 seconds
圧縮オプションなし
$ zcat /var/log/backup-home.log.1.gz | tail
./.cargo/registry/src/index.crates.io-6f17d22bba15001f/ndk-context-0.1.1/CHANGELOG.md
./.cargo/registry/src/index.crates.io-6f17d22bba15001f/ndk-context-0.1.1/Cargo.toml.orig
./.cargo/.global-cache
./.cargo/.package-cache
./.cargo/.crates.toml
./.ocp/
./.ocp/ocp-build.prefs
./.mplayer/
./.mplayer/config
3678 seconds