• 【RHEL】RHEL 7.6逻辑卷管理器LVM介绍


    目录

     

    1 LVM逻辑卷管理器

    1.1 LVM介绍

    1.2 使用逻辑卷的优势

    2 LVM组件

    2.1 LVM组成

    2.2 物理卷

    2.3 卷组

    2.4 逻辑卷

    3 LVM管理

    3.1 物理卷管理

    3.1.1 创建物理卷

    3.1.2 显示物理卷

    3.1.3 删除物理卷

    3.2 卷组管理

    3.2.1 创建卷组

    3.2.2 向卷组添加物理卷

    3.2.3 显示卷组

    3.2.4 从卷组删除物理卷

    3.2.5 删除卷组

    3.2.6 分割卷组

    3.2.7 合并卷组

    3.2.8 重命名卷组

    3.3 逻辑卷管理

    3.3.1 创建逻辑卷

    3.3.2 减小逻辑卷大小

    3.3.3 重命名逻辑卷

    3.3.4 删除逻辑卷

    3.3.5 显示逻辑卷

    3.3.5 增大逻辑卷

    4 LVM配置示例

    4.1 创建物理卷

    4.2 创建卷组

    4.3 创建逻辑卷

    4.4 创建文件系统

    4.5 挂载并显示文件系统磁盘空间使用

    4.6 从逻辑卷删除磁盘

    4.6.1 查看逻辑卷在卷组的分配

    4.6.2 移动扩展并查看

    4.6.3 删除磁盘


    1 LVM逻辑卷管理器

    1.1 LVM介绍

    逻辑卷管理会根据物理存储生成提取层,以便创建逻辑存储卷,这样比直接使用物理存储在很多方面提供了更大灵活性,使用逻辑卷时不会受物理磁盘大小的限制。另外,软件无法看到硬件存储配置,因此可在不停应用程序或卸载文件系统的情况下,重新定义大小并进行移动,这样可降低成本。

    1.2 使用逻辑卷的优势

    使用逻辑卷比直接使用物理存储时具有以下优势;

    • 灵活的容量

           当使用逻辑卷时,可在多个磁盘见扩展文件系统,因为可以将磁盘和分区集合成一个逻辑 卷;

    • 可重新设定大小的存储池

           可以使用简单软件命令增加或减少逻辑卷大小,而无需对所在磁盘设备重新格式化或重新分区;

    • 在线数据重新定位

           要部署更新、更快或者更有弹性的存储子系统,以便可以在系统活跃时移动数据。在磁盘处于使用状态时重新分配磁盘,例如,可以在删除热插拔磁盘前将其清空;

    • 方便的设备命名

           可使用用户自定义及自定义命名组管理逻辑存储卷;

    • 磁盘条带化

           可创建一个可在两个或更多磁盘间条状分布数据的逻辑卷,这可大幅度提高吞吐量;

    • 镜像卷

           逻辑卷提供了方便配置数据镜像的方法;

    • 卷快照

           可使用逻辑卷提取设备快照,这样可在持续备份或在不影响真实数据的情况下测试修改效果。

    2 LVM组件

    2.1 LVM组成

    下图展示了一个简单LVM的组成:

    2.2 物理卷

    LVM逻辑卷的底层物理存储单元是一个块设备,比如一个分区或整个磁盘。要在LVM逻辑卷中使用该设备,则必须将该设备初始化为物理卷(PV)。将块设备初始化为物理卷会在该设备的起始扇区附近放置一个标签,默认情况下,LVM标签是放在第二个512字节扇区,可将标签放在最开始的四个扇区之一来覆盖默认设置。

    2.3 卷组

    物理卷合并为卷组(VG)。这样就创建了磁盘空间池,并可使用它分配逻辑卷。

    在卷组中,可用来分配的磁盘空间被分为固定大小的单元,称之为扩展,扩展时可进行分配的最小空间单元,在物理卷中,扩展指物理扩展。

    逻辑卷会被分配成与物理卷扩展相同大小的逻辑扩展,因此卷组中逻辑卷的扩展大小都是一样的,卷组将逻辑扩展与物理扩展匹配。

    2.4 逻辑卷

    逻辑卷是从卷组中进行分配。

    3 LVM管理

    3.1 物理卷管理

    3.1.1 创建物理卷

    1)初始化物理卷

    使用pvcreate命令初始化要作为物理卷使用的块设备,初始化时模拟格式化文件系统。

    [root@strong ~]# pvcreate /dev/sdb /dev/sdc /dev/sdd
    Physical volume "/dev/sdb" successfully created.
    Physical volume "/dev/sdc" successfully created.
    Physical volume "/dev/sdd" successfully created.

    2)扫描块设备

    可使用lvmdiskscan命令扫描要作为物理卷使用的块设备。

    [root@strong ~]# lvmdiskscan
    /dev/rhel/root [ <45.12 GiB]
    /dev/sda1 [ 1.00 GiB]
    /dev/rhel/swap [ <3.88 GiB]
    /dev/sda2 [ <49.00 GiB] LVM physical volume
    /dev/sdb [ 5.00 GiB] LVM physical volume
    /dev/sdc [ 5.00 GiB] LVM physical volume
    /dev/sdd [ 5.00 GiB] LVM physical volume
    /dev/sde [ 5.00 GiB]
    3 disks
    1 partition
    3 LVM physical volume whole disks
    1 LVM physical volume

    3.1.2 显示物理卷

    显示物理卷属性的命令有以下几种,分别为pvs、pvdisplay和pvscan。其中,

    pvs命令以可配置的格式提供物理卷信息,每行显示一个物理卷;

    pvs命令提供大量格式控制,供脚本使用;

    pvdisplay命令为每个物理卷提供详细的多行输出结果,它以固定格式显示物理属性(大小、扩展、卷组等)。

    1)pvdisplay展示

    [root@strong ~]# pvdisplay
    --- Physical volume ---
    PV Name /dev/sda2
    VG Name rhel
    PV Size <49.00 GiB / not usable 3.00 MiB
    Allocatable yes
    PE Size 4.00 MiB
    Total PE 12543
    Free PE 1
    Allocated PE 12542
    PV UUID Zumenl-KAXC-yxBQ-YzbH-ojyk-ONyX-BgO1ge
    "/dev/sdc" is a new physical volume of "5.00 GiB"
    --- NEW Physical volume ---
    PV Name /dev/sdc
    VG Name
    PV Size 5.00 GiB
    Allocatable NO
    PE Size 0
    Total PE 0
    Free PE 0
    Allocated PE 0
    PV UUID BlL9F8-rrNM-2iTr-ZzGM-IhPp-lCHS-4XW9TT
    "/dev/sdb" is a new physical volume of "5.00 GiB"
    --- NEW Physical volume ---
    PV Name /dev/sdb
    VG Name
    PV Size 5.00 GiB
    Allocatable NO
    PE Size 0
    Total PE 0
    Free PE 0
    Allocated PE 0
    PV UUID DGgDgZ-vih2-gzOz-nvY7-RBeQ-IV7C-l1yPx0
    "/dev/sdd" is a new physical volume of "5.00 GiB"
    --- NEW Physical volume ---
    PV Name /dev/sdd
    VG Name
    PV Size 5.00 GiB
    Allocatable NO
    PE Size 0
    Total PE 0
    Free PE 0
    Allocated PE 0
    PV UUID pH4HSr-uzbK-Abva-rMGQ-SefO-K6jt-tj8wn9

    2)pvscan展示

    [root@strong ~]# pvscan
    PV /dev/sda2 VG rhel lvm2 [<49.00 GiB / 4.00 MiB free]
    PV /dev/sdc lvm2 [5.00 GiB]
    PV /dev/sdb lvm2 [5.00 GiB]
    PV /dev/sdd lvm2 [5.00 GiB]
    Total: 4 [<64.00 GiB] / in use: 1 [<49.00 GiB] / in no VG: 3 [15.00 GiB]

    3)pvs展示

    [root@strong ~]# pvs
    PV VG Fmt Attr PSize PFree
    /dev/sda2 rhel lvm2 a-- <49.00g 4.00m
    /dev/sdb lvm2 --- 5.00g 5.00g
    /dev/sdc lvm2 --- 5.00g 5.00g
    /dev/sdd lvm2 --- 5.00g 5.00g

    3.1.3 删除物理卷

    可使用pvremove命令删除物理卷。

    [root@strong ~]# pvremove /dev/sdd
    Labels on physical volume "/dev/sdd" successfully wiped.

    3.2 卷组管理

    3.2.1 创建卷组

    可使用vgcreate命令为一个或多个物理卷创建卷组,vgcreate命令根据名称新建卷组,并至少在其中条件一个物理卷。

    [root@strong ~]# vgcreate vg1 /dev/sdb /dev/sdc
    Volume group "vg1" successfully created

    使用物理卷创建卷组时,默认将磁盘空间分成大小为4MB的扩展,这个扩展是逻辑卷增大或减小的最小的量,大的扩展数目不会影响逻辑卷的I/O性能。LVM卷组及底层逻辑卷包含在/dev目录的特殊文件目录树中,/dev/vg/lv。

    3.2.2 向卷组添加物理卷

    使用vgextend命令在现有卷组中添加额外的物理卷,该命令通过添加一个或多个可用物理卷增大卷组容量。

    [root@strong ~]# vgextend vg1 /dev/sdd
    Volume group "vg1" successfully extended

    3.2.3 显示卷组

    显示卷组属性的命令有vg和vgdisplay,其中,

    vgscan命令扫描卷组的所有磁盘,并重新构建LVM缓存文件,同时显示卷组;

    vgs命令使用可配置格式提供卷组信息,每行表示一个卷组;

    vgdisplay命令采用固定格式显示卷组属性(比如大小、扩展、物理卷数等等)。

    1)vgdisplay展示

    [root@strong ~]# vgdisplay vg1
    --- Volume group ---
    VG Name vg1
    System ID
    Format lvm2
    Metadata Areas 3
    Metadata Sequence No 2
    VG Access read/write
    VG Status resizable
    MAX LV 0
    Cur LV 0
    Open LV 0
    Max PV 0
    Cur PV 3
    Act PV 3
    VG Size <14.99 GiB
    PE Size 4.00 MiB
    Total PE 3837
    Alloc PE / Size 0 / 0
    Free PE / Size 3837 / <14.99 GiB
    VG UUID bEx3Gq-6k2Y-24nZ-S6vb-cB0l-0d1G-cUxGzC

    2)vgs展示

    [root@strong ~]# vgs vg1
    VG #PV #LV #SN Attr VSize VFree
    vg1 3 0 0 wz--n- <14.99g <14.99g

    3.2.4 从卷组删除物理卷

    使用vgreduce命令从卷组删除未使用的物理卷,该命令通过删除一个或多个空物理卷来缩小卷组容量,这样可释放物理卷,或者将其从系统删除。

    从卷组删除物理卷前,可使用pvdisplay可确定任何逻辑卷都没有使用该物理卷。

    [root@strong ~]# pvdisplay /dev/sdd
    --- Physical volume ---
    PV Name /dev/sdd
    VG Name vg1
    PV Size 5.00 GiB / not usable 4.00 MiB
    Allocatable yes
    PE Size 4.00 MiB
    Total PE 1279
    Free PE 1279
    Allocated PE 0
    PV UUID izAfP4-cnRD-s6H0-SBZL-jDLE-yE3Y-zTHsF8

    如果该物理卷被使用,则必须使用pvmove命令将该数据迁移到另一个物理卷中,然后使用vgreduce命令删除该物理卷。

    [root@strong ~]# vgreduce vg1 /dev/sdd
    Removed "/dev/sdd" from volume group "vg1"

    3.2.5 删除卷组

    使用vgremove命令删除不包含逻辑卷的卷组;

    [root@strong ~]# vgremove vg1
    Volume group "vg1" successfully removed

    3.2.6 分割卷组

    使用vgsplit命令拆分卷组的物理卷,并创建新卷组;

    [root@strong ~]# vgsplit vg1 vg001 /dev/sdd
    New volume group "vg001" successfully split from "vg1"
    [root@strong ~]# vgs
    VG #PV #LV #SN Attr VSize VFree
    rhel 1 2 0 wz--n- <49.00g 4.00m
    vg001 1 0 0 wz--n- <5.00g <5.00g
    vg1 2 0 0 wz--n- 9.99g 9.99g

    3.2.7 合并卷组

    使用vgmerge命令可以实现卷组的合并。

    [root@strong ~]# vgmerge -v vg1 vg001
    Checking for volume group "vg001"
    Checking for volume group "vg1"
    Archiving volume group "vg001" metadata (seqno 2).
    Archiving volume group "vg1" metadata (seqno 2).
    Writing out updated volume group
    Creating volume group backup "/etc/lvm/backup/vg1" (seqno 3).
    Volume group "vg001" successfully merged into "vg1"
    [root@strong ~]# vgs
    VG #PV #LV #SN Attr VSize VFree
    rhel 1 2 0 wz--n- <49.00g 4.00m
    vg1 3 0 0 wz--n- <14.99g <14.99g

    3.2.8 重命名卷组

    使用vgrename命令可对卷组重命名。

    [root@strong ~]# vgrename vg1 vg1_new
    Volume group "vg1" successfully renamed to "vg1_new"

    3.3 逻辑卷管理

    3.3.1 创建逻辑卷

    使用lvcreate命令创建逻辑卷,如果没有指定名称,则默认使用lv0l#,其中#是逻辑卷内部编号。创建逻辑卷后,则会从组成卷组的物理卷中的剩余扩展中分出逻辑卷。

    1)在卷组vg1中创建大小为1G的逻辑卷

    [root@strong ~]# lvcreate -L 1G vg1
    Logical volume "lvol0" created.

    2)在卷组vg1中创建大小为100M,名称为lvdate的逻辑卷

    [root@strong ~]# lvcreate -L 100M -n lvdata vg1
    Logical volume "lvdata" created.

    3)在卷组vg1中创建大小为总空间10%,名称为lvfra的逻辑卷

    [root@strong ~]# lvcreate -l 10%VG -n lvfra vg1
    Logical volume "lvfra" created.

    3.3.2 减小逻辑卷大小

    使用lvreduce命令可减小逻辑卷大小。

    [root@strong ~]# lvreduce -L 512M vg1/lvol0
    WARNING: Reducing active logical volume to 512.00 MiB.
    THIS MAY DESTROY YOUR DATA (filesystem etc.)
    Do you really want to reduce vg1/lvol0? [y/n]: y
    Size of logical volume vg1/lvol0 changed from 1.00 GiB (256 extents) to 512.00 MiB (128 extents).
    Logical volume vg1/lvol0 successfully resized.

    3.3.3 重命名逻辑卷

    使用lvrename命令重命名逻辑卷。

    [root@strong ~]# lvrename vg1 lvol0 lvtest
    Renamed "lvol0" to "lvtest" in volume group "vg1"

    3.3.4 删除逻辑卷

    使用lvremove命令删除不活跃的逻辑卷。

    [root@strong ~]# lvremove /dev/vg1/lvtest
    Do you really want to remove active logical volume vg1/lvtest? [y/n]: y
    Logical volume "lvtest" successfully removed

    3.3.5 显示逻辑卷

    可使用如下命令来查看逻辑卷信息,分别为lvs、lvdisplay和lvscan。

    1)lvs展示

    [root@strong ~]# lvs
    LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
    root rhel -wi-ao---- <45.12g
    swap rhel -wi-ao---- <3.88g
    lvdata vg1 -wi-a----- 100.00m
    lvfra vg1 -wi-a----- 1020.00m

    2)lvdisplay展示

    [root@strong ~]# lvdisplay vg1
    --- Logical volume ---
    LV Path /dev/vg1/lvdata
    LV Name lvdata
    VG Name vg1
    LV UUID KpFp43-Zoka-c9rN-1hZ5-jE3N-7lBB-031aC2
    LV Write Access read/write
    LV Creation host, time strong, 2019-09-21 11:20:32 +0800
    LV Status available
    # open 0
    LV Size 100.00 MiB
    Current LE 25
    Segments 1
    Allocation inherit
    Read ahead sectors auto
    - currently set to 8192
    Block device 253:3
    --- Logical volume ---
    LV Path /dev/vg1/lvfra
    LV Name lvfra
    VG Name vg1
    LV UUID YAhtL8-HOvb-FHrs-qBL7-jhd1-QMfB-JjIMq5
    LV Write Access read/write
    LV Creation host, time strong, 2019-09-21 11:24:34 +0800
    LV Status available
    # open 0
    LV Size 1020.00 MiB
    Current LE 255
    Segments 1
    Allocation inherit
    Read ahead sectors auto
    - currently set to 8192
    Block device 253:4

    3)lvscan展示

    [root@strong ~]# lvscan
    ACTIVE '/dev/vg1/lvdata' [100.00 MiB] inherit
    ACTIVE '/dev/vg1/lvfra' [1020.00 MiB] inherit
    ACTIVE '/dev/rhel/swap' [<3.88 GiB] inherit
    ACTIVE '/dev/rhel/root' [<45.12 GiB] inherit

    3.3.5 增大逻辑卷

    使用lvextend命令增加逻辑卷大小。

    1)将逻辑卷lvdata大小增大1G

    [root@strong ~]# lvextend -L+1G /dev/vg1/lvdata
    Size of logical volume vg1/lvdata changed from 100.00 MiB (25 extents) to <1.10 GiB (281 extents).
    Logical volume vg1/lvdata successfully resized.

    2)将逻辑卷lvdata大小增大到2G

    [root@strong ~]# lvextend -L 2G /dev/vg1/lvdata
    Size of logical volume vg1/lvdata changed from <1.10 GiB (281 extents) to 2.00 GiB (512 extents).
    Logical volume vg1/lvdata successfully resized.

    4 LVM配置示例

    4.1 创建物理卷

    [root@strong ~]# pvcreate /dev/sdb /dev/sdc /dev/sdd
    Physical volume "/dev/sdb" successfully created.
    Physical volume "/dev/sdc" successfully created.
    Physical volume "/dev/sdd" successfully created.

    4.2 创建卷组

    [root@strong ~]# vgcreate vg1 /dev/sdb /dev/sdc /dev/sdd
    Volume group "vg1" successfully created
    [root@strong ~]# vgs
    VG #PV #LV #SN Attr VSize VFree
    rhel 1 2 0 wz--n- <49.00g 4.00m
    vg1 3 0 0 wz--n- <14.99g <14.99g

    4.3 创建逻辑卷

    [root@strong ~]# lvcreate -L 3G -n lvdata vg1
    Logical volume "lvdata" created.
    [root@strong ~]# lvs vg1
    LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
    lvdata vg1 -wi-a----- 3.00g

    4.4 创建文件系统

    [root@strong ~]# mkfs.ext4 /dev/vg1/lvdata
    mke2fs 1.42.9 (28-Dec-2013)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    196608 inodes, 786432 blocks
    39321 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=805306368
    24 block groups
    32768 blocks per group, 32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912
    Allocating group tables: done
    Writing inode tables: done
    Creating journal (16384 blocks): done
    Writing superblocks and filesystem accounting information: done

    4.5 挂载并显示文件系统磁盘空间使用

    [root@strong ~]# mkdir /data
    [root@strong ~]# mount /dev/vg1/lvdata /data/
    [root@strong ~]# df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/mapper/rhel-root 46G 4.2G 41G 10% /
    devtmpfs 1.9G 0 1.9G 0% /dev
    tmpfs 1.9G 0 1.9G 0% /dev/shm
    tmpfs 1.9G 9.2M 1.9G 1% /run
    tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
    /dev/sda1 1014M 177M 838M 18% /boot
    tmpfs 379M 12K 379M 1% /run/user/42
    tmpfs 379M 0 379M 0% /run/user/0
    /dev/mapper/vg1-lvdata 2.9G 9.0M 2.8G 1% /data

    4.6 从逻辑卷删除磁盘

    4.6.1 查看逻辑卷在卷组的分配

    [root@strong ~]# pvs -o+pv_used
    PV VG Fmt Attr PSize PFree Used
    /dev/sda2 rhel lvm2 a-- <49.00g 4.00m 48.99g
    /dev/sdb vg1 lvm2 a-- <5.00g <2.00g 3.00g
    /dev/sdc vg1 lvm2 a-- <5.00g <5.00g 0
    /dev/sdd vg2 lvm2 a-- <5.00g <3.00g 2.00g

    4.6.2 移动扩展并查看

    [root@strong ~]# pvmove /dev/sdb /dev/sdc
    /dev/sdb: Moved: 0.13%
    /dev/sdb: Moved: 100.00%
    [root@strong ~]# pvs -o+pv_used
    PV VG Fmt Attr PSize PFree Used
    /dev/sda2 rhel lvm2 a-- <49.00g 4.00m 48.99g
    /dev/sdb vg1 lvm2 a-- <5.00g <5.00g 0
    /dev/sdc vg1 lvm2 a-- <5.00g <2.00g 3.00g
    /dev/sdd vg2 lvm2 a-- <5.00g <3.00g 2.00g

    4.6.3 删除磁盘

    [root@strong ~]# vgreduce vg1 /dev/sdb
    Removed "/dev/sdb" from volume group "vg1"
    [root@strong ~]# pvs -o+pv_used
    PV VG Fmt Attr PSize PFree Used
    /dev/sda2 rhel lvm2 a-- <49.00g 4.00m 48.99g
    /dev/sdb lvm2 --- 5.00g 5.00g 0
    /dev/sdc vg1 lvm2 a-- <5.00g <2.00g 3.00g
    /dev/sdd vg2 lvm2 a-- <5.00g <3.00g 2.00g

    现在可以物理删除磁盘或将其分给其它用户。

    参考:Red Hat Enterprise Linux 7.1官方文档 

  • 相关阅读:
    Service Cloud 零基础(五)Trailhead学习 Embedded Chat
    Community Cloud零基础学习(五)Topic(主题)管理
    Service Cloud 零基础(四)快速配置一个问卷调查(无开发)
    salesforce零基础学习(一百)Mobile Device Tracking
    mysql 设置查询超时配置
    YIi2 Object 报错问题
    php 如何创建uuid
    mysql8 安装后无法登录的问题
    nano编辑器保存退出
    在使用openbms的时候发现的Thinkphp action 大小写问题
  • 原文地址:https://www.cnblogs.com/alen-liu-sz/p/12975591.html
Copyright © 2020-2023  润新知