Closed23

Ubuntuをzfsルートにしたときのメモ

κeenκeen

ただのzfsルートだとUbuntu 24.04のインストーラでできるが、raidzもやろうとするとできない。

インストーラが複数メディアへのインストールを想定していないよう。

なのでOpenZFSのドキュメントを見ながら手動でUbuntuをインストールした。
Ubuntu 22.04 Root on ZFS — OpenZFS documentation
debootstrapから構築したのいつぶりだろう。

κeenκeen

基本的にはドキュメント通りにやっていけばよい。英文を読むと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を書き換えてしまったとかそういう系だと思う。

κeenκeen

あ、あと手順の中で再起動するときにファイルシステムをアンマウントするコマンドが動かなかった

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 かそんな感じのコマンドを叩いたら直った。

κeenκeen

ほかにハマった点だとネットワークの設定が上手くいかずに再起動後に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://[..]/... のように[]で囲んで書く。そうしないとアドレス中の : がポート番号(など)の指定と区別がつかない。

κeenκeen

で、btrfsでやってたバックアップの仕組みをzfsでも再現しようとして調べ物をした。
やっていたのは2つ。

  • 1時間ごとにスナップショットをとる
  • 1週間ごとに最新のスナップショットからtarを作って~/Dropboxに放り込む

これができるかを調べた。

κeenκeen

後者はスナップショットの中身がファイルシステムとして見えればあとはどうにかなる。
で、実際にそれはできる。
https://docs.oracle.com/cd/E23824_01/html/821-1448/gbciq.html

一旦ホームディレクトリの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
$
κeenκeen

で、↑で出てきた autozsys_xxx なんだけど、そもそもUbuntu側で勝手にスナップショットを撮ってるみたい。zsysという仕組み。
https://github.com/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
/usr/lib/systemd/user/zsys-user-savestate.service
[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
/etc/systemd/user/timers.target.wants/zsys-user-savestate.timer
[Unit]
Description=Save current user state periodically
ConditionUser=!@system

[Timer]
OnStartupSec=1min
OnUnitActiveSec=1h

[Install]
WantedBy=timers.targe
κeenκeen

そしてzsysの設定ファイルはデフォルトでは存在しない。バイナリにこの設定が埋め込まれている。

https://github.com/ubuntu/zsys/blob/dfe2f0482c69670683fa34a4a1525b1699b4460a/internal/config/zsys.conf

設定を変えたかったらコピペして /etc/zsys.conf に置いていじることになるが、デフォルト設定が変わったときの挙動とかで影響受けそうだし明示的に置いといてほしかったなという思いも。

κeenκeen

とりあえず、1時間ごとにスナップショットをとる仕組みは存在するので考えることは減った。

あとは

  • 最新のスナップショットを取得したい
  • ~/Dropbox はzsysに管理してほしくない

をやっていきたい。前者はなんか頑張ればできそう。
後者はzsysの仕組みの理解が必要。

κeenκeen

zsysは解説ブログがある。↓の記事から始まる一連の記事。
https://didrocks.fr/2020/06/04/zfs-focus-on-ubuntu-20.04-lts-zsys-state-collection/

その中でもこの記事が多分欲しかった情報。

https://didrocks.fr/2020/06/16/zfs-focus-on-ubuntu-20.04-lts-zsys-dataset-layout/

ROOT BOOT USERDATA下にあるデータセットはzsysが管理するので、管理から外したければそれ以外に置けばいい。記事中でPersistent datasetsと呼ばれているもの。

今まだDropboxが同期中で作業できないので後で試す。

κeenκeen

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  -
κeenκeen

いや、さすがにそんなことなかった。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               -
κeenκeen

zfs list-S を渡すとその値でソートしてくれるからそれ使えば最新のを取得はできそう。

$ zfs list -S creation -o name | grep -m1 "rpool/USERDATA/${USER}_.*@autozsys_.*"
rpool/USERDATA/shun_wfj4mu@autozsys_gcfdtp
κeenκeen

Dropboxの同期が終わったのでデータセットを別のものにしてみた。
これを先にやってからDropboxの同期すればよかったな。

最初にこれをやったら思ったとおりにならなかった。

$ sudo zfs create -p -ocanmount=off rpool/home/shun/Dropbox
$ sudo zfs set canmount=on rpool/home/shun/Dropbox

/home/shunrpool/home/shunrpool/USERDATA/shun 両方がマウントしようとしてしまうし、 rpool/home/shun/Dropboxrpool/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 オプションをつけるべきだった。

κeenκeen

最後、この記事の内容をzfsに移植する。
https://keens.github.io/blog/2022/04/30/tarwotsukattabakkuappuwomaishuutoru/

最新のスナップショットから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
}
κeenκeen

ところで前まで気付いてなくてやられたんだけど、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
κeenκeen

ところでzfsにしてからやたらメモリ使用量が多い。

slabtop -sc でトップに zfs_znode_cache が上にくるから恐らくzfsのキャッシュのせいだろう。

κeenκeen

多分これでトピックは終わりかな。次あるとしたらPC移行時だろうけど、そのときはまた別スクラップを作ろう。

κeenκeen

追加で1つ。zfsがデフォルトでメモリの半分をキャッシュに使う設定になっている。このキャッシュは他のファイルシステムのキャッシュと設定が違うのか、メモリを調査するときには使用中のメモリに分類される。
一応メモリ負荷が高まるとキャッシュアウトするはずだが、なんか気持ち悪いし半分は使いすぎじゃねみたいな気持があれば以下の記事に基いて設定を変更できる。
https://pve.proxmox.com/wiki/ZFS_on_Linux#sysadmin_zfs_limit_memory_usage

今回はルートをzfsにしているのでinitramfsの更新まで必要。

κeenκeen

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
https://qiita.com/ken-yossy/items/443d5c8768347ca7488f#フォーマット実行

うちは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 ストレージプール内のデバイスを置き換える

κeenκeen

適切なメモ場がないのでここに追記しとく。そのうち記事にする。
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倍になるケースもあったのでよく使うならやっといて損はない。

κeenκeen

今しか取れないから参考データ貼っとくか。一番最後の行がバックアップにかかった時間。

圧縮オプションあり

$ 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
このスクラップは2024/04/29にクローズされました