LVM管理

lvm  逻辑卷,可以让设备自由伸缩的一个设备管理软件
pv  物理卷
vg   物理卷组
pe   物理拓展,lvm最小的存储单元

1、LVM的制作(针对xfs问价系统)

 首先划分lvm所用到的设备,这些设备的功能id必须是linux LVM

1.1 lvm建立
1
2
3
4
5
6
pvcreate   /dev/vdb1      ##把物理分区做成物理卷
pvs|pvdisplay          ##查看物理卷
vgcreate vg0   /dev/vdb1    ##用制作好的/dev/vdb1这个物理卷制作一个物理卷组vg0
vgs|vgdisplay          ##查看物理卷组
lvcreate -L 200M-n lv0 vg0  ##在vg0这个组中建立出lv0设备 -L 指定设备大小 -n 指定设备名字
lvs|lvdisplay          ##对逻辑卷设备进行查看
1.2 lvm设备的扩大
1
2
3
4
5
6
mkfs.xfs   /dev/lv0/vg0         #格式化
mount  /dev/lv0/vg0   /mnt         #挂载
#如果/mnt/目录下的存储容量不够使用则可以扩展vg0
vgextend -L  500M   /dev/vg0/lv0   #将lv0扩展到500M
#这时应扩大xfs文件系统到设备大小
xfs_growfs   /dev/vg0/lv0

2、LVM的制作(针对xfs问价系统)

2.1 lv 扩大

1
2
3
4
5
umount   /mnt      #将刚才的目录卸载
mkfs.ext4   /dev/vg0/lv0     #将其文件系统格式化成ext4文件系统
mount  /dev/vg0/lv0   /mnt    #重新挂载
lvextend  -L  800M   /dev/vg0/lv0
resize2fs    /dev/vg0/lv0

2.2 lv缩小

1
2
3
4
5
umount   /mnt
e2fsck -f   /dev/vg0/lv0
resizefs  /dev/vg0/lv0   200M
mount   /dev/vg0/lvo   /mnt
lvreduce -L  200 M   /dev/vg0/lv0

2.3 vg扩大

1
2
pvcreate  /dev/vdb3     ##在pv中增加一块设备/dev/vdb3
vgextend vg0  /dev/vdb3   ##把新建立的/dev/vdb2添加到vg0中

2.4 vg缩减

1
2
3
4
#在vg缩减时只能缩减没有被占用的设备
pvmove  设备1  设备2      ##把设备1上的所有数据移动到设备2上
vgreduce vg0   /dev/vdb1      ##把vg0中的/dev/vdb1删除
pvremove  /dev/vdb1             ##移除设备/dev/vdb1

3、删除lvm

1
2
3
4
umount    /mnt
lvremove   /dev/vg0/lv0
vgremove  vg0
pvremove   /dev/vdb2

4.lvm的快照


快照作用:保护原始数据不被破坏
>>lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0
实操:

1)在/westos下建立文件

注:此时/westos下挂载的是设备/dev/vg0/lv0
touch /westos/file{1..4}
ls /westos

2)取消/westos挂载

umount /westos

3)新建快照设备删除/westos下文件

lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0##同时亦快照了文件系统,故不用对快照的逻辑卷格式化就可以进行挂载
mount /dev/vg0/lv0backup /westos
ls /westos
rm -rf file*

4)取消快照设备挂载

umount /westos

5)移除快照设备

lvremove /dev/vg0/lv0backup

6)新建快照设备lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0

mount /dev/vg0/lv0backup /westos

7)查看/westos下文件

ls /westos

5. lvm的删除

lvremove /dev/vg0/lv0
vgremove vg0
pvremove /dev/vdb2
fdisk /dev/vdb


#当lvm的分区被误删除时#

当出现以下错误时:

1)

删除分区 /dev/vdb1 后,同步结果如下:[root@server ~]# partprobeError: Partition(s) 1 on /dev/vdb have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use.  As a result, the old partition(s) will remain in use.  You should reboot now before making further changes.
[root@server ~]# fdisk -l   Device Boot      Start         End      Blocks   Id  System
/dev/vdb2         1026048     2050047      512000   8e  Linux LVM
[root@server ~]# blkid/dev/vda1: UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" TYPE="xfs" 
/dev/vdb1: UUID="1vNDy0-kQyO-GMPX-OaQv-R5Ip-YPaG-kxdtUH" TYPE="LVM2_member" 
/dev/vdb2: UUID="8XOl5c-DuVJ-SCzS-NSND-Zf6h-Op0V-CIKcB7" TYPE="LVM2_member" 
[root@server ~]# pvremove /dev/vdb1
  PV /dev/vdb1 belongs to Volume Group vg0 so please use vgreduce first.
  (If you are certain you need pvremove, then confirm by using --force twice.)说明分区 /dev/vdb1 正在被使用时,被删除了。


解决办法:

[root@server ~]# pvmove /dev/vdb1 /dev/vdb2  /dev/vdb1: Moved: 6.0%
  /dev/vdb1: Moved: 100.0%


2)


[root@server ~]# pvs  PV 1vNDy0-kQyO-GMPX-OaQv-R5Ip-YPaG-kxdtUH not recognised. Is the device missing?
  PV 1vNDy0-kQyO-GMPX-OaQv-R5Ip-YPaG-kxdtUH not recognised. Is the device missing?
  PV 1vNDy0-kQyO-GMPX-OaQv-R5Ip-YPaG-kxdtUH not recognised. Is the device missing?
  PV             VG   Fmt  Attr PSize   PFree  
  /dev/vdb2      vg0  lvm2 a--  496.00m 296.00m
  unknown device vg0  lvm2 a-m  496.00m 496.00m
[root@server ~]# vgs  PV 1vNDy0-kQyO-GMPX-OaQv-R5Ip-YPaG-kxdtUH not recognised. Is the device missing?
  PV 1vNDy0-kQyO-GMPX-OaQv-R5Ip-YPaG-kxdtUH not recognised. Is the device missing?
  VG   #PV #LV #SN Attr   VSize   VFree  
  vg0    2   1   0 wz-pn- 992.00m 792.00m
[root@server ~]# partprobe