设为首页 收藏本站
查看: 1422|回复: 0

[经验分享] CentOS下LVM的使用

[复制链接]

尚未签到

发表于 2018-4-22 16:25:42 | 显示全部楼层 |阅读模式
一、基本概念:
LVM(Logical Volume Manager):首先是基于实际的物理磁盘创建LVM分区,并创建物理卷PV。一个或多个物理卷可以用来创建卷组VG。然后基于卷组可以创建逻辑卷LV。只要在卷组中有可用空间,就可以随心所欲的创建逻辑卷。文件系统就是在逻辑卷上创建的,然后可以在操作系统中挂载和使用。

  • 物理长度PE(PhysicalExtent):物理长度是将物理卷组合为卷组后,所划分的最小存储单位,即逻辑意义上磁盘的最小存储单位。LVM默认PE大小为4MB
  • 物理卷PV(PhysicalVolume):物理卷是LVM的最底层概念,是LVM的逻辑存储块,物理卷与磁盘分区是逻辑的对应关系。
  • 卷组VG(VolumeGroup):卷组是LVM逻辑概念上的磁盘设备,通过将单个或多个物理卷组合后生成卷组。卷组的大小取决于物理卷的容量以及个数。
  • 逻辑卷LV(LogicalVolume):逻辑卷就是LVM逻辑意义上的分区,可以指定从卷组中提取多少容量来创建逻辑卷,最后对逻辑卷格式化并挂载使用。

二、演示环境:
新增一块20G的硬盘,分区/dev/sdb1,大小10G,分区ID为8e。
常用fdisk交互式指令说明

指令

说明

d

删除分区
l

显示分区类型
m

显示帮助菜单
n

新建分区
p

显示分区表信息
q

不保存退出
t

修改分区ID,可以通过l查看ID
w

保存并退出


DSC0000.jpg
使分区生效:
# partx -a /dev/sdb
# cat /proc/partitions
# fdisk -l /dev/sdb

三、PVVGLV中涉及到的常用命令:
名称

物理卷PV

卷组VG

逻辑卷LV

创建

pvcreate

vgcreate

lvcreate

显示

pvs  | pvscan | pvdisplay

vgs  | vgscan | vgdisplay

lvs  | lvscan | lvdisplay

扩容


vgextend

lvextend  | lvresize

缩减


vgreduce

lvreduce  | lvresize

删除

pvremove

vgremove

lvremove


四、创建LV
1、 将物理磁盘初始化为物理卷PV:# pvcreate /dev/sdb1
2、 创建卷组VG,将PV加入到VG中:# vgcreate vgtest1 /dev/sdb1
DSC0001.jpg
3、 基于VG创建逻辑卷LV:# lvcreate [选项] 卷组名
选项:
-l:指定使用多少个VG中的LE创建LV[%{VG|PVS|FREE}]
-L:指定LV大小
-n:指定LV名称
-p:指定权限,r为只读,rw为读写
# lvcreate -n lvtest1 -L 5G vgtest1  或者  # lvcreate -n lvtest1 -l 50%FREE vgtest1
//上述两种方法都是创建大小为5G,名为lvtest1的逻辑卷
DSC0002.jpg
4、 为逻辑卷创建文件系统:
# mke2fs -t ext4 /dev/vgtest1/lvtest1  或者  # mke2fs -t ext4 /dev/mapper/vgtest1-lvtest1
5、 创建挂载点,挂载LV:
# mkdir -pv /mnt/lvtest1
# mount /dev/vgtest1/lvtest1 /mnt/lvtest1
6、 创建测试数据:
# cd /mnt/lvtest1
# cp /etc/fstab .
# cp /etc/rc.sysinit .
# dd if=/dev/zero of=test bs=1M count=2048    //创建一个大小为2G的测试数据test
# cat fstab        //能正常显示文件内容
# cat rc.sysinit     //能正常显示文件内容
DSC0003.jpg
7、 实现开机自动挂载:
# vim /etc/fstab  -->  /dev/vgtest1/lvtest1  /mnt/lvtest1  ext4defaults  0  0
# mount-a
# mount  -->  /dev/mapper/vgtest1-lvtest1 on /mnt/lvtest1type ext4 (rw)
# cat /etc/mtab  -->  /dev/mapper/vgtest1-lvtest1 /mnt/lvtest1 ext4rw 0 0
DSC0004.jpg
备注:文件/etc/fstab和/etc/mtab的区别

  • /etc/fstab:存放的是系统中的文件系统信息,是系统准备装载的。
  • /etc/mtab:存放的是现在系统已经装载的文件系统,包括操作系统建立的虚拟文件等。

五、扩容VG
1、 将之前/dev/sdb中再分出一个分区/dev/sdb2,大小为5G,分区ID为8e:# fdisk /dev/sdb
2、 将物理磁盘初始化为物理卷PV:# pvcreate /dev/sdb2
3、 将PV添加到指定VG中:# vgextend vgtest1 /dev/sdb2
DSC0005.jpg
vgtest1的大小增加了5G。

六、扩容LV(可在线扩容,无需卸载LV,不影响数据访问)
1、 确保VG中有足够的可用空间供LV扩容,将lvtest1扩容5G。
DSC0006.jpg
2、 扩容物理边界,格式:# lvextend [选项] /dev/卷组名/逻辑卷名
选项:
-l:指定使用多少个VG中的LE[%{VG|LV|PVS|FREE|ORIGIN}]
-L:指定LV大小
# lvextend -L 10G /dev/vgtest1/lvtest1  或者
# lvextend -L +5G /dev/vgtest1/lvtest1  或者
# lvextend -l +50%FREE /dev/vgtest1/lvtest1
//上述三种方法都是将lvtest1扩容5G,大小为10G
3、 扩容文件系统:# resize2fs /dev/vgtest1/lvtest1
DSC0007.jpg
4、 之前/mnt/lvtest1目录中的数据仍然能正常访问。
DSC0008.jpg
DSC0009.jpg
vgtest1的可用大小减少了5G,lvtest1的大小增加了5G。

七、缩减LV(必须离线操作)
1、 确保缩减后LV的大小要比存储在LV中数据的总和要大,将lvtest1缩减至8G。
DSC00010.jpg
DSC00011.jpg
2、 卸载逻辑卷lvtest1:# umount /mnt/lvtest1
3、 强制检测文件系统:# e2fsck -f /dev/vgtest1/lvtest1
DSC00012.jpg
4、 缩减文件系统:# resize2fs /dev/vgtest1/lvtest1 8G
DSC00013.jpg
5、 缩减物理边界:# lvreduce -L 8G /dev/vgtest1/lvtest1
DSC00014.jpg
6、 挂载逻辑卷lvtest1使用:# mount /dev/vgtest1/lvtest1 /mnt/lvtest1
7、 之前/mnt/lvtest1目录中的数据仍然能正常访问。
DSC00015.jpg
DSC00016.jpg
PV中的/dev/sdb1的可用大小增加了2G,vgtest1的可用大小增加了2G,lvtest1的大小减少了2G。

八、缩减VG
1、 新增一块大小为20G的磁盘,分区/dev/sdc1,大小10G,分区ID为8e,并初始化为PV,加入vgtest1中:
# fdisk /dev/sdc
# pvcreate /dev/sdc1
# vgextend vgtest1 /dev/sdc1
DSC00017.jpg
2、 将/dev/sdb1上的所有PV移动至/dev/sdc1中,然后删除/dev/sdb1,从而达到缩减VG的目的:
# pvmove /dev/sdb1 /dev/sdc1
DSC00018.jpg
3、 从卷组vgtest1中删除/dev/sdb1:# vgreduce vgtest1 /dev/sdb1
DSC00019.jpg
/dev/sdb1中的PV已经全部移动至/dev/sdc1中,vgtest1的大小也减少了10G。/dev/sdb1可以删除也可以加入别的VG中。
4、 之前/mnt/lvtest1目录中的数据仍然能正常访问。

九、删除LV
1、 将上述的/dev/sdb1加入到新卷组vgtest2中,并创建lvtest2:
# vgcreate vgtest2 /dev/sdb1
# lvcreate -n lvtest2 -l 100%FREE vgtest2
# mke2fs -t ext4 /dev/vgtest2/lvtest2
# mkdir -pv /mnt/lvtest2
# mount /dev/vgtest2/lvtest2 /mnt/lvtest2
DSC00020.jpg
2、 卸载lvtest2:# umount /mnt/lvtest2
3、 删除lvtest2:# lvremove /dev/vgtest2/lvtest2
DSC00021.jpg
DSC00022.jpg
lvtest2已被删除,vgtest2可用大小为10G。

十、删除VG
1、 删除vgtest2:# vgremove vgtest2
DSC00023.jpg
vgtest2已经删除。

十一、删除PV
1、 删除/dev/sdb1:# pvremove /dev/sdb1
2、 使用fdisk命令将无用的分区删除,或者将其分区ID从8e修改为83。
DSC00024.jpg
PV中的/dev/sdb1已经删除。

十二、创建快照卷:
1、 为lvtest1创建大小为5G的快照卷lvtest1-snap:
# lvcreate -s -L 5G -n lvtest1-snap -p r /dev/vgtest1/lvtest1      //-s:创建快照卷,-p r:表示属性为只读
2、 创建快照卷挂载点,挂载快照卷:
# mkdir -pv /mnt/snap
# mount /dev/vgtest1/lvtest1-snap /mnt/snap
DSC00025.jpg
备注:快照卷是逻辑卷的一种,通常为只读。快照卷与原卷在同一个卷组中,因此创建快照卷之前要确保原卷所在的卷组中有足够空间可用。快照卷无须与原卷一样大,其大小取决于快照卷的存活时长内原卷的数据变化量。
3、 查看lvtest1和lvtest1-snap中的内容:
DSC00026.jpg
可以看到内容保持一致。创建快照以后,快照之后所修改的数据,通过快照卷是访问不到的,因为它保存的是过去某一时刻的状态,可以备份或复制该时刻的数据。
DSC00027.jpg

十三、删除快照卷:
1、 卸载快照卷:# umount /mnt/snap
2、 删除快照卷:# lvremove /dev/vgtest1/lvtest1-snap
DSC00028.jpg
DSC00029.jpg

十四、其他常用操作:
1、 重命名lvtest1为marion:# lvrename vgtest1 lvtest1 marion
DSC00030.jpg
2、 重命名vgtest1为keyso:# vgrename vgtest1 keyso
DSC00031.jpg
3、 合并卷组:创建一个大小为10G的新卷组vgtest,将vgtest合并到keyso中:
DSC00032.jpg
# vgmerge keyso vgtest
DSC00033.jpg

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-450591-1-1.html 上篇帖子: CentOS7上配置ELK 下篇帖子: centos 7.2配置 FreeSwitch X
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表