Ubuntu 14.04
Sponsored Link

OpenStack Icehouse : ストレージを利用する(LVM)2014/05/30

 
仮想マシンインスタンスには一定容量のディスクは割り当てられていますが、 ディスクが足りなくなった場合やデータは別で保管しておきたい場合等は、 Cinder が提供するブロックストレージ機能を利用することができます。
ここではバックエンドとして LVM を使った仮想ストレージを設定してみます。 LVM を利用するため、前提として Storage ノード上のボリュームグループに空き領域がある必要があります。 ここでは例として、専用のボリュームグループを新規作成して設定します。
                                      +------------------+
                             10.0.0.35| [ Storage Node ] |
+------------------+            +-----+   Cinder-Volume  |
| [ Control Node ] |            | eth0|                  |
|     Keystone     |10.0.0.30   |     +------------------+
|      Glance      |------------+
|     Nova API     |eth0        |     +------------------+
|    Cinder API    |            | eth0| [ Compute Node ] |
+------------------+            +-----+   Nova Compute   |
                             10.0.0.51|                  |
                                      +------------------+

[1] Cinder が利用するボリュームグループを、Storage ノード上のディスクの空き領域に作成しておきます。
root@storage:~#
pvcreate /dev/sdb1

Physical volume "/dev/sdb1" successfully created
root@storage:~#
vgcreate -s 32M vg_volume01 /dev/sdb1

Volume group "vg_volume01" successfully created
[2] Storage ノード上の Cinder Volume の設定です。
root@storage:~#
vi /etc/cinder/cinder.conf
# 6行目:作成したボリュームグループ名に変更

volume_group =
vg_volume01
# [DEFAULT] セクション内の任意の場所へ追記

volume_driver = cinder.volume.drivers.lvm.LVMISCSIDriver
root@storage:~#
sed -i '1iinclude /var/lib/cinder/volumes/*' /etc/tgt/targets.conf

root@storage:~#
service tgt restart

tgt stop/waiting
tgt start/running, process 3587
root@storage:~#
service cinder-volume restart

cinder-volume stop/waiting
cinder-volume start/running, process 7350
[3] 例として「disk01」という名前のボリュームを10GBで作成してみます。 作業場所はどこでもよいですが、ここでは Control ノード上で行います。
root@dlp ~(keystone)#
cinder create --display_name disk01 10

+---------------------+--------------------------------------+
|       Property      |                Value                 |
+---------------------+--------------------------------------+
|     attachments     |                  []                  |
|  availability_zone  |                 nova                 |
|       bootable      |                false                 |
|      created_at     |      2014-05-29T10:56:38.420132      |
| display_description |                 None                 |
|     display_name    |                disk01                |
|      encrypted      |                False                 |
|          id         | 5b79be5a-d46b-4f7e-92b0-4694aa0e96f9 |
|       metadata      |                  {}                  |
|         size        |                  10                  |
|     snapshot_id     |                 None                 |
|     source_volid    |                 None                 |
|        status       |               creating               |
|     volume_type     |                 None                 |
+---------------------+--------------------------------------+

root@dlp ~(keystone)#
cinder list

+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+
|                  ID                  |   Status  | Display Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+
| 5b79be5a-d46b-4f7e-92b0-4694aa0e96f9 | available |    disk01    |  10  |     None    |  false   |             |
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+
[4] 作成した仮想ディスクをインスタンスに接続してみます。
以下の例では、「/dev/vdb」というデバイスとしてインスタンスに接続されました。
以上でインスタンス上から「/dev/vdb」にファイルシステムを作成して、ストレージとして利用することができます。
root@dlp ~(keystone)#
nova list

+-----------+---------------+---------+------------+-------------+-----------------------+
| ID        | Name          | Status  | Task State | Power State | Networks              |
+-----------+---------------+---------+------------+-------------+-----------------------+
| 34664048- | Ubuntu_Trusty | SHUTOFF | -          | Shutdown    | sharednet1=10.0.0.201 |
+-----------+---------------+---------+------------+-------------+-----------------------+

root@dlp ~(keystone)#
nova volume-attach Ubuntu_Trusty 5b79be5a-d46b-4f7e-92b0-4694aa0e96f9 auto

+----------+--------------------------------------+
| Property | Value                                |
+----------+--------------------------------------+
| device   | /dev/vdb                             |
| id       | 5b79be5a-d46b-4f7e-92b0-4694aa0e96f9 |
| serverId | 34664048-98d3-44f5-8f72-9c6efcd27834 |
| volumeId | 5b79be5a-d46b-4f7e-92b0-4694aa0e96f9 |
+----------+--------------------------------------+
関連コンテンツ