ZFSストレージアレイは、オペレーティングシステムとCPUアーキテクチャの間で移植可能ですか?

ZFSストレージアレイは、オペレーティングシステムとCPUアーキテクチャの間で移植可能ですか?

ZFSは、Solaris、Illumos、Linux、BSDなど、さまざまなオペレーティングシステムで使用できることを認識しています。

Linuxで作成されたZFS raidファイルシステムの一部である複数のディスクがあるとします。これらのドライブをLinuxシステムから取り出し、BSDまたはIllumosを実行しているシステムに入れて動作させることができますか? ZFSの異なる実装間のディスク移動を問題にするZFSファイルシステムに書き込まれた特定のオペレーティングシステムはありますか?

ZFS形式のディスクがCPUアーキテクチャと交差している場合(SPARCを実行しているシステムではx86など)、どうなりますか? ZFSメタデータはCPUアーキテクチャエンディアンの影響を受けますか?

ベストアンサー1

ZFS プールとデータセットの移植性に対処する場合、実際に重要なのはそのバージョンです。いつでもオペレーティングシステムでサポートされているバージョンより低いか同じバージョンのプールをインポートでき、同じルールがデータセット(ファイルシステム、zvol、スナップショットなど)に適用されます。

したがって、ZFSプールを特定のオペレーティングシステムから別のオペレーティングシステムに移動する場合は、共有するプール、ファイルシステム、およびzvolに最大の共通バージョンを選択する必要があります。たとえば、

zpool create -o version=28 -O version=5 ...

また、ZFSのオープンソースフォークには、有効にするとプールがSolarisと互換性がなくなる「機能フラグ」が導入されました。フルバージョンを5000に設定しました。一方、機能フラグは、特定の機能をサポートしていないオペレーティングシステムにプールを移動する際にある程度の柔軟性を提供するように設計されています。

アーキテクチャに関しては、ZFS オブジェクトはプラットフォームの基本ビットシーケンスを使用して作成されます。すべてのZFS実装はビッグエンディアンオブジェクトとリトルエンディアンオブジェクトの両方を読み取ることができるため、これは問題になりません。バイト順序は、すべてのデータ構造とともに保存されます。これにより、x86から​​SPARCにプールをインポートする際に問題は発生しません。

最後に、ディスク全体以外の場所に構築されたプールを処理するときに問題が発生する可能性があります。ターゲットオペレーティングシステムは、ソースディスクパーティションを理解できる必要があります。最悪のシナリオは、純粋なファイルに基づいてプールを作成し(テスト以外は推奨されません)、使用されているファイルシステムをターゲットプラットフォームにマウントできない場合です。

おすすめ記事