逻辑卷管理器

逻辑卷管理器

一、什么是LVM
1、将多块磁盘整合为一块磁盘,实现动态调整磁盘容量
2、PV物理卷:将磁盘设备转换后,变成LVM的存储模块
3、VG总卷组:存储模块进行整合,变成一块磁盘
4、LV逻辑卷:将VG分区,即可使用
5、PE物理扩展块:最小存储模块,类似于block,默认4兆,VG最多65534个PE(由于vgcreate -s 16M vgname /dev/sdb{5,6,7,8}
vgcreate abc /dev/sdb{1,2,3,5}
容量变成了单纯的数字 )
补充:
PE决定影响着VG的最大容量
PE决定了LV的最小值
在VG阶段修改 VG一但成型不可调整
PE必须是整数倍,如果不是近似取值
二、LVM的配置流程
1、PV的阶段
pvscan 查询目前系统是否具有PV的磁盘
pvcreate /dev/hda{1,2,3} 将物理分区转换成PV卷
pvdisplay 显示目前系统上PV状态
pvremove 将PV卷恢复成普通磁盘
2、VG的阶段
vgscan 查询目前系统是否具有VG的磁盘
vgdisplay 显示目前系统上VG状态
vgextend vgname /dev/hdax 将PV卷增加到VG内
vgreduce 在VG内删除PV
vgchange 设置是否启动
vgremove 将VG删除
vgcreate [-s N[mgt]] vgname pvname
参数:
-s 后接PE的大小,单位是m/g/t(不区分大小写)
3、LV的阶段
lvscan 查询系统上面的LV
lvdisplay 显示系统上面的LV状态
lvextend 在LV里面增加容量
lvreduce 在LV里面减少容量
lvremove 将LV删除
lvresize 对LV进行容量大小调整
lvcreate [-L N[mgt]] [-n lvname] vgname
参数:
-L 后接容量,单位是M/G/T,最小为PE,后面必须为PE倍数,如果不是,会自动选最接近值
-l 后接PE的个数
-n 后接LV的名称

4、流程模拟
fdisk /dev/sdb----------------------------#磁盘分区
fdisk -l ------------------------------------#查询磁盘分区
将物理盘转换为LV:
1)partprobe--------------------------------------------------------#读取磁盘分区列表
2)pvcreate /dev/sdb{5,6,7,8}-----------------------------------#将磁盘转化为PV卷
此处如果出现报错重启一下系统
查看状态--------------------------------------------pvdisplay
3)vgcreate -s 16M vgname /dev/sdb{5,6,7,8}------------#将sdb5-8新建成一个VG,并指定PE为16M
----------------------- vgcreate -s 16M vgname(命名的名称)/dev/sdb{5,6,7,8}
查看状态--------------------------------------------------------------vgdisplay
4)lvcreate -l 356(所占内存) -n lvname vgname--------- #将vgname分配给lvname,PE个数为356个
5)mkfs -t ext3 /dev/vgname/lvname------------------------- #格式化以使用

挂载:

三、大小操作

同样是多块磁盘组合成一块磁盘,那raid和lvm有何不同?
raid:读写操作对所有的硬盘同时执行
lvm:读写操作仅对一块硬盘执行
raid:
disk1 5g
raid0 data 10g
disk2 5g
lvm:
disk1 10g
lvm data 10g
disk2 待第一块硬盘被写满时,才会使用此块硬盘
disk1 20g 10g 10g
data 10g data 15g
disk2 8g 5g
lvm的特点:
1、不要求pv卷组大小相同
2、实现动态调整磁盘容量
下线:关机或者未使用的状态
上线:开机或者正在使用
动态:可以随意调整
静态:设置成功之后无法调整
扩大
1、vg卷有剩余的空间
1)确认剩余空间(还剩多少,够不够用)
#vgdisplay
2)更新lv的大小
#lvresize -L +2g /dev/vgcjk/lvcjk
3)将lv的新容量,通知文件系统
#resize2fs /dev/vgcjk/lvcjk
2、vg卷无剩余的空间
1)确认剩余空间(还剩多少,够不够用)
#vgdisplay | grep vgcjk Free
2)从磁盘上分新分区
#fdisk /dev/sdb
3)重新读取分区
#partprobe
4)将新分区转换成pv
#pvcreate /dev/sdb5
5)将pv添加到vg
#vgextend vgcjk /dev/sdb5
6)再次确认剩余空间
#vgdisplay
7)更新lv的大小
#lvresize -L +2g /dev/vgcjk/lvcjk
8)将lv的新容量,通知文件系统
#resize2fs /dev/vgcjk/lvcjk
pe的作用:
1、决定lv卷的最小值
2、决定vg卷的最大值
lvm配置的流程:
1、分区(如果已有分区,可以直接使用,但要确认此分区未使用,容量不需相同)
#fdisk /dev/sdb
2、重新读取分区列表(如不生效,可以重启)
#partprobe
3、将硬盘转换成pv卷
#pvcreate /dev/sdb{1,2,3,5}
4、将pv卷合成一块vg(其中的vgcjk为vg名称,可以随意指定)
#vgcreate vgcjk /dev/sdb{1,2,3,5}
5、从vg内分lv区(命令意思:创建lv区,多大,lv叫什么,从哪个vg里分)
#lvcreate -L 2G -n lvcjk vgcjk
6、格式化lv
#mkfs -t ext4 /dev/vgcjk/lvcjk
7、创建挂载目录
#mkdir /cjk
8、挂载
#mount -t ext4 /dev/vgcjk/lvcjk /cjk
lvcreate -l 1 -n lvsdf vgcjk
4m
1t
47 lvdisplay(查看lv属于那个vg)
48 vgdisplay(查看是否空间够用,如果够用,可直接运行第52步)
49 pvscan(查看是否有可用的pv卷,如果没有,需要重新分区转换)
50 vgextend vgcjk /dev/sdb5(将pv卷加入vg卷组)
51 vgdisplay(再次确认空间够用)
52 lvresize -L +4G /dev/vgcjk/lvcjk(更新lv的大小)
53 df -h(查看是否更新成功)
54 resize2fs /dev/vgcjk/lvcjk(将lv的更新通知给文件系统)
55 df -h(确认实验成功)
71 umount /cjk(解除挂载)
73 e2fsck -f /dev/vgcjk/lvcjk(强制检测文件系统错误)
74 resize2fs /dev/vgcjk/lvcjk 3000M(将新容量通知文件系统)
75 lvresize -L -3G /dev/vgcjk/lvcjk(刷新lv的大小)
76 mount -t ext4 /dev/vgcjk/lvcjk /cjk(挂载新lv)
77 df -h(确认更新大小成功)
79 pvscan(查看pv是否有闲置)
80 vgreduce vgcjk /dev/sdb5(从vg中卸载pv)
81 pvremove /dev/sdb5(将pv恢复普通硬盘)
83 df -h(查询是否有lv挂载)
84 umount /cjk(将所有的lv卸载掉)
85 lvscan(查询哪些lv需移除)
86 lvremove /dev/vgcjk/lvcjk(移除lv卷)
87 lvremove /dev/vgcjk/lvsdf
88 lvremove /dev/vgcjk/lvfda
89 vgremove vgcjk(移除vg卷)
90 pvscan(查询pv是否有闲置)
91 pvremove /dev/sdb{1…3}(移除闲置pv卷,将其恢复成普通的硬盘)

1、放大
fdisk /dev/sdb
#磁盘分区
partprobe
#读取磁盘分区列表
pvcreate /dev/sdb9
#将磁盘转化为PV卷
vgextend vgname /dev/sdb9
#将sdb9添加到vgname

补充:mkfs -t xfs /dev/rulaifo/tieguanying | mkfs exit4 /dev/rulaifo/tieguanying
mkfs.xfs -f /dev/rulaifo/tieguanying
其中 -f --------强制格式化将原有的数据清除而其它的格式化保存了原有的数据
lvresize -l +179 /dev/vgname/lvname
#更新lv的大小,+为增加,-为减少
注:(L为容量 l为数量 +2G—在原有基础上+2G 6G----是不管之前多大直接变成6G)

resize2fs /dev/vgname/lvname
#更新文件系统磁盘容量
注:
df -h-----查看的是文件系统lvm查看的是逻辑卷系统这是两个东东所以要resize2fs将文件系统告述逻辑卷系统

但是出现了报错内容-------应为版本不同所以使用命令不同
ext3 , ext4 -----------------用resize2fs
xfs-----------------------------用xfs_growfs
xfs_growfs /dev/vgname/lvname-----------------更新文件系统磁盘容量

如果没有容量时

fdisk /dev/sdb----------------------------------#磁盘分区------再次添加磁盘
fdisk -l -------------------------------查看新添磁盘分区
pvcreate /dev/sdb6-----------------------再次添加pv下的sdb6磁盘
如果无法读取则------------partprobe

pvscan---------------------------------------------查看是否添加成功

vgextend abc /dev/sdb6----------------------添加vg


2、vg卷无剩余的空间
1)确认剩余空间(还剩多少,够不够用)
#vgdisplay | grep vgcjk Free
2)从磁盘上分新分区
#fdisk /dev/sdb
3)重新读取分区
#partprobe
4)将新分区转换成pv
#pvcreate /dev/sdb5
5)将pv添加到vg
#vgextend vgcjk /dev/sdb5
6)再次确认剩余空间
#vgdisplay
7)更新lv的大小
#lvresize -L +2g /dev/vgcjk/lvcjk
8)将lv的新容量,通知文件系统
#resize2fs /dev/vgcjk/lvcjk

2、缩小
resize2fs /dev/vgname/lvname 6900M
#更新文件系统磁盘容量
lvresize -l -89 /dev/vgname/lvname
#更新lv的大小,+为增加,-为减少
vgreduce vgname /dev/sdb9
#将sdb9从vg移除
pvremove /dev/sdb9
#将磁盘移除pv
四、关闭
1、解除挂载
umount /dev/vgname/lvname
2、移除掉lv
lvremove /dev/vgname/lvname
3、移除掉vg
vgchange -a n vgname
#因为lv被移除,vg会改变状态,需要将其启用
vgremove vgname
#移除掉vg
4、将磁盘移除pv
pvremove /dev/sdb{5,6,7,8}
5、再次挂载
先格式化: mkfs -t ext4 /dev/abc/abcd
挂载: mount /dev/abc/abcd /account

猜你喜欢

转载自blog.csdn.net/weixin_43466725/article/details/88541322