Linux逻辑卷管理

一.前言

        Linux系统在使用的过程中,数据只会越来越多。如果在硬盘的标准分区创建了文件系统,那么向已有的文件系统增添额外的存储空间是一件头疼的事情。我们只能在同一块物理硬盘上的可用空间范围内调整分区大小。此外硬盘没有存储空间了,就需要找一块更大的硬盘,手动将之前的文件系统转移到新的硬盘上。

        那这边就有了逻辑卷管理器(LVM)的概念,他可以通过将另一块硬盘上的分区加入已有的文件系统来动态的添加存储空间。无须让我们重建整个文件系统的情况,轻松的关联磁盘空间。

二.LVM布局

LVM有三个主要部分组成

首次设置逻辑卷的步骤如下

1.创建物理卷

2.创建卷组

3.创建逻辑卷

4.格式化逻辑卷

5.挂载逻辑卷

三.步骤实操

1.创建pv

在指定作为pv的存储设备之前,先确保分区且为未使用。可以使用pvcreate创建pv分区

新增一块硬盘,需要重启服务器,就能看到未挂载的新硬盘。(可以是物理硬盘或者分区,整个硬盘,或使用fdisk 等⼯具建⽴的普通分区)

[root@zhangke ~]# 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    4G  0 part [SWAP]
└─sda3   8:3    0   25G  0 part /
sdb      8:16   0   10G  0 disk 
sr0     11:0    1 55.9M  0 rom  /run/media/root/VMware Tools
[root@zhangke ~]# fdisk -l

磁盘 /dev/sda:32.2 GB, 32212254720 字节,62914560 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0009853d

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    10487807     4194304   82  Linux swap / Solaris
/dev/sda3        10487808    62914559    26213376   83  Linux

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


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

最好多设置几个PV.LVM的关键在于将额外的存储空间动态添加到LV。设置好PV后,就可以创建VG了

pvcreate /dev/sdb  /dev/sdc

2.创建VG

只要是PV 就可以加入VG。可以用vgcreate创建VG

[root@zhangke ~]# vgcreate vg00 /dev/sdb
  Volume group "vg00" successfully created
[root@zhangke ~]# vgdisplay 
  --- Volume group ---
  VG Name               vg00
  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               <10.00 GiB
  PE Size               4.00 MiB
  Total PE              2559
  Alloc PE / Size       0 / 0   
  Free  PE / Size       2559 / <10.00 GiB
  VG UUID               6LEarm-eCfQ-kpfH-hAIu-SCA8-RZqO-5Hcmlv
[root@zhangke ~]# vgcreate vg00 /dev/sdb
  Volume group "vg00" successfully created
[root@zhangke ~]# vgdisplay 
  --- Volume group ---
  VG Name               vg00
  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               <10.00 GiB
  PE Size               4.00 MiB
  Total PE              2559
  Alloc PE / Size       0 / 0   
  Free  PE / Size       2559 / <10.00 GiB
  VG UUID               6LEarm-eCfQ-kpfH-hAIu-SCA8-RZqO-5Hcmlv

vgdisplay命令 用于显示LVM卷组的信息,可以先确认下,怕VG命名重复

3.创建LV

可以使用lvcreate命令创建LV

[root@zhangke ~]# lvcreate -L 5G -v vg00
    Archiving volume group "vg00" metadata (seqno 1).
    Creating logical volume lvol0
    Creating volume group backup "/etc/lvm/backup/vg00" (seqno 2).
    Activating logical volume vg00/lvol0.
    activation/volume_list configuration setting not defined: Checking only host tags for vg00/lvol0.
    Creating vg00-lvol0
    Loading table for vg00-lvol0 (253:0).
    Resuming vg00-lvol0 (253:0).
    Wiping known signatures on logical volume "vg00/lvol0"
    Initializing 4.00 KiB of logical volume "vg00/lvol0" with value 0.
  Logical volume "lvol0" created.
[root@zhangke ~]# lvdisplay /dev/vg00/lvol0 
  --- Logical volume ---
  LV Path                /dev/vg00/lvol0
  LV Name                lvol0
  VG Name                vg00
  LV UUID                BMlyB7-e2zp-UNwd-hEGn-QDfA-DHXl-NVurBT
  LV Write Access        read/write
  LV Creation host, time zhangke, 2024-03-23 11:28:02 +0800
  LV Status              available
  # open                 0
  LV Size                5.00 GiB
  Current LE             1280
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

注意:如果出于某种原因,VG没有足够的存储空间来满足LV要求的大小,那么lvcreate将无法创建LV。

创建LV之后,可以使用lvdisplay显示相关信息。命令中的完整路径名用于指定LV,除了这个,也可以使用lvs和lvscan命令显示系统LV的信息。

4.使用LVM

LVM格式化

[root@zhangke ~]# mkfs.ext4 /dev/vg
vg00/        vga_arbiter  
[root@zhangke ~]# mkfs.ext4 /dev/vg00/lvol0 
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 

挂载LVM

[root@zhangke ~]# mkdir my_lvm
[root@zhangke ~]# mount -t ext4 /dev/vg00/lvol0  my_lvm
[root@zhangke ~]# ls my_lvm/
lost+found
[root@zhangke ~]# 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    4G  0 part [SWAP]
└─sda3         8:3    0   25G  0 part /
sdb            8:16   0   10G  0 disk 
└─vg00-lvol0 253:0    0    5G  0 lvm  /root/my_lvm
sr0           11:0    1 55.9M  0 rom  /run/media/root/VMware Tools
[root@zhangke ~]# lsblk -f
NAME         FSTYPE      LABEL        UUID                                   MOUNTPOINT
sda                                                                          
├─sda1       xfs                      3babadfa-dd46-43ff-a002-39f6d237c675   /boot
├─sda2       swap                     c265afc6-a0e2-4f62-b8b0-c9356e7aab0d   [SWAP]
└─sda3       xfs                      c4bfb099-33fa-479e-9b9a-fcb3b01aee51   /
sdb          LVM2_member              oMzo1G-EFrl-bj2F-cFBv-JMDq-0v1E-dPNnfF 
└─vg00-lvol0 ext4                     5cdbfdc2-aefe-478a-8321-fcc95f6b52b2   /root/my_lvm
sr0          iso9660     VMware Tools 2020-07-17-17-46-47-00                 /run/media/root/VMware Tools

如果相应在系统上重启时,自动挂载新的LV,就需要再/etc/fstab上添加记录

5.扩大或收缩VG和LV

vgextend将PV加入VG
vgreduce        从VG删除PV
lvextend扩大LV
lvreduce收缩LV

举个例子,扩大LV

[root@zhangke ~]# 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    4G  0 part [SWAP]
└─sda3         8:3    0   25G  0 part /
sdb            8:16   0   10G  0 disk 
└─vg00-lvol0 253:0    0    5G  0 lvm  /root/my_lvm
sr0           11:0    1 55.9M  0 rom  /run/media/root/VMware Tools
我们可以看到sdb 这块硬盘总共10g,lv是5g。可以扩容5g

[root@zhangke ~]# lvextend -L +4G /dev/vg00/lvol0 
  Size of logical volume vg00/lvol0 changed from 5.00 GiB (1280 extents) to 9.00 GiB (2304 extents).
  Logical volume vg00/lvol0 successfully resized.
[root@zhangke ~]# 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    4G  0 part [SWAP]
└─sda3         8:3    0   25G  0 part /
sdb            8:16   0   10G  0 disk 
└─vg00-lvol0 253:0    0    9G  0 lvm  /root/my_lvm
sr0           11:0    1 55.9M  0 rom  /run/media/root/VMware Tools
[root@zhangke ~]# 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值