5.4. ノードの root ディスクの定義

ノードによっては、複数のディスクを使用するものもあります。つまり、プロビジョニングの際に、director は、ルートディスクに使用するディスクを特定する必要があるという意味です。以下のように、director がルートディスクを容易に特定できるように使用可能なプロパティーが複数あります。
  • model (文字列): デバイスの ID
  • vendor (文字列): デバイスのベンダー
  • serial (文字列): ディスクのシリアル番号
  • wwn (文字列): 一意のストレージ ID
  • hctl (文字列): SCSI のホスト:チャネル:ターゲット:Lun
  • size (整数):デバイスのサイズ (GB)
以下の例では、root デバイスを特定するディスクのシリアル番号を使用して、オーバークラウドイメージをデプロイするドライブを指定します。
まず、各ノードに使用予定の root ドライブのシリアル番号を検索します。ノードごとに ironic node-show コマンドを使用して、extra セクションから利用可能なブロックデバイスを特定します。たとえば、以下を使用して、全ノードとそのブロックデバイスを一覧表示します。
$ for uuid in `ironic node-list | awk '{print $2}'`; do echo "Node ID: $uuid"; ironic node-show $uuid | grep 'properties\|extra ' -A3; done
この例では、コントローラーノードに対して以下のようなディスクが出力として含まれる場合があります。
...
Node ID: 1a4e30da-b6dc-499d-ba87-0bd8a3819bc0
| extra       | {u'newly_discovered': u'true', u'block_devices':      |
|             | {u'serials': [u'100000000', u'100000001',             |
|             | u'100000002', u'100000003', u'100000004',             |
|             | u'100000005', u'100000006', u'100000007',             |
--
| properties  | {u'cpu_arch': u'x86_64', u'root_device': {u'serial':  |
|             | u'100000005'}, u'cpus': u'16', u'capabilities':       |
|             | u'profile:control,boot_option:local',            |
|             | u'memory_mb': u'65536', u'local_gb': u'3725'}         |
...
ここでは、ドライブ毎の block_devices パラメーターと各ドライブのシリアル番号一覧として複数のブロックデバイスが表示されています。root_device は現在、シリアル番号が 100000005 に設定されています。この例では、この root デバイスを、シリアル番号が 100000000 のディスクに設定します。その際、ノードの定義の root_device パラメーターを変更する必要があります。
$ ironic node-update 1a4e30da-b6dc-499d-ba87-0bd8a3819bc0 add properties/root_device='{"serial": "100000000"}'
これにより、director が root ディスクとして使用する特定のディスクを識別しやすくなります。オーバークラウドの作成の開始時には、director はこのノードをプロビジョニングして、オーバークラウドのイメージをこのディスクに書き込みます。