LVM全称为逻辑卷管理,是目前红帽主推的一种磁盘管理机制,普通的磁盘分区管理方式在逻辑分区划分好之后就无法再改变其大小,而LVM则可以解决这个问题,它主要通过将块设备(磁盘分区)设置为PV(物理卷),再将一个或多个PV组建成一个VG(逻辑卷组),再从VG中创建LV(逻辑卷),而VG中的PV数量可以增减,同样LV的大小也可以根据需求来增减。
在centos6中的示例:
1、创建一个大小为10G的逻辑卷并挂载使用。
(1)创建一个大小为20G的磁盘分区,并将此磁盘分区类型ID设置为8e(Linux LVM)。
[root@localhost ~]# fdisk /dev/sdb
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): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-6527, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-6527, default 6527): +20G
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# partx -a /dev/sdb
BLKPG: Device or resource busy
error adding partition 1
(2)将/dev/sdb1设置为PV。
[root@localhost ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
(3)创建一个VG,并使/dev/sdb1成为其成员。
[root@localhost ~]# vgcreate myvg /dev/sdb1
Volume group "myvg" successfully created
*可使用-s 选项指定PE大小,创建后如果再要修改则只能重新创建VG;如果LVM版本号为1,则默认4M的PE将导致LV最大只能到256G,LVM2则没有这个限制。
(4)在myvg中创建一个大小为10G的LV。
[root@localhost ~]# lvcreate -L 10G -n lvtest myvg
Logical volume "lvtest" created.
(5)格式化并挂载此LV。
[root@localhost ~]# mkfs.ext4 /dev/myvg/lvtest
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2684354560
80 block groups
32768 blocks per group, 32768 fragments per group
8192 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 26 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@localhost ~]# mount /dev/myvg/lvtest /test
2、扩展LV的大小至30G。
(1)扩展VG的大小
[root@localhost ~]# vgextend myvg /dev/sdb2
Volume group "myvg" successfully extended
(2)扩展LV的大小
[root@localhost ~]# lvextend -L +20 /dev/myvg/lvtest
Size of logical volume myvg/lvtest changed from 10.00 GiB (2560 extents) to 10.02 GiB (2565 extents).
Logical volume lvtest successfully resized
(3)扩展此LV文件系统的大小
[root@localhost ~]# resize2fs /dev/myvg/lvtest
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg/lvtest is mounted on /test; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/myvg/lvtest to 2626560 (4k) blocks.
The filesystem on /dev/myvg/lvtest is now 2626560 blocks long.
3、缩减此LV的大小至5G
(1)卸载此LV
[root@localhost ~]# umount /dev/myvg/lvtest
(2)强制检测此LV
[root@localhost ~]# fsck.ext4 -f /dev/myvg/lvtest
e2fsck 1.41.12 (17-May-2010)
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/myvg/lvtest: 11/663552 files (0.0% non-contiguous), 80177/2626560 blocks
(3)缩减此LV中文件系统大小至5G
[root@localhost ~]# resize2fs /dev/myvg/lvtest 5G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/myvg/lvtest to 1310720 (4k) blocks.
The filesystem on /dev/myvg/lvtest is now 1310720 blocks long.
(4)缩减此LV的大小至5G
[root@localhost ~]# lvreduce -L 5G /dev/myvg/lvtest
WARNING: Reducing active logical volume to 5.00 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lvtest? [y/n]: y
Size of logical volume myvg/lvtest changed from 10.02 GiB (2565 extents) to 5.00 GiB (1280 extents).
Logical volume lvtest successfully resized
(5)重新挂载此LV
[root@localhost ~]# mount /dev/myvg/lvtest /test
(6)查看此LV的目前的大小
[root@localhost ~]# lvdisplay /dev/myvg/lvtest
--- Logical volume ---
LV Path /dev/myvg/lvtest
LV Name lvtest
VG Name myvg
LV UUID ovpqxD-lLjJ-lNAk-Ga5a-AV2y-gaVS-h8PpyQ
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2019-01-08 10:26:40 +0800
LV Status available
# open 1
LV Size 5.00 GiB
Current LE 1280
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:3
*缩减LV后的空间大小不能小于文件系统已使用的空间大小