EC2上でLVMによるディスクの統合
Amazon EC2で、Instance StoreタイプのLarge Instanceにした場合、使えるディスクの容量は、850GBとなっている。
だけど、dfのコマンド叩いてみても、/ と /mnt 合わせても、420GB程度にしか見えない。
どういうことかと、さんざん調べた結果、/mnt にマウントされてる、/dev/sdb の他に、/dev/sdc ってのがあって、
それを、適当なとこにマウントすれば、合わせて、820GBになるとのこと。
確かに、合計サイズとしては、850GBなんだけど、どうしても420GB×2じゃ、都合が悪かった。
そこで、2つのディスクを1つのディスクに見せかけて何とか、デカイ容量にしようと企んだ。
LVM2を使ってやったので、以下は、その作業ログ。
環境は、Ubuntu 10 Server(x86_64)。
- まずは、LVMをインストール
$ sudo apt-get install lvm2
- モジュールのロード
$ sudo modprobe dm-mod
- 物理ボリューム(PV)の作成
$ sudo pvcreate /dev/sdb Can't open /dev/sdb exclusively. Mounted filesystem? #マウントされんじゃねーの?って怒られた # マウント解除 $ sudo umount /mnt # 改めて、/dev/sdb と /dev/sdc のPV作成 $ sudo pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created $ sudo pvcreate /dev/sdc Physical volume "/dev/sdc" successfully created # 確認 $ sudo pvscan PV /dev/sdb lvm2 [419.97 GiB] PV /dev/sdc lvm2 [419.97 GiB] Total: 2 [839.93 GiB] / in use: 0 [0 ] / in no VG: 2 [839.93 GiB]
- ボリュームグループ(VG)の作成
# vkvsって名前で、/dev/sdv と /dev/sdc でグループ作成 $ sudo vgcreate vkvs /dev/sdb /dev/sdc Volume group "vkvs" successfully created # 確認 $ sudo vgs VG #PV #LV #SN Attr VSize VFree vkvs 2 0 0 wz--n- 839.93g 839.93g
- 論理ボリューム(LV)の作成
# lkvsって名前で、LV作成(サイズは、適当に) $ sudo lvcreate -L 835G -n lkvs vkvs Logical volume "lkvs" created # 確認 $ sudo lvscan ACTIVE '/dev/vkvs/lkvs' [835.00 GiB] inherit
$ sudo mkfs.ext3 -j /dev/vkvs/lkvs
- さて、いよいよマウントしてみる
$ sudo mount /dev/vkvs/lkvs /mnt $ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 9.9G 1.4G 8.0G 15% / 〜〜略〜〜 /dev/mapper/vkvs-lkvs 822G 201M 780G 1% /mnt
よし。成功だー!
あとは、残作業。
- fstab に書き込んで、次回起動時からマウントされるように設定
$ cp /etc/fstab /etc/fstab.old $ emacs /etc/fstab # /etc/fstab: static file system information. # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc nodev,noexec,nosuid 0 0 /dev/sda1 / ext3 defaults 0 0 /dev/vkvs/lkvs /mnt auto defaults 1 2 # <= 追記
- module を起動時に、loadされるように設定
$ sudo emacs /etc/modules # /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. # LP: #450463 acpiphp dm-mod # <= 追記
- 再起動してみる
$ sudo reboot $ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 9.9G 1.4G 8.0G 15% / 〜〜略〜〜 /dev/mapper/vkvs-lkvs 822G 201M 780G 1% /mnt
やった。これで、次回起動時から(AMI作ってたら?Rebootしても?)850GBに近い容量のディスクをマウントした状態で使えるぞ!