LVM在生产环境中做测试还是挺有用的
LVM
结合内核中的dm模块,将一个或多个底层块设备组织成一个逻辑设备的模块;通俗来说就是将多个物理设备(分区也行)组成一个可“灵活”伸缩的文件系统
PV物理卷->VG卷组->LV逻辑卷
PV物理卷的理解就是一个个的物理硬盘,分区,RAID也可以;将这些PV物理卷在划分成一个大的VG卷组;然后VG卷组将下面的PV物理卷划分成一个个的PE空间(physical extent),来组成最后的LV逻辑卷;比方说VG将一个PV划分出来上有四个PE,一个PE大小为4M,那么LV空间大小就为16M;
同时,增加PV的大小,也就会相应增加LV的大小。支持动态扩展LV,不会影响LV上正在操作的数据。这也是LVM的优势。
pv管理工具
pvs:简要pv信息显示
pvdisplay:显示pv的详细信息
1. pvcreate /dev/DEVICE :创建pv 例子:pvcreate /dev/sdb1 /dev/sdc(要是分区接下要创建文件系统并更改id为8e)
pvremove:删除
pvmove 搬家 移动PE空间到同一个卷组上的成员上 例:pvmove /dev/sdb
vg管理工具
vgs
2. vgcreate vgNAME /dev/DEVICE 创建vg -s可以指定PE大小(默认4M大小) 例子:vgcreate vg0 -s 16M /dev/sdb1 /dev/sdc
vgdisplay
vgextend vgNAME DEVICE扩展
vgreduce vgNAME DEVICE移除
先做pvmove 将pv上的pe空间移动到同一个卷组的pv上
lv管理工具
lvs
lvdisplay
lvremove移除 移除之前需要先卸载
4. lvextend扩展 -L 指定大小 例子:lvextend -L 5G /dev/vg0/lv1 注意ext文件系统需要执行:resize2fs /dev/vg0/lv1(给扩展的空间“装修文件系统”)
注意xfs文件系统需要执行:xfs_growfs /dev/vg0/lv0 (lvextend /dev/vg0/lv0 -l +100%FREE所有空闲空间全部都使用)
又或者lvextend -r -L 4G /dev/vg0/lv1 这条命令一步到位,将空间和文件系统一并扩展(可以省掉上面扩展文件系统的命令)
注意缩减时需要离线缩减,且只有ext文件系统支持缩减。顺序是先缩减文件系统,在缩减空间
例:缩减逻辑卷
1、umount 先卸载
2、e2fsck -f /dev/vg0/lv1 检查文件系统完整性
3、resize2fs /dev/vg0/lv1 3G 缩减文件系统到3G
4、lvreduce -L 3G /dev/vg0/lv1 缩减空间
5、mount
lvresize指定逻辑卷大小
lvmconf逻辑卷配置文件
3. lvcreate -n指定名字 -L大小[M,G,T] 例子:lvcreate -n vg0 -L 10G vg0(指定vg0这个卷组)
mkfs.xfs /dev/vg0/lv0 创建文件系统
mount /dev/vg0/lv0 /mnt/lv0 挂载
lv拍摄快照:lvcreate -n snap-shot-lv0-2 -L 2G -s -p r /dev/vg0/lv0 -n指定名字 -s指定创建快照逻辑卷 -p r指定只读权限