GEOM

GEOM は、FreeBSD オペレーティングシステムにおける主要なストレージフレームワーク。FreeBSD 5.0 とそれ以降で利用可能で、ストレージ階層へのアクセス手段の標準化を提供する。GEOM はモジュール式で、GEOM モジュールはフレームワークとの接続が可能である。例えば、geom_mirror モジュールはシステムに対して、RAID1又はミラーリング機能を提供できる。幅広い範囲のモジュールが利用可能であり、また様々な FreeBSD 開発者達の積極的な開発により、新しいモジュールが利用可能となっている。

GEOM は、DARPA CHARTS 研究プログラムの一環として、 アメリカ国防高等研究計画局/SPAWAR[1]との契約 N66001-01-C-8035 ("CBOSS")の下、Poul-Henning Kamp と ネットワークアソシエイツ社の Security Research 部 NAIラボにより、FreeBSD 向けに開発された。この名前は、ディスクジオメトリ(geometry)への影響を象徴化する。

スタック設計

GEOMのモジュール設計により、GEOMレイヤーのチェインを形成する為、モジュールは同時にスタックさせることが可能である。例えば、geom_mirror の上に暗号化モジュールを追加可能で、geom_eil はそのようなミラーリングと暗号化ボリュームを提供する。それぞれのモジュールは、コンシューマー(消費者)またはプロバイダー(提供者)となる。プロバイダは GEOM モジュールのソースであり、大抵は物理ハードドライブであるが、メモリディスクのような仮想ディスクの場合もある。GEOM モジュールは、出力デバイスへ向けて順に提供される。コンシューマーと呼ばれる他の GEOM モジュールは、互いに接続するモジュールのチェインを作成する為、これを提供することができる。

ソース → GEOM モジュール → 出力

は、次を参照する:

プロバイダー → GEOM モジュール → コンシューマー

例えば、geom_mirror モジュールは(コンシューマーの立場として)これらのプロバイダー: /dev/ada0, /dev/ada1 を利用するかもしれない。一方、このモジュールは(プロバイダーの立場として)/dev/mirror/gm0 と呼ばれる新しいデバイスを作成する。GEOM チェインの終端において、大抵のファイルシステムは、有用性の為に実際にGEOMプロバイダーを利用して適用する。そのプロバイダーはGEOM モジュールにより作成され、物理ハードドライブのように振る舞い、FreeBSD ネイティブの Unix File System(UFS) のようなファイルシステムを含めることができる。

利用可能なモジュール

ストレージモジュール

  • geom_stripe (RAID0)
  • geom_mirror (RAID1)
  • geom_raid ("software raid" コントローラにおけるRAID機能をサポート)
  • geom_raid3 (RAID3)
  • geom raid5 (RAID5, まだ -CURRENT として提供されない)
  • geom_concat (結合[2]、またスパニング又はJBODとも呼ばれる)
  • geom_vinum (RAID0/1/4/5 に対応するレガシー ボリュームマネージャ)
  • geom_ccd (RAID0と不完全なRAID1に対応するレガシー ボリュームマネージャ)

暗号化と圧縮モジュール

  • geom_eli (GELIとも呼ばれる、AES, Blowfish, トリプルDES 又は Camellia アルゴリズムを用いた伝統的な暗号化を提供する。MD5, SHA1, SHA256, SHA384, SHA512 又は RIPEMD160 を使うことでデータの証明をサポートする。)
  • geom_bde (GBDEとも呼ばれる, 4種の暗号バリアによる最先端の暗号化)
  • geom_shsec (共有シークレット暗号化モジュール)
  • geom_uzip (読込専用のZIP 圧縮イメージ)

ファイルシステムモジュール

  • geom_label (簡単なパーティショニングの為の固有名の付与を提供)
  • geom_journal (Unix File System(UFS)に対するジャーナリングサポートを追加)
  • geom_cache (RAMをバッファキャッシュとして用いたパフォーマンス向上の為のキャッシングのサポートを追加)
  • geom_mbr

仮想化

  • geom_md (スワップ又はメモリ、ファイルをバックエンドに用いた仮想ディスクを作成)
  • geom_nop (デバッグとテストの為の透過モジュールを作成)
  • geom_gate (ネットワークディスクをバックエンドに用いた仮想ディスクを作成)
  • geom_virstor (allows overloading a geom provider by creating a provider larger than its consumer)
  • geom_linux_lvm (Linux LVM2 ボリュームを読込)

脚注

  1. ^ Space and Naval Warfare Systems Command
  2. ^ 訳注: concatenating

外部リンク

  • FreeBSD handbook Chapter 20 GEOM: Modular Disk Transformation Framework
  • Poul-Henning Kamp's GEOM tutorial slides at BSDCan 2004
FreeBSDプロジェクト
FreeBSD
  • FreeBSD Core Team(英語版)
  • FreeBSD Documentation License
  • FreeBSD Foundation(英語版)
  • FreeBSD Ports(英語版)
  • 歴史(英語版)
サブシステム
  • busdma(英語版)
  • GEOM
  • ipfw
  • FreeBSD jail
  • Netgraph(英語版)
  • OpenPAM(英語版)
  • OpenBSM(英語版)
  • pf
  • Soft updates
  • ULE scheduler(英語版)
  • bhyve
  • Highly Available STorage(英語版)
  • portsnap(英語版)
  • kqueue(英語版)
  • geom raid5(英語版)
  • geli(英語版)
  • moused(英語版)
  • Vinum volume manager(英語版)
人物
派生(英語版)
オープンソース
プロプライエタリ
  • カテゴリ