#navi_header|技術| CentOS7をVirtualBox 4.3.24 にインストールした、[[1408]]の続きです。 今回のインストール作業では、最初にVMを作成した時の8GBのディスクイメージでこれまで作業してきました。しかしこの先、実験とか勉強とかで作業してくと、8GBでは容量不足です。そこで、VirtualBoxで20GBのディスクを追加し、LVMでrootパーティションを拡張してみます。 #more|| * VirtualBox側でのディスク追加 VMを一旦シャットダウンし、20GBのディスクを追加して、起動する。起動後に "lsblk" コマンドで確認したところ、"/dev/sdb" として認識された。 #pre||> # 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 ||< * PV(Physical Volume)の作成 fdiskでLVM用のパーティション追加→pvcreateでPV作成。 #pre||> # 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" でパーティション作れてた。 #pre||> # 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作成: #pre||> # pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created ||< * VG(Volume Group)に追加 現状のVolume Group確認: #pre||> # 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" を追加する: #pre||> # 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(Logical Volume) 拡張 現在のLV一覧: #pre||> # 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" のオプションで "+" がついていることを確認すること。 #pre||> # 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として追加されてことが分かる: #pre||> # 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で実行できる。マウントポイントを指定する。 以下の例("/")のようにアンマウントしておく必要はない。マウントしたままできる。 #pre||> # 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コマンドで確認: #pre||> $ 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 ||< 参考: - Linux LVM (Logical Volume Manager) まとめ -- https://www.upken.jp/kb/linux-lvm.html #navi_footer|技術|