今回は、Nova インスタンスと Glance イメージで使用するディスクを追加します。
ただし、今回のディスク構成は、私の VirtualBox での OpenStack 特有のものです。
後から共有ディスクを追加したくなって設定しました・・・
これまでの話はこちら。
Oracle OpenStack を VirtualBox に構築。その1
Oracle OpenStack を VirtualBox に構築。その2
Oracle OpenStack を VirtualBox に構築。その3
Oracle OpenStack を VirtualBox に構築。その4
あらかじめ Control Node の VM に追加しておいた仮想ディスクを利用可能にします。
あつかうディスクは、2つです。
- 仮想ディスク #2 20 GB → Glance イメージ配置用。
- 仮想ディスク #3 30 GB → Nova インスタンス配置用。
ディスクのボリューム / ファイルシステム作成 ~ Glance イメージ用の領域準備。
追加ディスクは /dev/sdb と、/dev/sdc として認識されています。
[root@osctl01 ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc
今回は LVM を使用します。
まずは、Physical Volume ~ Volume Group ~ Logical Volume を作成します。
まずは、Glance 用の領域の Logical Volume 作成。
[root@osctl01 ~]# vgcreate vg01 /dev/sdb
Physical volume "/dev/sdb" successfully created
Volume group "vg01" successfully created
[root@osctl01 ~]# lvcreate -n lv_glance01 -l 100%FREE vg01
Logical volume "lv_glance01" created.
そして、Nova 用の領域の Logical Volume 作成。
[root@osctl01 ~]# vgcreate vg02 /dev/sdc
Physical volume "/dev/sdc" successfully created
Volume group "vg02" successfully created
[root@osctl01 ~]# lvcreate -n lv_nova01 -l 100%FREE vg02
Logical volume "lv_nova01" created.
Logical Volume が作成されました。
[root@osctl01 ~]# lvdisplay vg01 vg02 | grep Path
LV Path /dev/vg01/lv_glance01
LV Path /dev/vg02/lv_nova01
それぞれ、ext4 ファイルシステムでフォーマットします。
[root@osctl01 ~]# mkfs -t ext4 /dev/vg01/lv_glance01
[root@osctl01 ~]# mkfs -t ext4 /dev/vg02/lv_nova01
そして、それぞれ /var/lib/glance/images と /nfs にマウントしておきます。
今回、/var/lib/glance/images はすでに packstack により作成されています。
/nfs は、自分で作成しておきます。
[root@osctl01 ~]# mkdir /nfs
/etc/fstab ファイルの末尾に、vi などで下記のように追記しておきます。
[root@osctl01 ~]# vi /etc/fstab
/etc/fstab の追記内容は下記の 2行です。
/dev/vg01/lv_glance01 /var/lib/glance/images ext4 defaults 0 0
/dev/vg02/lv_nova01 /nfs ext4 defaults 0 0
OpenStack のサービスを停止してしまいます。
[root@osctl01 ~]# openstack-service stop
neutron-dhcp-agent を停止中: [ OK ]
neutron-l3-agent を停止中: [ OK ]
neutron-metadata-agent を停止中: [ OK ]
neutron-openvswitch-agent を停止中: [ OK ]
neutron を停止中: [ OK ]
openstack-cinder-api を停止中: [ OK ]
openstack-cinder-scheduler を停止中: [ OK ]
openstack-cinder-volume を停止中: [ OK ]
openstack-glance-api を停止中: [ OK ]
openstack-glance-registry を停止中: [ OK ]
keystone を停止中: [ OK ]
openstack-nova-api を停止中: [ OK ]
openstack-nova-cert を停止中: [ OK ]
openstack-nova-conductor を停止中: [ OK ]
openstack-nova-consoleauth を停止中: [ OK ]
openstack-nova-novncproxy を停止中: [ OK ]
openstack-nova-scheduler を停止中: [ OK ]
マウントします。
[root@osctl01 ~]# mount -a
[root@osctl01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_ol67base01-lv_root
11G 2.8G 6.8G 29% /
tmpfs 750M 0 750M 0% /dev/shm
/dev/sda1 477M 66M 382M 15% /boot
/dev/mapper/vg01-lv_glance01
20G 44M 19G 1% /var/lib/glance/images
/dev/mapper/vg02-lv_nova01
30G 44M 28G 1% /nfs
オーナーを glance ユーザ / glance グループにしてしまいます。
[root@osctl01 ~]# chown glance:glance /var/lib/glance/images
OpenStack のサービスを起動します。
[root@osctl01 ~]# openstack-service start
neutron-dhcp-agent を起動中: [ OK ]
neutron-l3-agent を起動中: [ OK ]
neutron-metadata-agent を起動中: [ OK ]
neutron-openvswitch-agent を起動中: [ OK ]
neutron を起動中: [ OK ]
openstack-cinder-api を起動中: [ OK ]
openstack-cinder-scheduler を起動中: [ OK ]
openstack-cinder-volume を起動中: [ OK ]
openstack-glance-api を起動中: [ OK ]
openstack-glance-registry を起動中: [ OK ]
keystone を起動中: [ OK ]
openstack-nova-api を起動中: [ OK ]
openstack-nova-cert を起動中: [ OK ]
openstack-nova-conductor を起動中: [ OK ]
openstack-nova-consoleauth を起動中: [ OK ]
openstack-nova-novncproxy を起動中: [ OK ]
openstack-nova-scheduler を起動中: [ OK ]
20 GB のディスクは、Glance のデフォルトのイメージ格納パスにマウントしたので、
これで利用できる状態です。
Nova インスタンス用の領域準備(Control Node 側)。
Control Node を NFS サーバにして、Compute Node で共有します。
まず、Control Node を設定して簡易的な NFS サーバにします。
NFS で共有するディレクトリを作成しておきます。
NFS のエクスポート設定をします。
/etc/exports ファイルには、下記のように追記しています。
そして nfs サービスを起動しておきます。
まず、Control Node を設定して簡易的な NFS サーバにします。
NFS で共有するディレクトリを作成しておきます。
[root@osctl01 ~]# mkdir /nfs/dir01
NFS のエクスポート設定をします。
[root@osctl01 ~]# vi /etc/exports
/etc/exports ファイルには、下記のように追記しています。
/nfs/dir01 192.168.56.0/24(rw,no_root_squash)
そして nfs サービスを起動しておきます。
[root@osctl01 ~]# chkconfig nfs on
[root@osctl01 ~]# service nfs start
Nova インスタンス用の領域準備(Compute Node #1 側)。
※ディスク共有のため、すべての Compute Node で同じことをしておきます。
いったん、OpenStack のサービスを停止しておきます。
[root@ovms11 ~]# openstack-service stop
neutron-openvswitch-agent を停止中: [ OK ]
openstack-nova-compute を停止中: [ OK ]
/var/lib/nova/instances 配下のファイルを退避しておきます。
[root@ovms11 ~]# mkdir work
[root@ovms11 ~]# cp -pr /var/lib/nova/instances/* work/
/etc/fstab を編集しておきます。
[root@ovms11 ~]# vi /etc/fstab
/etc/fstab ファイルには、下記のように追記します。
192.168.56.21:/nfs/dir01 /var/lib/nova/instances nfs defaults 0 0
そしてマウントします。
[root@ovms11 ~]# mount -a
[root@ovms11 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 3.6G 2.8G 608M 83% /
tmpfs 361M 0 361M 0% /dev/shm
/dev/sda1 477M 61M 387M 14% /boot
none 361M 40K 361M 1% /var/lib/xenstored
192.168.56.21:/nfs/dir01 30G 44M 28G 1% /var/lib/nova/instances
オーナーを nova ユーザ / nova グループに変更しておきます。
[root@ovms11 ~]# chown nova:nova /var/lib/nova/instances
退避したファイルを戻しておきます。
[root@ovms11 ~]# cp -pr work/* /var/lib/nova/instances/
[root@ovms11 ~]# ls -la /var/lib/nova/instances/
合計 16
drwxr-xr-x 3 root root 4096 10月 30 22:13 2015 .
drwxr-xr-x 9 nova nova 4096 10月 28 23:56 2015 ..
-rw-r--r-- 1 nova nova 30 10月 29 02:37 2015 compute_nodes
drwxr-xr-x 2 nova nova 4096 10月 29 00:37 2015 locks
Nova インスタンス用の領域準備(Compute Node #2 側)。
最初に、/var/lib/nova/instances/compute_nodes の内容を控えておきます。
[root@ovms12 ~]# cat /var/lib/nova/instances/compute_nodes
{"ovms12": 1446053848.252249}
そして、Compute Node #1 と同様に、
OpenStack のサービスを一旦停止します。
[root@ovms12 ~]# openstack-service stop
neutron-openvswitch-agent を停止中: [ OK ]
openstack-nova-compute を停止中: [ OK ]
Compute Node #1 とまったく同様に、/etc/fstab を編集します。
[root@ovms12 ~]# vi /etc/fstab
[root@ovms12 ~]# mount -a
[root@ovms12 ~]# df -hFilesystem Size Used Avail Use% Mounted on
/dev/sda2 3.6G 2.8G 608M 83% /
tmpfs 361M 0 361M 0% /dev/shm
/dev/sda1 477M 61M 387M 14% /boot
none 361M 40K 361M 1% /var/lib/xenstored
192.168.56.21:/nfs/dir01 30G 44M 28G 1% /var/lib/nova/instances
オーナーを nova ユーザ / nova グループに変更しておきます。
[root@ovms12 ~]# chown nova:nova /var/lib/nova/instances
/var/lib/nova/instances/compute_nodes ファイルに Compute Node #1 だけ記載されているので、
編集して先ほど控えた Node #2 の情報も追記してしまいます。
/var/lib/nova/instances/compute_nodes の内容は、下記のように編集してしまします。
{"ovms11": 1446053828.2569079}
↓
{"ovms11": 1446053828.2569079, "ovms12": 1446053848.252249}
それぞれのノードで、OpenStack のサービスを起動します。
Node #1 で起動。
[root@ovms11 ~]# openstack-service start
neutron-openvswitch-agent を起動中: [ OK ]
openstack-nova-compute を起動中: [ OK ]
Node #2 でも起動。
[root@ovms12 ~]# openstack-service start
neutron-openvswitch-agent を起動中: [ OK ]
openstack-nova-compute を起動中: [ OK ]
これで、nova boot したインスタンスが配置できるようになります。
ちなみに、今回のストレージ構成だと、Control Node が停止してしまうと
何もできなくなってしまうのですが、動作検証のためと割り切っています。
環境停止するときも、まちがって先に Control Node を停止すると悲しいことになります。
また、もっといい手順があるかもしれません。
つづく・・・
0 件のコメント:
コメントを投稿