Linux中的LVM之增加容量与删除卷的方法详解

  放大LV容量涉及到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的空间变化情况。



  删除物理卷

  删除卷LVM管理中的命令vgreduce, pvremove:

  vgreduce:通过删除LVM卷组中的物理卷来减少卷组容量。注意:不能删除LVM卷组中剩余的最后一个物理卷

  pvremove: 用于删除一个存在的物理卷。使用pvremove指令删除物理卷时,它将LVM分区上的物理卷信息删除,使其不再被视为一个物理卷。

  在删除物理卷PV之前,必须将服务器的分区信息、卷组信息、物理卷信息、逻辑卷信息都掌握清楚,避免出现失误或误操作。

  复制代码

  代码如下:

  [root@localhost ~]# fdisk -l

  Disk /dev/sda: 128.8 GB, 128849018880 bytes

  255 heads, 63 sectors/track, 15665 cylinders

  Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot Start End Blocks Id System

  /dev/sda1 * 1 13 104391 83 Linux

  /dev/sda2 14 10443 83778975 8e Linux LVM

  /dev/sda3 10444 15665 41945715 83 Linux

  [root@localhost ~]# vgscan

  Reading all physical volumes. This may take a while...

  Found volume group "VolGroup00" using metadata type lvm2

  [root@localhost ~]# pvscan

  PV /dev/sda2 VG VolGroup00 lvm2 [79.88 GB / 0 free]

  PV /dev/sda3 VG VolGroup00 lvm2 [40.00 GB / 40.00 GB free]

  Total: 2 [119.88 GB] / in use: 2 [119.88 GB] / in no VG: 0 [0 ]

  [root@localhost ~]# pvdisplay

  --- Physical volume ---

  PV Name /dev/sda2

  VG Name VolGroup00

  PV Size 79.90 GB / not usable 23.41 MB

  Allocatable yes (but full)

  PE Size (KByte) 32768

  Total PE 2556

  Free PE 0

  Allocated PE 2556

  PV UUID YGtB2J-ZKJr-mV62-NluQ-2DGy-vuUT-cCc1lo

  --- Physical volume ---

  PV Name /dev/sda3

  VG Name VolGroup00

  PV Size 40.00 GB / not usable 2.61 MB

  Allocatable yes

  PE Size (KByte) 32768

  Total PE 1280

  Free PE 1280

  Allocated PE 0

  PV UUID wsnv13-7j1H-SH8q-hl6k-HpNc-x4WU-gM7LzW

  [root@localhost ~]# lvscan

  ACTIVE '/dev/VolGroup00/LogVol00' [77.91 GB] inherit

  ACTIVE '/dev/VolGroup00/LogVol01' [1.97 GB] inherit

  [root@localhost ~]# lvs

  LV VG Attr LSize Origin Snap% Move Log Copy% Convert

  LogVol00 VolGroup00 -wi-ao 77.91G

  LogVol01 VolGroup00 -wi-ao 1.97G

  vgreduce参数:

  -a:如果命令行中没有指定要删除的物理卷,则删除所有的空物理卷;

  --removemissing:删除卷组中丢失的物理卷,使卷组恢复正常状态。

  复制代码

  代码如下:

  [root@localhost ~]# vgreduce VolGroup00 /dev/sda3

  Removed "/dev/sda3" from volume group "VolGroup00"

  [root@localhost ~]#



  复制代码

  代码如下:

  [root@localhost ~]# pvscan

  PV /dev/sda2 VG VolGroup00 lvm2 [79.88 GB / 0 free]

  PV /dev/sda3 lvm2 [40.00 GB]

  Total: 2 [119.88 GB] / in use: 1 [79.88 GB] / in no VG: 1 [40.00 GB]

  [root@localhost ~]# pvs

  PV VG Fmt Attr PSize PFree

  /dev/sda2 VolGroup00 lvm2 a- 79.88G 0

  /dev/sda3 lvm2 a- 40.00G 40.00G

  [root@localhost ~]# pvremove /dev/sda3

  Labels on physical volume "/dev/sda3" successfully wiped

  [root@localhost ~]# pvscan

  PV /dev/sda2 VG VolGroup00 lvm2 [79.88 GB / 0 free]

  Total: 1 [79.88 GB] / in use: 1 [79.88 GB] / in no VG: 0 [0 ]

(0)

相关推荐