GEOM は、 FreeBSDオペレーティングシステムのメインストレージフレームワークです。FreeBSD 5.0 以降のリリースで利用可能で、ストレージ層にアクセスするための標準化された方法を提供します。GEOM はモジュール式で、geom モジュールをフレームワークに接続できます。たとえば、geom_mirror モジュールは、システムにRAID1またはミラーリング機能を提供します。FreeBSD の一部として提供されるモジュールもあれば、独立して開発され、GitHubなどを通じて配布されるモジュールもあります。
GEOM は、DARPA CHATS 研究プログラムの一環として、 DARPA / SPAWAR契約 N66001-01-C-8035 ("CBOSS") に基づき、 Poul-Henning KampとNetwork Associates, Inc. のセキュリティ研究部門であるNAI Labsによって FreeBSD プロジェクト向けに開発されました。この名前は、ディスク ジオメトリへの影響を象徴しています。
積み重ねデザイン
geom はモジュール設計のため、モジュールを「積み重ねて」geom レイヤーのチェーンを形成できます。たとえば、geom_mirror モジュールの上に、geom_eli などの暗号化モジュールを追加して、ミラーリングされた暗号化ボリュームを提供できます。各モジュールには、コンシューマーとプロバイダーの両方があります。プロバイダーは geom モジュールの「ソース」であり、通常は物理ハード ドライブですが、メモリ ディスクなどの仮想ディスクの場合もあります。geom モジュールは、次に「出力」デバイスを提供します。コンシューマーと呼ばれる他の geom モジュールは、このプロバイダーを使用して、互いに接続されたモジュールのチェーンを作成できます。
ソース → geom モジュール → 出力
は次のように呼ばれます:
プロバイダー → geom モジュール → コンシューマー
たとえば、geom_mirror モジュールは、(コンシューマーとして) 次のプロバイダーを使用します: /dev/ada0、/dev/ada1、(プロバイダーとして) /dev/mirror/gm0 という新しいデバイスを作成します。geom チェーンの最後には、多くの場合、 geom プロバイダーを実際に有用な用途に使用するためにファイルシステムが適用されます。geom モジュールによって作成されたプロバイダーは、物理ハード ドライブのように動作し、FreeBSD のネイティブUnix ファイル システム(UFS)などのファイル システムを含めることができます。
利用可能なモジュール
ストレージモジュール[1]
- geom_stripe ( RAID0 )
- geom_mirror ( RAID1 )
- geom_raid (「ソフトウェア RAID」コントローラ上の RAID 機能をサポート)
- geom_raid3 ( RAID3 )
- geom_raid5 ( RAID5、 -CURRENT にはまだ存在しません)
- geom_concat (連結、スパニングまたはJBODとも呼ばれる)
- geom_vinum (RAID0/1/4/5 をサポートするレガシー ボリューム マネージャー)
- geom_ccd (RAID0 と基本的な RAID1 をサポートするレガシー ボリューム マネージャー)
暗号化および圧縮モジュール
- geom_eli ( GELIとも呼ばれ、AES、Blowfish、Triple DES、Camelliaアルゴリズムを使用した従来の暗号化を提供します。 MD5、SHA1、SHA256、SHA384、SHA512、RIPEMD160を使用したデータ認証をサポートできます)
- geom_bde ( GBDEとも呼ばれ、4 つの暗号バリアを備えた最先端の暗号化)
- geom_shsec (共有秘密暗号化モジュール)
- geom_uzip (読み取り専用のZIP圧縮画像)
ファイルシステムモジュール
- geom_label (プロバイダーが独自の名前にラベルを付けて簡単にパーティション分割できるようにする)
- geom_journal ( Unix ファイルシステム ( UFS )にジャーナリングサポートを追加します)
- geom_cache ( RAMをバッファキャッシュとして使用してパフォーマンスを向上させるキャッシュサポートを追加します)
ディスクのパーティション分割
- geom_flashmap (オフセットまたはコンテキストを使用してフラッシュメモリの一部をパーティション分割する)
- geom_part ( GEOM プロバイダーのディスク パーティション分割をサポート)
- geom_part_apm ( Apple パーティションマップをサポート)
- geom_part_bsd ( BSD ディスクラベルをサポート)
- geom_part_bsd64 ( DragonFly BSDで使用される BSD ディスクラベルの 64 ビット版をサポートします)
- geom_part_ebr (拡張ブートレコードをサポート)
- geom_part_gpt ( GUID パーティション テーブルをサポート)
- geom_part_ldm (論理ディスク マネージャーをサポート)
- geom_part_mbr (マスターブートレコードをサポート)
- geom_part_vtoc8 (Sun/Solaris VTOC8 ディスク ラベルをサポート)
仮想化
- geom_mountver (マウント検証を有効にする)
- geom_multipath (基盤となるディスクへのマルチパス I/Oをサポート)
- geom_nop (デバッグとテストに使用される透過的なモジュールを作成します)
- geom_gate (ネットワーク ディスク バックエンドを使用して仮想ディスクを作成します)
- geom_virstor (コンシューマーよりも大きなプロバイダーを作成することで、geom プロバイダーをオーバーロードできます)
- geom_linux_lvm (Linux LVM2ボリュームを読み取る)
- geom_zero (すべての書き込みを吸収し、読み取り時にゼロを返すダミー プロバイダーを作成します)
外部リンク
- Rhodes, Tom. 「GEOM: モジュラー ディスク変換フレームワーク」。FreeBSDハンドブック。
- Kamp, Poul-Henning. 「GEOM チュートリアル」(PDF) . BSDCan 2004 .
参考文献
- ^ Pawel Jakub Dawidek. 「GEOM(8)」. FreeBSD システム管理者マニュアル. 2021年10月31日閲覧。
