この記事は3年以上前に書かれた記事で内容が古い可能性があります
Virtualbox6上のCentOS7のディスク拡張したい(VMDKとPVとVGの拡張)
Virtualbox6上のCentOS7のディスク拡張したい
OMCC(Oracle Enterprise Manager Cloud Control)をインストールしているときに、
以下の二つのディレクトリの容量が足りんとエラーが出たので拡張する
$ df -h /u01/app/oracle/middleware/ Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 38G 31G 7.3G 81% /
$ df -h /u01/app/oracle/agent/ Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 38G 31G 7.3G 81% /
全体図
【1】vmdkを拡張して(赤)、【2】PV(物理ボリューム)を拡張して(青)、【3】VG(ボリュームグループ)を拡張する(緑)と、「middleware/」「agent/」ディレクトリで使える容量が増える
目次
【1】vmdk(物理ディスク)の拡張
まずは、物理ディスク容量を増やす
「物理」という表現を使っているが、今回はVirtualboxの仮想ディスク(vmdk)の容量を拡張する
(うまい表現が思いつかない、、、)
※全てMacから操作
Vittualboxで認識している、ディスク(VM)たちは「VBoxManage list hdds」で確認できる
ディスクと言っても、Virtualboxでは実態はvmdk(VMwareの形式)やvdi(Virtualboxの形式)のファイルとなる
% VBoxManage list hdds ... (略) ... UUID: AAA-AAA-AAA Parent UUID: base State: locked write Type: normal (base) Location: /Users/hogehoge/VirtualBox VMs/mgmt_vm/centos-7-1-1.x86_64.vmdk Storage format: VMDK Capacity: 40960 MBytes Encryption: disabled
作業する前に、お好きな方法でVMを停止しておく
Location部分に書いてある、作業するディレクトリに移動
% cd /Users/hogehoge/VirtualBox\ VMs/
vmdk形式のままだと拡張できないので、一度vdi形式にcloneする
※cloneは時間がかかる
% vboxmanage clonehd "mgmt_vm/centos-7-1-1.x86_64.vmdk" "mgmt_vm/centos-7-1-1.x86_64.vdi" --format vdi 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Clone medium created in format 'vdi'. UUID: BBB-BBB-BBB
vdi形式のファイルができていることを確認
% VBoxManage list hdds ... (略) ... UUID: AAA-AAA-AAA Parent UUID: base State: created Type: normal (base) Location: /Users/hogehoge/VirtualBox VMs/mgmt_vm/centos-7-1-1.x86_64.vmdk Storage format: VMDK Capacity: 40960 MBytes Encryption: disabled UUID: BBB-BBB-BBB Parent UUID: base State: created Type: normal (base) Location: /Users/hogehoge/VirtualBox VMs/mgmt_vm/centos-7-1-1.x86_64.vdi Storage format: vdi Capacity: 40960 MBytes Encryption: disabled
作成したvdiを拡張する
※modifyはすぐ終わる
% vboxmanage modifyhd "mgmt_vm/centos-7-1-1.x86_64.vdi" --resize 61440 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
vdiファイルの容量が増えていることを確認
% VBoxManage list hdds ... (略) ... UUID: AAA-AAA-AAA Parent UUID: base State: created Type: normal (base) Location: /Users/hogehoge/VirtualBox VMs/mgmt_vm/centos-7-1-1.x86_64.vmdk Storage format: VMDK Capacity: 40960 MBytes Encryption: disabled UUID: BBB-BBB-BBB Parent UUID: base State: created Type: normal (base) Location: /Users/hogehoge/VirtualBox VMs/mgmt_vm/centos-7-1-1.x86_64.vdi Storage format: vdi Capacity: 61440 MBytes Encryption: disabled
拡張が終わったので、vdi形式からvmdkにcloneする
(名前変更ができなさそうだったので、新しい名前でvmdkを作成)
% VBoxManage clonehd "mgmt_vm/centos-7-1-1.x86_64.vdi" "mgmt_vm/centos-7-1-1.x86_64_60.vmdk" --format vmdk 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Clone medium created in format 'vmdk'. UUID: CCC-CCC-CCC
「元のvmdkファイル」「cloneして拡張したvdiファイル」「拡張したvdiファイルをvmdkにしたファイル」の三つができていることを確認
% VBoxManage list hdds ... (略) ... UUID: AAA-AAA-AAA Parent UUID: base State: created Type: normal (base) Location: /Users/hogehoge/VirtualBox VMs/mgmt_vm/centos-7-1-1.x86_64.vmdk Storage format: VMDK Capacity: 40960 MBytes Encryption: disabled UUID: BBB-BBB-BBB Parent UUID: base State: created Type: normal (base) Location: /Users/hogehoge/VirtualBox VMs/mgmt_vm/centos-7-1-1.x86_64.vdi Storage format: vdi Capacity: 61440 MBytes Encryption: disabled UUID: CCC-CCC-CCC Parent UUID: base State: created Type: normal (base) Location: /Users/hogehoge/VirtualBox VMs/mgmt_vm/centos-7-1-1.x86_64_60.vmdk Storage format: vmdk Capacity: 61440 MBytes Encryption: disabled
今は「元のvmdkファイル」が使われているが、「拡張したvdiファイルをvmdkにしたファイル」を使うように設定
※VMは停止した状態でないと設定できません
VMを選択して「Settings」>「Storage」をクリック
今使っているvmdkを削除
コントローラを選択して、「Add Hard Disk」
先ほどコマンドで作成済みなので「Coose existing disk」
新しく作成したvmdkを選択(vdiの方ではなく)
新しく作成したvmdkをつけることができたら「OK」
無事に設定できたら、不要になった「元のvmdkファイル」「cloneして拡張したvdiファイル」を消しておく
「VBoxManage closemedium disk 【UUID】」
% VBoxManage closemedium disk AAA-AAA-AAA % VBoxManage closemedium disk BBB-BBB-BBB
消えていることを確認
% VBoxManage list hdds ... (略) ... UUID: CCC-CCC-CCC Parent UUID: base State: locked write Type: normal (base) Location: /Users/hogehoge/VirtualBox VMs/mgmt_vm/centos-7-1-1.x86_64_60.vmdk Storage format: vmdk Capacity: 61440 MBytes Encryption: disabled
参考:VirtualBox の仮想ディスクのサイズを変更する
【2】PV(物理ボリューム)の拡張
※ここからはVMから操作する
ここまでで、物理的にディスク容量が増えた状態なので、ここからはCentOS7で増やしたディスクを認識させる
※この時点でdfコマンドで確認すると、作成した容量は、/vagrantにマウントされていた
最終的に増やしたいのは、「/dev/mapper/VolGroup00-LogVol00」のファイル容量だが、VolGroup00はVG(ボリュームグループ)なので、
まずは、PV(物理ボリューム)には「/dev/sda3」を増やす
$ sudo pvdisplay --- Physical volume --- PV Name /dev/sda3 VG Name VolGroup00 PV Size <39.00 GiB / not usable 30.00 MiB Allocatable yes (but full) PE Size 32.00 MiB Total PE 1247 Free PE 0 Allocated PE 1247 PV UUID vrrtbx-g480-HcJI-5wLn-4aOf-Olld-rC03AY
fdiskコマンドで「/dev/sda3」の容量を増やす
$ sudo 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. Command (m for help): p # /dev/sda3がLVMとなっていることを確認 Disk /dev/sda: 64.4 GB, 64424509440 bytes, 125829120 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 label type: dos Disk identifier: 0x000b47f7 Device Boot Start End Blocks Id System /dev/sda1 2048 4095 1024 83 Linux /dev/sda2 * 4096 2101247 1048576 83 Linux /dev/sda3 2101248 83886079 40892416 8e Linux LVM Command (m for help): d # 既存の/dev/sda3を一旦削除 Partition number (1-3, default 3): 3 # 既存の/dev/sda3を一旦削除 Partition 3 is deleted Command (m for help): p # 既存の/dev/sda3が削除されたことを確認 Disk /dev/sda: 64.4 GB, 64424509440 bytes, 125829120 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 label type: dos Disk identifier: 0x000b47f7 Device Boot Start End Blocks Id System /dev/sda1 2048 4095 1024 83 Linux /dev/sda2 * 4096 2101247 1048576 83 Linux Command (m for help): n # 新しく大きな/dev/sda3を作成 Partition type: p primary (2 primary, 0 extended, 2 free) e extended Select (default p): p Partition number (3,4, default 3): 3 First sector (2101248-125829119, default 2101248): Using default value 2101248 Last sector, +sectors or +size{K,M,G} (2101248-125829119, default 125829119): Using default value 125829119 Partition 3 of type Linux and of size 59 GiB is set Command (m for help): p # 新しく大きな/dev/sda3が作成されたことを確認 Disk /dev/sda: 64.4 GB, 64424509440 bytes, 125829120 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 label type: dos Disk identifier: 0x000b47f7 Device Boot Start End Blocks Id System /dev/sda1 2048 4095 1024 83 Linux /dev/sda2 * 4096 2101247 1048576 83 Linux /dev/sda3 2101248 125829119 61863936 83 Linux Command (m for help): w # 設定を保存して終了 The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. 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) Syncing disks. $
設定反映のために再起動する
$ sudo shutdown -r now
再起動した後、多分このコマンドも必要
$ sudo pvresize /dev/sda3 Physical volume "/dev/sda3" changed 1 physical volume(s) resized or updated / 0 physical volume(s) not resized
【3】VG(ボリュームグループ)の拡張
物理ボリュームが拡張されたので、VG(ボリュームグループ)を拡張する
まずは、「vgdisplay」で状況確認
「Free PE / Size」部分をみると、20GB余裕があることがわかる
※余談:「PE(物理エクステント)」は扱える最小単位のこと。今回の例だと「PE Size 32Mib × Free PE 640 = 20.00 GiB」
$ sudo vgdisplay --- Volume group --- VG Name VolGroup00 System ID Format lvm2 Metadata Areas 1 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 1 Act PV 1 VG Size <58.97 GiB PE Size 32.00 MiB Total PE 1887 Alloc PE / Size 1247 / <38.97 GiB Free PE / Size 640 / 20.00 GiB VG UUID SA8LTU-F2yz-FEV1-RdgT-hw0Z-iRxh-yHFKuU
空き容量いっぱいまでVGを拡張する
$ sudo lvextend -l +100%FREE /dev/VolGroup00/LogVol00 Size of logical volume VolGroup00/LogVol00 changed from <37.47 GiB (1199 extents) to <57.47 GiB (1839 extents). Logical volume VolGroup00/LogVol00 successfully resized.
空き容量がゼロになっていればOK
$ sudo vgdisplay --- Volume group --- VG Name VolGroup00 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 5 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size <58.97 GiB PE Size 32.00 MiB Total PE 1887 Alloc PE / Size 1887 / <58.97 GiB Free PE / Size 0 / 0 VG UUID SA8LTU-F2yz-FEV1-RdgT-hw0Z-iRxh-yHFKuU
ファイルシステムの拡張
ここまできて、dfコマンドで出てきた、お目当のファイルをやっと拡張できる
※CentOS6の場合は、resize2fsコマンド
$ sudo xfs_growfs /dev/mapper/VolGroup00-LogVol00 meta-data=/dev/mapper/VolGroup00-LogVol00 isize=512 agcount=4, agsize=2455552 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=9822208, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=4796, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 9822208 to 15065088
うまく拡張できた
$ df -h /u01/app/oracle/middleware/ Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 58G 31G 28G 53% /
$ df -h /u01/app/oracle/agent/ Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 58G 31G 28G 53% /
参考:論理ボリュームサイズ拡大
以上。