Zettabyte File System
- Solaris オペレーティングシステム
- Open Solaris / Community Group zfs
- @IT / NASとしても簡単に使える Solaris ZFS集中講座
- OpenSolarisでサーバ構築 第4回 一瞬でのバックアップを実現するSolaris ZFS
- 明日からでも使いたい次世代ファイルシステム ノートPCでこそ使いたいZFS
- ZFS、ディデュプリケーション機能
- Jeff Bonwick's Blog / 2009-11-02 ZFS Deduplication
- Ghosthacks / 2010-08-26: Native ZFS for Linux の領域を作る
- 匠技術研究所
- 殴り書きメモ
- 三浦克介 - 情報科学研究科 - 大阪大学
- ITpro
- 記者の眼 / 2012-02-10: HDDが買えないならZFSを使えばいいのに
- NETBUFFALO / 2012-03-29: ZFS(zfs-fuse)のデータ重複排除機能は美味しいか?
- Kazuhisa Hara
- 優雅な生活の設計と実装 / 2011-09: ZFS のトラブル、他
- pcmbeta@ウィキ / ZFSチューニング
- 日曜研究室 / タグアーカイブ: ZFS
- 富士通 / コンピュータプラットフォーム / サーバ / UNIXサーバ / SPARC Enterprise / 技術情報 Technical Park # ZFS
- Nork's daily how to / 2013-01-14: さくらのVPSで FreeBSD 9.1/amd64 with ZFS on GELI に挑戦してみる
- 2012-12-07: 第13回 FreeBSD勉強会
- ZFSの活用とチューニング, 佐藤 広生, 東京工業大学 / FreeBSD Project
- 2016-11-29: 第58回 FreeBSD勉強会
- Design and Implementation of Gracious Days / 2017-01-11: ZFSの性能測定とチューニング
- ZFSの性能測定とチューニング, 佐藤 広生, 東京工業大学 / FreeBSD Project
- Keep It Simple, Stupid / 2016-01-02: MicroServer N54L に Intel SSD 750 を取り付けて Nested KVM が捗る
- Macquarie University (Sydney, Australia) / Faculty of Sicence / Department of Computing / Technical Report / 2009-06-05: [[Digital Crime Scene Investigation for
- SlideShare / satorumiyazaki / 2010-06-11: ZFSでストレージ でも、ストレージだけじゃない ZFS
- Ars Technica / 2020-05-08: ZFS 101—Understanding ZFS storage and performance, ネタ元: Google: zfs sector file
- ResearchGate / Digital forensic implications of ZFS, ネタ元: Google: zfs sector file
- プログラマのつれづれなるままに
- 2020-07-27: 真面目に48TBファイルサーバを構築してみる(1) 構想編
- 2020-07-31: 真面目に48TBファイルサーバを構築してみる(2) 購入編
- 2020-08-03: 真面目に48TBファイルサーバを構築してみる(3) 組み立て編
- 2020-08-05: 真面目に48TBファイルサーバを構築してみる(4) SATA3I10-PCIE(SATA10ポート)の実力は?
- 2020-08-07: 真面目に48TBファイルサーバを構築してみる(5) サーバ構築編
- 2020-08-08: 真面目に48TBファイルサーバを構築してみる(6) サーバ設定編
- 2020-11-10: 8月に構築した48TBファイルサーバのHDDが一つやられたので交換してみる
- Digital Huge Technology / 宮崎悟氏の Ubuntu で ZFS を使ってみよう
- 2018-10-08: 第1回 Linuxのファイルシステムについて
- 2018-11-02: 第2回 UbuntuにZFSを入れてみよう
- 2018-12-05: 第3回 ZFSで使用できるストレージプールを確認しよう(1)
- 2019-01-08: 第4回 ZFSで使用できるストレージプールを確認しよう(2)
- 2019-02-11: 第5回 ZFSのファイルシステムとボリューム
- 2019-03-17: 第6回 DRBDでZFS ボリュームを同期する
- 2020-05-12: 第7回 Ubuntu 20.04 LTS でZFS bootが可能になりました(宮崎悟氏)
- 2020-07-04: 第8回 Ubuntu 20.04 LTS の ZFS boot で変わる機能(Grub)
- 2020-07-17: 第9回 Ubuntu 20.04 LTSのZFS boot で変わる機能(zsysd/zsysctl)
- 2020-08-17: 第10回 Ubuntu 20.04 LTSの auto-snapshot 機能 前回は、zsysdとそれを使用する...
- 2020-09-25: 第11回 ZFSでの読み書きの仕組みを知ろう
- 2020-10-27: 第12回 ARCとZILについて知ろう
- 2020-11-28: 第13回 スナップショットとクローン機能について知ろう
- 2021-01-05: 第14回 スナップショットについて詳しく知ろう
- 2021-02-01: 第15回 スナップショットでバックアップしてみよう
- 2021-02-22: 第16回 遠隔地へバックアップしてみよう
- 2021-04-19: 第17回 zfs cloneを使ってみよう
- 2021-05-28: 第18回 zfs でファイル共有してみよう
- 2021-06-15: 第19回 ZFSのプロパティを見てみよう(1)
- 2021-07-13: 第20回 ZFSのプロパティを見てみよう(2)
- 2021-08-17: 第20回 ZFSのプロパティを見てみよう(3)
- 2021-09-29: 第22回 ZFSのプロパティを見てみよう(4)
- 2021-10-28: 第23回 ZFSのプロパティを見てみよう(5)
- mynav
- 2015-10-08: Shuttleworth氏、UbuntuでZFSのデフォルト対応を示唆
- 2016-02-22: Ubuntu 16.04 LTS、ZFSを正式サポート
OS等 | package等 | ZFS Pool | ZFS Filesystem | 備考 |
---|---|---|---|---|
Ubuntu 10.04 | zfs-fuze 0.6.0-1 | v16 | v4 | |
Ubuntu 10.10 | zfs-fuse 0.6.9-1 | v23 | v4 | |
Debian unstable 20101229 | zfs-fuse 0.6.9-1 | v23 | v4 | |
Debian unstable 20120915 | zfs-fuse 0.7.0-9 | v23 | v4 | |
Debian GNU/kFreeBSD amd64 6.0/20100913 | v14 | v3 | 参考 | |
OpenIndiana 147 | v28 | ? | 参考 | |
Solaris 11 Express | v31 | v5 | 参考 | |
KQ Infotech ZFS for Linux beta | v18 | ? | 参考 | |
ZFS on Linux 0.5.2 | v28 | v5 | 参考 | |
FreeBSD 7.3 | v13 | ? | 参考 | |
FreeBSD 8 stable | v14 | ? | 参考 | |
FreeBSD 9 dev | v15 | ? | 参考 | |
FreeBSD 9 dev | ZFS v28 patch | v28 | ? | 参考 |
機能 | version |
---|---|
deduplication | ZFS Pool Version 21 |
encryption | ZFS Pool Version 30 |
- ZFS Filesystem for FUSE/Linux (obsolete)
- zfs-fuse (current)
- KQ Infotech / ZFS for Linux
- github / zfs-linux
- ZFS on Linux
zfs-fuse (2010-05-19 現在 0.6.0-1) を install
install 時に zpool import -a -f されるところでかなり時間がかかる。
/tmp 以下にループバックでテスト用領域作成。
新規に mypool を作成し zfspart1 を登録
list の確認
status の確認
mount point の確認
mount の確認
パラメータの確認
dedup(重複排除)の設定
umount
すべて mount
すべて umount
export
import されてない pool の確認
mypool のみ import
すべて import
pool にストレージの追加
remove も detach もできないので注意
運用中の実ドライブでやったら多分泣ける(T T)
install 時に zpool import -a -f されるところでかなり時間がかかる。
/tmp 以下にループバックでテスト用領域作成。
touch /tmp/zfspart1 dd if=/dev/zero of=/tmp/zfspart1 bs=1 count=0 seek=128MBなお64M以上ないと pool に加えられない。
新規に mypool を作成し zfspart1 を登録
zpool create mypool /tmp/zfspart1
list の確認
zpool list
status の確認
zpool status
mount point の確認
zfs list
mount の確認
zfs mount
パラメータの確認
zfs get all mypool
dedup(重複排除)の設定
zfs set dedup=on mypool0.6.0-1 では未対応のため失敗する。残念。
umount
zfs umount mypool
すべて mount
zfs mount -a
すべて umount
zfs umount -a
export
zpool export mypool
import されてない pool の確認
zpool import -d /tmp「-d」がないと多分 /dev 以下を検索する。これはかなり時間がかかる。
mypool のみ import
zpool import -d /tmp mypool
すべて import
zpool import -d /tmp -a
pool にストレージの追加
touch /tmp/zfspart2 dd if=/dev/zero of=/tmp/zfspart2 bs=1 count=0 seek=128MB zpool add mypool /tmp/zfspart2ストライプ(RAID0?)になる
remove も detach もできないので注意
運用中の実ドライブでやったら多分泣ける(T T)
mypool1 下の fs1 を @20161213 と言う名前で snapshot
mypool1 下の fs1@20161213 を mypool2 下の fs1 へバックアップ
filesystem, snapshot 等を全て表示
zfs snap mypool1/fs1@20161213
mypool1 下の fs1@20161213 を mypool2 下の fs1 へバックアップ
zfs send mypool1/fs1@20161213 | zfs recv -v mypool2/fs1
filesystem, snapshot 等を全て表示
zfs list -t all
AFT 等を採用して物理セクタが 512B でないドライブの場合、例えば物理セクターが 4KiB なら ashift=12 (2^12 = 4096 と言う意味)としておく必要があるらしい。
この設定は pool 作成時に例えば以下のようにオプションを与えることで行うことが出来るようだ。
きちんと設定されているかどうかは以下のようにして調べる。
FreeBSD 系では gnop コマンドでブロックファイルをラップして論理セクターサイズを 4096 に見せかけておけば自動的に ashift を設定してくれる模様。
参考:
この設定は pool 作成時に例えば以下のようにオプションを与えることで行うことが出来るようだ。
# zpool create -o ashift=12 tank sdxしかし、少なくとも 2012-09-15 現在、Debian sid の zfs-fuze 0.7.0-9 では「property 'ashift' is not a valid pool property」と言われて失敗する。ZFS on Linux なら OK なのかも?
きちんと設定されているかどうかは以下のようにして調べる。
# zdb -C poolname | grep ashift
FreeBSD 系では gnop コマンドでブロックファイルをラップして論理セクターサイズを 4096 に見せかけておけば自動的に ashift を設定してくれる模様。
参考:
- ZFS on Linux / FAQ
- 404 Blog Not Found / 2011-06-19: 備忘録 - HP ProLiant MicroServer + FreeBSD + ZFS
- PC Junkie rev 2.1 / 2011-10-14: 【Strage】ZFS-on-Linuxあれこれのメモ
- My Scrap book / 2012-07-03: FreeBSD+ZFSで4KBセクタのAFT HDDを扱う
- 猫鯖の部屋 / 2012-07-23: FreeBSD:ストレージ交換
ZFS の physical vdev の構造については以下に解説がある。
末尾の label について調べてみたところ、実際には 256KiB 境界にアライメントされていた。
従って ZFS を作成したブロックデバイスのサイズを SIZE バイトとした場合、
バイト単位だと 0B, 262144B, (SIZE/262144*262144-262144)B, (SIZE/262144*262144-524288)B から 262144B ずつ、
512B のセクター単位だと 0s, 512s, (SIZE/512/512*512-512)s, (SIZE/512*512-1024)s から 512s ずつが label である。
つまり ZFS を構成する際のブロックデバイスは 256KiB の倍数でないと末尾に無駄が生じることになる。
- OSDevCon 2009: Program / Friday October 30 – Presentations / 11:45 - 12:30 / Ulrich Gräf ― ZFS internal structures (slide), p.11
末尾の label について調べてみたところ、実際には 256KiB 境界にアライメントされていた。
従って ZFS を作成したブロックデバイスのサイズを SIZE バイトとした場合、
バイト単位だと 0B, 262144B, (SIZE/262144*262144-262144)B, (SIZE/262144*262144-524288)B から 262144B ずつ、
512B のセクター単位だと 0s, 512s, (SIZE/512/512*512-512)s, (SIZE/512*512-1024)s から 512s ずつが label である。
つまり ZFS を構成する際のブロックデバイスは 256KiB の倍数でないと末尾に無駄が生じることになる。
mirror や raid にする場合、構築時には異なる容量のデバイスを混在しても、最小の容量にそろえてくれる。
しかし attache, replace する場合には、小さい容量のデバイスを受け付けてくれない。
通常は同一の製品で固めるため特に問題はないはずだが、緊急避難的にも使えないのはちょっと不便。
pool の容量を縮小できれば attach, replace できるはずなんだけど少なくともv23の段階では縮小ができない。
小さいほうに一旦 send, recv して attach って方法は可能だけど、時間かかるし冗長性を一旦切っちゃうのも不安。
保険的にパーティション切って、少し容量捨てとくべきか悩むところ。
しかし attache, replace する場合には、小さい容量のデバイスを受け付けてくれない。
通常は同一の製品で固めるため特に問題はないはずだが、緊急避難的にも使えないのはちょっと不便。
pool の容量を縮小できれば attach, replace できるはずなんだけど少なくともv23の段階では縮小ができない。
小さいほうに一旦 send, recv して attach って方法は可能だけど、時間かかるし冗長性を一旦切っちゃうのも不安。
保険的にパーティション切って、少し容量捨てとくべきか悩むところ。
ZFS は RAID レベルを後から変更できない。
しかし、良いか悪いかは別にして degrade した状態で運用することは可能。
なので、構築時に sparse file でダミーのブロックデバイスを食わせて raid-z3 で構築しておいて、2 本欠けた raid-z1 相当で運用するとか、1 本欠けた raid-z2 相当で運用するとかいう方法は現実問題として有効なのではなかろうか?、なんて事をふと思いついた。
しかし、良いか悪いかは別にして degrade した状態で運用することは可能。
なので、構築時に sparse file でダミーのブロックデバイスを食わせて raid-z3 で構築しておいて、2 本欠けた raid-z1 相当で運用するとか、1 本欠けた raid-z2 相当で運用するとかいう方法は現実問題として有効なのではなかろうか?、なんて事をふと思いついた。
タグ
コメントをかく