ZFSとは?
ZFSは、ファイルシステムとボリュームマネージャーが一体になったものです。サーバーのディスクをストレージプールにまとめ、読み取るすべてのデータに破損がないか確認し、スナップショットを別のマシンにコピーできます。
エンジニアに相談する ナレッジベース
どういうものか
ZFSは、Sun MicrosystemsがSolaris向けに開発しました。OracleがSunを買収した後も、オープンソースのコードはOpenZFSとして続き、LinuxとFreeBSDで動作し、Proxmox VEとTrueNASに組み込まれています。ディスクとファイルシステムをまとめて管理するため、どのディスクにデータのどのコピーがあるかを把握し、壊れたコピーを正常なコピーから修復できます。
知っておきたい考え方
- プール、ミラー、RAID-Z:ディスクはプールにまとめられます。ミラーは、2台以上のディスクに同一のコピーを保持します。RAID-Zはパリティを使い、レベルに応じて、グループごとに1台、2台、3台のディスクの故障に耐えられます。
- チェックサム:すべてのブロックにチェックサムがあるため、ディスクが気づかないうちに壊れたデータを返したときにZFSが検知し、冗長なコピーから修復します。定期的なスクラブがプール全体を確認します。
- スナップショット:ファイルシステムや仮想ディスクの固定されたビューで、ほぼ瞬時に作成され、データが変わった分だけ容量を使います。
- 送信と受信:スナップショットを別のZFSマシンにストリーム送信します。最初に全体をコピーした後は、変更分だけが送られます。
- 圧縮:データは書き込み時に圧縮できます。通常の方式であるLZ4は、プロセッサーへの負荷がほとんど増えません。
- ディスクへの直接アクセスとメモリ:ZFSは、ハードウェアRAIDのボリューム経由ではなく、各ディスクを直接見る必要があります。読み取りを空きメモリにキャッシュするため、メモリが不足したサーバーは遅く感じられます。
ZFSとCephの比較
ZFSは、一台のサーバー内のストレージです。そのサーバーが止まれば、プールも止まりますが、2台目のサーバー上のレプリカが、最新の変更を除いて引き継ぐことはできます。Cephは、ストレージを複数のサーバーに分散させるため、一台を失っても何も止まりませんが、ハードウェアと手間が増えます。どちらが適しているかは、当社のストレージサービスのページで説明しています。どちらもバックアップの代わりにはなりません。
KawaConnectのZFSの扱い方
当社は、自社のインフラでProxmoxとCephを運用し、お客様向けにProxmoxサーバーを構築しています。ZFSはProxmoxに組み込まれたストレージで、単一のホストや2台構成では、当社の設計の出発点です。サーバー一台を丸ごと失ってもストレージを動かし続ける必要がある場合は、Cephを計画します。
関連サービス
CephとZFSのストレージ
業務用ストレージの選定、構築、保守。
Proxmoxコンサルティング
ZFSまたはCeph上の仮想化ホスト。
バックアップとディザスタリカバリ
スナップショットでは代わりにならない、別のコピー。
詳しく見る
- OpenZFSドキュメント公式マニュアルで、オペレーティングシステムごとの設定ガイドとコマンドリファレンスがあります。
- OpenZFSプロジェクトのサイトプロジェクトのニュース、対応プラットフォーム、開発者の協力のしかたです。
- WikipediaのZFSSunからOpenZFSまでの歴史と、機能の概要を中立的にまとめています。
- Proxmox VE wikiのZFS on Linuxプールの構成、メモリ設定、故障したディスクの交換など、Proxmox VEがZFSをどう使うかを解説しています。