Western Digital 社ソフトウェア開発ディレクター предложил Linux カーネル開発者メーリング リストでは、Zonefs と呼ばれる新しいファイル システムが、低レベルの作業を簡素化することを目的としています。 ゾーン化されたストレージデバイス 。 Zonefs は、ドライブ上の各ゾーンを個別のファイルに関連付けます。このファイルは、セクターレベルやブロックレベルの操作を行わずに raw モードでデータを保存するために使用できます。
Zonefs は POSIX 準拠の FS ではなく、アプリケーションが ioctl を使用してブロック デバイスに直接アクセスする代わりにファイル API を使用できるようにするかなり狭い範囲に制限されています。 ゾーン関連ファイルには、ファイルの末尾から開始する順次書き込み操作 (追加モード書き込み) が必要です。
Zonefs で提供されるファイルは、XNUMX つのファイル - XNUMX つのストレージ ゾーンという概念から始まり、LSM (ログ構造化マージ) ログの形式でストレージ構造を使用するゾーン化されたデータベース ドライブ上に配置するために使用できます。 たとえば、RocksDB データベースと LevelDB データベースでは同様の構造が使用されています。 提案されたアプローチにより、デバイスをブロックするのではなくファイルを操作するために元々設計されていたコードの移植コストを削減できるだけでなく、C 以外のプログラミング言語のアプリケーションからゾーン化されたドライブを使用した低レベルの作業を整理することが可能になります。
ゾーン化されたドライブの下で 暗黙の 上のデバイス ハード磁気ディスク または NVMe SSD 、ブロックまたはセクターのグループを構成するゾーンに分割された記憶空間。ブロックまたはセクターのグループ全体を更新する場合は、データを順次追加することのみが許可されます。
たとえば、記録ゾーニングはタイル型磁気記録を備えたデバイスで使用されます (瓦磁気記録 、SMR)は、トラック幅が磁気ヘッドの幅よりも小さく、隣接するトラックと部分的に重なって記録が行われる。 再録音すると、トラックのグループ全体を再録音する必要があります。 SSD ドライブに関しては、最初は予備データ消去による順次書き込み操作にバインドされていますが、これらの操作はコントローラー レベルと FTL (フラッシュ変換層) レイヤーでは隠蔽されています。 特定の種類の負荷の効率を高めるために、NVMe 組織は ZNS (ゾーン化された名前空間) インターフェイスを標準化しました。これにより、FTL 層をバイパスしてゾーンへの直接アクセスが可能になります。
Linux では、カーネル 4.10 以降のゾーン化されたハードドライブ用 提供された ZBC (SCSI) および ZAC (ATA) ブロック デバイス。リリース 4.13 以降では、ゾーン化されたドライブを通常のブロック デバイスとして表す dm-zoned モジュールが追加され、動作中に適用される書き込み制限を非表示にします。 ファイル システム レベルでは、ゾーン分割のサポートはすでに F2FS ファイル システムに統合されており、Btrfs ファイル システム用の一連のパッチが開発中です。ゾーン分割されたドライブへのパッチの適応は、CoW (コピーオン) で作業することで簡素化されています。 -書き込み) モード。
ゾーン化されたドライブ上での Ext4 および XFS の操作 手配できます dmゾーンを使用します。 ファイル システムの変換を簡素化するために、ファイルへのランダムな書き込み操作を順次書き込み操作のストリームに変換する ZBD インターフェイスが提案されています。
出所: オープンネット.ru