你的位置:首页 > 操作系统

[操作系统]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


clip_image001[6]

此时,我们要放大文件系统/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


 

clip_image002[6]

 
[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


clip_image003[6]

 

如果我们此时在虚拟机上将磁盘从8G扩展为10G,那么要如何利用扩展的磁盘空间呢?

clip_image004[6]

[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


clip_image005[6]

重启过后才能看到/dev/sdc的空间变化情况。

clip_image006[6]

新建分区

[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 ~]#