ZFSスナップショットテスト
4月末に新しいUbuntu 22.04システムがリリースされたとき、好奇心からZFSファイルシステムを選択しました。ZFSについては以前から聞いていました。その後、更新されたLinuxカーネルDEBパッケージを自分でインストールしたところ、システムが起動しないことに気づきました。ZFSファイルシステムが認識されなかったため、少しパニックになりました。仕方なくオンラインで情報を検索しました。オープンソースライセンスの問題により、カーネルにはext4などの対応するZFS処理モジュールが含まれていないことが判明しました。紛争が発生した場合、Oracleの弁護士が書簡を送るでしょう。
Ubuntuは対応するファイルシステムオプションを公式に提供しており、BSDなどのシステムでもZFSファイルシステムが採用されていることから、ZFSには独自の機能があるはずです。一般ユーザーにとって、ZFSのスナップショット機能は間違いなく実用的です。テスト手順は以下のとおりです。
1. まずは基本を確認しましょう
1➜ mephisto.cc git:(main) zpool list
2NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
3bpool 1.88G 244M 1.64G - - 1% 12% 1.00x ONLINE -
4rpool 472G 23.1G 449G - - 3% 4% 1.00x ONLINE -
5➜ mephisto.cc git:(main) zpool status
6pool: bpool
7state: ONLINE
8config:
9
10NAME STATE READ WRITE CKSUM
11bpool ONLINE 0 0 0
125caca429-191c-f046-b1dc-3167ba2d43fa ONLINE 0 0 0
13
14エラー: 既知のデータエラーなし
15
16プール: rpool
17状態: オンライン
18設定:
19
20名前 状態 読み取り 書き込み チェックサム
21rpool オンライン 0 0 0
221c85b674-1367-5d40-8553-2ba3439be776 オンライン 0 0 0
23
24エラー: 既知のデータエラーなし
25➜ mephisto.cc git:(main) zfs --version
26zfs-2.1.2-1ubuntu3
27zfs-kmod-2.1.2-1ubuntu3
28➜ mephisto.cc git:(main) zfs list 名前 使用済み 空き容量 参照 マウントポイント
29bpool 244MB 1.51GB 96KB /boot
30bpool/BOOT 243MB 1.51GB 96KB なし
31bpool/BOOT/ubuntu_o54gp2 243M 1.51G 243M /boot
32rpool 23.1G 434G 96K /
33rpool/ROOT 7.42G 434G 96K なし
34rpool/ROOT/ubuntu_o54gp2 7.42G 434G 5.74G /
35rpool/ROOT/ubuntu_o54gp2/srv 96K 434G 96K /srv
36rpool/ROOT/ubuntu_o54gp2/usr 140M 434G 96K /usr rpool/ROOT/ubuntu_o54gp2/usr/local 139M 434G 139M /usr/local
37rpool/ROOT/ubuntu_o54gp2/var 1.55G 434G 96K /var
38rpool/ROOT/ubuntu_o54gp2/var/games 96K 434G 96K /var/games
39rpool/ROOT/ubuntu_o54gp2/var/lib 1.51G 434G 1.38G /var/lib
40rpool/ROOT/ubuntu_o54gp2/var/lib/AccountsService 112K 434G 112K /var/lib/AccountsService
41rpool/ROOT/ubuntu_o54gp2/var/lib/NetworkManager 144K 434G 144K /var/lib/NetworkManager
42rpool/ROOT/ubuntu_o54gp2/var/lib/apt 84.4M 434G 84.4M /var/lib/apt
43rpool/ROOT/ubuntu_o54gp2/var/lib/dpkg 46.3M 434G 46.3M /var/lib/dpkg
44rpool/ROOT/ubuntu_o54gp2/var/log 41.3M 434G 41.3M /var/log
45rpool/ROOT/ubuntu_o54gp2/var/mail 96K 434G 96K /var/mail
46rpool/ROOT/ubuntu_o54gp2/var/snap 1M 434G 1M /var/snap rpool/ROOT/ubuntu_o54gp2/var/spool 116K 434G 116K /var/spool
47rpool/ROOT/ubuntu_o54gp2/var/www 96K 434G 96K /var/www
48rpool/USERDATA 15.7G 434G 96K /
49rpool/USERDATA/mephisto_fmrvh5 15.7G 434G 15.7G /home/mephisto
50rpool/USERDATA/root_fmrvh5 1.03M 434G 1.03M /root
2. テストファイル 404.jpg が存在することを確認します。
1➜ mephisto.cc git:(main) ls -al ~/Pictures/iPhone
2total 47 drwxrwxrwx 2 mephisto mephisto 3 5月29日 12:53 .
3drwxrwxrwx 4 mephisto mephisto 7 5月26日 14:49 ..
4-rw-rw-r-- 1 mephisto mephisto 43408 5月29日 12:53 404.jpg
3. スナップショットを作成し、ファイルを削除します。スナップショットの作成は数秒で完了します。
1➜ mephisto.cc git:(main) sudo zfs snapshot rpool/USERDATA/mephisto_fmrvh5@9527
2[sudo] mephisto のパスワード:
3➜ mephisto.cc git:(main) rm ~/Pictures/iPhone/404.jpg
4➜ mephisto.cc git:(main) ls ~/Pictures/iPhone/404.jpg
5ls: '/home/mephisto/Pictures/iPhone/404.jpg' にアクセスできません: そのようなファイルまたはディレクトリはありません
4. スナップショットをロールバックして、削除された 404.jpg を復旧します。変更点が少なかったため、ロールバックは非常に高速でした。
1➜ mephisto.cc git:(main) sudo zfs rollback rpool/USERDATA/mephisto_fmrvh5@9527
2➜ mephisto.cc git:(main) ls ~/Pictures/iPhone/404.jpg
3/home/mephisto/Pictures/iPhone/404.jpg
4➜ mephisto.cc git:(main) echo "nubility"
5nubility
5. 現在のスナップショットを確認します。9527 は先ほど作成したものです。
1➜ mephisto.cc git:(main) zfs list -t snapshot
2NAME USED AVAIL REFER MOUNTPOINT
3rpool/USERDATA/mephisto_fmrvh5@9527 3.17M - 15.7G -
6. 別のスナップショット 9528 を作成します。ここではテストを繰り返さないので、ファイルシステムは依然として信頼できます。
1➜ mephisto.cc git:(main) sudo zfs snapshot rpool/USERDATA/mephisto_fmrvh5@9528
2[sudo] mephisto のパスワード:
3➜ mephisto.cc git:(main) ✗ zfs list -t snapshot
4NAME USED AVAIL REFER MOUNTPOINT
5rpool/USERDATA/mephisto_fmrvh5@9527 3.98MB - 15.7GB -
6rpool/USERDATA/mephisto_fmrvh5@9528 0MB - 15.7GB -
また、ZFS ストレージプール (zpool) は使いやすく、複数のデバイスを管理するために別途ボリューム管理システムを必要としません。NAS を作成する際にも使用できます。テスト用の追加ディスクがないため、必要なリソースを持つユーザーは、関連する OpenZFS または Oracle のドキュメントを参照して手順を確認できます。
最終更新日: Wednesday, August 13, 2025
著作権に関する声明:
- 出典のないコンテンツはすべてオリジナルです。、無断転載はご遠慮ください(転載後にレイアウトが崩れたり、内容が制御不能になったり、継続的に更新できない等の理由から)。
- このブログのコンテンツを非営利目的で解釈したい場合は、(読者の便宜のため)「オリジナル ソース」または「参照リンク」の形式でこのサイトの関連 Web ページ アドレスを提供してください。