LVM(逻辑磁盘管理)
LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
磁盘管理机制,可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。
如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。
LVM包括 LV、(LE、) VG、(PE、) PV
PV(Physical Volume)--物理卷
在逻辑卷管理中处于最底层------->实际物理硬盘的分区、整个物理硬盘、raid设备
VG(Volume Group)--卷组
在 PV 之上,一个 VG 至少包括一个 PV,可在建立之后动态添加 PV。
一个逻辑卷管理系统中,可有一个卷组,也可多个
LV(Logical Volume)--逻辑卷
在 VG 之上,VG中未分配的空间可用于建立新的 LV,LV建立后可动态扩展和缩小空间。
多逻辑卷可属于一个卷组,也可属于多个卷组
PE(Physical Extent)--物理块
LVM默认使用4MB的PE区块。PE是整个LVM最小的储存区块
模拟raid5、分区、物理硬盘三种类型设备创建PV、VG、LV
raid5 需要四块硬盘,分区和物理硬盘各一块硬盘,还有扩容时需要至少一块硬盘添加八块硬盘
1、 安装LVM管理工具
检查系统中是否安装LVM管理工具
rpm –qa | greplvm
若未安装,则使用yum方式安装
yum –y install lvm*
rpm –qa | grep lvm
2、 四个硬盘新建一个raid5设备
新建分区(一个)并修改分区类型(fd)
创建raid5 :mdadm –C/dev/md5 –ayes -l5 –n3 –x1 /dev/sd[b,c,d,e]1 -à
添加配置文件并修改:
echo DEVICE /dev/sd{b,c,d,e}1>> /etc/mdadm.conf
mdadm –Ds >>/etc/mdadm.conf
格式化磁盘阵列:mkfs.exit4 /dev/md5
挂载:mkdir /mnt/raid5
Mount /dev/md5 /mnt/raid5
将挂载的信息写入/etc/fstab文件中。然后重启reboot ,再df -h
3、 一个硬盘创建一个分区(不用改类型)
4、 创建PV(创建之前需将/dev/md5解除挂载)
pvcreate /dev/md5 /dev/sdf1/dev/sdg
查看PV:
pvdisplay 或者 pvs 或者 pvscan
5、 创建VG:
vgcreate vg0 /dev/md5 /dev/sdf1 /dev/sdg
vg0是创建的VG设备名称。可以随便取
查看VG:
vgdisplay或者 vgs 或者 vgscan
6、 创建LV
lvcreate –L 5G –n lv1 vg0
-L:指定创建的LV的大小
-l:指定创建的LV的PE 数量
-n:LV的名字
上面命令的意思是:从vg0 中分出5G的空间给lv1 使用
查看LV信息:
lvdisplay
LV Path:LV的路径,全名
LV Name:LV的名字
VG Name:所属的VG
LV SizeLV:大小
再看VG的信息:vgs-->空余空间减少
7、 格式化LV
mkfs.ext4 /dev/vg0/lv1
8、 挂载使用
mkdir /mnt/lv1
mount /dev/vg0/lv1 /mnt/lv1
将挂载信息写入/etc/fstab
二、LVM的扩容操作
1、 LV的扩容
查看vg0的剩余容量
对lv1进行扩容:lvextend –L +1G /dev/vg0/lv1(在lv1的原有基础上增加1G)
df –h 查看实际的磁盘容量(并没有变化)à 需对文件系统扩容
对文件系统进行扩容
Resize2fs /dev/vg0/lv1
df –h 以增加了
查看测试数据
2、 VG的扩容
两种方法:
A.创建PV,然后对VG扩容
pvcreate /dev/sdh
vgetend vg0 /dev/sdh
B.向raid5 中新加一块硬盘;/dev/md5的大小变化后,调整PV的大小
mdadm/dev/md5 –a /dev/sdh
pvresize /dev/md5
三、LVM的缩减操作
1、 LV的缩减
A. umount 文件系统:umount /mnt/lv1
B. 缩减文件系统:resize2fs /dev/vg0/lv1 1G
C. 检查磁盘:e2fsck –f /dev/vg0/lv1
D. 缩减LV:lvreduce/dev/vg0/lv1 –L 1G
C与D缩减的大小必须一致
1G表示缩减到1G
-1G表示缩减了1G
E.挂载查看:
mount/dev/vg0/lv1 /mnt/lv1 ; df –h
F.查看测试数据
2、 VG的缩减
A. unount 文件系统:umount /mnt/lv1
查看当前的PV详情:pvs
B. 从/dev/sdg 从vg0中移除
vgreduce vg0 /dev/sdg
查看vg0、pv的情况:vgs、pvs
四、删除LVM
umount 系统:umount /mnt/lv1
移除LV:lvremove /dev/vg0/lv1
移除VG:vgremove vg0
移除PV:pvremove /dev/md5 /dev/sdf1 /dev/sdg /dev/sdh
五、LVM快照
1、建立LV
2、创建快照:lvcreate –L 80M –s –n lv1snap /dev/vg0/lv1
3、将创建的快照挂载到/mnt/snapshot(会与/mnt/lv1里的东西一模一样)
4、对snapshot里的资料打包备份,准备还原:
cd /mnt/snapshot ; tar zcvf /tmp/lvm.tar.gz
5、卸载并移除snapshot:umount/mnt/snapshot
6、卸载并格式化/mnt/lv1,清空数据:
umount /mnt/lv1 ; mkfs.ext4 /dev/vg0/lv1
7、恢复数据:
挂载lv : mount /dev/vg0/lv1 /mnt/lv1
解压:tar zxvf /tmp/lvm.tar.gz –C /mnt/lv1