第 6 章 CLI ツールを使用した基本的なオーバークラウドの設定
6.2. ノードのハードウェアの検査
director は各ノードでイントロスペクションプロセスを実行することができます。このプロセスを実行
すると、各ノードが PXE を介してイントロスペクションエージェントを起動します。このエージェン トは、ノードからハードウェアのデータを収集して、director に送り返します。次に director は、
director 上で実行中の OpenStack Object Storage (swift) サービスにこのイントロスペクションデータを 保管します。director は、プロファイルのタグ付け、ベンチマーキング、ルートディスクの手動割り当 てなど、さまざまな目的でハードウェア情報を使用します。
注記 注記
ポリシーファイルを作成して、イントロスペクションの直後にノードをプロファイルに 自動でタグ付けすることも可能です。ポリシーファイルを作成してイントロスペクショ ンプロセスに組み入れる方法に関する詳しい情報は、「付録E プロファイルの自動タグ 付け」を参照してください。または、「プロファイルへのノードのタグ付け」に記載の 手順に従って、ノードをプロファイルに手動でタグ付けすることもできます。
以下のコマンドを実行して、各ノードのハードウェア属性を検証します。
(undercloud) $ openstack overcloud node introspect all-manageable --provide
--all-manageable オプションは、管理状態のノードのみをイントロスペクションします。
上記の例では、すべてのノードが対象です。
--provide オプションは、イントロスペクション後に全ノードを available の状態にしま す。
別のターミナルウィンドウで以下のコマンドを使用してイントロスペクションの進捗状況をモニタリン グします。
(undercloud) $ sudo journalctl -l -u openstack-ironic-inspector -u openstack-ironic-inspector-dnsmasq -u openstack-ironic-conductor -f
重要 重要
このプロセスが最後まで実行されて正常に終了したことを確認してください。ベアメタ ルの場合には、通常 15 分ほどかかります。
イントロスペクション完了後には、すべてのノードが available の状態に変わります。
ノードイントロスペクションの個別実行 ノードイントロスペクションの個別実行
available の状態のノードで個別にイントロスペクションを実行するには、ノードを管理モードに設 定して、イントロスペクションを実行します。
(undercloud) $ openstack baremetal node manage [NODE UUID]
(undercloud) $ openstack overcloud node introspect [NODE UUID] --provide イントロスペクションが完了すると、ノードは available の状態に変わります。
初回のイントロスペクション後のノードイントロスペクションの実行 初回のイントロスペクション後のノードイントロスペクションの実行
--provide オプションを指定したので、初回のイントロスペクションの後には、全ノードが
available の状態に入るはずです。初回のイントロスペクション後に全ノードにイントロスペクショ ンを実行するには、すべてのノードを manageable の状態にして、一括のイントロスペクションコマ ンドを実行します。
(undercloud) $ for node in $(openstack baremetal node list fields uuid -f value) ; do openstack baremetal node manage $node ; done
(undercloud) $ openstack overcloud node introspect all-manageable --provide
イントロスペクション完了後には、すべてのノードが available の状態に変わります。
ネットワークイントロスペクションの実行によるインターフェース情報の取得 ネットワークイントロスペクションの実行によるインターフェース情報の取得
ネットワークイントロスペクションにより、Link Layer Discovery Protocol (LLDP) データがネットワー クスイッチから取得されます。以下のコマンドにより、ノード上の全インターフェースに関する LLDP 情報のサブセット、または特定のノードおよびインターフェースに関するすべての情報が表示されま す。この情報は、トラブルシューティングに役立ちます。director では、デフォルトで LLDP データ収 集が有効になっています。
ノード上のインターフェースのリストを取得するには、以下のコマンドを実行します。
(undercloud) $ openstack baremetal introspection interface list [NODE UUID]
例:
(undercloud) $ openstack baremetal introspection interface list c89397b7-a326-41a0-907d-79f8b86c7cd9
+---+---+---+---+---+
| Interface | MAC Address | Switch Port VLAN IDs | Switch Chassis ID | Switch Port ID |
+---+---+---+---+---+
| p2p2 | 00:0a:f7:79:93:19 | [103, 102, 18, 20, 42] | 64:64:9b:31:12:00 | 510 |
| p2p1 | 00:0a:f7:79:93:18 | [101] | 64:64:9b:31:12:00 | 507 |
| em1 | c8:1f:66:c7:e8:2f | [162] | 08:81:f4:a6:b3:80 | 515 |
| em2 | c8:1f:66:c7:e8:30 | [182, 183] | 08:81:f4:a6:b3:80 | 559 |
+---+---+---+---+---+
インターフェースのデータおよびスイッチポートの情報を表示するには、以下のコマンドを実行しま す。
(undercloud) $ openstack baremetal introspection interface show [NODE UUID] [INTERFACE]
例:
(undercloud) $ openstack baremetal introspection interface show c89397b7-a326-41a0-907d-79f8b86c7cd9 p2p1
+---+--- ---+
| Field | Value
|
+---+--- ---+
| interface | p2p1
|
| mac | 00:0a:f7:79:93:18
|
| node_ident |
c89397b7-a326-41a0-907d-79f8b86c7cd9
|
| switch_capabilities_enabled | [u'Bridge', u'Router']
|
| switch_capabilities_support | [u'Bridge', u'Router']
|
| switch_chassis_id | 64:64:9b:31:12:00
|
| switch_port_autonegotiation_enabled | True
|
| switch_port_autonegotiation_support | True
|
| switch_port_description | ge-0/0/2.0
|
| switch_port_id | 507
|
| switch_port_link_aggregation_enabled | False
|
| switch_port_link_aggregation_id | 0
|
| switch_port_link_aggregation_support | True
|
| switch_port_management_vlan_id | None
|
| switch_port_mau_type | Unknown
|
| switch_port_mtu | 1514
|
| switch_port_physical_capabilities | [u'1000BASE-T fdx', u'100BASE-TX fdx', u'100BASE-TX hdx', u'10BASE-T fdx', u'10BASE-T hdx', u'Asym and Sym PAUSE fdx'] |
| switch_port_protocol_vlan_enabled | None
|
| switch_port_protocol_vlan_ids | None
|
| switch_port_protocol_vlan_support | None
|
| switch_port_untagged_vlan_id | 101
|
| switch_port_vlan_ids | [101]
|
| switch_port_vlans | [{u'name': u'RHOS13-PXE', u'id':
101}]
|
| switch_protocol_identities | None
|
| switch_system_name | rhos-compute-node-sw1
|
+---+--- ---+
ハードウェアイントロスペクション情報の取得 ハードウェアイントロスペクション情報の取得
Bare Metal サービスでは、ハードウェア検査時に追加のハードウェア情報を取得するためのパラメー
ター (inspection_extras) がデフォルトで有効になっています。これらのハードウェア情報を使って、
オーバークラウドを設定することができます。undercloud.conf ファイルの inspection_extras パラ メーターに関する詳細は、「director の設定」を参照してください。
たとえば、numa_topology コレクターは、このハードウェア inspection_extras の一部で、各 NUMA ノードに関する以下の情報が含まれます。
RAM (キロバイト単位)
物理 CPU コアおよびそのシブリングスレッド
NUMA ノードに関連付けられた NIC
この情報を取得するには、ベアメタルノードの UUID を指定して、openstack baremetal introspection data save _UUID_ | jq .numa_topology コマンドを実行します。
取得されるベアメタルノードの NUMA 情報の例を、以下に示します。
{
"cpus": [ {
"cpu": 1,
"thread_siblings": [ 1,
17 ],
"numa_node": 0 },
{
"cpu": 2,
"thread_siblings": [ 10,
26 ],
"numa_node": 1 },
{
"cpu": 0,
"thread_siblings": [ 0,
16 ],
"numa_node": 0 },
{
"cpu": 5,
"thread_siblings": [ 13,
29 ],
"numa_node": 1 },
{
"cpu": 7,
"thread_siblings": [ 15,
31 ],
"numa_node": 1 },
{
"cpu": 7,
"thread_siblings": [ 7,
23 ],
"numa_node": 0 },
{
"cpu": 1,
"thread_siblings": [ 9,
25 ],
"numa_node": 1 },
{
"cpu": 6,
"thread_siblings": [ 6,
22 ],
"numa_node": 0 },
{
"cpu": 3,
"thread_siblings": [ 11,
27 ],
"numa_node": 1 },
{
"cpu": 5,
"thread_siblings": [ 5,
21 ],
"numa_node": 0 },
{
"cpu": 4,
"thread_siblings": [ 12,
28 ],
"numa_node": 1 },
{
"cpu": 4,
"thread_siblings": [ 4,
20 ],
"numa_node": 0 },
{
"cpu": 0,
"thread_siblings": [ 8,
24 ],
"numa_node": 1 },
{
"cpu": 6,
"thread_siblings": [ 14,
30 ],
"numa_node": 1 },
{
"cpu": 3,
"thread_siblings": [ 3,
19 ],
"numa_node": 0 },
{
"cpu": 2,
"thread_siblings": [ 2,
18 ],
"numa_node": 0 }
],
"ram": [ {
"size_kb": 66980172, "numa_node": 0
}, {
"size_kb": 67108864, "numa_node": 1
} ],
"nics": [ {
"name": "ens3f1", "numa_node": 1 },
{
"name": "ens3f0",
"numa_node": 1 },
{
"name": "ens2f0", "numa_node": 0 },
{
"name": "ens2f1", "numa_node": 0 },
{
"name": "ens1f1", "numa_node": 0 },
{
"name": "ens1f0", "numa_node": 0 },
{
"name": "eno4", "numa_node": 0 },
{
"name": "eno1", "numa_node": 0 },
{
"name": "eno3", "numa_node": 0 },
{
"name": "eno2", "numa_node": 0 }
] }