放大 LV 容量
我们不是说 LVM 最大的特色就是弹性调整磁盘容量吗?好!那我们就来处理一下,如果要放大 LV 的容量时, 该如何进行完整的步骤呢?其实一点都不难喔!你只要这样做即可:
1. 用 fdisk 设定新的具有 8e system ID 的 partition
2. 利用 pvcreate 建置 PV
3. 利用 vgextend 将 PV 加入我们的 ingvg
4. 利用 lvresize 将新加入的 PV 内的 PE 加入 inglv 中
5. 透过 resize2fs 将文件系统的容量确实增加!
#1.处理一个新磁盘 /dev/sdf [root@linux ~]# mkfs -t ext3 /dev/sdf mke2fs 1.39 (29-May-2006) /dev/sdf is entire device, not just one partition! Proceed anyway? (y,n) y Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 1048576 inodes, 2097152 blocks 104857 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=2147483648 64 block groups 32768 blocks per group, 32768 fragments per group 16384 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 35 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. #2.新建新的PV [root@linux ~]# pvcreate /dev/sdf Physical volume "/dev/sdf" successfully created [root@linux ~]# pvscan /dev/cdrom: open failed: 只读文件系统 Attempt to close device '/dev/cdrom' which is not open. PV /dev/sdb1 VG ingvg lvm2 [7.98 GB / 0 free] PV /dev/sdc1 VG ingvg lvm2 [7.98 GB / 0 free] PV /dev/sdd1 VG ingvg lvm2 [7.98 GB / 0 free] PV /dev/sde1 VG ingvg lvm2 [7.98 GB / 0 free] PV /dev/sdf lvm2 [8.00 GB] Total: 5 [39.94 GB] / in use: 4 [31.94 GB] / in no VG: 1 [8.00 GB] #3.加大VG [root@linux ~]# vgextend ingvg /dev/sdf /dev/cdrom: open failed: 只读文件系统 Attempt to close device '/dev/cdrom' which is not open. Volume group "ingvg" successfully extended [root@linux ~]# vgdisplay --- Volume group --- VG Name ingvg System ID Format lvm2 Metadata Areas 5 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 0 Max PV 0 Cur PV 5 Act PV 5 VG Size 39.92 GB PE Size 16.00 MB Total PE 2555 Alloc PE / Size 2044 / 31.94 GB Free PE / Size 511 / 7.98 GB VG UUID NOdo5r-CHA0-W9D8-wBRj-ydV0-3UGm-XJx0vI #4.放大LV [root@linux ~]# lvresize -l +511 /dev/ingvg/inglv Extending logical volume inglv to 39.92 GB Logical volume inglv successfully resized [root@linux ~]# lvdisplay --- Logical volume --- LV Name /dev/ingvg/inglv VG Name ingvg LV UUID 4KbMKd-AJkf-z0fi-KtWP-zT5C-qirS-IkVFDv LV Write Access read/write LV Status available # open 0 LV Size 39.92 GB Current LE 2555 Segments 5 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:1 [root@linux ~]# df 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/sda3 5991232 2655248 3026736 47% / /dev/sda1 101086 11373 84494 12% /boot tmpfs 517548 0 517548 0% /dev/shm /dev/mapper/ingvg-inglv 32963440 180292 31108704 1% /mnt/lvm #5.完整的将LV的容量扩充到整个文件系统 [root@linux ~]# resize2fs /dev/ingvg/inglv resize2fs 1.39 (29-May-2006) Filesystem at /dev/ingvg/inglv is mounted on /mnt/lvm; on-line resizing required Performing an on-line resize of /dev/ingvg/inglv to 10465280 (4k) blocks. The filesystem on /dev/ingvg/inglv is now 10465280 blocks long. [root@linux ~]# df 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/sda3 5991232 2655248 3026736 47% / /dev/sda1 101086 11373 84494 12% /boot tmpfs 517548 0 517548 0% /dev/shm /dev/mapper/ingvg-inglv 41204288 180244 38934368 1% /mnt/lvm
#1.先找出/dev/sdf的容量大小,并尝试计算文件系统需要缩小到多少。 [root@linux ~]# pvdisplay ... ... --- Physical volume --- PV Name /dev/sdf VG Name ingvg PV Size 8.00 GB / not usable 16.00 MB Allocatable yes (but full) PE Size (KByte) 16384 Total PE 511 Free PE 0 Allocated PE 511 PV UUID sMs5WX-L3jO-8pyE-PBVj-WR70-5PTx-ZXrI4g #从上面可以看出/dev/sdf含有511个PE,那么如果使用resize2fs,则总量减去8GB就对了! [root@linux ~]# pvscan /dev/cdrom: open failed: 只读文件系统 Attempt to close device '/dev/cdrom' which is not open. PV /dev/sdb1 VG ingvg lvm2 [7.98 GB / 0 free] PV /dev/sdc1 VG ingvg lvm2 [7.98 GB / 0 free] PV /dev/sdd1 VG ingvg lvm2 [7.98 GB / 0 free] PV /dev/sde1 VG ingvg lvm2 [7.98 GB / 0 free] PV /dev/sdf VG ingvg lvm2 [7.98 GB / 0 free] Total: 5 [39.92 GB] / in use: 5 [39.92 GB] / in no VG: 0 [0 ] #从上面可以看出扣除/dev/sdf,则剩余容量有:7.98 * 4 = 31.92GB #2.直接降低文件系统容量 [root@linux ~]# resize2fs /dev/ingvg/inglv 31920M resize2fs 1.39 (29-May-2006) Filesystem at /dev/ingvg/inglv is mounted on /mnt/lvm; on-line resizing required On-line shrinking from 10465280 to 8171520 not supported. #从上面可以看见,增加可以在线进行,减少就不可以啦!所以要这样做: [root@linux ~]# umount /dev/ingvg/inglv [root@linux ~]# resize2fs /dev/ingvg/inglv 31920M resize2fs 1.39 (29-May-2006) Please run 'e2fsck -f /dev/ingvg/inglv' first. #它要我们先进行磁盘检查。 [root@linux ~]# e2fsck -f /dev/ingvg/inglv e2fsck 1.39 (29-May-2006) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/ingvg/inglv: 12/5232640 files (8.3% non-contiguous), 209269/10465280 blocks [root@linux ~]# resize2fs /dev/ingvg/inglv 31920M resize2fs 1.39 (29-May-2006) Resizing the filesystem on /dev/ingvg/inglv to 8171520 (4k) blocks. The filesystem on /dev/ingvg/inglv is now 8171520 blocks long. [root@linux ~]# mount /dev/ingvg/inglv /mnt/lvm/ [root@linux ~]# df /mnt/lvm/ 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/mapper/ingvg-inglv 32172936 180292 30685204 1% /mnt/lvm #3.降低LV的容量,同时我们知道/dev/sdf有511个PE。 [root@linux ~]# lvresize -l -511 /dev/ingvg/inglv WARNING: Reducing active and open logical volume to 31.94 GB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce inglv? [y/n]: y Reducing logical volume inglv to 31.94 GB Logical volume inglv successfully resized [root@linux ~]# lvdisplay --- Logical volume --- LV Name /dev/ingvg/inglv VG Name ingvg LV UUID 4KbMKd-AJkf-z0fi-KtWP-zT5C-qirS-IkVFDv LV Write Access read/write LV Status available # open 1 LV Size 31.94 GB Current LE 2044 Segments 4 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:1 #4.先确认/dev/sdf是否将PE都删除了。 [root@linux ~]# pvdisplay ... ... --- Physical volume --- PV Name /dev/sdf VG Name ingvg PV Size 8.00 GB / not usable 16.00 MB Allocatable yes PE Size (KByte) 16384 Total PE 511 Free PE 511 Allocated PE 0 PV UUID sMs5WX-L3jO-8pyE-PBVj-WR70-5PTx-ZXrI4g #5.移动PE(这里因为第4步中Free PE已经有511个,所以这一步在这里不用执行。) [root@linux ~]# pvmove /dev/sdf /dev/sdb # pvmove 来源PV 目标PV ,可以将 /dev/sdf 内的 PE 全部移动到 /dev/sdb # 尚未被使用的 PE 去 (Free PE)。 #6.将/dev/sdf从VG中移除。 [root@linux ~]# vgdisplay --- Volume group --- VG Name ingvg System ID Format lvm2 Metadata Areas 5 Metadata Sequence No 8 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 5 Act PV 5 VG Size 39.92 GB PE Size 16.00 MB Total PE 2555 Alloc PE / Size 2044 / 31.94 GB Free PE / Size 511 / 7.98 GB VG UUID NOdo5r-CHA0-W9D8-wBRj-ydV0-3UGm-XJx0vI [root@linux ~]# vgreduce ingvg /dev/sdf Removed "/dev/sdf" from volume group "ingvg" [root@linux ~]# vgdisplay --- Volume group --- VG Name ingvg System ID Format lvm2 Metadata Areas 4 Metadata Sequence No 9 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 4 Act PV 4 VG Size 31.94 GB PE Size 16.00 MB Total PE 2044 Alloc PE / Size 2044 / 31.94 GB Free PE / Size 0 / 0 VG UUID NOdo5r-CHA0-W9D8-wBRj-ydV0-3UGm-XJx0vI [root@linux ~]# pvscan /dev/cdrom: open failed: 只读文件系统 Attempt to close device '/dev/cdrom' which is not open. PV /dev/sdb1 VG ingvg lvm2 [7.98 GB / 0 free] PV /dev/sdc1 VG ingvg lvm2 [7.98 GB / 0 free] PV /dev/sdd1 VG ingvg lvm2 [7.98 GB / 0 free] PV /dev/sde1 VG ingvg lvm2 [7.98 GB / 0 free] PV /dev/sdf lvm2 [8.00 GB] Total: 5 [39.94 GB] / in use: 4 [31.94 GB] / in no VG: 1 [8.00 GB] [root@linux ~]# pvremove /dev/sdf /dev/cdrom: open failed: 只读文件系统 Attempt to close device '/dev/cdrom' which is not open. Labels on physical volume "/dev/sdf" successfully wiped [root@linux ~]# pvscan /dev/cdrom: open failed: 只读文件系统 Attempt to close device '/dev/cdrom' which is not open. PV /dev/sdb1 VG ingvg lvm2 [7.98 GB / 0 free] PV /dev/sdc1 VG ingvg lvm2 [7.98 GB / 0 free] PV /dev/sdd1 VG ingvg lvm2 [7.98 GB / 0 free] PV /dev/sde1 VG ingvg lvm2 [7.98 GB / 0 free] Total: 4 [31.94 GB] / in use: 4 [31.94 GB] / in no VG: 0 [0 ]