在安装类Unix操作系统时,分区肯定是必不可少的一步,这一步说简单也很简单,按着提示一步步的分区->格式化就可以完成,由于现在的项目几乎不会在硬盘的采购上出现瓶颈,所以很多项目可能直到硬件过保下线都不会用到LVM的动态扩容功能,所以在安装OS时也不会专门研究LVM、PV、VG、LV等概念,因为我之后的项目毕竟主要是搞存储了,所以最近研究了几个文档,总结一下在类unix系统时分区的一些事。
在linux中对硬盘进行分区,格式化,挂载有两种方法,在最初安装OS时的图形界面和后期扩容硬盘时的用命令行,先说一下相对麻烦的后者:
首先看一下上面的图,在linux中输入fdisk -l可以看到目前服务器中安装的硬盘信息(lv是看不到的),/dev/sda是指的sda这块硬盘安装后的挂载路径,类似的光盘是挂载在/dev/sr0和/dev/media上,后者是前者的一个软链接,start end是扇区起始位置,blocks是块大小,上图是以kb计算的,ID指的是文件系统的代号:83代表ext2/3,82代表swap,5是扩展分区,lvm是8e,raid是fd.
sda1~6代表的是目前sda的分区情况,分了6个区,例如sda1挂载在/,sd2挂载在/opt,这个在OS安装时就可以完成,接下来说一下用命令行给sda再分两个新的分区sda7和sda8,并配置为LVM的过程。
1)#fdisk /dev/sda,输入大小和hex code[8e],8e是LVM类型分区的code,类似上面说的83代表ext2/3;
最新的理解:其实做pv是不需要格式化的,换句话说和格式化没关系,pv只是物理盘的一个进一步划分,参照这篇文章:文件系统 裸设备
2) #partprobe,不用重启让LVM分区立即生效;至此创建完成物理分区。
3)#pvcreat /dev/sda7,创建LVM的物理卷PV,按同样方法创建sda8,然后用pvscan或pvdiaplay查看。
4)#vgcreat 卷组名 物理卷
#vgcreat vg1 /dev/sda7 /dev/sda8,用之前创建的两个PV创建LVM的VG(也可以用一个PV创建),创建完成后用vgscan或vhdisplay来查看。
5)#lvcreat -L 大小 卷组名 -n 逻辑卷名称
#lvcreat -L 5G vg1 -n lv1,用之前创建的vg创建一个5G的lv,至此lvm创建完毕,
只有逻辑卷不能写入数据,命令是无法单独在逻辑卷上实现的,只有在逻辑卷上建立文件系统,用户通过文件系统才能对逻辑卷操作。
6) #mkfs.ext3 /dev/vg1/lv1 加文件系统
#mount -t ext3 /dev/vg1/lv1 /mnt 格式化lv并挂载在/mnt上,进到mnt下能看到;lost+found就算成功了。注意:lv用fdisk-l看是看不到的,用lvdisplay才能,参考下图:
如果要从上面创建的vg1里面再划一个lv2出来,直接从lvcreat开始就可以了。一个硬盘支持的分区是15个,但是如果用vg分lv。就可以没有数量限制。
总结一下lvm的配置过程:硬盘分区->创建pv->创建vg->创建lv->格式化挂载。
下面介绍lv的扩展方法:
例如上面划分的lv1是5G,想要增加1G,步骤如下:
0)umount /mnt 先卸载
#lvresize -L 绝对大小 对象
1)#lvresize -L 6G /dev/vg1/lv1
2)#e2fsck -f /dev/vg1/lv1 检查数据块是否损坏
3)#resize2fs /dev/vg1/lv1 确定大小,生效数据
4)#mount -t ext3 /dev/vg1/lv1 /mnt 重新挂载
至此lv的容量扩展完成,lv容量是基于vg容量来扩展的,如果要扩展vg容量,方法如下:
1)#pvcreate /dev/sda9 创建新的pv
2) #vgextend 卷组名 物理卷
#vgextend vg1 /dev/sd9 把sd9加入vg
3) #vgdisplay vg1 查看
至此vg扩容完毕,删除lv、vg、pv和分区的方法如下,注意删除的顺序:
1)#umount /mnt
2) #lvremove /dev/vg1/lv1 删除lv
3) #vgremove vg1 删除vg
4) #pvremove /dev/sda7 删除pv物理卷
5) #fdisk,command选d,patition number选8 删除分区
6)#partprobe 命令不重启生效
至此从创建分区到创建lv的所有内容消除。
创建raid也是可以用命令行来实现的,有空再补充吧,接下来说一下在安装os时的lvm创建:
如上图,在前一步点了sda后会出现上图,可以直接从sda中创建lvm.
如上图,从sda2中创建pv,然后在上面的vg中继续分区。其实在pv中分区和直接在sdax中分区意思是一样的,区别就是lvm的扩展功能。
#fdisk -l只能查看物理设备,不能查看lv,如果要查看lv,用lvdisplay,另外类似
/dev/mapper/VoLGroup00-LogVol00的df -h,/dev/mapper下面的其实都是映射关系,就是做了lvm和多路径才会有/dev/mapper这种,可以去/dev/VoLGroup00下查看查看。