lvm简介
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
lvm相关术语
-
PE(Physical Extend)物理拓展
PE是LVM的最小存储单元,它有点像文件系统
里面的block。默认PE大小是4M。 -
PV(Physical Volume)物理卷
磁盘分区只有转换成PV后才能被LVM使用。 -
VG(Volume Group)卷组
卷组类似一个资源池,由PV组成。 -
LV(Logical Volume)逻辑卷
类似于非LVM系统中的磁盘分区,逻辑卷
建立在卷组VG之上。可以在LV上创建文件系统。
————————————————————————————————————————————————————
添加两块硬盘
查看磁盘
将两块磁盘进行分区 设置lvm类型
将物理分区转换成物理卷 并查看
[root@localhost ~]# pvcreate /dev/sdb1 /dev/sdc1
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdc1" successfully created.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb1 lvm2 --- <10.00g <10.00g
/dev/sdc1 lvm2 --- <10.00g <10.00g
详细查看
[root@localhost ~]# pvdisplay
创建卷组 并把物理卷添加到卷组
[root@localhost ~]# vgcreate vg1 /dev/sdb1 /dev/sdc1
Volume group "vg1" successfully created
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
vg1 2 0 0 wz--n- 19.99g 19.99g
详细查看
[root@localhost ~]# vgdisplay
创建逻辑卷
[root@localhost ~]# lvcreate -n lv1 -L 12G vg1
逻辑卷名 指定大小 卷组名
Logical volume "lv1" created.
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
lv1 vg1 -wi-a----- 12.00g
详情查看
[root@localhost ~]# lvdisplay
创建文件系统
[root@localhost ~]# ls -l /dev/vg1/lv1
lrwxrwxrwx. 1 root root 7 11月 16 18:22 /dev/vg1/lv1 -> ../dm-2
[root@localhost ~]# mkfs.ext4 /dev/vg1/lv1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
786432 inodes, 3145728 blocks
157286 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2151677952
96 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, 2654208
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
挂载逻辑分区
lv 逻辑卷扩容
[root@localhost ~]# lvextend -L +2G /dev/vg1/lv1
Size of logical volume vg1/lv1 changed from 12.00 GiB (3072 extents) to 14.00 GiB (3584 extents).
Logical volume vg1/lv1 successfully resized.
[root@localhost ~]# resize2fs /dev/vg1/lv1
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg1/lv1 is mounted on /mnt; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 2
The filesystem on /dev/vg1/lv1 is now 3670016 blocks long.
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G 1.2G 16G 7% /
devtmpfs 899M 0 899M 0% /dev
tmpfs 911M 0 911M 0% /dev/shm
tmpfs 911M 9.5M 902M 2% /run
tmpfs 911M 0 911M 0% /sys/fs/cgroup
/dev/sda1 1014M 142M 873M 14% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/mapper/vg1-lv1 14G 41M 13G 1% /mnt
lv 逻辑卷缩容
先卸载已经挂载的LV
[root@localhost ~]# umount /dev/vg1/lv1
[root@localhost ~]# e2fsck -f /dev/vg1/lv1
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/vg1/lv1: 11/917504 files (0.0% non-contiguous), 100612/3670016 blocks
缩小文件系统
[root@localhost ~]# resize2fs /dev/vg1/lv1 12G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg1/lv1 to 3145728 (4k) blocks.
The filesystem on /dev/vg1/lv1 is now 3145728 blocks long.
[root@localhost ~]# lvreduce -L -2G /dev/vg1/lv1
WARNING: Reducing active logical volume to 12.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg1/lv1? [y/n]: y
Size of logical volume vg1/lv1 changed from 14.00 GiB (3584 extents) to 12.00 GiB (3072 extents).
Logical volume vg1/lv1 successfully resized.
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
lv1 vg1 -wi-a----- 12.00g
重新挂载
[root@localhost ~]# mount /dev/vg1/lv1 /mnt/
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G 1.2G 16G 7% /
devtmpfs 899M 0 899M 0% /dev
tmpfs 911M 0 911M 0% /dev/shm
tmpfs 911M 9.5M 902M 2% /run
tmpfs 911M 0 911M 0% /sys/fs/cgroup
/dev/sda1 1014M 142M 873M 14% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/mapper/vg1-lv1 12G 41M 12G 1% /mnt
vg 卷组扩容
再添加一块硬盘
对新添加的硬盘进行分区,设置lvm类型
添加扩容vg1 并查看vg1
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
vg1 2 0 0 wz--n- 19.99g 19.99g
[root@localhost ~]# vgextend vg1 /dev/sdd1
Volume group "vg1" successfully extended
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
vg1 3 1 0 wz--n- <29.99g <17.99g
VG 卷组缩容
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
vg1 3 1 0 wz--n- <29.99g <17.99g
[root@localhost ~]# vgreduce vg1 /dev/sdd1
Removed "/dev/sdd1" from volume group "vg1"
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
vg1 2 1 0 wz--n- 19.99g 7.99g
lvm 快照卷
创建两个挂载目录
[root@localhost ~]# mkdir /lvm1
[root@localhost ~]# mkdir /lvm2
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
lv1 vg1 -wi-a----- 12.00g
[root@localhost ~]# mount /dev/vg1/lv1 /lvm1
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G 1.2G 16G 7% /
devtmpfs 899M 0 899M 0% /dev
tmpfs 911M 0 911M 0% /dev/shm
tmpfs 911M 9.6M 902M 2% /run
tmpfs 911M 0 911M 0% /sys/fs/cgroup
/dev/sda1 1014M 142M 873M 14% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/mapper/vg1-lv1 12G 41M 12G 1% /lvm1
在挂载目录创建个文件
[root@localhost ~]# echo "hello" >> /lvm1/test.txt
[root@localhost ~]# ls /lvm1/
lost+found test.txt
创建快照卷
[root@localhost ~]# lvcreate -L 1G -n lv1-snap -s /dev/vg1/lv1
Logical volume "lv1-snap" created.
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
lv1 vg1 owi-aos--- 12.00g
lv1-snap vg1 swi-a-s--- 1.00g lv1 0.01
[root@localhost ~]# mount /dev/vg1/lv1-snap /lvm2/
[root@localhost ~]# ls /lvm2/
lost+found test.txt