本篇介绍LVM管理中的命令lvresize,我们先创建一个卷组VG VolGroup02,它建立在磁盘/dev/sdc (大小为8G)上。创建逻辑卷LV时,我们故意只使用了一小部分。具体情况如下所示
[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name VolGroup02
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 7.97 GiB
PE Size 32.00 MiB
Total PE 255
Alloc PE / Size 0 / 0
Free PE / Size 255 / 7.97 GiB
VG UUID SETgjx-dobd-Uayt-AWgN-HKID-hsYe-tEotIS
[root@localhost ~]# lvcreate -L7.97 -n LogVol00 VolGroup02
Rounding up size to full physical extent 32.00 MiB
Logical volume "LogVol00" created
[root@localhost ~]# mkfs -t ext4 /dev/VolGroup02/LogVol00
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
8192 inodes, 32768 blocks
1638 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=33554432
4 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
8193, 24577
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 23 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@localhost ~]# cd /
[root@localhost /]# mkdir /u01
[root@localhost /]# mount /dev/VolGroup02/LogVol00 /u01
[root@localhost /]# vi /etc/fstab
#
# /etc/fstab
# Created by anaconda on Mon Aug 17 15:08:21 2015
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=3440ad55-6486-45ed-876f-e942b08013bf / ext4 defaults 1 1
UUID=d3abb655-db70-4c42-967d-57c421abfda0 /boot ext4 defaults 1 2
UUID=660624ff-335d-42ca-b779-f130a80d9da8 /home ext4 defaults 1 2
UUID=6f534bf0-e486-4937-84ae-ed1221cf34f1 swap swap defaults 0 0
/dev/VolGroup02/LogVol00 /u01 ext4 defaults 1 1
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
此时,我们要放大文件系统/u01的大小,那么就需要使用到lvresize 放大LV容量
[root@localhost ~]# lvscan
ACTIVE '/dev/VolGroup02/LogVol00' [32.00 MiB] inherit
[root@localhost ~]# lvdisplay /dev/VolGroup02/LogVol00
--- Logical volume ---
LV Path /dev/VolGroup02/LogVol00
LV Name LogVol00
VG Name VolGroup02
LV UUID OCHwx1-EL9P-6C5J-RNuz-2Xu5-4215-H3xt5s
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2015-09-01 10:50:10 +0800
LV Status available
# open 1
LV Size 32.00 MiB
Current LE 1
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
[root@localhost ~]# lvresize -L +7.89G /dev/VolGroup02/LogVol00
Rounding size to boundary between physical extents: 7.91 GiB
Size of logical volume VolGroup02/LogVol00 changed from 32.00 MiB (1 extents) to 7.94 GiB (254 extents).
Logical volume LogVol00 successfully resized
[root@localhost ~]# resize2fs -p /dev/VolGroup02/LogVol00
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/VolGroup02/LogVol00 is mounted on /u01; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 32
Performing an on-line resize of /dev/VolGroup02/LogVol00 to 8323072 (1k) blocks.
The filesystem on /dev/VolGroup02/LogVol00 is now 8323072 blocks long.
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 27G 6.0G 20G 24% /
tmpfs 5.9G 0 5.9G 0% /dev/shm
/dev/sda1 477M 32M 420M 8% /boot
/dev/sdb1 99G 60M 94G 1% /home
/dev/mapper/VolGroup02-LogVol00
7.7G 2.7M 7.3G 1% /u01
如果我们此时在虚拟机上将磁盘从8G扩展为10G,那么要如何利用扩展的磁盘空间呢?
[root@localhost u01]# fdisk -l
Disk /dev/sda: 42.9 GB, 42949672960 bytes
64 heads, 32 sectors/track, 40960 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000462cf
Device Boot Start End Blocks Id System
/dev/sda1 * 2 501 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 502 28672 28847104 83 Linux
Partition 2 does not end on cylinder boundary.
/dev/sda3 28673 40960 12582912 82 Linux swap / Solaris
Partition 3 does not end on cylinder boundary.
Disk /dev/sdc: 8589 MB, 8589934592 bytes
64 heads, 32 sectors/track, 8192 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x98c391fe
Device Boot Start End Blocks Id System
/dev/sdc1 1 8192 8388592 83 Linux
Disk /dev/sdb: 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: 0x0002488e
Device Boot Start End Blocks Id System
/dev/sdb1 1 13055 104856576 83 Linux
Disk /dev/mapper/VolGroup02-LogVol00: 33 MB, 33554432 bytes
255 heads, 63 sectors/track, 4 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
重启过后才能看到/dev/sdc的空间变化情况。
新建分区
[root@localhost ~]# fdisk /dev/sdc
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): p
Disk /dev/sdc: 10.7 GB, 10737418240 bytes
64 heads, 32 sectors/track, 10240 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x98c391fe
Device Boot Start End Blocks Id System
/dev/sdc1 1 8192 8388592 83 Linux
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (8193-10240, default 8193):
Using default value 8193
Last cylinder, +cylinders or +size{K,M,G} (8193-10240, default 10240):
Using default value 10240
Command (m for help): p
Disk /dev/sdc: 10.7 GB, 10737418240 bytes
64 heads, 32 sectors/track, 10240 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x98c391fe
Device Boot Start End Blocks Id System
/dev/sdc1 1 8192 8388592 83 Linux
/dev/sdc2 8193 10240 2097152 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.
新建物理卷PV
[root@localhost ~]# pvcreate /dev/sdc2
Physical volume "/dev/sdc2" successfully created
放大VG容量
[root@localhost ~]# vgextend /dev/mapper/VolGroup02 /dev/sdc2
Volume group "VolGroup02" successfully extended
放大LV容量
[root@localhost ~]# pvscan
PV /dev/sdc1 VG VolGroup02 lvm2 [7.97 GiB / 32.00 MiB free]
PV /dev/sdc2 VG VolGroup02 lvm2 [1.97 GiB / 1.97 GiB free]
Total: 2 [9.94 GiB] / in use: 2 [9.94 GiB] / in no VG: 0 [0 ]
[root@localhost ~]# pvdisplay /dev/sdc2
--- Physical volume ---
PV Name /dev/sdc2
VG Name VolGroup02
PV Size 2.00 GiB / not usable 32.00 MiB
Allocatable yes
PE Size 32.00 MiB
Total PE 63
Free PE 63
Allocated PE 0
PV UUID qP1PGl-krr9-vCTY-vWgN-MsKL-rn1x-zAhmmc
[root@localhost ~]# lvextend -L +1.97G /dev/VolGroup02/LogVol00
Rounding size to boundary between physical extents: 2.00 GiB
Size of logical volume VolGroup02/LogVol00 changed from 7.94 GiB (254 extents) to 9.94 GiB (318 extents).
Logical volume LogVol00 successfully resized
[root@localhost ~]# resize2fs /dev/VolGroup02/LogVol00
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/VolGroup02/LogVol00 is mounted on /u01; on-line resizing required
old desc_blocks = 32, new_desc_blocks = 40
Performing an on-line resize of /dev/VolGroup02/LogVol00 to 10420224 (1k) blocks.
The filesystem on /dev/VolGroup02/LogVol00 is now 10420224 blocks long.
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 27G 6.0G 20G 24% /
tmpfs 5.9G 0 5.9G 0% /dev/shm
/dev/sda1 477M 32M 420M 8% /boot
/dev/sdb1 99G 60M 94G 1% /home
/dev/mapper/VolGroup02-LogVol00
9.7G 2.5M 9.2G 1% /u01
[root@localhost ~]#