はじめに
Exadata X8M-2のOracle Linux KVMゲストの/u01のファイルシステムを拡張した際の手順を共有します。
環境
KVMホスト(kvm01)
Kernel version: 4.14.35-1902.5.1.4.el7uek.x86_64 #2 SMP Wed Oct 9 19:29:16 PDT 2019 x86_64
Image kernel version: 4.14.35-1902.5.1.4.el7uek
Image version: 19.3.2.0.0.191119
KVMゲスト(guest01)
Kernel version: 4.14.35-1902.5.1.4.el7uek.x86_64 #2 SMP Wed Oct 9 19:29:16 PDT 2019 x86_64
Image kernel version: 4.14.35-1902.5.1.4.el7uek
Image version: 19.3.2.0.0.191119
事前確認
KVMゲスト環境の/u01の使用量を確認します。
下記の通り、空き領域が、3.1G
と心許ない状況です。
[root@guest01 ~]# df -h /u01
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VGExaDb-LVDbOra1 20G 17G 3.1G 85% /u01
現在の論理ボリューム構成を確認します。20GBである事が確認できます。
[root@guest01 ~]# lvs -o lv_name,lv_path,vg_name,lv_size /dev/VGExaDb/LVDbOra1
LV Path VG LSize
LVDbOra1 /dev/VGExaDb/LVDbOra1 VGExaDb 20.00g
ボリュームグループVGExaDbの使用可能な領域を確認します。
[root@guest01 ~]# vgdisplay VGExaDb -s
"VGExaDb" 99.24 GiB [98.25 GiB used / 1016.00 MiB free]
1016.00 MiB free
となっており、拡張可能な領域が無いため、LVMディスクをOracle Linux KVMゲストに追加し、ゲストで使用可能なディスク領域の量を増やします。
新規LVMディスクの追加
KVMホストにて /EXAVMIMAGES
の空き領域を確認します。
[root@kvm01 ~]# df -h /EXAVMIMAGES
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VGExaDb-LVDbExaVMImages 1.5T 890G 611G 60% /EXAVMIMAGES
20GBの新しいディスクイメージを作成してゲストにアタッチします。
[root@kvm01 ~]# /opt/exadata_ovm/vm_maker --create --disk-image /EXAVMIMAGES/GuestImages/guest01/pv2_vgexadb.img --size 20G --attach --domain guest01
[ERROR] Image file pv2_vgexadb.img must be located in /EXAVMIMAGES
想定外のエラーが発生しました。/EXAVMIMAGES の下に格納しないと駄目なようです。
仕方がないため、EXAVMIMAGESの下に作成します。
[root@kvm01 ~]# /opt/exadata_ovm/vm_maker --create --disk-image /EXAVMIMAGES/pv2_vgexadb.img --size 20G
[INFO] Allocating an image for /EXAVMIMAGES/pv2_vgexadb.img, size 20.000000G...
[INFO] Running 'qemu-img create /EXAVMIMAGES/pv2_vgexadb.img 20.000000G '...
[INFO] Create label gpt on /EXAVMIMAGES/pv2_vgexadb.img.
[INFO] Running 'parted -a none -s /EXAVMIMAGES/pv2_vgexadb.img mklabel gpt'...
[INFO] Running 'losetup -P -f /EXAVMIMAGES/pv2_vgexadb.img'...
[INFO] Finding loop device...
[INFO] loop device is /dev/loop0
[INFO] Finding number of sectors...
[INFO] 41943040 sectors
[INFO] Releasing loop device /dev/loop0...
[INFO] Removing device maps for /dev/loop0...
[INFO] Running 'kpartx -d -v /dev/loop0'...
[INFO] Removing loop device /dev/loop0...
[INFO] ##
[INFO] ## Finished .
[INFO] ##
[INFO] Created image /EXAVMIMAGES/pv2_vgexadb.img
作成したディスクイメージをアタッチします。
[root@kvm01 ~]# /opt/exadata_ovm/vm_maker --attach --disk-image /EXAVMIMAGES/pv2_vgexadb.img --domain guest01
[INFO] File /EXAVMIMAGES/GuestImages/guest01/pv2_vgexadb.img is a reflink from /EXAVMIMAGES/pv2_vgexadb.img and added as disk to domain guest01
[INFO] -------- MANUAL STEPS TO BE COMPLETED FOR MOUNTING THE DISK WITHIN DOMU guest01 --------
[INFO] 1. Check a disk with name /dev/VGExaDbDisk.pv2_vgexadb.img/LVDBDisk exists.
[INFO] - Run the command 'lvdisplay' to verify a disk with name '/dev/VGExaDbDisk.pv2_vgexadb.img/LVDBDisk' exists.
[INFO] 2. Create a directory that will to be used for mounting the new disk.
[INFO] 3. Add the following line to /etc/fstab: /dev/VGExaDbDisk.pv2_vgexadb.img/LVDBDisk <mount_point_from_step_2> <fstype> defaults 1 1
[INFO] 4. Mount the newly added disk to mount point through the command: mount -a.
新規ディスクイメージがアタッチされたことを確認します。
下記の通り、pv2_vgexadb.img がアタッチされていることが確認できます。
[root@kvm01 ~]# /opt/exadata_ovm/vm_maker --list --disk-image --domain guest01
File /EXAVMIMAGES/GuestImages/guest01/System.img
File /EXAVMIMAGES/GuestImages/guest01/grid19.9.0.0.201020.img
File /EXAVMIMAGES/GuestImages/guest01/db19.9.0.0.201020_3.img
File /EXAVMIMAGES/GuestImages/guest01/pv1_vgexadb.img
File /EXAVMIMAGES/GuestImages/guest01/pv2_vgexadb.img
ゲスト側にて、新しく追加されたディスクを lvdisplay
コマンドを使用して確認します。
[root@guest01 ~]# lvdisplay /dev/VGExaDbDisk.pv2_vgexadb.img/LVDBDisk
--- Logical volume ---
LV Path /dev/VGExaDbDisk.pv2_vgexadb.img/LVDBDisk
LV Name LVDBDisk
VG Name VGExaDbDisk.pv2_vgexadb.img
LV UUID vHqfHY-ArJn-lsiP-duXJ-Vc0x-Sagh-ZbxG3J
LV Write Access read/write
LV Creation host, time kvm01, 2023-06-13 13:25:41 +0900
LV Status available
# open 0
LV Size <20.00 GiB
Current LE 5119
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:19
追加したディスク用に作成された論理ボリュームを削除し、空き領域を作ります。
[root@guest01 ~]# lvremove /dev/VGExaDbDisk.pv2_vgexadb.img/LVDBDisk
Do you really want to remove active logical volume VGExaDbDisk.pv2_vgexadb.img/LVDBDisk? [y/n]: y
Logical volume "LVDBDisk" successfully removed
続いて、ボリューム・グループを削除します。
[root@guest01 ~]# vgremove VGExaDbDisk.pv2_vgexadb.img
Volume group "VGExaDbDisk.pv2_vgexadb.img" successfully removed
pvdisplay
コマンドを使用して、新しい物理ボリュームを確認します。
[root@guest01 ~]# pvdisplay
(省略)
"/dev/sdv1" is a new physical volume of "<20.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdv1
VG Name
PV Size <20.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID w3g5wH-wPcz-VAUY-auhn-WecG-Mliu-KMCW7w
ボリューム・グループを拡張します。
[root@guest01 ~]# vgextend VGExaDb /dev/sdv1
Volume group "VGExaDb" successfully extended
拡張後の空き領域を確認します。下記の通り、20GB
の空き領域が確認できます。
[root@guest01 ~]# vgdisplay -s
"VGExaDb" <119.24 GiB [98.25 GiB used / <20.99 GiB free]
"VGExaDbDisk.db-klone-Linux-x86-64-19000201020.50.img" <50.00 GiB [<50.00 GiB used / 0 free]
"VGExaDbDisk.grid-klone-Linux-x86-64-19000201020.50.img" <50.00 GiB [<50.00 GiB used / 0 free]
論理ボリュームを、lvextend
コマンドにて拡張します。
[root@guest01 ~]# lvextend -L +20G /dev/VGExaDb/LVDbOra1
Size of logical volume VGExaDb/LVDbOra1 changed from 20.00 GiB (5120 extents) to 40.00 GiB (10240 extents).
Logical volume VGExaDb/LVDbOra1 successfully resized.
xfs_growfs
コマンドを使用して、パーティションのサイズを変更します。
[root@guest01 ~]# xfs_growfs /u01
meta-data=/dev/mapper/VGExaDb-LVDbOra1 isize=256 agcount=4, agsize=1310720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0 spinodes=0 rmapbt=0
= reflink=0
data = bsize=4096 blocks=5242880, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
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 5242880 to 10485760
dfコマンドを使用して、領域が拡張されたことを確認します。
空きが、24G
になりました。
# df -h /u01
[root@guest01 ~]# df -h /u01
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VGExaDb-LVDbOra1 40G 17G 24G 41% /u01