云贝教育 |【技术文章】基于kylin V10的LVM创建

本文为云贝教育 刘老师 原创,请尊重知识产权,转发请注明出处,不接受任何抄袭、演绎和未经注明出处的转载。

一、什么是LVM

LVM,全称为Logical Volume Manager(逻辑卷管理器),是一种在Linux操作系统和其他类Unix系统中用于管理磁盘和分区的高级机制。LVM提供了一种灵活的方式来管理存储,允许用户动态调整存储空间大小、创建和管理卷,而无需关心底层物理磁盘的具体布局。LVM通过在硬盘和分区之间添加一个抽象层,使得存储管理更加灵活和高效。

LVM的核心概念包括:

  1. 物理卷(Physical Volume, PV):这是LVM中的基础存储单元,通常对应一个硬盘或分区。在硬盘或分区上创建PV之前,它们必须被初始化为LVM格式。
  2. 卷组(Volume Group, VG):卷组是由一个或多个物理卷组成,构成了一个存储池。从这个存储池中可以创建逻辑卷。卷组的大小等于构成它的所有物理卷的总容量。
  3. 逻辑卷(Logical Volume, LV):逻辑卷是从卷组中分配的虚拟分区,对用户和应用程序来说,逻辑卷就像是常规的硬盘分区。用户可以在逻辑卷上创建文件系统并挂载使用。逻辑卷的大小可以动态调整,而不受物理磁盘布局的限制。

LVM的架构如下图所示:

二、为什么要使用LVM

使用Logical Volume Manager (LVM)的原因众多,它为存储管理提供了灵活性、可扩展性和易管理性,以下是LVM的主要优势:

  1. 动态卷管理:LVM允许在不中断服务的情况下动态调整存储卷的大小(扩大或缩小),这对于应对不可预测的数据增长或变化的需求非常有用。
  2. 存储资源整合:可以将多个物理磁盘或分区整合成一个或多个卷组(VG),从而跨越多个物理磁盘提供逻辑卷(LV),这有助于更高效地利用存储资源。
  3. 数据迁移与平衡:在不中断服务的情况下,可以方便地移动逻辑卷到不同的物理卷上,便于数据迁移或负载均衡。
  4. 易恢复性:在发生硬盘故障时,可以迅速将逻辑卷迁移到健康的物理卷上,减少数据丢失的风险,提高系统恢复速度。
  5. 快照功能:LVM支持创建卷的快照,这对于数据备份、系统测试和恢复策略非常重要,可以在不影响生产环境的情况下进行数据备份或测试操作。
  6. 高级数据布局:通过逻辑卷可以实现数据条带化(提升读写速度)和镜像(增加数据冗余),提升存储性能和可靠性。
  7. 管理便捷性:LVM提供了一个统一的管理接口,使得管理复杂的存储布局变得简单,无论是添加新硬盘、调整卷大小还是管理存储策略,都可以通过简单的命令完成。
  8. 适应云环境:在云环境中,LVM的灵活性和动态扩展能力与云服务的“按需分配”原则相契合,尤其在云原生数据库如TDSQL-C PostgreSQL版中,LVM的存算分离架构设计能进一步提升存储的弹性、可用性和性能。

三、使用示例

接下来,我们将在kylin v10版本中演示如何管理LVM

3.1 创建物理卷组

1)使用vmware添加两块磁盘

2)检查当前磁盘信息

lsblk

如果返回以下命令,则说明LVM可以使用实例上的sda和sdb磁盘创建可扩展的LV。

[root@db1 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
sdb               8:16   0   20G  0 disk 
sr0              11:0    1 1024M  0 rom  
nvme0n1         259:0    0  100G  0 disk 
├─nvme0n1p1     259:1    0    1G  0 part /boot
└─nvme0n1p2     259:2    0   99G  0 part 
  ├─klas-root   253:0    0 65.1G  0 lvm  /
  ├─klas-swap   253:1    0    2G  0 lvm  [SWAP]
  └─klas-backup 253:2    0 31.8G  0 lvm 

3)运行以下命令从磁盘创建 PV。

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

4) 查看当前的物理卷组

[root@db1 ~]# pvs
  PV             VG    Fmt  Attr PSize   PFree  
  /dev/nvme0n1p2 klas  lvm2 a--  <99.00g      0 
  /dev/sda       vg_01 lvm2 a--  <20.00g <20.00g
  /dev/sdb       vg_01 lvm2 a--  <20.00g <20.00g

5)查看物理卷组详细信息

[root@db1 ~]# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/nvme0n1p2
  VG Name               klas
  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               kloVNL-U91m-IcuS-oiaG-Tb9z-pWv2-f6azHu
   
  --- Physical volume ---
  PV Name               /dev/sda
  VG Name               vg_01
  PV Size               20.00 GiB / not usable 4.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              5119
  Free PE               0
  Allocated PE          5119
  PV UUID               PXgoOr-8qDY-0Zmn-5K3E-JbJ1-f1kk-yvA6Nz
   
  --- Physical volume ---
  PV Name               /dev/sdb
  VG Name               vg_01
  PV Size               20.00 GiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              5119
  Free PE               3838
  Allocated PE          1281
  PV UUID               SLBB1J-RXyz-Rvbh-T8It-qIBH-CfU9-R1Wbad

3.2 创建卷组(VG)

1)创建名为 vg_01 的 VG,包含物理卷/dev/vdb 和 /dev/vdc。

[root@db1 ~]# vgcreate vg_01 /dev/sda /dev/sdb
  Volume group "vg_01" successfully created

2)执行以下命令查询VG信息:

[root@db1 ~]# vgs
  VG    #PV #LV #SN Attr   VSize   VFree 
  klas    1   3   0 wz--n- <99.00g     0 
  vg_01   2   0   0 wz--n-  39.99g 39.99g

VG的大小小于40GB,因为文件系统占用VG中的存储空间。

3.3 创建逻辑组(LV)

1)创建名为lv01的LV,大小为25g。

[root@db1 ~]#  lvcreate -L 25g -n lv01 vg_01
  Logical volume "lv01" created

2) 执行以下命令查询VG信息:

[root@db1 ~]# lvs
  LV     VG    Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  backup klas  -wi-a----- <31.81g                                                    
  root   klas  -wi-ao----  65.14g                                                    
  swap   klas  -wi-ao----   2.04g                                                    
  lv01   vg_01 -wi-a-----  25.00g 

3.4 创建并挂载文件系统

1)获取LV的路径、名称、所属VG等信息。

[root@db1 ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/klas/swap
  LV Name                swap
  VG Name                klas
  LV UUID                50EAfU-bLFl-CFp6-fmM9-XbU3-xI9V-LNRKdJ
  LV Write Access        read/write
  LV Creation host, time localhost, 2024-07-02 01:36:10 +0800
  LV Status              available
  # open                 2
  LV Size                2.04 GiB
  Current LE             523
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1
   
  --- Logical volume ---
  LV Path                /dev/klas/backup
  LV Name                backup
  VG Name                klas
  LV UUID                XR09On-CHMm-SxTA-2qCP-DfYc-fRWq-vco0hN
  LV Write Access        read/write
  LV Creation host, time localhost, 2024-07-02 01:36:10 +0800
  LV Status              available
  # open                 0
  LV Size                <31.81 GiB
  Current LE             8143
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2
   
  --- Logical volume ---
  LV Path                /dev/klas/root
  LV Name                root
  VG Name                klas
  LV UUID                Lfmf68-y4FC-938i-TT5t-IBY8-9hpX-fQTNmY
  LV Write Access        read/write
  LV Creation host, time localhost, 2024-07-02 01:36:10 +0800
  LV Status              available
  # open                 1
  LV Size                65.14 GiB
  Current LE             16677
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0
   
  --- Logical volume ---
  LV Path                /dev/vg_01/lv01
  LV Name                lv01
  VG Name                vg_01
  LV UUID                4Z9OQ1-d73H-JTKd-HSHO-E4Zy-Pdi0-nSpQGS
  LV Write Access        read/write
  LV Creation host, time db1, 2024-07-02 05:26:25 +0800
  LV Status              available
  # open                 0
  LV Size                25.00 GiB
  Current LE             6400
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:3

2) 格式化LV

[root@db1 ~]# mkfs.ext4 /dev/vg_01/lv01
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 6553600 4k blocks and 1638400 inodes
Filesystem UUID: 35d21ce0-d3c7-4252-86ba-329b0e953a91
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000

Allocating group tables: done                            
Writing inode tables: 
done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done 

3) 创建挂载点

mkdir /data

4)执行以下命令将文件系统挂载到挂载点:

 mount /dev/vg_01/lv01 /data

5) 查看挂载情况

[root@db1 ~]# df -Th
Filesystem             Type      Size  Used Avail Use% Mounted on
devtmpfs               devtmpfs  954M     0  954M   0% /dev
tmpfs                  tmpfs     981M   16K  981M   1% /dev/shm
tmpfs                  tmpfs     981M  9.4M  972M   1% /run
tmpfs                  tmpfs     981M     0  981M   0% /sys/fs/cgroup
/dev/mapper/klas-root  xfs        66G  7.8G   58G  12% /
tmpfs                  tmpfs     981M  4.0K  981M   1% /tmp
/dev/nvme0n1p1         xfs      1014M  176M  839M  18% /boot
tmpfs                  tmpfs     197M   32K  197M   1% /run/user/0
/dev/mapper/vg_01-lv01 ext4       25G   45M   24G   1% /data

3.5 配置自动挂载

注意:fstab里的挂载路径不要写错,否则重启OS将报错。

1)备份fstab

cp /etc/fstab /etc/fstab.bak

2) 配置fstab

• UUID方式

sh -c "echo `blkid /dev/vg_01/lv01 | awk '{print $2}' | sed 's/\"//g'` /data ext4 defaults 0 0 >> /etc/fstab"

• 路径方式

sh -c "echo /dev/mapper/vg_01-lv01 /data ext4 defaults 0 0 >> /etc/fstab"

3)验证自动挂载

[root@db1 ~]# umount /data
[root@db1 ~]# mount -a

4) 检验挂载情况

[root@db1 ~]# df -Th
Filesystem             Type      Size  Used Avail Use% Mounted on
devtmpfs               devtmpfs  954M     0  954M   0% /dev
tmpfs                  tmpfs     981M   16K  981M   1% /dev/shm
tmpfs                  tmpfs     981M  9.4M  972M   1% /run
tmpfs                  tmpfs     981M     0  981M   0% /sys/fs/cgroup
/dev/mapper/klas-root  xfs        66G  7.8G   58G  12% /
tmpfs                  tmpfs     981M  4.0K  981M   1% /tmp
/dev/nvme0n1p1         xfs      1014M  176M  839M  18% /boot
tmpfs                  tmpfs     197M   32K  197M   1% /run/user/0
/dev/mapper/vg_01-lv01 ext4       25G   45M   24G   1% /data

   

四、总结

  • 安全兼容性:麒麟V10操作系统强调与国产硬件的兼容性和安全性,使用国产LVM配置能够更好地与国产服务器、存储设备协同工作,确保数据安全性符合国家信息安全标准。
  • 自主可控:通过使用国产操作系统进行LVM配置,减少对外部技术依赖,增强系统的自主可控能力,符合国家安全战略需求。
  • 生态集成:麒麟V10支持的LVM配置与国产生态系统紧密集成,确保在政府、金融、教育等重要领域应用时,能够与其他国产软件和服务无缝对接。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值