Linux之系统 lvm 管理

##### 1.LVM 相关概念 #####

    物理存储介质   ##系统的物理存储设备                pv   ##物理卷 ,LVM 的基本存储逻辑块   

    pe   ##物理块,LVM最小寻址单元,默认4M      vg   ##卷组,类似非lvm系统磁盘      

    lv    ##逻辑卷,类似非lvm系统的逻辑分区           le    ##逻辑块,lv也可当作最小的寻址单元

##### 2.设置lvm分区挂载 #####

```用watch -n 1 'pvs;vgs;lvs;df -h /mnt' 命令监控lvm系统

Linux之系统 lvm 管理

Linux之系统 lvm 管理

1.建立分区设置为lvm类型

     fdisk /dev/vdb

Linux之系统 lvm 管理

Linux之系统 lvm 管理

2.同步分区表

partprobe

Linux之系统 lvm 管理

3.将物理分区变为物理卷

pvcreate /dev/vdb1

Linux之系统 lvm 管理

Linux之系统 lvm 管理

4.将物理卷变为物理卷组

vgcreate  vg0 /dev/vdb1

Linux之系统 lvm 管理

Linux之系统 lvm 管理

5.建立逻辑卷 

lvcreate   -L   100M   -n   lv0   vg0

    -L   ##指定逻辑卷大小    

    -n   ##指定逻辑卷名字

Linux之系统 lvm 管理

Linux之系统 lvm 管理

6.格式化  

mkfs.xfs   /dev/vg0/lv0

Linux之系统 lvm 管理

7.挂载 

mount   /dev/vg0/lv0   /data

Linux之系统 lvm 管理

Linux之系统 lvm 管理

##### 3.逻辑卷/卷组管理 #####

1.lvm的拉伸

```lvm支持热拉伸

Linux之系统 lvm 管理

^  lv初始大小80M,vg大小96M,文件系统大小77M

(1)当vg中剩余容量充足:

a.扩展逻辑卷

lvextend   -L  90M   /dev/vg0/lv0   

Linux之系统 lvm 管理

Linux之系统 lvm 管理

b.扩展挂载的文件系统   

xfs_growfs   /dev/vg0/lv0

Linux之系统 lvm 管理

Linux之系统 lvm 管理

(2)当vg剩余容量不足时:

a.  建立新的物理卷 

pvcreate   /dev/vdb2

Linux之系统 lvm 管理

 

b. 扩展卷组

vgextend   vg0   /dev/vdb2

Linux之系统 lvm 管理

Linux之系统 lvm 管理

c. 扩展逻辑卷

lvextend  -L  150M  /dev/vg0/lv0

Linux之系统 lvm 管理

Linux之系统 lvm 管理

d. 扩展挂载的文件系统   

xfs_growfs   /dev/vg0/lv0

Linux之系统 lvm 管理

Linux之系统 lvm 管理

2.lvm的缩减

(1)缩减逻辑卷

注意:1.xfs 文件系统不支持缩减,需要ext4文件系统

            2.lvm系统不支持热缩减,需要先进行卸载:

               文件系统只能在设备卸载状态下格式化或缩减,

               在挂载状态下只能进行扩容。

            3.文件系统大小不能超过设备大小,必须先对文件系统进行缩减。

Linux之系统 lvm 管理

^ 挂载状态下不能重新格式化。

a.卸载 

umount   /data

Linux之系统 lvm 管理

b.将文件系统格式化为ext4  

mkfs.ext4   /dev/vg0/lv0

Linux之系统 lvm 管理

c.扫描文件(避免缩减空间过小导致数据损坏)

e2fsck  -f   /dev/vg0/lv0

Linux之系统 lvm 管理

d.缩减文件系统 

resize2fs   /dev/vg0/lv0   20M

Linux之系统 lvm 管理

e.挂载  

mount   /dev/vg0/lv0   /data

Linux之系统 lvm 管理

Linux之系统 lvm 管理

^ 挂载后监控到文件系统缩减成功。

f.缩减逻辑卷 

lvreduce   -L   20M   /dev/vg0/lv0

Linux之系统 lvm 管理

Linux之系统 lvm 管理

```注意:若直接编辑  resize2fs   /dev/vg0/lv0,表示根据设备大小扩容ext4文件系统大小,

                只有指定一个小于当前系统大小的值才能实现缩减。

Linux之系统 lvm 管理

^ 扩展逻辑卷大小为150M,resize2fs /dev/vg0/lv0 扩容ext4文件系统。

Linux之系统 lvm 管理

^ 扩容成功

(2)移除物理卷

a.转移占用该物理卷的数据

Linux之系统 lvm 管理

Linux之系统 lvm 管理

^ 物理卷/dev/vdb1空间全部空闲

2.移除物理卷

vgreduce   vg0   /dev/vdb1

Linux之系统 lvm 管理

Linux之系统 lvm 管理

^ 从物理卷组中移除物理卷,容量减小

##### 4.lvm快照 #####

1.建立快照

lvcreate   -L   20M   -n   lv0-backup   -s   /dev/vg0/lv0

Linux之系统 lvm 管理

2.挂载

mount   /dev/vg0/lv0-backup  /mnt

Linux之系统 lvm 管理

^ 挂载后可以看到逻辑卷快照大小为20M,但挂载后文件系统大小与母盘相同

3.测试

(1)在逻辑卷中存储数据

Linux之系统 lvm 管理

(2)建立快照并挂载

Linux之系统 lvm 管理

Linux之系统 lvm 管理

Linux之系统 lvm 管理

^ 母盘挂载在/data,快照挂载在/mnt

(3)删除快照中数据

Linux之系统 lvm 管理

^ 删除快照数据母盘不受影响,安全保存数据

(4)恢复:删除破损快照并重新建立快照

lvremove   /dev/vg0/lv0-backup

Linux之系统 lvm 管理

  lvcreate   -L   20M   -n   lv0-backup   -s   /dev/vg0/lv0

Linux之系统 lvm 管理

^ 挂载后文件恢复

##### 5.删除LVM #####

Linux之系统 lvm 管理

Linux之系统 lvm 管理

^ 当前状态

   1.卸载所有的挂载点

Linux之系统 lvm 管理

   2.移除逻辑卷(源文件和快照)

     lvremove   /dev/vg0/lv0-backup

     lvremove  /dev/vg0/lv0

Linux之系统 lvm 管理

 

   3.移除卷组 

vgremove   vg0

Linux之系统 lvm 管理

   4.移除所有的物理卷

     pvremove   /dev/vdbx

Linux之系统 lvm 管理

   5.查看移除结果

pvs

Linux之系统 lvm 管理