CentOS7をVirtualBox 4.3.24 にインストールした、技術/VirtualBox/CentOS7インストール(2015-03時点)/メモ3(EPELリポジトリの追加, Xfce4インストール + ibus-daemonで日本語入力)の続きです。
今回のインストール作業では、最初にVMを作成した時の8GBのディスクイメージでこれまで作業してきました。しかしこの先、実験とか勉強とかで作業してくと、8GBでは容量不足です。そこで、VirtualBoxで20GBのディスクを追加し、LVMでrootパーティションを拡張してみます。
VMを一旦シャットダウンし、20GBのディスクを追加して、起動する。起動後に "lsblk" コマンドで確認したところ、"/dev/sdb" として認識された。
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 8G 0 disk # ←これが最初の8GBのディスク ├─sda1 8:1 0 500M 0 part /boot └─sda2 8:2 0 7.5G 0 part ├─centos_c7x64dev1-root 253:0 0 6.7G 0 lvm / └─centos_c7x64dev1-swap 253:1 0 820M 0 lvm [SWAP] sdb 8:16 0 20G 0 disk # ←これが追加した20GBのディスク sr0 11:0 1 1024M 0 rom
fdiskでLVM用のパーティション追加→pvcreateでPV作成。
# fdisk /dev/sdb 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. Device does not contain a recognized partition table Building a new DOS disklabel with disk identifier 0x95dbdb71. 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): # ←何も入力せずENTER First sector (2048-41943039, default 2048): # ←何も入力せずENTER Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): Using default value 41943039 Partition 1 of type Linux and of size 20 GiB is set Command (m for help): t # ← パーティションタイプを指定 Selected partition 1 Hex code (type L to list all codes): 8e # ← Linux LVMを指定 Changed type of partition 'Linux' to 'Linux LVM' Command (m for help): p # ← パーティション設定状況を確認 Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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: 0x95dbdb71 Device Boot Start End Blocks Id System /dev/sdb1 2048 41943039 20970496 8e Linux LVM Command (m for help): w # ← パーティションテーブルに書き込み The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
→ lsblkで確認すると、"/dev/sdb1" でパーティション作れてた。
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 8G 0 disk (...) sdb 8:16 0 20G 0 disk └─sdb1 8:17 0 20G 0 part
→ "pvcreate" コマンドでPV作成:
# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created
現状のVolume Group確認:
# vgdisplay --- Volume group --- VG Name centos_c7x64dev1 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 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 7.51 GiB PE Size 4.00 MiB Total PE 1922 Alloc PE / Size 1922 / 7.51 GiB Free PE / Size 0 / 0 VG UUID aSp0xQ-VKM4-x3cb-AXNu-RK9e-VXBe-JyVT23
→これ一個だけ。これから、root用とswap用をLVに切り出して使ってる。これに "/dev/sdb1" を追加する:
# vgextend centos_c7x64dev1 /dev/sdb1 Volume group "centos_c7x64dev1" successfully extended → # vgdisplay --- Volume group --- VG Name centos_c7x64dev1 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 27.50 GiB PE Size 4.00 MiB Total PE 7041 Alloc PE / Size 1922 / 7.51 GiB Free PE / Size 5119 / 20.00 GiB # ←Free部分に20GBが追加された。 VG UUID aSp0xQ-VKM4-x3cb-AXNu-RK9e-VXBe-JyVT23
現在のLV一覧:
# lvdisplay --- Logical volume --- LV Path /dev/centos_c7x64dev1/swap LV Name swap VG Name centos_c7x64dev1 LV UUID uEDQ7Y-V3U2-FGkb-kDOt-uQof-6q6p-2EsEKV LV Write Access read/write LV Creation host, time localhost, 2015-03-15 02:49:59 +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:1 --- Logical volume --- LV Path /dev/centos_c7x64dev1/root LV Name root VG Name centos_c7x64dev1 LV UUID blpdBV-Ho2U-mWFi-qoC7-z3aM-lebw-WnGhDi LV Write Access read/write LV Creation host, time localhost, 2015-03-15 02:49:59 +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:0
→ "root" LVに追加する。LV Pathの "/dev/centos_c7x64dev1/root" を指定する。また、"-l" のオプションで "+" がついていることを確認すること。
# lvextend -l +100%FREE /dev/centos_c7x64dev1/root Extending logical volume root to 26.70 GiB Logical volume root successfully resized
→lsblkで確認すると、/dev/sdb1が centos_c7x64dev1-root のLVMとして追加されてことが分かる:
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 8G 0 disk ├─sda1 8:1 0 500M 0 part /boot └─sda2 8:2 0 7.5G 0 part ├─centos_c7x64dev1-root 253:0 0 26.7G 0 lvm / └─centos_c7x64dev1-swap 253:1 0 820M 0 lvm [SWAP] sdb 8:16 0 20G 0 disk └─sdb1 8:17 0 20G 0 part └─centos_c7x64dev1-root 253:0 0 26.7G 0 lvm / # ← LVMとして認識された sr0 11:0 1 1024M 0 rom
xfsなのでオンラインリサイズが可能。resize2fsではなく、xfs_growfsで実行できる。マウントポイントを指定する。
以下の例("/")のようにアンマウントしておく必要はない。マウントしたままできる。
# xfs_growfs / meta-data=/dev/mapper/centos_c7x64dev1-root isize=256 agcount=4, agsize=439552 blks = sectsz=512 attr=2, projid32bit=1 = crc=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 7000064 (一瞬で終わった→不安になってリターンコードをチェック) # echo $? 0 (→成功してる・・・)
念のため、再起動後にdfコマンドで確認:
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos_c7x64dev1-root 27G 5.6G 22G 21% / # ←確かに20GB増えてる。成功。 devtmpfs 912M 0 912M 0% /dev tmpfs 921M 8.0K 921M 1% /dev/shm tmpfs 921M 8.7M 912M 1% /run tmpfs 921M 0 921M 0% /sys/fs/cgroup /dev/sda1 497M 158M 340M 32% /boot
参考: