GEOM のモジュールを理解する
Seichan です.こんばんわ.
GEOM の状態がどういう風になっているのかを確認したい.なんていう時ないですか? 自分はとてもたまにあります.そんな時に可視化するとその環境の理解が深まったりしますよね.
というわけで,今回は GEOM の状態可視化について触れてみたいと思います.
なにを理解すればよいのか? という所ですが,まず FreeBSD は物理デバイス (da0 とか da1 になれるもの) から /dev の下にデバイスファイルを生成するまでの間に GEOM のフレームワークを使用してます.重ねがけが出来る点は触れたと思います.
この重ねがけの部分等は可視化する事で理解をより深められると思いますし,GEOM_LABEL の部分なんかはすぐに状態が確認しやすい代表的なものかと思います.
ということでまずは可視化してみましょう.
sysctl で kern.geom.confdot を指定すると Graphviz の dot 形式で現在の GEOM の状態を出力することが出来ます.
# sysctl -n kern.geom.confdot digraph geom { z0xfffffe0002932400 [shape=box,label="FD\nfd0\nr#1"]; z0xfffffe0002932300 [shape=hexagon,label="fd0\nr0w0e0\nerr#0"]; z0xfffffe0002932300 -> z0xfffffe0002932400; z0xfffffe00029de000 [shape=box,label="PART\nda0\nr#2"]; z0xfffffe00029a2300 [label="r2w2e3"];
実行後,digraph geom { からずらずらっと文字が出力されていることがわかります.このままでは何がなんだか… という状態だと思います.
そこで,この dot 形式の出力を画像に変換出来るサイトがありますので,このサイトの力を借りてさっくりと画像化してみましょう.GraphViz Workspace というサイトです.
このサイトにて,Select engine は dot(default) を選んで,Edit script に sysctl の結果を貼りつけると,右側に画像が出力されます.
これら記事のネタ元環境ではこんな感じの画像が出力されました.
ざっとの見かたとしては次の通りです.
- 四角形: GEOM クラス
- 六角形: GEOM プロバイダ
- 楕円形: GEOM コンシューマ
da1 ~ da3 は色々実験用で今は空っぽの状態の為,特に面白い事はなにもありませんが,見た目で理解はしやすいと思います.一番下の DISK が物理デバイスとなり,上の DEV が論理デバイスとなります.
de0 は FreeBSD を導入した場所なので色々と描かれています.
一番下の DISK が1つですので,1つのディスクに FreeBSD 環境を入れている事がわかります.
そのディスクにパーティションが作成されている事が PART のブロックがある事でわかります.
並列に DEV ブロックがあるのは,/dev/da0 というデバイスファイルが生成されている為です.
パーティションは3つ作成されている事がわかり,SWAP と VFS と LABEL のブロックがあります.LABEL ブロック部は boot 領域なのですが,さらにラベル名が上部へ続いています.
ぱっと見は理解しづらいかと思いますが,上か下から読み解く事である程度の状態は理解できるかと思います.
なお,graphviz パッケージが導入済みであれば次のようなコマンドでそのまま画像出力することが出来ますので導入環境であればリンクしたサイトのサイト負荷を軽減する意味でもローカルで実施してあげてください.
その場合は以下のようにパイプで dot コマンドに渡してあげれば大丈夫です.
# sysctl -n kern.geom.confdot | dot -T jpg > graph.jpg
ということで,GEOM_LABEL を使った場合や,ファイルシステムを作っただけでも既に GEOM の重ねがけが行われている点が見えたかとおもいます.
次はもうちょっと面白い,RAID あたりに進んでみたいなぁと思います.


関連記事
-
-
FreeBSD をクライアントとして利用する (X.org)
Seichan です.FreeBSD をクライアントとして利用する,其ノ二.今回は X.org (X
-
-
Multiple problems in crypto
FreeBSD の SA が出た.今回は OpenSSL.これインパクトでかい様なので,外部向けのサ
-
-
GEOM RAID0 を使ってみる
Seichan です.こんばんわ. 前回「GEOM のモジュールを理解する」でも書きましたが,GE
-
-
MovableTypeを入れてみた
FreeBSD なサーバにこの blog ツールである,MovableType を入れてみた. DB
-
-
PHPki で簡単証明書運用 (4) 【作成した証明書を管理する】
Seichanです.こんばんわ. 先日の「PHPki で簡単証明書運用 (3) 【署名されたサーバ
-
-
FreeBSD をクライアントとして使用する (X.org)
Seichan です.FreeBSD をクライアントとして使用する,其ノ三. 今回も X.org
-
-
FreeBSD で NFS (1) 【NFS概要】
Seichan です.こんばんわ.今年もあと1時間を切りました... ちょっと GEOM 以外に行
-
-
ports で頑張って見た
apache13-modssl を ports からインストールしてみた. suexec を On
- PREV
- GEOM_LABEL をちょっと理解してみる
- NEXT
- GEOM RAID0 を使ってみる