第4章 デプロイ後の Bare Metal サービスの設定
本項では、デプロイ後のオーバークラウドの設定に必要な手順について説明します。
4.1. OpenStack Networking の設定 リンクのコピーリンクがクリップボードにコピーされました!
DHCP、PXE ブート、およびその他の必要な場合に OpenStack Networking が Bare Metal サービスと通信するように設定します。ベアメタルネットワークを設定するには、2 とおりの方法があります。
- Ironic Conductor サービス用にフラットなベアメタルネットワークを使用する。このネットワークは、コントロールプレーンネットワーク上の Ironic サービスにルーティングする必要があります。
- カスタムのコンポーザブルネットワークを使用して、オーバークラウドに Ironic サービスを実装する。
本項の手順に従って、ベアメタルマシンのプロビジョニングに使用する単一のフラットなネットワーク向けに OpenStack Networking を設定するか、あるいは未使用の分離ネットワークまたはフラットネットワークに依存しない新たなコンポーザブルネットワークを設定します。この設定では、ML2 プラグインと Open vSwitch エージェントを使用します。
以下の手順に記載するすべてのステップを、OpenStack Networking サービスをホストするサーバーに root ユーザーとしてログインして実行します。
4.1.1. OpenStack Networking がフラットなベアメタルネットワーク上の Bare Metal サービスと通信するための設定 リンクのコピーリンクがクリップボードにコピーされました!
Identity に管理ユーザーとしてアクセスするためのシェルを設定します。
source ~/overcloudrc
$ source ~/overcloudrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ベアメタルインスタンスをプロビジョニングするためのフラットなネットワークを作成します。
openstack network create \ --provider-network-type flat \ --provider-physical-network baremetal \ --share NETWORK_NAME
$ openstack network create \ --provider-network-type flat \ --provider-physical-network baremetal \ --share NETWORK_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NETWORK_NAME は、このネットワークの名前に置き換えます。ノードのクリーニングを実行する際に誤って再構成を行わないようにするには、この値を
provisioning
に設定します。仮想ネットワークの実装先となる物理ネットワークの名前 (この場合はbaremetal
) は、以前の手順で~/templates/network-environment.yaml
にNeutronBridgeMappings
パラメーターで設定されています。フラットネットワーク上にサブネットを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。
- SUBNET_NAME は、サブネットの名前に置き換えます。
- NETWORK_NAME は、以前のステップで作成済みのプロビジョニングネットワークの名前に置き換えます。
- NETWORK_CIDR は、サブネットが示す IP アドレスブロックの Classless Inter-Domain Routing (CIDR) 表記に置き換えます。START_IP で始まり END_IP で終る範囲で指定する IP アドレスブロックは、NETWORK_CIDR で指定されている IP アドレスブロックの範囲内に入る必要があります。
- GATEWAY_IP は、新しいサブネットのゲートウェイとして機能するルーターインターフェースの IP アドレスまたはホスト名に置き換えます。このアドレスは、NETWORK_CIDR で指定されている IP アドレスブロック内で、かつ START_IP で始まり END_IP で終わる範囲で指定されている IP アドレスブロック外である必要があります。
- START_IP は、Floating IP アドレスを確保する新規サブネット内の IP アドレス範囲の開始アドレスを示す IP アドレスに置き換えます。
- END_IP は、Floating IP アドレスを確保する新規サブネット内の IP アドレス範囲の終了アドレスを示す IP アドレスに置き換えます。
ネットワークとサブネット用のルーターを作成して、OpenStack Networking サービスがメタデータ要求に応答するようにします。
openstack router create ROUTER_NAME
$ openstack router create ROUTER_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ROUTER_NAME
は、ルーターの名前に置き換えます。ネットワークを新しいルーターに接続します。
openstack router add network ROUTER_NAME NETWORK
$ openstack router add network ROUTER_NAME NETWORK
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ROUTER_NAME をルーターの名前に、NETWORK を以前のステップで作成したネットワークの ID または名前に、それぞれ置き換えます。
サブネットを新しいルーターに接続します。
openstack router add subnet ROUTER_NAME BAREMETAL_SUBNET
$ openstack router add subnet ROUTER_NAME BAREMETAL_SUBNET
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ROUTER_NAME をルーターの名前に、BAREMETAL_SUBNET を以前のステップで作成したサブネットの ID または名前に、それぞれ置き換えます。これにより、
cloud-init
からのメタデータ要求に対応すると共に、ノードを設定することができます。
4.1.2. OpenStack Networking がカスタムコンポーザブルベアメタルネットワーク上の Bare Metal サービスと通信するための設定 リンクのコピーリンクがクリップボードにコピーされました!
デプロイメント中に作成する
OcProvisioning
ネットワークと一致する VLAN ID で、VLAN ネットワークを作成します。クリーニングネットワークのデフォルト名と一致するように、新しいネットワークの名前をprovisioning
と設定します。openstack network create \ --share \ --provider-network-type vlan \ --provider-physical-network datacentre \ --provider-segment 205 provisioning
(overcloud) [stack@host01 ~]$ openstack network create \ --share \ --provider-network-type vlan \ --provider-physical-network datacentre \ --provider-segment 205 provisioning
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オーバークラウドネットワークの名前が
provisioning
ではない場合には、コントローラーにログオンし、以下のコマンドを実行して名前を変更し、ネットワークを再起動します。heat-admin@overcloud-controller-0 ~]$ sudo vi /var/lib/config-data/puppet-generated/ironic/etc/ironic/ironic.conf
heat-admin@overcloud-controller-0 ~]$ sudo vi /var/lib/config-data/puppet-generated/ironic/etc/ironic/ironic.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow heat-admin@overcloud-controller-0 ~]$ sudo docker restart ironic_conductor
heat-admin@overcloud-controller-0 ~]$ sudo docker restart ironic_conductor
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2. ノードのクリーニングの設定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、Bare Metal サービスは、ノードのクリーニングに provisioning
という名前のネットワークを使用するように設定されます。ただし、OpenStack Networking ではネットワーク名は一意ではないので、テナントが同じ名前を使用してネットワークを作成して Bare Metal サービスとの競合が発生する可能性があります。このため、ネットワーク名の代わりにネットワークの UUID を使用することを推奨します。
Bare Metal サービスを実行しているコントローラー上のプロバイダーネットワークの UUID を指定して、クリーニングを設定します。
~/templates/ironic.yaml
parameter_defaults: IronicCleaningNetwork: UUID
parameter_defaults: IronicCleaningNetwork: UUID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow UUID は、以前のステップで作成されたベアメタルネットワークの UUID に置き換えます。
UUID は、
openstack network show
で確認することができます。openstack network show NETWORK_NAME -f value -c id
openstack network show NETWORK_NAME -f value -c id
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ネットワークの UUID は、オーバークラウドの初回のデプロイメントが完了するまで利用できないので、この設定はデプロイ後に実行する必要があります。
-
「オーバークラウドのデプロイ」の説明に従って
openstack overcloud deploy
コマンドを実行し、オーバークラウドを再デプロイして変更を適用します。openstack overcloud deploy
コマンドでオーバークラウドを再デプロイすると、手動で加えていた変更はすべて元に戻るので、openstack overcloud deploy
を次回使用する前には、(前のステップで説明した) クリーニングの設定を~/templates/ironic.yaml
に必ず追加してください。 director を使用せずに、手動で変更を適用することも可能です。クリーニングネットワークを設定します。
crudini --set /var/lib/config-data/puppet-generated/ironic/etc/ironic/ironic.conf neutron cleaning_network
crudini --set /var/lib/config-data/puppet-generated/ironic/etc/ironic/ironic.conf neutron cleaning_network
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Bare Metal Provisioning サービスを再起動します。
docker restart ironic_conductor
# docker restart ironic_conductor
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.1. 手動によるノードのクリーニング リンクのコピーリンクがクリップボードにコピーされました!
ノードのクリーニングを手動で開始するには、そのノードが manageable
の状態である必要があります。
ノードのクリーニングには 2 つのモードがあります。
メタデータのみのクリーニング: 対象のノード上の全ディスクからパーティションを削除します。この方法は、より高速なクリーンサイクルですが、パーティションテーブルのみが削除されるので、セキュリティーレベルはより低くなります。このモードは、信頼済みのテナント環境でのみ使用してください。
完全なクリーニング: ATA のセキュア消去を使用するか、細断処理を行って、全ディスクから全データを削除します。処理の完了まで数時間かかる場合があります。
metadata
のクリーニングを開始するには、以下のコマンドを実行します。
openstack baremetal node clean _UUID_ \ --clean-steps '[{"interface": "deploy", "step": "erase_devices_metadata"}]'
$ openstack baremetal node clean _UUID_ \
--clean-steps '[{"interface": "deploy", "step": "erase_devices_metadata"}]'
full
クリーニングを開始するには、以下のコマンドを実行します。
openstack baremetal node clean _UUID_ \ --clean-steps '[{"interface": "deploy", "step": "erase_devices"}]'
$ openstack baremetal node clean _UUID_ \
--clean-steps '[{"interface": "deploy", "step": "erase_devices"}]'
UUID は、クリーニングするノードの UUID に置き換えてください。
クリーニングが正常に完了すると、ノードの状態は manageable
に戻ります。状態が clean failed
の場合には、last_error
のフィールドで失敗の原因を確認してください。
4.3. ベアメタルフレーバーの作成 リンクのコピーリンクがクリップボードにコピーされました!
デプロイメントの一部として使用するフレーバーを作成する必要があります。このフレーバーの仕様 (メモリー、CPU、ディスク) はベアメタルノードが提供する仕様以下である必要があります。
Identity に管理ユーザーとしてアクセスするためのシェルを設定します。
source ~/overcloudrc
$ source ~/overcloudrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 既存のフレーバーを一覧表示します。
openstack flavor list
$ openstack flavor list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Bare Metal サービス向けに新規フレーバーを作成します。
openstack flavor create \ --id auto --ram RAM \ --vcpus VCPU --disk DISK \ --property baremetal=true \ --public baremetal
$ openstack flavor create \ --id auto --ram RAM \ --vcpus VCPU --disk DISK \ --property baremetal=true \ --public baremetal
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RAM
はメモリー量、VCPU
は仮想 CPU 数、DISK
はディスクストレージの値に置き換えます。baremetal
プロパティーは、ベアメタルを仮想インスタンスと区別するために使用されます。指定したそれぞれの値を使用して新規フレーバーが作成されたことを確認します。
openstack flavor list
$ openstack flavor list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4. ベアメタルイメージの作成 リンクのコピーリンクがクリップボードにコピーされました!
デプロイメントには 2 セットのイメージが必要です。
-
デプロイイメージ は、Bare Metal サービスがベアメタルノードをブートしてユーザーイメージをベアメタルノードにコピーするのに使用されます。デプロイイメージは、
カーネル
イメージとramdisk
イメージで構成されます。 ユーザーイメージ は、ベアメタルノードにデプロイされるイメージです。ユーザーイメージにも
カーネル
イメージとramdisk
イメージが含まれますが、追加でメイン
イメージも含まれます。メインイメージは、ルートパーティションイメージまたは完全なディスクイメージのいずれかです。- 完全なディスクイメージ は、パーティションテーブルとブートローダーを含むイメージです。完全なディスクイメージを使用してデプロイされたノードはローカルブートをサポートするので、Bare Metal サービスはデプロイ後のノードのリブートは制御しません。
- ルートパーティションイメージ には、オペレーティングシステムのルートパーティションのみが含まれています。ルートパーティションを使用する場合には、デプロイイメージが Image サービスに読み込まれた後に、ノードのプロパティーにデプロイイメージをノードのブートイメージとして設定することができます。デプロイ後のノードのリブートでは、netboot を使用してユーザーイメージがプルダウンされます。
本項に記載する例では、ルートパーティションイメージを使用してベアメタルノードをプロビジョニングします。
4.4.1. デプロイイメージの準備 リンクのコピーリンクがクリップボードにコピーされました!
デプロイイメージを作成する必要はありません。アンダークラウドによるオーバークラウドのデプロイ時に、すでにデプロイイメージが使用されているためです。デプロイイメージは、以下に示したように、kernel イメージと ramdisk イメージの 2 つのイメージで構成されます。
/tftpboot/agent.kernel /tftpboot/agent.ramdisk
/tftpboot/agent.kernel
/tftpboot/agent.ramdisk
これらのイメージは、削除したり他の場所でアンパックしたりしていない限りは、多くの場合、ホームディレクトリーにあります。ホームディレクトリーにない場合でも、rhosp-director-images-ipa
パッケージがインストールされているので、これらのイメージは /usr/share/rhosp-director-images/ironic-python-agent*.tar
ファイル内にあります。
イメージを抽出して Image サービスにアップロードします。
4.4.2. ユーザーイメージの準備 リンクのコピーリンクがクリップボードにコピーされました!
最後に必要となるイメージは、ベアメタルノードにデプロイされるユーザーイメージです。ユーザーイメージには、カーネルイメージと ramdisk イメージに加えて、メインイメージが含まれます。これらのパッケージをダウンロードしてインストールするには、まずご自分の要件に合わせて完全なディスクイメージの環境変数を設定する必要があります。
4.4.2.1. ディスクイメージの環境変数 リンクのコピーリンクがクリップボードにコピーされました!
ディスクイメージのビルドプロセスとして、director にはベースイメージと、新規オーバークラウドイメージのパッケージを取得するための登録情報が必要です。これらは、Linux の環境変数を使用して定義します。
イメージのビルドプロセスにより、イメージは一時的に Red Hat サブスクリプションに登録され、システムがイメージのビルドプロセスを完了すると登録を解除します。
ディスクイメージをビルドするには、Linux の環境変数をお使いの環境と要件に応じて設定します。
- DIB_LOCAL_IMAGE
- ベースに使用するローカルイメージを設定します。
- REG_ACTIVATION_KEY
- 登録プロセスの一部で代わりにアクティベーションキーを使用します。
- REG_AUTO_ATTACH
- 最も互換性のあるサブスクリプションを自動的にアタッチするかどうかを定義します。
- REG_BASE_URL
-
パッケージをプルするためのコンテンツ配信サーバーのベース URL。カスタマーポータル Subscription Management のデフォルトプロセスでは
https://cdn.redhat.com
を使用します。Red Hat Satellite 6 サーバーを使用している場合は、このパラメーターにお使いの Satellite サーバーのベース URL を使用する必要があります。 - REG_ENVIRONMENT
- 組織内の環境に登録します。
- REG_METHOD
-
登録の方法を設定します。Red Hat カスタマーポータルに登録するには
portal
を使用します。Red Hat Satellite 6 で登録するには、satellite
を使用します。 - REG_ORG
- イメージを登録する組織
- REG_POOL_ID
- 製品のサブスクリプション情報のプール ID
- REG_PASSWORD
- イメージを登録するユーザーアカウントのパスワードを指定します。
- REG_REPOS
-
コンマ区切りのリポジトリー名の文字列 (空白なし)。この文字列の各リポジトリーは
subscription-manager
で有効にされます。 - REG_SAT_URL
- オーバークラウドノードを登録する Satellite サーバーのベース URL。このパラメーターには、HTTPS URL ではなく、Satellite の HTTP URL を使用します。たとえば、https://satellite.example.com ではなく http://satellite.example.com を使用します。
- REG_SERVER_URL
-
使用するサブスクリプションサービスのホスト名を指定します。Red Hat カスタマーポータルの場合のデフォルトは
subscription.rhn.redhat.com
です。Red Hat Satellite 6 サーバーを使用する場合は、このパラメーターにお使いの Satellite サーバーのホスト名を使用する必要があります。 - REG_USER
- イメージを登録するアカウントのユーザー名を指定します。
4.4.3. ユーザーイメージのインストール リンクのコピーリンクがクリップボードにコピーされました!
- カスタマーポータル (ログインが必要) から Red Hat Enterprise Linux KVM ゲストイメージをダウンロードします。
DIB_LOCAL_IMAGE をダウンロードしたイメージとして定義します。
export DIB_LOCAL_IMAGE=rhel-server-7.4-x86_64-kvm.qcow2
$ export DIB_LOCAL_IMAGE=rhel-server-7.4-x86_64-kvm.qcow2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 登録情報を設定します。Red Hat カスタマーポータルを使用する場合には、以下の情報を設定する必要があります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Satellite を使用する場合には、以下の情報を設定する必要があります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オフラインのリポジトリーがある場合には、DIB_YUM_REPO_CONF をローカルリポジトリーの設定として定義することができます。
export DIB_YUM_REPO_CONF=<path-to-local-repository-config-file>
$ export DIB_YUM_REPO_CONF=<path-to-local-repository-config-file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow diskimage-builder
ツールを使用してユーザーイメージを作成します。disk-image-create rhel7 baremetal -o rhel-image
$ disk-image-create rhel7 baremetal -o rhel-image
Copy to Clipboard Copied! Toggle word wrap Toggle overflow これで kernel は
rhel-image.vmlinuz
として、初期 ramdisk はrhel-image.initrd
として抽出されます。イメージを Image サービスにアップロードします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.5. ベアメタルノードとしての物理マシンの追加 リンクのコピーリンクがクリップボードにコピーされました!
ベアメタルノードの登録には 2 つの方法があります。
- ノードの詳細情報を記載したインベントリーファイルを作成し、そのファイルを Bare Metal サービスにインポートしてからノードを利用できるようにします。
- 物理マシンをベアメタルノードとして登録してから、手動でハードウェア情報を追加し、各イーサネットの MAC アドレス用にポートを作成します。これらの手順は、overcloudrc ファイルが配置されている任意のノードで実行できます。
本項では、両方の方法について詳しく説明します。
物理マシンの登録後、新規リソースは Compute に直ぐには通知されません。これは、Compute のリソーストラッカーが定期的にしか同期していないためです。次の定期タスクが実行されると、変更が認識されるようになります。この値 scheduler_driver_task_period
は、/etc/nova/nova.conf で更新することができます。デフォルトの間隔は 60 秒です。
4.5.1. インベントリーファイルを使用したベアメタルノードの登録 リンクのコピーリンクがクリップボードにコピーされました!
ノードの詳細情報を記載したファイル
overcloud-nodes.yaml
を作成します。1 つのファイルで複数のノードを登録することが可能です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。
-
<IPMI_IP>
は、Bare Metal コントローラーのアドレスに置き換えます。 -
<USER>
は、ユーザー名に置き換えます。 -
<PASSWORD>
は、パスワードに置き換えます。 -
<CPU_COUNT>
は、CPU の数に置き換えます。 -
<CPU_ARCHITECTURE>
は、CPU のアーキテクチャー種別に置き換えます。 -
<MEMORY>
は、メモリー容量 (MiB 単位) に置き換えます。 -
<ROOT_DISK>
は、ルートディスクの容量 (GiB 単位) に置き換えます。 <PXE_NIC_MAC>
は、PXE ブートで使用する NIC の MAC アドレスに置き換えます。マシンに複数のディスクがある場合に、含める必要があるのは
root_device
のみです。<SERIAL>
は、デプロイメントに使用するディスクのシリアル番号に置き換えます。
-
Identity を管理ユーザーとして使用するためのシェルを設定します。
source ~/overcloudrc
$ source ~/overcloudrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを ironic にインポートします。
openstack baremetal create overcloud-nodes.yaml
$ openstack baremetal create overcloud-nodes.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
これで、ノードは
enroll
の状態となります。 各ノードでデプロイカーネルとデプロイ ramdisk を指定します。
openstack baremetal node set NODE_UUID \ --driver-info deploy_kernel=KERNEL_UUID \ --driver-info deploy_ramdisk=INITRAMFS_UUID
$ openstack baremetal node set NODE_UUID \ --driver-info deploy_kernel=KERNEL_UUID \ --driver-info deploy_ramdisk=INITRAMFS_UUID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。
- NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。
KERNEL_UUID は、Image サービスにアップロードした カーネル デプロイイメージの一意識別子に置き換えます。この値は以下のコマンドで確認します。
openstack image show bm-deploy-kernel -f value -c id
$ openstack image show bm-deploy-kernel -f value -c id
Copy to Clipboard Copied! Toggle word wrap Toggle overflow INITRAMFS_UUID は、Image サービスにアップロードした ramdisk イメージの一意識別子に置き換えます。この値は以下のコマンドで確認します。
openstack image show bm-deploy-ramdisk -f value -c id
$ openstack image show bm-deploy-ramdisk -f value -c id
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ノードのプロビジョニング状態を
available
に設定します。openstack baremetal node manage NODE_UUID openstack baremetal node provide NODE_UUID
$ openstack baremetal node manage NODE_UUID $ openstack baremetal node provide NODE_UUID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードのクリーニングを有効にしている場合には、Bare Metal サービスがノードをクリーニングします。
ノードにローカルブートオプションを設定します。
openstack baremetal node set _NODE_UUID_ --property capabilities="boot_option:local"
$ openstack baremetal node set _NODE_UUID_ --property capabilities="boot_option:local"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードが正常に登録されたことを確認します。
openstack baremetal node list
$ openstack baremetal node list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードを登録した後にその状態が表示されるまで時間がかかる場合があります。
4.5.2. ベアメタルノードの手動登録 リンクのコピーリンクがクリップボードにコピーされました!
Identity を管理ユーザーとして使用するためのシェルを設定します。
source ~/overcloudrc
$ source ~/overcloudrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいノードを追加します。
openstack baremetal node create --driver pxe_ipmitool --name NAME
$ openstack baremetal node create --driver pxe_ipmitool --name NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードを作成するには、ドライバー名を指定する必要があります。この例では
pxe_impitool
を使用しています。異なるドライバーを使用するには、IronicEnabledDrivers
パラメーターを設定してそのドライバーを有効化する必要があります。サポートされているドライバーについての詳しい情報は、「付録A Bare Metal のドライバー」を参照してください。重要ノードの一意識別子を書き留めておきます。
ノードのドライバーの情報を更新して、Bare Metal サービスがノードを管理できるようにします。
openstack baremetal node set NODE_UUID \ --driver_info PROPERTY=VALUE \ --driver_info PROPERTY=VALUE
$ openstack baremetal node set NODE_UUID \ --driver_info PROPERTY=VALUE \ --driver_info PROPERTY=VALUE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。
- NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。
- PROPERTY は、ironic driver-properties コマンドで返された必要なプロパティーに置き換えます。
- VALUE は、プロパティーの有効な値に置き換えます。
ノードドライバーのデプロイカーネルとデプロイ ramdisk を指定します。
openstack baremetal node set NODE_UUID \ --driver-info deploy_kernel=KERNEL_UUID \ --driver-info deploy_ramdisk=INITRAMFS_UUID
$ openstack baremetal node set NODE_UUID \ --driver-info deploy_kernel=KERNEL_UUID \ --driver-info deploy_ramdisk=INITRAMFS_UUID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。
- NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。
- KERNEL_UUID は、Image サービスにアップロードされた .kernel イメージの一意識別子に置き換えます。
- INITRAMFS_UUID は、Image サービスにアップロードされた .initramfs イメージの一意識別子に置き換えます。
ノードのプロパティーを更新して、ノード上のハードウェアの仕様と一致するようにします。
openstack baremetal node set NODE_UUID \ --property cpus=CPU \ --property memory_mb=RAM_MB \ --property local_gb=DISK_GB \ --property cpu_arch=ARCH
$ openstack baremetal node set NODE_UUID \ --property cpus=CPU \ --property memory_mb=RAM_MB \ --property local_gb=DISK_GB \ --property cpu_arch=ARCH
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。
- NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。
- CPU は、CPU の数に置き換えます。
- RAM_MB は、メモリー (MB 単位) に置き換えます。
- DISK_GB は、ディスク容量 (GB 単位) に置き換えます。
- ARCH は、アーキテクチャー種別に置き換えます。
オプション: 初回のデプロイの後には、
ironic-conductor
から PXE を使用する代わりに、ノードのディスクにインストールされたローカルのブートローダーからリブートするようにノードを設定します。ノードのプロビジョニングに使用するフレーバーでも、ローカルブートの機能を設定する必要があります。ローカルブートを有効にするには、ノードのデプロイに使用するイメージに grub2 が含まれている必要があります。ローカルブートを以下のように設定します。openstack baremetal node set NODE_UUID \ --property capabilities="boot_option:local"
$ openstack baremetal node set NODE_UUID \ --property capabilities="boot_option:local"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。
プロビジョニングネットワーク上の NIC の MAC アドレスを使用してポートを作成することにより、Bare Metal サービスにノードのネットワークカードを通知します。
openstack baremetal port create --node NODE_UUID MAC_ADDRESS
$ openstack baremetal port create --node NODE_UUID MAC_ADDRESS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NODE_UUID は、ノードの一意識別子に置き換えます。MAC_ADDRESS は、PXE ブートに使用する NIC の MAC アドレスに置き換えます。
複数のディスクがある場合には、ルートデバイスのヒントを設定してください。これにより、デプロイメントに使用すべきディスクがデプロイ ramdisk に通知されます。
openstack baremetal node set NODE_UUID \ --property root_device={"PROPERTY": "VALUE"}
$ openstack baremetal node set NODE_UUID \ --property root_device={"PROPERTY": "VALUE"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値に置き換えてください。
- NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。
PROPERTY と VALUE は、デプロイメントに使用するディスクの情報に置き換えます (例:
root_device='{"size": 128}'
)。以下のプロパティーがサポートされています。
-
model
(文字列): デバイスの ID -
vendor
(文字列): デバイスのベンダー -
serial
(文字列): ディスクのシリアル番号 -
hctl
(文字列): SCSI のホスト、チャンネル、ターゲット、Lun -
size
(整数): デバイスのサイズ (GB 単位) -
wwn
(文字列): 一意のストレージ ID -
wwn_with_extension
(文字列): ベンダー拡張子を追加した一意のストレージ ID -
wwn_vendor_extension
(文字列): 一意のベンダーストレージ ID -
rotational
(ブール値): ディスクを用いるデバイス (HDD) の場合は true、それ以外 (SSD) の場合は false。 name
: デバイス名 (例: /dev/sdb1)。これは、永続デバイス名が付いたデバイスのみに使用してください。注記複数のプロパティーを指定する場合には、デバイスはそれらの全プロパティーと一致する必要があります。
-
ノードの設定を検証します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。上記のコマンドの出力には、各インターフェースが
True
またはNone
のいずれかと報告されるはずです。None
とマークされたインターフェースは、設定していないか、ドライバーがサポートしていないインターフェースです。注記「ramdisk」、「kernel」、および「image_source」のパラメーターが指定されていないと、インターフェースの検証に失敗する場合があります。Compute サービスは、デプロイメントプロセスの最初に未指定のパラメーターを設定するので、この結果は問題ありません。
4.6. ホストアグリゲートを使用した物理マシンと仮想マシンのプロビジョニングの分離 リンクのコピーリンクがクリップボードにコピーされました!
OpenStack Compute は、ホストアグリゲートを使用してアベイラビリティーゾーンをパーティション分割し、特定の共有プロパティーが指定されたノードをグループ化します。インスタンスがプロビジョニングされると、Compute のスケジューラーがフレーバーのプロパティーをホストアグリゲートに割り当てられたプロパティーと比較して、インスタンスが正しいアグリゲート内の正しいホストに (物理マシン上または仮想マシンとして) プロビジョニングされたことを確認します。
以下の手順は、次の作業の方法を説明します。
-
baremetal
プロパティーをフレーバーに追加して、true
またはfalse
に設定する。 -
一致する
baremetal
プロパティーを設定して、ベアメタルホスト用とコンピュートノード用のホストアグリゲートを別々に作成する。1 つのアグリゲートでグループ化されたノードは、このプロパティーを継承します。
ホストアグリゲートの作成
ベアメタル用のフレーバーで
baremetal
プロパティーをtrue
に設定します。openstack flavor set baremetal --property baremetal=true
$ openstack flavor set baremetal --property baremetal=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 仮想インスタンスに使用するフレーバーで
baremetal
プロパティーをfalse
に設定します。openstack flavor set FLAVOR_NAME --property baremetal=false
$ openstack flavor set FLAVOR_NAME --property baremetal=false
Copy to Clipboard Copied! Toggle word wrap Toggle overflow baremetal-hosts
という名前のホストアグリゲートを作成します。openstack aggregate create --property baremetal=true baremetal-hosts
$ openstack aggregate create --property baremetal=true baremetal-hosts
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 各コントローラーノードを
baremetal-hosts
アグリゲートに追加します。openstack aggregate add host baremetal-hosts HOSTNAME
$ openstack aggregate add host baremetal-hosts HOSTNAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記NovaIronic
サービスでコンポーザブルロールを作成していた場合には、このサービスがあるノードをすべてbaremetal-hosts
アグリゲートに追加します。デフォルトでは、NovaIronic
サービスがあるのはコントローラーノードのみです。virtual-hosts
という名前のホストアグリゲートを作成します。openstack aggregate create --property baremetal=false virtual-hosts
$ openstack aggregate create --property baremetal=false virtual-hosts
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 各コンピュートノードを
virtual-hosts
アグリゲートに追加します。openstack aggregate add host virtual-hosts HOSTNAME
$ openstack aggregate add host virtual-hosts HOSTNAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オーバークラウドのデプロイ時に以下の Compute フィルタースケジューラーを追加していなかった場合には、この時点で /etc/nova/nova.conf の
scheduler_default_filters
セクションの既存リストに追加します。AggregateInstanceExtraSpecsFilter
AggregateInstanceExtraSpecsFilter
Copy to Clipboard Copied! Toggle word wrap Toggle overflow