なにかの技術メモ置き場

なにかの技術メモ置き場

@インフラエンジニア

OpenStack環境構築 part25

Launch an instance

Block Storage

Create a volume
. test-openrc
openstack volume create --size 1 volume1
openstack volume list
Attach the volume to an instance
openstack server add volume centos8_cloud-01 volume1
openstack volume list

インスタンスにログイン後、以下を実施する。

sudo fdisk -l

その他のオペレーション

例1 - ブート不可のボリューム追加しインスタンス作成後に割り当てる

インスタンスのOSから見たところ以下の構成となる。

. test-openrc

ボリュームを作成する。

openstack volume create --size 10 disk01
openstack volume list

ボリュームをインスタンスに割り当てる。

openstack server add volume centos8_cloud-01 disk01
openstack volume list

ボリュームをインスタンスから切り離す。

openstack server remove volume centos8_cloud-01 disk01
openstack volume list

ボリュームを削除する。

openstack volume delete disk01
openstack volume list

例2 - ブート不可のボリュームを追加しインスタンス作成時に割り当てる

ボリュームを予め作成しておく。

openstack volume create --size 10 disk01
openstack volume list

インスタンスを作成する。「--block-device-mapping」オプションで同時にボリュームを割り当てる。

openstack server create \
--flavor m1.small \
--image centos8_cloud \
--nic net-id=$(openstack network list | grep provider | awk '{ print $2 }') \
--security-group secgroup01 \
--key-name mykey \
--block-device-mapping blockdevice=<ボリュームdisk01のID>:volume:30:false \
centos8_cloud-01

例3 - ブート可能のボリュームを作成しインスタンスを起動する

インスタンスのOSから見たところ以下の構成となる。

  • /dev/vda・・・インスタンスの中から見たらシステムディスクに相当する。インスタンス起動時にストレージノードのリソースから割り当てられる。インスタンス削除後も維持できる。既存の概念で言うとSANブートするようなものかと。

イメージからブート可能なボリュームを作成する。

openstack volume create --image centos8_cloud --size 10 centos8_cloud-01_boot
openstack volume list

インスタンスを作成する。イメージからの起動(--image)ではなくボリュームからの起動(--volume)に変えている。ちなみにこの2オプションは排他。

openstack server create \
--flavor m1.small \
--volume centos8_cloud-01_boot \
--nic net-id=$(openstack network list | grep provider | awk '{ print $2 }') \
--security-group secgroup01 \
--key-name mykey \
centos8_cloud-01

なんのためにこんなことをしているのか。

今までは、

  • Glanceがイメージを
  • NovaがCPU/メモリ/ストレージを

提供していたが、このケースでは、

  • Cinderがイメージを展開済みのストレージを
  • NovaがCPU/メモリを

提供している。つまり、コンピュートノードのストレージが不要になる。ストレージノードへのストレージの一元化は設計・実装・運用いずれにおいてもメリットが大きい。