ほぼ0.8.0年間の開発の後、LinuxXNUMXでのZFSのリリースが発表されました、Linuxカーネルのモジュールとして設計されたZFSファイルシステムの実装です。
Linux上のZFSの一部として、ZFSコンポーネントの実装が準備されました これは、ファイルシステム操作とボリュームマネージャー操作の両方に関連しています。 特に 実装されています 次のコンポーネント: SPA(ストレージプールアロケーター)、DMU(データ管理ユニット)、ZVOL(ZFSエミュレートボリューム)、およびZPL(ZFS POSIXレイヤー)。
さらに、 このプロジェクトは、LustreクラスターファイルシステムのバックエンドとしてZFSを使用する機能を提供しました。
プロジェクトの基盤は、OpenSolarisプロジェクトからインポートされた元のZFSコードに基づいており、Illumosコミュニティからの機能拡張と修正で拡張されています。 このプロジェクトは、米国エネルギー省との契約に基づいて、リバモア国立研究所の従業員が参加して開発されています。
コードはCDDLの無料ライセンスの下で配布されます。 これはGPLv2と互換性がなく、GPLv2とCDDLライセンスの下でのコードの組み合わせは受け入れられないため、Linux上のZFSをメインのLinuxカーネルに統合することはできません。
このライセンスの非互換性を回避するために、製品を完全にCDDLライセンスの下で、カーネルとは別に出荷される別個のロード可能なモジュールとして配布することが決定されました。 LinuxでのZFSコードベースの安定性は、Linuxの他のファイルシステムに匹敵すると推定されています。
モジュールは、2.6.32から5.1までのLinuxカーネルでテストされています。 レディインストールパッケージは、Debian、Ubuntu、Fedora、RHEL / CentOSなどの主要なLinuxディストリビューション向けにまもなく準備されます。
主なニュース
このリリースで追加された変更の一部として、 ファイルシステムおよびパーティションレベルで保存されたデータを暗号化するための組み込みサポート。 デフォルトの暗号化アルゴリズムはaes-256-ccmです。 暗号化キーをロードするために、コマンド「zfsload-key」が提案されています。
同様に 暗号化されたデータを転送する機能は、コマンドを実行することによって実装されます 「zfs送信」および「zfs受信」。
»-w«オプションを指定すると、グループ内ですでに暗号化されているデータは、このモードを使用して信頼できないシステムをバックアップできる中間復号化なしで、そのまま別のグループに転送されます(受信者が同意した場合、キーなしで) 、攻撃者はデータにアクセスできなくなります)。
さらに 並列ブロック割り当て操作のサポートが追加されました メタスラブのセットごとに個別の「アロケーター」プロセスを実行します。
従来のシステムでは、 5〜10%のパフォーマンスの向上があります。 ただし、大規模なもの(8,128 GB SSD、24 NUMAコア、256 GB RAM)では、ブロック割り当て操作の増加は25%に達する可能性があります。
強調すべきもうXNUMXつの目新しさは ZFSでさまざまなジョブを自動化するLuaスクリプトを作成する機能。 スクリプトは、「zpoolprogram」コマンドを使用して特別なサンドボックスで実行されます。
これに伴い、プロジェクトレベルでのアカウンティングとクォータのサポートも提供され、ユーザーおよびグループレベルで以前に利用可能だったクォータを補完します。
本質的に、プロジェクトは、個別の識別子(プロジェクトID)に関連付けられた個別のオブジェクトスペースです。
最後に、目立つ他の変更は、パフォーマンスの最適化が提示されることです。
- スクラブコマンドとresilverコマンドは、XNUMXつのフェーズに分割されるため高速化されます(メタデータをスキャンし、ディスク上のデータを含むブロックの場所を決定するために別のフェーズが割り当てられ、データの順次読み取りによる追加の検証が可能になります)。
- データ割り当てクラス(割り当てクラス)のサポート。これにより、比較的小さなSSDをプールに含め、それらを使用して、メタデータ、DDTデータ、ファイル付きの小さなブロックなど、頻繁に使用される特定のタイプのブロックのみを保存できます。
- 「zfslist」や「zfsget」などの管理コマンドのパフォーマンスは、作業に必要なメタデータをキャッシュすることで改善されました。