创建逻辑卷操作

        LVM-逻辑卷管理是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。

        硬盘(/dev/sda)--> 分区(/dev/sda1)--> 逻辑卷组(vg0)--> 逻辑卷(lv0)--> 文件系统(ext4)

        物理单元(PE) :Physical Extents--具有唯一编号的PE是能被LVM寻址的最小单元,PE的大小可以指定,默认为4MB。PE的大小一旦确定将不能改变,同一个卷组中的所有的物理卷的PE的大小是一致的

        逻辑单元(LE):Logical Extents--是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小,在同一个卷组中,LE的大小和PE是相同的,通常一一对应

        物理卷(PV):Physical Volume--底层真正提供容量,存放数据的设备,它可以是整个硬盘、硬盘上的分区等

        卷组(VG):Volume Group--建立在物理卷之上,它由一个或多个物理卷组成,即把物理卷整合起来提供容量分配,一个LVM系统中可以只有一个卷组,也可以包含多个卷组

        逻辑卷(LV):Logical Volume--逻辑卷建立在卷组之上,它是从卷组中“切出”的一块空间,它是最终用户使用的逻辑设备,逻辑卷创建之后,其大小可以伸缩

实验

1.创建pv

查看当前硬盘情况 fdisk -l | grep /dev

创建 pv:pvcreate /dev/sdb5

查看 pvdisplay、pvs、lsblk -f、df -h

[root@localhost ~]# fdisk -l | grep /dev
Disk /dev/sda:100 GiB,107374182400 字节,209715200 个扇区
/dev/sda1  *       2048   2099199   2097152   1G 83 Linux
/dev/sda2       2099200 209715199 207616000  99G 8e Linux LVM
Disk /dev/sdb:50 GiB,53687091200 字节,104857600 个扇区
/dev/sdb1          2048 2099199 2097152    1G 83 Linux
/dev/sdb2       2099200 4196351 2097152    1G  5 扩展
/dev/sdb5       2101248 4196351 2095104 1023M 8e Linux LVM
Disk /dev/sdc:20 GiB,21474836480 字节,41943040 个扇区
/dev/sdc2  3907584 9764863 5857280  2.8G Linux 文件系统
Disk /dev/mapper/rl-root:63.9 GiB,68593647616 字节,133971968 个扇区
Disk /dev/mapper/rl-swap:3.9 GiB,4215275520 字节,8232960 个扇区
Disk /dev/mapper/rl-home:31.2 GiB,33487323136 字节,65404928 个扇区
[root@localhost ~]# pvcreate /dev/sdb5
  Physical volume "/dev/sdb5" successfully created.
[root@localhost ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               rl
  PV Size               <99.00 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              25343
  Free PE               0
  Allocated PE          25343
  PV UUID               YxSpEk-fl4v-eqc1-KdzT-gxAo-bUeK-mDMd0z
   
  "/dev/sdb5" is a new physical volume of "1023.00 MiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb5
  VG Name               
  PV Size               1023.00 MiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               Bv1TMp-PGFC-XG8J-rMv2-dxcD-01JB-GpHmAU
 2.创建VG

vgcreate testvg /dev/sdb5:这里的testvg是vg的自定义名称,/dev/sdb5是pv的名称

查看 vgdisplay / vgs

[root@localhost ~]# vgcreate testvg /dev/sdb5
  Volume group "testvg" successfully created
[root@localhost ~]# vgdisplay
  --- Volume group ---
  VG Name               testvg
  System ID             
  Format                lvm2
  Metadata Areas        1
  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                1
  Act PV                1
  VG Size               1020.00 MiB
  PE Size               4.00 MiB
  Total PE              255
  Alloc PE / Size       0 / 0   
  Free  PE / Size       255 / 1020.00 MiB
  VG UUID               HdnYgO-uZ8u-YUrH-oBD7-k45q-1SAn-burt3N
   
  --- Volume group ---
  VG Name               rl
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <99.00 GiB
  PE Size               4.00 MiB
  Total PE              25343
  Alloc PE / Size       25343 / <99.00 GiB
  Free  PE / Size       0 / 0   
  VG UUID               icObNf-X0QE-Dnr6-d0Qa-MGCS-WbL5-T2lkFD
3.创建LV

lvcreate -L 1000M -n testlv testvg

查看 lvdisplay

进行格式化mkfs.ext4 /testvg/testlv

注意:只有lv才可以用来存放数据和格式化的

挂载:mkdir /home/test——创建挂载点

           mount /dev/testvg/testlv /home/test

检查挂载:df -h | grep /testlv

[root@localhost ~]# lvcreate -L 1000M -n testlv testvg
  Logical volume "testlv" created.
[root@localhost ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/testvg/testlv
  LV Name                testlv
  VG Name                testvg
  LV UUID                aH2OQ4-1pQd-PW9g-nZ4t-vrXH-n0Pq-ATEmYr
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2024-11-08 09:24:22 +0800
  LV Status              available
  # open                 0
  LV Size                1000.00 MiB
  Current LE             250
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:3
   
  --- Logical volume ---
  LV Path                /dev/rl/swap
  LV Name                swap
  VG Name                rl
  LV UUID                5fkCWh-Gi91-TvsJ-MfgY-1quH-Qj4g-tl3C1g
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2024-11-07 21:45:54 +0800
  LV Status              available
  # open                 2
  LV Size                <3.93 GiB
  Current LE             1005
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1
   
  --- Logical volume ---
  LV Path                /dev/rl/home
  LV Name                home
  VG Name                rl
  LV UUID                XHsW05-nuDG-6yez-JIwI-ITaq-deib-2RGRCh
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2024-11-07 21:45:54 +0800
  LV Status              available
  # open                 1
  LV Size                <31.19 GiB
  Current LE             7984
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2
   
  --- Logical volume ---
  LV Path                /dev/rl/root
  LV Name                root
  VG Name                rl
  LV UUID                VTXahn-3ofL-J8uO-fMRM-M7Lt-RdPn-pGew8I
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2024-11-07 21:45:54 +0800
  LV Status              available
  # open                 1
  LV Size                63.88 GiB
  Current LE             16354
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0
[root@localhost ~]# mkdir /home/test/
[root@localhost ~]# mkdir /home/test/
[root@localhost ~]# df -h | grep /dev
devtmpfs                   1.8G     0  1.8G    0% /dev
tmpfs                      1.8G     0  1.8G    0% /dev/shm
/dev/mapper/rl-root         64G  2.6G   62G    4% /
/dev/sda1                 1014M  199M  816M   20% /boot
/dev/mapper/rl-home         32G  255M   31G    1% /home
/dev/mapper/testvg-testlv  2.0G   24K  1.9G    1% /home/test

注意: 最后一行显示的是已经扩容完成后的结果,正常结果应该是:

4.扩容

需要先检查VG是否有足够的空间 vgs,不够的话需再虚拟机上新增一块磁盘

开始分区,fdisk /dev/sdc 全部默认,查看 fdisk -l | grep /dev(这一步在这里不再展示)

在新分区创建pv:pvcreate /dev/sdc1

扩容vg:vgextend testvg /dev/sdc1

              查看是否生效vgdisplay testvg

扩容LV:lvextend -L 1G /dev/testvg/testlv 

               查看是否生效df -h | grep testlv

扩容文件系统:resize2fs /dev/testvg/testlv

                         重新查看lv扩容是否生效:df -h | grep testlv

                         如果依然不生效执行 lvresize -L +1G /dev/testvg/testlv,再次执行 resize2fs                                     /dev/testvg/testlv

[root@localhost ~]# pvcreate /dev/sdc1
  Physical volume "/dev/sdc1" successfully created.
[root@localhost ~]# vgextend testvg /dev/sdc1
  Volume group "testvg" successfully extended
[root@localhost ~]# vgdisplay testvg
  --- Volume group ---
  VG Name               testvg
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  3
  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               <2.86 GiB
  PE Size               4.00 MiB
  Total PE              731
  Alloc PE / Size       250 / 1000.00 MiB
  Free  PE / Size       481 / <1.88 GiB
  VG UUID               HdnYgO-uZ8u-YUrH-oBD7-k45q-1SAn-burt3N
   
[root@localhost ~]# lvextend -L 1G /dev/testvg/testlv
  Size of logical volume testvg/testlv changed from 1000.00 MiB (250 extents) to 1.00 GiB (256 extents).
  Logical volume testvg/testlv successfully resized.
[root@localhost home]# resize2fs /dev/testvg/testlv
resize2fs 1.45.6 (20-Mar-2020)
/dev/testvg/testlv 上的文件系统已被挂载于 /home/test;需要进行在线调整大小

old_desc_blocks = 1, new_desc_blocks = 1
/dev/testvg/testlv 上的文件系统现在为 524288 个块(每块 4k)。

[root@localhost home]# df -h | grep testlv
/dev/mapper/testvg-testlv  2.0G   24K  1.9G    1% /home/test
5 .缩容

以下是缩容的实验步骤,这里不再展示,可自行尝试

1.重新指定文件系统容量

        需要先umount /home/test

        检查命令 e2fsck -f /dev/testvg/testlv

        重新指定大小 resize2fs /dev/testvg/testlv 1G

2.重新指定lv容量

        禁用逻辑卷 lvchange -an /dev/testvg/testlv

        lvreduce -L 1G /dev/testvg/testlv

        开启逻辑卷 lvchange -ay /dev/testvg/testlv

        查看lv大小 lvs /dev/testvg/testlv

        检查文件系统状态 e2fsck -f /dev/testvg/testlv

        重新挂载lv mount /dev/testvg/testlv /home/test

        可以使用df -h | grep testlv 来查看大小了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值