day26 lvm逻辑卷的学习
day26逻辑卷的学习
励志语录: 简单的欲望唾手可得,高级的欲望需要克制才可以得到。
1.为什么要学习逻辑卷
目的是:为了不关机而增大磁盘的容量
lvm:也是把多个硬盘,组成一个较大的硬盘,但特点是后续可以继续加入新的硬盘,这个逻辑组的容量的扩大啦,等于这个硬盘的容量就更大啦。
使用这个逻辑卷组500G+100G
↓
获取部分的容量,化为一个逻辑卷(分区)
↓
逻辑卷进行格式化(分区进行格式化)
↓
挂载使用
但是如果你用了lvm,你可以将多个物理分区、抽象为一个逻辑卷组,并且这个逻辑卷组是可以动态扩容、缩容的。
当逻辑卷组容量不够了,只需要买新硬盘,通过命令再添加到这个指定的逻辑卷组中,可以在不停机的情况下,立即实现扩容,且被linux识别,那可是太舒服了。
2.什么是LVM

特别要记忆的名词
1. 物理卷 pv -> 磁盘
2.卷组 VG -> 多个磁盘组成的一个空间
3.逻辑卷 LV -> 向逻辑卷组中拿出的一个空间

这个图片上*画圈*是要记忆的
我们在声明一次
1.PV:物理卷处于LVM的最底层,相当于磁盘
2.VG:卷组,建立在PV之上可以划分多个pv ,简单来说是多个磁盘组成的区域
3.LV: 逻辑卷,建立在VG之上可以动态的改变大小的分区
3.LVM的重点的名词
普通的磁盘
↓
格式化文件系统,block
↓
挂载分区使用
lvm磁盘
↓
磁盘的格式化为pv
↓
pv加入卷组vG
↓
创建逻辑卷LV
↓
格式化文件的系统xfs ,逻辑卷
↓
最后用mount ,挂载使用
4.LVM的优点
1 可以跨多个磁盘
2 动态的扩展稳健的大小
3 保证数据的安全
5.LVM的常用的命令(重点)

5.1非常重要的命令
| 操作 | pv(磁盘) | vg(逻辑卷组) | LV(逻辑卷) |
|---|---|---|---|
| 列出(display) | pvs | vgs | lvs |
| 扩容(extend) | vgextend | lvextend | |
| 删除(remove) | pvremove | pvremove | lvremove |
| 改变(resize ) | vgsize |
5.2.PV命令这是有关磁盘的相关的命令
# 要进行lvm的操作
1. yum install lvm2 工具
[root@linux-yzk ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <26.00g 4.00m
[root@linux-yzk ~]#
pvscan
[root@client-242 ~]# pvscan
PV /dev/sda2 VG centos lvm2 [<19.00 GiB / 0 free]
PV /dev/sdb lvm2 [40.00 GiB]
Total: 2 [<59.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 1 [40.00 GiB]
[root@client-242 ~]#
[root@client-242 ~]# pvdisplay
1.准备好硬盘
/dev/sdb
2.对硬盘进行pv化,然后查看pv的信息
3.删除pv
[root@client-242 ~]# pvremove /dev/sdb
Labels on physical volume "/dev/sdb" successfully wiped.
5.3vg命令
vgs 查看机器上现有的卷组信息
[root@linux-yzk ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <26.00g 4.00m
[root@linux-yzk ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 27G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 26G 0 part
├─centos-root 253:0 0 23.3G 0 lvm /
└─centos-swap 253:1 0 2.7G 0 lvm [SWAP]
#可以看见只有一个逻辑卷组且来自于sda
来一个案例
# 1.将2块硬盘sdb , sdc 创建为vg-yzk
#第一件事是磁盘的pv 化
[root@linux-yzk ~]# pvcreate /dev/sdb /dev/sdc
WARNING: dos signature detected on /dev/sdb at offset 510. Wipe it? [y/n]: y
Wiping dos signature on /dev/sdb.
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
[root@linux-yzk ~]#
#第二件事是加入卷组
[root@linux-yzk ~]# vgcreate vg-yzk /dev/sdb /dev/sdc
Volume group "vg-yzk" successfully created
[root@linux-yzk ~]#
#第三件事是查看
[root@linux-yzk ~]# vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
Total PE 6655
Alloc PE / Size 6654 / 25.99 GiB
Free PE / Size 1 / 4.00 MiB
VG UUID MNtcVD-PcPj-hNFg-37TH-mDA9-k5dZ-b27fRl
--- Volume group ---
VG Name vg-yzk
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
VG UUID KXFDYr-Oepk-zhgA-s79K-vG1O-u7B7-yFX7lk
[root@linux-yzk ~]#
#删除刚才创建的vg-yzk 的卷组
[root@linux-yzk ~]# vgremove vg-yzk
Volume group "vg-yzk" successfully removed
[root@linux-yzk ~]#
6.LV的命令
lv的参数选项
lvcreate
-L 指定逻辑卷的大小,单位为“kKmMgGtT”字节
-l 指定逻辑卷的大小(PE个数)
-n 后面跟逻辑卷名
-s 创建快照
# 查看当前机器的逻辑卷的信息
[root@linux-yzk ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 23.29g
swap centos -wi-ao---- <2.70g
[root@linux-yzk ~]#
# 根据卷组,创建逻辑卷
[root@linux-yzk ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <26.00g 4.00m
/dev/sdb lvm2 --- 20.00g 20.00g
/dev/sdc lvm2 --- 20.00g 20.00g
[root@linux-yzk ~]#
# 可以看见有两块pv 被我们创建的 sdb , sdc
# 2.然后我们创建卷组
[root@linux-yzk ~]# vgcreate yzk /dev/sdb /dev/sdc
Volume group "yzk" successfully created
#我们就创建了一个名字叫yzk的卷组
#3.创建lv并且设定一半容量
[root@linux-yzk ~]# lvcreate -n lv1 -l 50% yzk
Specified % is unknown.
Invalid argument for --extents: 50%
Error during parsing of command line.
[root@linux-yzk ~]# lvcreate -n lv1 -l 50%VG yzk
WARNING: xfs signature detected on /dev/yzk/lv1 at offset 0. Wipe it? [y/n]: y
Wiping xfs signature on /dev/yzk/lv1.
Logical volume "lv1" created.
[root@linux-yzk ~]#
#4.我们来查看
[root@linux-yzk ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 23.29g
swap centos -wi-ao---- <2.70g
lv1 yzk -wi-a----- <20.00g
[root@linux-yzk ~]#
#最后我们来删除lv
[root@linux-yzk ~]# lvremove /dev/yzk/lv1
Do you really want to remove active logical volume yzk/lv1? [y/n]: y
Logical volume "lv1" successfully removed
[root@linux-yzk ~]#
lvm创建流程(重点)
要求
-
使用2块硬盘,容量分别是30G,30G
-
创建卷组,名字是vg0224
-
创建3个lv,名字依次是0224-lv1,0224-lv2,0224-lv3,容量分别是10G,15G,25G
-
3个逻辑卷,挂载点分别是/test1 /test2 /test3,文件系统分别是xfs、xfs、ext4
-
要求分别查看3个逻辑卷的文件系统信息
-
要求扩容0224-lv1,扩大到30G容量
1.安装lvm
yum install lvm2 -y
2.查看pv
[root@linux-yzk ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <26.00g 4.00m
/dev/sdb yzk lvm2 a-- <20.00g <20.00g
/dev/sdc yzk lvm2 a-- <20.00g <20.00g
4.创建vg sdb sdc创建为卷组,名字是 yzk
注意语法
[root@client-242 ~]# vgcreate yzk /dev/sdb /dev/sdc
Volume group "yzk" successfully created
[root@client-242 ~]#
[root@client-242 ~]#
5.查看vg
[root@linux-yzk ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <26.00g 4.00m
yzk 2 0 0 wz--n- 39.99g 39.99g
6.查看lv
[root@linux-yzk ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 23.29g
swap centos -wi-ao---- <2.70g
7.创建lv(创建分区)
一个lv1 10G ,一个lv2 15G
[root@linux-yzk ~]# lvcreate -n lv1 -L 10G yzk
Logical volume "lv1" created.
[root@linux-yzk ~]# lvcreate -n lv2 -L 15G yzk
Logical volume "lv2" created.
[root@linux-yzk ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 23.29g
swap centos -wi-ao---- <2.70g
lv1 yzk -wi-a----- 10.00g
lv2 yzk -wi-a----- 15.00g
[root@linux-yzk ~]#
# 查看/dev/卷组/
[root@linux-yzk ~]# ls /dev/yzk
lv1 lv2
[root@linux-yzk ~]#
# 格式化稳健的系统
[root@client-242 ~]# mkfs.xfs /dev/yzk/lv1
[root@client-242 ~]# mkfs.ext4 /dev/yzk/lv2
# 挂载lv
[root@linux-yzk ~]# mount /dev/yzk/lv1 /t1
[root@linux-yzk ~]# mount /dev/yzk/lv2 /t2
#查看挂载
[root@linux-yzk ~]# mount -l | grep t[1-2]
/dev/mapper/yzk-lv1 on /t1 type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
/dev/mapper/yzk-lv2 on /t2 type ext4 (rw,relatime,seclabel,data=ordered)
[root@linux-yzk ~]#
[root@linux-yzk ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.7G 0 1.7G 0% /dev
tmpfs 1.8G 0 1.8G 0% /dev/shm
tmpfs 1.8G 13M 1.7G 1% /run
tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup
/dev/mapper/centos-root 24G 6.3G 18G 27% /
/dev/sda1 1014M 241M 774M 24% /boot
tmpfs 351M 12K 351M 1% /run/user/42
tmpfs 351M 0 351M 0% /run/user/0
/dev/mapper/yzk-lv1 10G 33M 10G 1% /t1
/dev/mapper/yzk-lv2 15G 41M 14G 1% /t2
[root@linux-yzk ~]#
15.开机自动挂载
一定切记,如果你的设备发生了变化,一定要去修改/etc/fstab
否则系统开机,读取该fstab文件,找不到设备,无法正确挂载就会报错
进入紧急模式,直到你再次修复fstab文件
重启即可
把t1 t2设置为开机自动挂载
[root@client-242 ~]# tail -2 /etc/fstab
UUID="04fda700-511c-43d4-ae9a-d87d72ee7175" /t1 xfs defaults 0 0
/dev/mapper/vg1--0224-lv2 /t2 ext4 defaults 0 0
16.重启
reboot
LVM的扩容(重点)
先查看当前机器的lv情况,确定你要扩容的设备
[root@client-242 ~]# df -h |grep t2
/dev/mapper/vg1--0224-lv2 9.8G 37M 9.2G 1% /t2
扩容到20G需求
1. 你的卷组,容量还够不够
2. 卷组容量不够,加新硬盘,再次pv化,加入卷组就好了
方案1,卷组容量够
1.确认vg够不够
[root@client-242 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
vg1-0224 2 2 0 wz--n- 59.99g 29.99g
2.确认够用,直接lvextend扩容lv逻辑卷即可
给lv2增加10G
[root@client-242 ~]# lvextend -L +10G /dev/vg1-0224/lv2
Size of logical volume vg1-0224/lv2 changed from 10.00 GiB (2560 extents) to 20.00 GiB (5120 extents).
Logical volume vg1-0224/lv2 successfully resized.
[root@client-242 ~]#
[root@client-242 ~]#
[root@client-242 ~]# 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-0224 -wi-ao---- 20.00g
lv2 vg1-0224 -wi-ao---- 20.00g
用法2,直接,调整到25G大小
[root@client-242 ~]# lvextend -L 25G /dev/vg1-0224/lv2
Size of logical volume vg1-0224/lv2 changed from 20.00 GiB (5120 extents) to 25.00 GiB (6400 extents).
Logical volume vg1-0224/lv2 successfully resized.
[root@client-242 ~]#
[root@client-242 ~]# 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-0224 -wi-ao---- 20.00g
lv2 vg1-0224 -wi-ao---- 25.00g
3.虽然你调整了 lv2逻辑卷的大小,但是文件系统它不知道,你得告诉文件系统,也跟着调整分区的容量,以及重新设置block的数量
ext4文件系统,使用resize2fs命令
xfs文件系统,使用xfs_growfs调整大小
4.调整lv ext4文件系统的大小
[root@client-242 ~]# resize2fs /dev/mapper/vg1--0224-lv2
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/mapper/vg1--0224-lv2 is mounted on /t2; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 4
The filesystem on /dev/mapper/vg1--0224-lv2 is now 6553600 blocks long.
[root@client-242 ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 17G 1.6G 16G 9% /
devtmpfs devtmpfs 899M 0 899M 0% /dev
tmpfs tmpfs 911M 0 911M 0% /dev/shm
tmpfs tmpfs 911M 9.6M 902M 2% /run
tmpfs tmpfs 911M 0 911M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 142M 873M 14% /boot
/dev/mapper/vg1--0224-lv1 xfs 20G 33M 20G 1% /t1
/dev/mapper/vg1--0224-lv2 ext4 25G 44M 24G 1% /t2
tmpfs tmpfs 183M 0 183M 0% /run/user/0
[root@client-242 ~]#
5.调整lv1的文件系统,调整到50G
看看卷组还剩下多少,不够用了,就得扩大卷组了
[root@client-242 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
vg1-0224 2 2 0 wz--n- 59.99g 14.99g
[root@client-242 ~]#
[root@client-242 ~]#
情况2,卷组容量不够了
1.创建新物理卷,pv
步骤
关机、添加硬盘,开机
添加一个50G硬盘
[root@client-242 ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc /dev/sdd
给硬盘pv化
[root@client-242 ~]# pvcreate /dev/sdd
Physical volume "/dev/sdd" successfully created.
2.查看pv
pvs
3.查看vg
vgs
[root@client-242 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb vg1-0224 lvm2 a-- <40.00g 0
/dev/sdc vg1-0224 lvm2 a-- <20.00g 14.99g
/dev/sdd lvm2 --- 50.00g 50.00g
[root@client-242 ~]#
[root@client-242 ~]#
[root@client-242 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
vg1-0224 2 2 0 wz--n- 59.99g 14.99g
4.vg扩容
[root@client-242 ~]#
[root@client-242 ~]# vgextend vg1-0224 /dev/sdd
Volume group "vg1-0224" successfully extended
[root@client-242 ~]#
[root@client-242 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
vg1-0224 3 2 0 wz--n- <109.99g <64.99g
5.再次查看vg
[root@client-242 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
vg1-0224 3 2 0 wz--n- <109.99g <64.99g
6.扩容lv
[root@client-242 ~]#
[root@client-242 ~]# lvextend -L 50G /dev/vg1-0224/lv1
Size of logical volume vg1-0224/lv1 changed from 20.00 GiB (5120 extents) to 50.00 GiB (12800 extents).
Logical volume vg1-0224/lv1 successfully resized.
[root@client-242 ~]#
[root@client-242 ~]#
[root@client-242 ~]#
7.再次查看lv
[root@client-242 ~]#
[root@client-242 ~]# 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-0224 -wi-ao---- 50.00g
lv2 vg1-0224 -wi-ao---- 25.00g
[root@client-242 ~]#
8.调整xfs文件系统
[root@client-242 ~]# xfs_growfs /t1
meta-data=/dev/mapper/vg1--0224-lv1 isize=512 agcount=4, agsize=1310720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=5242880, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 5242880 to 13107200
9.查看磁盘挂载容量情况
[root@client-242 ~]#
[root@client-242 ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 17G 1.6G 16G 9% /
devtmpfs devtmpfs 899M 0 899M 0% /dev
tmpfs tmpfs 911M 0 911M 0% /dev/shm
tmpfs tmpfs 911M 9.6M 902M 2% /run
tmpfs tmpfs 911M 0 911M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 142M 873M 14% /boot
/dev/mapper/vg1--0224-lv1 xfs 50G 33M 50G 1% /t1
/dev/mapper/vg1--0224-lv2 ext4 25G 44M 24G 1% /t2
tmpfs tmpfs 183M 0 183M 0% /run/user/0
[root@client-242 ~]#
[root@client-242 ~]#
删除lvm
严谨考虑,确保别出问题
删除lvm
1.考虑/etc/fstab,清除开机自动挂载的配置
2.取消挂载
[root@client-242 ~]# umount /t1
[root@client-242 ~]# umount /t2
3.依次删除lvm的组件
[root@client-242 ~]#
[root@client-242 ~]# lvremove /dev/vg1-0224/lv1
Do you really want to remove active logical volume vg1-0224/lv1? [y/n]: y
Logical volume "lv1" successfully removed
[root@client-242 ~]#
[root@client-242 ~]# lvremove /dev/vg1-0224/lv2
Do you really want to remove active logical volume vg1-0224/lv2? [y/n]: y
Logical volume "lv2" successfully removed
[root@client-242 ~]#
删除vg
[root@client-242 ~]# vgremove vg1-0224
Volume group "vg1-0224" successfully removed
[root@client-242 ~]#
[root@client-242 ~]#
[root@client-242 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
删除pv,还原磁盘原本类型
[root@client-242 ~]#
[root@client-242 ~]# pvremove /dev/sdb /dev/sdc /dev/sdd
Labels on physical volume "/dev/sdb" successfully wiped.
Labels on physical volume "/dev/sdc" successfully wiped.
Labels on physical volume "/dev/sdd" successfully wiped.
[root@client-242 ~]#
最后,磁盘就还原为了不可动态调整的磁盘了,你可以格式化后,挂载使用该设备
[root@client-242 ~]# mount /dev/sdd /t1
[root@client-242 ~]#
[root@client-242 ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 17G 1.6G 16G 9% /
devtmpfs devtmpfs 899M 0 899M 0% /dev
tmpfs tmpfs 911M 0 911M 0% /dev/shm
tmpfs tmpfs 911M 9.6M 902M 2% /run
tmpfs tmpfs 911M 0 911M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 142M 873M 14% /boot
tmpfs tmpfs 183M 0 183M 0% /run/user/0
/dev/sdd xfs 50G 33M 50G 1% /t1
[root@client-242 ~]#
浙公网安备 33010602011771号