2018年5月17日木曜日

OpenStack で既存インスタンスにサクッとディスクを追加してみた

概要

ディスクはデータを永続化するために使う機能です
今回は CirrOS に対してディスクを追加してみました

環境

  • CentOS 7.4 64bit
  • packstack 12.0.0
  • OpenStack Queens

ディスクの作成とインスタンスへの接続

ボリュームの一覧から「ボリュームの作成」を選択します
とりあえず名前だけ決定しました
disk_add1.png

作成すると一覧に表示されるのでプルダウンから「接続の管理」を選択します
disk_add2.png

接続するインスタンスを選択します
disk_add3.png

接続が完了するとブロックデバイスが表示されます
disk_add4.png

CirrOS でマウントする

あとは普通に OS 上でやることをコマンド実行するだけです

  • fdisk -l
Disk /dev/vdb: 2147 MB, 2147483648 bytes
16 heads, 63 sectors/track, 4161 cylinders, total 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/vdb doesn't contain a valid partition table

ブロックデバイスとして接続されていることを確認します

  • fdisk /dev/vdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x2d8a673a.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-4194303, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-4194303, default 4194303): 
Using default value 4194303

新規パーティションを作成します
今回は全領域をフォーマットします

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

w で書き込みして終了です

  • mkfs.ext4 /dev/vdb1

ディスクを ext4 でフォーマットします

  • mkdir /data
  • mount /dev/vdb1 /data
  • df -h /dev/vdb1
Filesystem                Size      Used Available Use% Mounted on
/dev/vdb1                 2.0G     35.0M      1.8G   2% /data

あとはマウントするディレクトリを作成し mount を実行すれば OK です
必要に応じて /etc/fstab にマウント情報を記載しておけば reboot 時もマウントされた状態で起動します

/dev/vdb1 /data auto defaults,nofail 0 0

最後に

OpenStack のボリューム機能を使ってインスタンスにディスク領域を追加してみました
かなり簡単に追加できると思います
ボリュームを作成しておけばスナップショットとして簡単にディスクのバックアップを行うことができます
一旦ディスクの接続を切断する必要がありますが、ボリュームを拡張することも簡単にできます (その際は再度 fdisk によるフォーマットが必要です)

OpenStack のかなり基本的な機能になるので覚えておいて損はないと思います
また今回は UI をベースに行いましたが CLI や API を使っても同様のことが可能です

参考サイト

0 件のコメント:

コメントを投稿