orenoblog

エンジニアになりたいExcel方眼紙erの物語

LVM Typeのパーティションを拡張する

起動したAMIのディスクボリュームがLVMだったので、partedでの既存パーティション拡張はできません。

LVMなんだから新しいパーティションを作成してvgextendしたら良いのでは・・・と思うものの、

既存パーティションが拡張できないか試してみました。sfdiskを使います。

参考m(__)m

LVMタイプのパーティション/dev/xvda2 を拡張します

# fdisk -l /dev/xvda
Disk /dev/xvda: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000eacf6

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/xvda2              64        2025    15751168   8e  Linux LVM
# sfdisk -d /dev/xvda > xvda.dump
# vi xvda.dump
# partition table of /dev/xvda
unit: sectors

/dev/xvda1 : start=     2048, size=  1024000, Id=83, bootable
/dev/xvda2 : start=  1026048, size= ★208686462(※cylinders * heads * sectors - start=のサイズ1026048), Id=8e
/dev/xvda3 : start=        0, size=        0, Id= 0
/dev/xvda4 : start=        0, size=        0, Id= 0
# sfdisk /dev/xvda --force < xvda.dump
Checking that no-one is using this disk right now ...
BLKRRPART: Device or resource busy

This disk is currently in use - repartitioning is probably a bad idea.
Umount all file systems, and swapoff all swap partitions on this disk.
Use the --no-reread flag to suppress this check.

Disk /dev/xvda: 13054 cylinders, 255 heads, 63 sectors/track
Old situation:
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/xvda1   *      0+     63-     64-    512000   83  Linux
/dev/xvda2         63+   2024-   1961-  15751168   8e  Linux LVM
/dev/xvda3          0       -       0          0    0  Empty
/dev/xvda4          0       -       0          0    0  Empty
New situation:
Units = sectors of 512 bytes, counting from 0

   Device Boot    Start       End   #sectors  Id  System
/dev/xvda1   *      2048   1026047    1024000  83  Linux
/dev/xvda2       1026048 209712509  208686462  8e  Linux LVM
/dev/xvda3             0         -          0   0  Empty
/dev/xvda4             0         -          0   0  Empty
Warning: partition 1 does not end at a cylinder boundary
Successfully wrote the new partition table

Re-reading the partition table ...
BLKRRPART: Device or resource busy
The command to re-read the partition table failed.
Run partprobe(8), kpartx(8) or reboot your system now,
before using mkfs

If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
# shutdown -r -y now
  • 再起動後のfdisk
# fdisk -l

Disk /dev/xvda: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000eacf6

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/xvda2              64       13054   104343231   8e  Linux LVM

Disk /dev/mapper/VolGroup-lv_root: 15.3 GB, 15271460864 bytes
255 heads, 63 sectors/track, 1856 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/mapper/VolGroup-lv_swap: 855 MB, 855638016 bytes
255 heads, 63 sectors/track, 104 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
  • VGの確認
# vgdisplay
  --- Volume group ---
  VG Name               VolGroup
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  7
  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               15.02 GiB
  PE Size               4.00 MiB
  Total PE              3845
  Alloc PE / Size       3845 / 15.02 GiB
  Free  PE / Size       0 / 0
  VG UUID               lvi8Kt-MMja-nTvI-terh-7ljb-ImyV-SScwRk
  • PV/LVMの拡張
# pvresize /dev/xvda2
  Physical volume "/dev/xvda2" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized
# vgdisplay
  --- Volume group ---
  VG Name               VolGroup
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  8
  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               99.51 GiB
  PE Size               4.00 MiB
  Total PE              25474
  Alloc PE / Size       3845 / 15.02 GiB
★  Free  PE / Size       21629 / 84.49 GiB ←このFree PEを割り当てる
  VG UUID               lvi8Kt-MMja-nTvI-terh-7ljb-ImyV-SScwRk

# lvextend -l +21629 /dev/mapper/VolGroup-lv_root /dev/xvda2
  Extending logical volume lv_root to 98.71 GiB
  Logical volume lv_root successfully resized

# resize2fs /dev/mapper/VolGroup-lv_root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/VolGroup-lv_root is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 7
Performing an on-line resize of /dev/mapper/VolGroup-lv_root to 25876480 (4k) blocks.
The filesystem on /dev/mapper/VolGroup-lv_root is now 25876480 blocks long.
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       98G  1.1G   92G   2% /
tmpfs                 938M     0  938M   0% /dev/shm
/dev/xvda1            485M   54M  407M  12% /boot

です。