Linux管理LVM逻辑卷(PV、VG、LV)及常见错误处理

    技术2022-07-10  139

    0、常用的LVM管理命令

              功能

    物理卷管理

    卷组管理

    逻辑卷管理

    扫描 scan

              pvscan

              vgscan

               lvscan

    建立 create

    pvcreate

    vgcreate

    lvcreate

    显示 display

    pvdisplay

    vgdisplay

    lvdisplay

    删除 remove

    pvremove

    vgremove

    lvremove

    扩展 extend

     

    vgextend

    lvextend

    减少 reduce

     

    vgreduce

    lvreduce

    1、LVM基本概念

    1、LVM 概述

    LVM(Logical Volume Manager),逻辑卷管理

    (1)作用:动态调整磁盘容量,从而提高磁盘管理的灵活性

    (2)注意:/boot 分区用于存放引导文件,不能基于 LVM 创建

    2、LVM 基本概念

    (1)PV(Physical Volume),物理卷 整个硬盘,或使用 fdisk 等工具建立的普通分区。

    包括许多默认 4M 大小的 PE(Physical Extent,基本单元/物理单元)。

    (2)VG(Volume Group),卷组。

    (3)LV(Logical Volume),逻辑卷 从卷组中分割出的一块空间,用于建立文件系统。

    2、常用命令

    常用命令:

    (1)创建物理卷 pvcreate 命令 

    1>格式:pvcreate 设备 1 [设备 2 ……]

    2>示例:

    [root@www ~]# pvcreate /dev/sd[bcde]1 Physical volume "/dev/sdb1" successfully created Physical volume "/dev/sdc1" successfully created Physical volume "/dev/sdd1" successfully created Physical volume "/dev/sde1" successfully created

    (2)创建卷组 vgcreate 命令

    1>格式:vgcreate  卷组名 物理卷名 1  物理卷名 2…  选项–s  指定 PE 大小(单位 M)

    2>示例:

    [root@www ~]# vgcreate -s 8 vg0 /dev/sd[bcde]1 Volume group "vg0" successfully created [root@www ~]# vgdisplay /dev/vg0 --- Volume group --- VG Name vg0 System ID Format lvm2 Metadata Areas 4 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 4 Act PV 4 VG Size 79.97 GiB PE Size 8.00 MiB Total PE 10236 Alloc PE / Size 0 / 0 Free PE / Size 10236 / 79.97 GiB VG UUID 5gTGNW-XWYN-hNKj-Fn4L-ehS2-fCIW-RQuIB8

    (3)创建逻辑卷 lvcreate 命令

    1>格式:lvcreate –L  容量大小 (–l  指定 PE 个数) –n  逻辑卷名 卷组名

    2>示例:

    [root@www ~]# lvcreate -L 20G -n xuexi vg0  Logical volume "xuexi" created 或:[root@www ~]# lvcreate -l 50000 -n xuexi vg0

    (4)扩展逻辑卷 lvextend 命令

    1>格式:lvextend –L +大小或直接写增加后的最终大小 /dev/卷组名/逻辑卷名

    2>示例:

    [root@www ~]# lvextend -L +5G /dev/vg0/xuexi  Extending logical volume xuexi to 25.00 GiB Logical volume xuexi successfully resized [root@www ~]# lvextend -L 30G /dev/vg0/xuexi  Extending logical volume xuexi to 30.00 GiB Logical volume xuexi successfully resized

    (5)调整(刷新)逻辑卷分区大小

    1>格式:resize2fs /dev/卷组名/逻辑卷名

    2>示例:

    resize2fs /dev/vg0/xuexi  resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/vg0/xuexi is mounted on /xuexi; on-line resizing required old desc_blocks = 1, new_desc_blocks = 2 Performing an on-line resize of /dev/vg0/xuexi to 5242880 (4k) blocks. The filesystem on /dev/vg0/xuexi is now 5242880 blocks long

    3、创建LV实例

    1、查看 vg(vgdisplay):

    2、创建 lv_home(lvcreate -l 114686 -n lv_home vg_xxxx):

    命令中 -l 后面的就是 vg 中空余的 PE 个数,-n 就是创建的 lv 名称,vg_xxxx 就是卷组。

    3、格式化新创建的 LV(mkfs -t ext4 /dev/vg_xxxx/lv_home):

    4、挂载(mount /dev/vg_xxxx/lv_home /home):

    执行 ‘df -h’ 可以看到逻辑卷已添加:

    5、设置开机自动挂载:

    修改 /etc/fstab 文件添加如下一行:

    /dev/mapper/vg_topslave2-lv_home /home ext4 defaults 1 2

    defaults 表示默认,其他的还有:

    defaults:默认 auto:系统自动挂载,fstab 默认就是这个选项 noauto:开机不自动挂载 nouser:只有超级用户可以挂载 ro:按制度权限挂载 rw:按可读可写权限挂载 user:任何用户都可以挂载

    defaults 后面是 dump 备份设置。1 表示允许 dump 备份程序备份;设置为 0 时,忽略备份操作。

    1 后面的 2 是 fsck 磁盘检查设置。其值是一个顺序,当其值为 0 时,永远不检查;而 / 根目录分区永远都为 1,其他分区 一般为 2。

    错误1

    执行 ‘lvextend -L +36G /dev/mapper/vg_topslave2-lv_root’ 时报错:

    Couldn't find device with uuid JbDYxI-aS9a-HHei-syZj-CKXr-uB3o-5h0tKS. Cannot change VG vg_topslave2 while PVs are missing. Consider vgreduce --removemissing.

    解决办法:

    1、执行 ‘pvscan’:

    发现一个 unknown device ,这是由于曾创建的 pv 被删除或者创建失败出现的。

    2、执行 ‘vgreduce --removemissing --test --verbose vg_topslave2’:

    这里加了一个 test ,这很重要。在正式操作之前使用方便查看结果,不然删错数据那 。。。

    正式操作 ‘vgreduce --removemissing --verbose vg_topslave2’:

    然后再执行 ‘pvscan’:

    发现卷错误已经没有了,这时候就可以正常的扩展 lv 了。

    错误2

    执行 ‘pvcreate /dev/sda3’ 时报错:

    Can't initialize physical volume "/dev/sda3" of volume group "vg_topslave2" without -ff

    解决办法:

    将创建命令改为:

    pvcreate -ff -y /dev/sda3

     

    Processed: 0.014, SQL: 9