2014年7月25日金曜日

OpenStackのボリュームの使い方・アクセス方法

OpenStackでインスタンスが作成までできたので、
ボリュームとインスタンスの接続方法とインスタンスからのアクセス方法についてまとめる

OpenStackのボリュームは、USBメモリのようにインスタンス起動中に
接続したり、切断したりすることが可能である

●ボリュームの作り方

ボリュームを接続するための、インスタンスを起動しておく
もちろん、ボリューム作成後からでも大丈夫


1.ボリューム種別の作成


種別を分けることで、作成したボリュームが管理しやすくなる
種別を作成しなくてもボリュームの作成は可能


ボリュームの種別作成1




















UI画面から[管理]→[ボリューム]→[ボリュームの種別の作成]を押す


ボリュームの種別作成2

種別名を入力し、[ボリューム種別の作成]をクリック

ボリュームの種別作成3














上の図のように自分が設定した種別ができる


ボリュームの作成1






















2.ボリュームの作成

次にボリュームの作成を行う
[プロジェクト]→[ボリューム]→[ボリュームの作成]ボタンを押す

ボリュームの作成2























ボリューム名を入力し、種別を選択する(選択しなくてもいい)
容量を設定した後、[ボリュームの作成]を押す

3.インスタンスとボリュームの接続


ボリューム作成完了













すると、ボリュームが作成されるので、[接続の編集]を押し起動中のインスタンスと接続する




























接続したいインスタンスを選択し、デバイス名を指定する
初期で「/dev/vdc」とグレーで記入されているが
そのまま入力しても良いし、「/dev/vdd」など自由に変更していい

※openstackのドキュメントを見ると
実際のデバイス名は、ハイパーバイザーの設定により、ボリューム名と異なるかもしれません
と書かれているので、ここで設定したデバイス名が、実際のインスタンス上で表示されているデバイス名異なる可能性がある(実際異なっていることを確認済み)

4.インスタンスからのアクセス方法

1.まず、デバイスファイルを特定する

実際に、インスタンス上で表示されるデバイス名と、接続の先に設定したデバイス名が異なってしまうことがあるため、どれが接続したボリュームなのか分かりにくいが、判別する方法が2つほどある

方法1)「ls -l /dev/disk/by-id」を実行する

linuxのDisk確認に「/dev/disk/by-id」の中身を見る方法がある
この方法は確実に、接続されたボリュームを断定することができる

実際に実行するとこのように表示される
[root@host-10-0-0-2 dev]# ls -l /dev/disk/by-id
total 0
lrwxrwxrwx. 1 root root 10 Jul 25 01:29 dm-name-VolGroup00-LogVol00 -> ../../dm-1
lrwxrwxrwx. 1 root root 10 Jul 25 01:29 dm-name-VolGroup00-LogVol01 -> ../../dm-0
lrwxrwxrwx. 1 root root 10 Jul 25 01:29 dm-uuid-LVM-zud5VIZtcakWMc94sCmRCG0dH21iJLORjlA2qPgCB5Q0pnI14CAlQPZ4qSPwDqAZ -> ../../dm-0
lrwxrwxrwx. 1 root root 10 Jul 25 01:29 dm-uuid-LVM-zud5VIZtcakWMc94sCmRCG0dH21iJLORQtO6Edh5XphYzPqDKYKNfuhc25lSuFTe -> ../../dm-1
lrwxrwxrwx. 1 root root  9 Jul 25 02:15 virtio-6a951574-07d8-4ecb-b -> ../../vdb

virtio-**************で表されるDiskは全て、仮想に接続されたボリュームである
※virtio-以降の文字は、一意なIDなので自分のIDに置き換えて考えること!

ここの、virtio-6a951574-07d8-4ecb-b  -> ../../vdb に注目する
これは、2階層前の「/dev」の「/vdb」が「virtio-6a951574-07d8-4ecb-b」と対応していることを示している





























しかも、virtio-より後ろの部分のIDはOpenStackのUIで確認できるボリュームの詳細のIDと対応しているので、接続されているボリュームが特定できる


方法2)つなぐ前と後で「ls -l /dev/vd*」を実行する


つなぐ前に、デバイスファイルを一覧して
つないだ後に増えたデバイスファイルが接続したボリュームであることが分かる
この方法は、一見簡単だが確実ではない

ボリュームをつなぐ前

[root@host-10-0-0-2 dev]# ls -l /dev/vd*
brw-rw----. 1 root disk 252, 0 Jul 25 01:29 /dev/vda
brw-rw----. 1 root disk 252, 1 Jul 25 01:29 /dev/vda1
brw-rw----. 1 root disk 252, 2 Jul 25 01:29 /dev/vda2

ボリュームをつないだ後

[root@host-10-0-0-2 dev]# ls -l /dev/vd*
brw-rw----. 1 root disk 252,  0 Jul 25 01:29 /dev/vda
brw-rw----. 1 root disk 252,  1 Jul 25 01:29 /dev/vda1
brw-rw----. 1 root disk 252,  2 Jul 25 01:29 /dev/vda2
brw-rw----. 1 root disk 252, 16 Jul 25 02:15 /dev/vdb ←これが追加された



2.接続する

接続する前に、初めて接続する場合はボリューム初期化を行う

自分の場合は、
#mkfs.ext4 /dev/disk/by-id/virtio-6a951574-07d8-4ecb-bまたは、
#mkfs.ext4 /dev/vdbで初期化できる

マウント用フォルダ作成
#mkdir -p /mnt/volume

マウント
#mount /dev/disk/by-id/virtio-15a9f901-ba9d-45e1-8 /mnt/volumeまたは、
#mount /dev/vdb /mnt/volume

これでマウントが完了し、インスタンスからアクセスできるはずである


0 件のコメント:

コメントを投稿