Vagrant:ゲストOSのディスク容量を増やしたときの作業ログ


Vagrant:ゲストOSのディスク容量を増やしたときの作業ログVagrantで立てたゲストの容量が8GBしかなかったので容量を20GBに増やしたときの作業ログ。

■環境
ホストOS:CentOS6.5
Vagrant:1.7.2
VirtualBox:4.3.28
ゲストOS:CentOS7

■ホスト側の作業場所

$ pwd
/home/user/VirtualBox VMs/cent7_default_1434608680280_85072

$ ll
合計 2961448
drwx------  3 user user       4096  6月 18 15:42 2015 ./
drwx------ 11 user user       4096  6月 18 15:24 2015 ../
drwx------  2 user user       4096  6月 18 15:24 2015 Logs/
-rw-------  1 user user 3033137152  6月 18 15:42 2015 box-disk1.vmdk
-rw-------  1 user user       8514  6月 18 15:42 2015 cent7_default_1434608680280_85072.vbox
-rw-------  1 user user       8514  6月 18 15:24 2015 cent7_default_1434608680280_85072.vbox-prev

■元々のvmdkファイルの確認

$ pwd
/home/user/VirtualBox VMs/tuat_163_cent7_default_1434608680280_85072

$ VBoxManage showhdinfo box-disk1.vmdk
UUID:           cd97ec61-426b-4d6b-9ae3-d79d07300179
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/user/VirtualBox VMs/tuat_163_cent7_default_1434608680280_85072/box-disk1.vmdk
Storage format: VMDK
Format variant: dynamic default
Capacity:       8192 MBytes
Size on disk:   2892 MBytes
In use by VMs:  cent7_default_1434608680280_85072 (UUID: 39b0d85e-cff7-40c3-b497-bc6b110fc49a)


■vmdkをvdiとしてクローン


$ VBoxManage clonehd box-disk1.vmdk box-disk1.vdi --format VDI
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: 3630f1b4-3090-4009-88eb-4d634da2e42f

$ ll
合計 5948496
drwx------  3 user user       4096  6月 18 17:37 2015 ./
drwx------ 11 user user       4096  6月 18 15:24 2015 ../
drwx------  2 user user       4096  6月 18 15:24 2015 Logs/
-rw-------  1 user user 3060793344  6月 18 17:37 2015 box-disk1.vdi
-rw-------  1 user user 3033137152  6月 18 15:42 2015 box-disk1.vmdk
-rw-------  1 user user       8514  6月 18 17:37 2015 cent7_default_1434608680280_85072.vbox
-rw-------  1 user user       8514  6月 18 15:42 2015 cent7_default_1434608680280_85072.vbox-prev

■vdiのサイズ変更

$ VBoxManage modifyhd box-disk1.vdi --resize 20480
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

20(GB) * 1024(MB) = 20480

■できたvdiの確認

$ VBoxManage showhdinfo box-disk1.vdi
UUID:           3630f1b4-3090-4009-88eb-4d634da2e42f
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/user/VirtualBox VMs/cent7_default_1434608680280_85072/box-disk1.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       20480 MBytes
Size on disk:   2919 MBytes

■ここからGUIのVirtualBoxの管理画面でHDDをVDIに差し替える

ここのCUIでのやり方がわからない・・・。

※あとで判明。。以下を参考に。

Vagrant on Mac上のCeontOS7のディスク容量を後から増やす

■HDDをVDIに差し替えたらゲストを起動
ここからゲストでの操作

fdiskで/dev/sdaの容量が増えている事を確認する。

# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000ac089

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    16777215     7875584   8e  Linux LVM

Disk /dev/mapper/centos-swap: 859 MB, 859832320 bytes, 1679360 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト

Disk /dev/mapper/centos-root: 7201 MB, 7201619968 bytes, 14065664 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト

増加したところに新しくパーティション、論理ボリュームを作成し容量を増やす。

■パーティションを追加

# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

コマンド (m でヘルプ): n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): 
Using default response p
パーティション番号 (3,4, default 3): 3
最初 sector (16777216-41943039, 初期値 16777216): 
初期値 16777216 を使います
Last sector, +sectors or +size{K,M,G} (16777216-41943039, 初期値 41943039): 
初期値 41943039 を使います
Partition 3 of type Linux and of size 12 GiB is set

コマンド (m でヘルプ): p

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000ac089

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    16777215     7875584   8e  Linux LVM
/dev/sda3        16777216    41943039    12582912   83  Linux

「/dev/sda3」が追加された

■/dev/sda3のシステムをLinux LVMにする

コマンド (m でヘルプ): t
パーティション番号 (1-3, default 3): 3
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

コマンド (m でヘルプ): p

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000ac089

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    16777215     7875584   8e  Linux LVM
/dev/sda3        16777216    41943039    12582912   8e  Linux LVM

■反映して終了する

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。

WARNING: Re-reading the partition table failed with error 16: デバイスもしくはリソースがビジー状態です.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
ディスクを同期しています。

■ゲストの再起動

# shutdown -r now

■Physical Volumeの状態を確認

# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               7.51 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              1922
  Free PE               0
  Allocated PE          1922
  PV UUID               zR6Hya-5HZV-3dT5-NQZA-b3gF-gGif-SA3K4d

■pvcreateコマンドでPhysical Volumeを作成する。

# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created

■作成内容を確認。

# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               7.51 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              1922
  Free PE               0
  Allocated PE          1922
  PV UUID               zR6Hya-5HZV-3dT5-NQZA-b3gF-gGif-SA3K4d

  "/dev/sda3" is a new physical volume of "12.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda3
  VG Name               
  PV Size               12.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               dJEJG3-j8DO-JWwn-cHyc-xeHR-cs5J-3jhgfT

■Volume GroupにPhysical Volumeを追加する

# vgextend centos /dev/sda3
  Volume group "centos" successfully extended

■Volume Groupの確認

# vgdisplay 
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               19.50 GiB
  PE Size               4.00 MiB
  Total PE              4993
  Alloc PE / Size       1922 / 7.51 GiB
  Free  PE / Size       3071 / 12.00 GiB
  VG UUID               mtWHXb-DYzV-cxFV-psLD-XvDR-sKjQ-lUZygi

増えてる。

■Logical Volumeの容量を増やす

増やしたいマウントポイントのLogical Volumeをdfコマンドで確認。

# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root   6.7G  2.5G  4.3G   37% /
devtmpfs                  236M     0  236M    0% /dev
tmpfs                     245M     0  245M    0% /dev/shm
tmpfs                     245M  4.3M  241M    2% /run
tmpfs                     245M     0  245M    0% /sys/fs/cgroup
/dev/sda1                 497M  166M  332M   34% /boot

今回の対象は「/dev/mapper/centos-root」

■lvdisplayコマンドでLogical Volumeの詳細を確認。

# lvdisplay
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                IuMeqQ-dd1j-73Wo-tZLt-7wYA-KCaB-FZlS2B
  LV Write Access        read/write
  LV Creation host, time localhost, 2014-08-01 21:31:57 +0900
  LV Status              available
  # open                 2
  LV Size                820.00 MiB
  Current LE             205
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                V2bGxj-hmyn-PP1V-RNdJ-hSY1-PVwu-L3ekOr
  LV Write Access        read/write
  LV Creation host, time localhost, 2014-08-01 21:31:58 +0900
  LV Status              available
  # open                 1
  LV Size                6.71 GiB
  Current LE             1717
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1

■Logical Volumeのサイズを拡張。

# lvextend -L +12284 /dev/centos/root
  Size of logical volume centos/root changed from 6.71 GiB (1717 extents) to 18.70 GiB (4788 extents).
  Logical volume root successfully resized

ここの「12284」はvgdisplayで表示されたFree PE / SizeとPE Sizeをかけた値になる
3071 * 4.00 = 12284

■Logical Volumeの確認。

# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                IuMeqQ-dd1j-73Wo-tZLt-7wYA-KCaB-FZlS2B
  LV Write Access        read/write
  LV Creation host, time localhost, 2014-08-01 21:31:57 +0900
  LV Status              available
  # open                 2
  LV Size                820.00 MiB
  Current LE             205
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                V2bGxj-hmyn-PP1V-RNdJ-hSY1-PVwu-L3ekOr
  LV Write Access        read/write
  LV Creation host, time localhost, 2014-08-01 21:31:58 +0900
  LV Status              available
  # open                 1
  LV Size                18.70 GiB
  Current LE             4788
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1

【ここからファイルシステムのリサイズ】

■CentOS7でファイルシステムがxfsだったのでresize2fsの代わりにxfs_growfsを使用

# xfs_growfs /dev/centos/root 
meta-data=/dev/mapper/centos-root isize=256    agcount=4, agsize=439552 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=1758208, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 1758208 to 4902912

■出来た!

# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root    19G  2.5G   17G   14% /
devtmpfs                  236M     0  236M    0% /dev
tmpfs                     245M     0  245M    0% /dev/shm
tmpfs                     245M  4.3M  241M    2% /run
tmpfs                     245M     0  245M    0% /sys/fs/cgroup
/dev/sda1                 497M  166M  332M   34% /boot

■参考ページ

VirtualBoxのゲストOSのディスク容量を増やす
http://te2u.hatenablog.jp/entry/2015/04/20/012914

Vagrant VMのディスクサイズを後から拡張する方法
http://blog.dakatsuka.jp/2014/04/24/vagrant-hdd-resize.html

CentOS 7(XFS)でLVMディスク拡張でハマったこと
http://qiita.com/fetaro/items/d7dc74262633ba474bc8

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です