管理逻辑卷管理(LVM)存储

管理逻辑卷管理(LVM)存储

电子版PDF下载地址https://github.com/zhd-haodong/Ebook

实施LVM存储

一、创建逻辑卷

1.准备物理设备

  • 使用fdiskgdiskparted创建新分区,以便于LVM结合使用。在LVM分区上始终将分区类型设置成Linux LVM;对于MBR式分区,使用0x8e。如有必要,使用partprobe向内核注册新分区。

  • 也可以使用完整磁盘、RAID阵列或SAN磁盘

  • 只有当没有已准备好的物理设备并且需要新物理设备来创建或扩展组件时,才需要准备物理设备。

[root@centos7 ~]# fdisk /dev/sdb
[root@centos7 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   30G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   29G  0 part 
  ├─centos-root 253:0    0   27G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0  100G  0 disk 
├─sdb1            8:17   0   10G  0 part 
└─sdb2            8:18   0   10G  0 part 
sr0              11:0    1 1024M  0 rom  

2.创建物理卷

  • 使用pvcreate为分区(或其他物理设备)添加标签,使其作为物理卷与LVM结合使用。会将用于存储LVM配置数据的一个标头直接写入到PVPV分为多个固定大小的物理范围(PE);例如4MiB的快。使用以空格分隔的设备名称作为pvcreate的参数,同时标记多个设备。
[root@centos7 ~]# pvcreate /dev/sdb1 /dev/sdb2
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdb2" successfully created.
[root@centos7 ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree 
  /dev/sda2  centos lvm2 a--  <29.00g  4.00m
  /dev/sdb1         lvm2 ---   10.00g 10.00g
  /dev/sdb2         lvm2 ---   10.00g 10.00g

  • 此命令会将设备/dev/sdb1/dev/sdb2标记为PV,准备好分配到卷组中
  • 仅当没有空闲的PV可以创建或扩展VG时,才需要创建PV

3.创建卷组

  • vgcreate用于创建包含一个多个物理卷的池,称为卷组。VG的大小由池中物理范围的总数决定。VG负责通过向LV分配空闲PE来托管一个或多个逻辑卷;因此,在创建LV时,VG必须具有足够的空闲PE可用。
  • vgcreate的参数形式,定义VG名称并列出一个或多个要分配给VGPV
[root@centos7 ~]# vgcreate vg-alpha /dev/sdb1 /dev/sdb2
  Volume group "vg-alpha" successfully created
[root@centos7 ~]# vgs
  VG       #PV #LV #SN Attr   VSize   VFree 
  centos     1   2   0 wz--n- <29.00g  4.00m
  vg-alpha   2   0   0 wz--n-  19.99g 19.99g

  • 此命令将创建名为vg-alphaVG,他的大小是/dev/sdb1/dev/sdb2这两个PV的总和(以PE单位计)
  • 仅当没有VG时才需要创建VG,可能会出于管理原因创建额外的VG,用于管理PVLV的使用。否则,可在需要时扩展现有的VG以容纳新的LV

4.创建逻辑卷

  • lvcreate根据卷组中可用的物理范围创建新的逻辑卷。至少为lvcreate使用以下参数:

    使用-n选项设置LV名称,使用-L选项设置LV大小(以字节为单位),并确定要在其中创建LVVG名称

[root@centos7 ~]# lvcreate -n hercules -L 2G vg-alpha 
  Logical volume "hercules" created.
[root@centos7 ~]# lvs
  LV       VG       Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root     centos   -wi-ao---- 26.99g                                                    
  swap     centos   -wi-ao----  2.00g                                                    
  hercules vg-alpha -wi-a-----  2.00g  
  • 此命令将在VG vg-alpha中创建一个名为herculesLV,其大小时2GiB。必须有足够的空闲物理范围来分配2GiB,如有必要,会将其取整为PE单元大小的倍数

  • 有很多种方式可以指定大小:

    -L 要求以字节或更大指定值为单位的大小,例如,兆字节(二进制兆字节,1048576字节)和千兆字节(二进制千兆字节)。

    -l 选项要求以物理范围数进行衡量的大小

  • 实例:

    lvcreate -L 128M #将逻辑卷的大小确定为正好128MiB

    lvcreate -l 128 #将逻辑卷的大小确定为正好128个范围的大小。字节总数取决于基础物理卷上物理范围块的大小

  • 重要:

    不同的工具将使用传统名称/dev/vgname/lvname或内核设备映射程序名/dev/mapper/vgname-lvname

5.添加文件系统

使用mkfs在新逻辑卷上创建xfs文件系统。或者,选用其他文件系统ext2/3/4

[root@centos7 ~]# mkfs -t xfs /dev/vg-alpha/hercules
meta-data=/dev/vg-alpha/hercules isize=512    agcount=4, agsize=131072 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=524288, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

要使文件系统在重新启动后依然可以使用:

  • 使用mkdir创建挂载点目录
[root@centos7 ~]# mkdir /mnt/hercules
  • /etc/fstab文件添加条目
/dev/vg-alpha/hercules /mnt/hercules xfs defaults 0 0
  • 运行mount -a检测配置正确性
[root@centos7 ~]# mount -a

二、删除逻辑卷

删除所有逻辑卷组件需要四个步骤

1.准备文件系统

  • 将必须保留的所有数据移动到另一个文件系统,然后使用umount卸载该文件系统。记得删除/etc/fstab中相应的条目
[root@centos7 ~]# umount /mnt/hercules/
  • 警告:

​ 删除逻辑卷将会破坏该逻辑卷上存储的是所有数据。删除之前要备份或移动走!!!

2.删除逻辑卷

  • 使用lvremove删除不再需要的逻辑卷。使用设备名称作为参数
[root@centos7 ~]# lvs
  LV       VG       Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root     centos   -wi-ao---- 26.99g                                                    
  swap     centos   -wi-ao----  2.00g                                                    
  hercules vg-alpha -wi-a-----  2.00g                                                    

[root@centos7 ~]# lvremove /dev/vg-alpha/hercules 
Do you really want to remove active logical volume vg-alpha/hercules? [y/n]: y
  Logical volume "hercules" successfully removed

  • 运行此命令前,必须卸载LV文件系统。删除LV之前,将请求确认
  • LV的物理范围将会被释放,并可用于分配给卷组中现有额LV或新LV

3.删除卷组

  • 使用vgremove删除不再需要的卷组,使用VG名称作为参数
[root@centos7 ~]# vgs
  VG       #PV #LV #SN Attr   VSize   VFree 
  centos     1   2   0 wz--n- <29.00g  4.00m
  vg-alpha   2   0   0 wz--n-  19.99g 19.99g
[root@centos7 ~]# vgremove vg-alpha 
  Volume group "vg-alpha" successfully removed

  • VG的物理卷将会被释放,并可用于分配给系统中现有的VG或新VG

4.删除物理卷

  • 使用pvremove删除不再需要的物理卷、使用空格分隔的PV设备列表同时删除多个PV。PV元数据将会从分区(或磁盘)清楚。分区现已空闲,可重新分配或重新格式化
[root@centos7 ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree 
  /dev/sda2  centos lvm2 a--  <29.00g  4.00m
  /dev/sdb1         lvm2 ---   10.00g 10.00g
  /dev/sdb2         lvm2 ---   10.00g 10.00g
[root@centos7 ~]# pvremove /dev/sdb{1,2}
  Labels on physical volume "/dev/sdb1" successfully wiped.
  Labels on physical volume "/dev/sdb2" successfully wiped.

三、查看LVM状态信息

1.物理卷

  • 使用pvdisplay 显示有关物理卷的信息。如果未随命令指定任何参数,则它将列出有关系统上所有的PV信息,如果参数未特定设备名称,则将仅显示特定PV的信息
[root@centos7 ~]# pvdisplay /dev/sdb1
  --- Physical volume ---
  PV Name               /dev/sdb1  #PV name映射到设备名称
  VG Name               alpha  # 显示将PV分配到的卷组
  PV Size               10.00 GiB / not usable 4.00 MiB #显示PV的物理大小,包括任何不可用的空间
  Allocatable           yes 
  PE Size               4.00 MiB  #见下说明
  Total PE              2559
  Free PE               2047 #见下说明
  Allocated PE          512
  PV UUID               hvQN7r-XJcv-pGwz-78qQ-zLJE-g0Ie-PjbTjE
   
  • PE size 说明:

    PE size是物理范围大小,它是逻辑卷中可分配的最小大小

    它也是计算以PE单位报告的任何值(如Free PE)的大小时的倍数;例如:26个PE x 4MiB(PE Size)可提供104MiB可用空间。逻辑卷大小将取整为PE单位的倍数

    LVM会自动设置PE大小,默认是4MiB,但也可以指定其大小

  • Free PE说明

    显示有多少PE单位可用于分配给新逻辑卷

2.卷组

  • 使用vgdisplay显示有关卷组的信息,如果没有为命令提示任何变量,则将显示机器上所有的VG信息。使用VG名称作为变量将仅显示特定VG信息
[root@centos7 ~]# vgdisplay alpha 
  --- Volume group ---
  VG Name               alpha  #此卷组的名称
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               19.99 GiB  #存储池,可用于逻辑卷分配的总大小
  PE Size               4.00 MiB 
  Total PE              5118 #以PE单位表示的总大小
  Alloc PE / Size       512 / 2.00 GiB #已经分配了多大给LV,512*4=2048MiB
  Free  PE / Size       4606 / 17.99 GiB #显示VG中有多少空闲空间可用于分配给新LV或扩展现有LV
  VG UUID               VXWaiK-Bz30-jeoO-aNEA-ki5h-ppWF-pJObUz

3.逻辑卷

  • 使用pvdisplay显示有关逻辑卷的信息。同样,不加参数将显示机器所有逻辑卷信息。而使用LV设备名称作为参数将显示特定信息
[root@centos7 ~]# lvdisplay /dev/alpha/hercules 
  --- Logical volume ---
  LV Path                /dev/alpha/hercules #显示此逻辑卷的设备名称,有些工具可能显示/dev/mapper/vgname-lvname,表示的是同一LV
  LV Name                hercules
  VG Name                alpha  #显示从那个卷组分配的LV
  LV UUID                wwKnsm-bBUA-vx2n-5tCy-ZCPa-cVlk-KkLYFm
  LV Write Access        read/write
  LV Creation host, time centos7, 2021-04-10 17:44:37 +0800
  LV Status              available
  # open                 0
  LV Size                2.00 GiB #显示LV总的大小。使用文件系统工具检查可用空间的数据存储的已用空间
  Current LE             512 #显示此LV使用的逻辑范围数。LE通常映射到VG中的物理范围,并因此映射到物理卷。(可理解为512个PE的大小)
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

河 静

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值