要使用LVM,需要先了解几个参数的意义。
PV:Physical Volume 实体滚动条
VG:Volume Group 滚动条群组 LVM大磁盘是许多PV整合成VG,VG最多能包含65534个PE。
PE:Physical Extend 实体延伸区 LVM默认使用4MB的PE区块,PE是整个LVM最小的储存区块,简单说PE有点像文件系统里面的block。
LV:Logical Volume 逻辑滚动条 VG会被切成LV,LV的大小与LV内的PE有关,LVM的文件名通常指定为/dev/vgname/lvname的样式
PE LV VG之间的关系图:
通过PV VG LV的规划后,利用mkfs可以将你的LV格式化为可以利用的文件系统。 LV写入硬盘的方式: 线性模式(liner): 举例来说 /dev/sda1 /dev/sda2加入到VG当中,并且整个VG只有一个LV时,线性模式就是:当/dev/sda1容量用完后,/dev/sda2才会被使用。(建议的模式)
交错模式(triped):有点像RAID 0,理论上读写性能会比较好。
LVM默认的读写模式是线性模式,如果你使用triped模式,当一个partition损坏时,所有数据都会损毁。
LVM需要核心支持且需安装lvm2这个软件。
我要实现的环境: 分割4个partition,每个partition的容量为1G,且system ID为8e; 全部的partition整合为一个VG,VG名称为yaovg,且PE大小为16M; 全部的VG容量都给LV,LV的名称为yaolv; 这个LV格式化为ext4的文件系统,挂载在/mnt/lvm中
本人都是用vmware虚拟机做的,添加一块硬盘/dev/sdb 对这块硬盘/dev/sdb分区
PV阶段: 建立PV很简单,直接使用pvcreate即可! pvcreate:将实体partition建立成为PV pvscan:查找目前系统里任何具有PV的磁盘 pvdisplay:显示目前系统上面的PV状态 pvremove:将PV属性移除,让该partition不具有PV属性
将/dev/sdb5-/dev/sdb8建立成为PV格式
没挂载上去,就是创建不了。查找了很多资料,还是没解决。 所以决定再添加一块硬盘/dev/sdc试试。
分区完毕!
创建成功了
更详细显示系统上每个PV信息
这样PV就建立好了
VG阶段: vgcreate:主要建立VG的指令 vgscan:查找系统上面是否有VG存在? vgdisplay:显示目前系统上面的VG状态 vgextend:在VG内增加额外的PV vgreduce:在VG内移除PV vgchange:设定VG是否启动 vgremove:删除一个VG
VG的名称是自定义的
将/dev/sdc1-/dev/sdc3建立成为一个VG,指定PE为16M
发现存在yaovg的VG
三个PV被用了,剩下一个/dev/sdc5的PV还没用
一个VG就建立好了!
将剩余的PV/dev/sdc5)也给yaovg
LV阶段: 创建完VG后,就是要建立分区了,分区就是所谓的LV喽,要将那个yaovg分割为yaolv。这个VG的容量都分配到yaolv里面去。 lvcreate:建立LV lvscan:查看系统上面的LV lvdisplay:显示系统上面的LV状态 lvextend:在LV里面增加容量 lvreduce:在LV里面减少容量 lvremove:删除一个LV lvresize:对LV进行容量大小的调整
LV的名称必须使用全名/dev/yaovg/yaolv
文件系统阶段 格式化 挂载 查看我的LV
LV的名称为/dev/yaovg/yaolv是为了让使用者找到我们所需要的数据,实际上LVM使用的装置是放在/dev/mapper/目录下。现在已经建立好一个LV,你可以使用/mnt/lvm里面的东东了!
增大LV容量
只要这样做就好
1 用fdisk设定新的具有8e system ID的partition 3 vgextend将PV加入yaovg 4 lvresize将新加入的PV内的PE加入yaolv中 5 通过resize2fs将文件系统的容量确实增加
新增一个512M的partition /dev/sdc6
建立新的PV
加上VG
放大LV,用lvresize增加
文件系统没有增加,LVM可以在线直接处理,不需要umount.文件系统的容量,用resize2fs来处理
减少LV容量
(责任编辑:IT) |