最近在学linux,正好要整理lvm的学习,就贴在博客上,仅是学习经验,不对的地方欢迎大家指正!
在操作lv的在线扩展与收缩之前,先了解一下什么是lvm,磁盘分区是固定大小,使用不完很浪费,数据多了又无法扩充,lvm可解决这个问题,通过需要的空间大小来随时调整vg和lv的大小。然后来说一下 pv,vg,lv的关系
pv(physical volume)物理卷,一般指磁盘分区
pe(physical extent)物理块,每个pv被划分的基本单元成为PE,大小可以,默认是4M
vg(volume group)卷组,由物理卷组成
lv(logical volume)逻辑卷,在卷组上创建,是pv的映射,在lv上可以建立文件系统,将数据放在里面
le(logical extent)逻辑块,lv的基本单元,大小由vg上的pe决定
关系如下图,有些粗糙,将就着看,一个vg里面必须有一个pv,pv构成了vg,有了空间,lv才可以创建使用
如何创建pv呢,首先先创建一个分区,我创建的是主分区,尝试使用扩展分区时无法改变格式
一、我使用的是虚拟机,虚拟机里配置了一块硬盘,所以位置是/dev/sda,创建分区可以从第一块硬盘里面来创建,如果没有空间,也可以新添加一块硬盘,添加硬盘:选中centos7右键—设置—进入虚拟机设置选择添加—硬盘
选择硬盘类型,推荐就可以,我是虚拟机开启,所以只能选择scsi类型的硬盘,点击下一步
磁盘大小可以改变,不用太大,我只是熟练一下操作,选择10G,单个磁盘文件方便管理和移动,若没有这种需求选择多个磁盘文件更好,占用内存小
磁盘文件,建议放在C盘以外的其他盘,点完成,确定,硬盘就添加成功了!
二、进入centos7系统,开始创建pv,vg,lv
lsblk查看一下磁盘,发现找不到新添加的硬盘,通过以下命令可以刷新出来,一般硬盘的命名是sda,b,c,故第二块硬盘的名称是sdb
磁盘分区,使用fdisk /dev/sdb 进入/dev/sdb,开始分区,n是分区命令,分区类型默认是p(主分区),分区号默认是1
扇区起始选默认。扇区大小可以输入范围内的数字,也可直接+2G代表空间为2G,p打印分区发现分区成功,w保存退出
m命令可查看参数功能
lsblk查看后发现分区成功,从第二个分区开始,可能不会刷新出来,使用partprobe命令刷新一下即可
刚才忘了改变磁盘分区的类型,重新进入分区,输入t,选择分区,因为我这里只有一个分区,故不用选择,填写8e,分区类型有linux变为linux LVM
准备好分区后,创建pv,创建pv的命令是pvcreate,创建完之后,可以使用pvs或pvdisplay查看一下pv
创建完pv,创建vg,vg创建命令vgcreate 物理卷名称 物理分区路径,常用参数-s 指明卷组上物理卷PE的大小,不指明,默认为4M,创建完之后,可以使用vgs或vgdisplay查看一下vg
创建完vg,开始创建lv,lv创建命令为lvcreate,参数 -L:指定逻辑卷大小,-n 指定逻辑卷名称,刚才创建的vg大小是2G,故指定lv大小应小于vg,为1G,可以使用lvs或lvdisplay查看一下lv
创建完lv后,还不能使用,还没有格式化文件系统,操作系统是无法直接使用分区的,格式化系统是为了让操作系统以可以接受的格式来使用磁盘分区,格式化磁盘分区命令 mkfs.文件格式 磁盘分区路径,lv的磁盘分区路径可通过lvdisplay找到,熟练之后就会知道一般分区路径
格式化磁盘分区后,挂载上就可以使用了,首先创建一个要挂载的文件夹,本例使用/test,挂载命令为mount 分区路径 挂载目录
使用lsblk查看是否挂载成功
但是只是挂载上了还不可以,因为启动的时候,不会默认挂载,所以要去配置文件里面添加命令,使得在系统重启时实现自动挂载,配置文件为/etc/fstab,编辑它,比照格式填写,保存退出
reboot重启,查看文件系统是否挂载上,发现挂载成功,如果不成功应该会报错进入紧急模式,那可能是文件系统的路径填写的有问题,先进入/etc/fstab,将新添加的一行注释掉,在重新启动就可以了,找到正确的分区路径填写进入就可以了!