vSAN アーキテクチャ ー Cluster-Level Object Manager(CLOM)
vSAN アーキテクチャー編始めてみました。
vSANは実は複数のソフトウェアの集合体、と考えていただくことが可能です。
今回は、Cluster Level Object Manager (略称CLOM)の紹介です。
<役割と紹介>
- オブジェクトの取りまとめを担当している
(オブジェクトの作成時の配置やコンポーネントがストレージポリシーに準じてオブジェクトを保護しているかを確認する) - オブジェクトのリビルドの実行をスケジュールする
(障害発生時に空きのディスク容量を確認し、十分にそれがあることを確認し操作をスケジュールする) - オブジェクトは新しいポリシーが関連付けられた際に、新しいコンポーネント配置が必要であればそれをハンドルする
- ホスト上のCLOMデーモン間でコミュニケーションを行い、相互の空き状態を確認する
- CLOMはユーザースペースデーモンであり、各ホスト上で動作している
サービスステータスは、/etc/init.d/clomd <status/restart>で操作確認ができる
ログ情報は/var/log/clomdに表示される
名前の通り、クラスターレベルでオブジェクトがストレージポリシーのルール通り保護されているかを管理するのがCLOMの役割です。
例えば、仮想マシンを作成する際には、ポリシーに準拠した構成であるかを判定してくれます。(3ノードしか無いホストで、FTT=2を構成しようとするとエラーが出るのは、CLOMがこれを判断しているからである)
この際、各コンポーネントの初期配置も、CLOMが決めてくれます。
また、メンテナンスモードやリバランスなどに伴うデータの移行をスタートさせてくれるなどもCLOMの担当ですので、この点においても”ポリシーをいかにして忠実に守るか”、というCLOMらしい動きだと言えますね。
CLOMサービスは全てのESXiホスト上で動作をしており、相互通信をすることによってクラスター全体でワークロードも含めた均一化を図ることもまた、CLOMのミッションと言えます。(Nutanixで言う、Curatorみたいな役割のようにも見えます)
関連KBとしては、以下の情報からも、上記の内容が想像し易いと言えます。
vSAN 健全性サービス - クラスタの健全性 - CLOMD 稼動状態チェック (2148715)
また、ログとしても/var/log配下に"clomd.log"があります。
vSANが構成されたばかりのclomd.logを見てみますと、”esx-01a.corp.local”が"vmhba4:C0:T0:L0"のディスクを使い、ディスクグループを組んでいる様子が分かります(勿論、他のホスト、他のディスクも、この行の前後でこれに組み込まれていますね)
オブジェクトの配置場所を考える上で、ディスク配置の情報などを把握するためにこれらの情報を読み取っているように見えます。ログの解説もしたい所ですが、詳細情報をこれから集めますので、情報が集まり次第別回で紹介したいと思います。