目次
全編目次
- 概要
- 必須編
- part01 - Environment
- part02 - Security
- part03 - Host networking
- part04 - Network Time Protocol (NTP)
- part05 - OpenStack packages
- part06 - SQL database
- part07 - Message queue
- part08 - Memcached
- part09 - Etcd
- part10 - Install OpenStack services
- part11 - Identity service (Keystone)
- part12 - Image service (Glance)
- part13 - Placement service (Placement)
- part14 - Compute service (Nova) - controller node
- part15 - Compute service (Nova) - compute node
- part16 - Networking service (Neutron) - controller node
- part17 - Networking service (Neutron) - compute node
- part18 - Launch an instance - Network Option 1
- part19 - Dashboard (Horizon)
- 応用編
- part20 - Networking service (Neutron) - controller node
- part21 - Networking service (Neutron) - compute node
- part22 - Launch an instance - Network Option 2
- part23 - Block Storage service (Cinder) - LVM backend
- part24 - Block Storage service (Cinder) - NFS backend
- part25 - Launch an instance - Block Storage ◀here now
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から見たところ以下の構成となる。
- /dev/vda・・・インスタンスの中から見たらシステムディスクに相当する。インスタンス起動時にコンピュートノードのリソースから割り当てられる。インスタンス削除後に削除される。
- /dev/vdb・・・インスタンスの中から見たら追加のディスクに相当する。インスタンス削除後も維持できる。
. 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/メモリを
提供している。つまり、コンピュートノードのストレージが不要になる。ストレージノードへのストレージの一元化は設計・実装・運用いずれにおいてもメリットが大きい。