当前位置 : 主页 > 操作系统 > centos >

Linux 云计算集群架构师->第十五章 LVM 管理和 ssm 存储管理器使用

来源:互联网 收集:自由互联 发布时间:2022-07-22
第十五章 LVM 管理和 ssm 存储管理器使用 (上课时间2021-07-06 ,笔记整理时间2021-07-14) 本节所讲内容: 15.1 LVM 的工作原理 15.2 创建 LVM 的基本步骤 15.3 实战-使用 SSM 工具为公司的邮件服

第十五章 LVM 管理和 ssm 存储管理器使用

(上课时间2021-07-06 ,笔记整理时间2021-07-14)

本节所讲内容:

15.1 LVM 的工作原理

15.2 创建 LVM 的基本步骤

15.3 实战-使用 SSM 工具为公司的邮件服务器创建可动态扩容的存储池

15.1 LVM 的工作原理

LVM( Logical Volume Manager)逻辑卷管理,是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。管理员利用LVM 可以在磁盘不用重新分区的情况下动态调整文件系统的大小,并且利用 LVM 管理的文件系统可以跨越磁盘,当服务器添加了新的磁盘,管理员不必将原有的文件移动到新的磁盘上,而是通过 LVM 可以直接扩展文件系统跨越磁盘。

它就是通过将底层的物理硬盘封装起来,然后以逻辑卷的方式呈现给上层应用。在 LVM 中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。

15.1.1 LVM 常用的术语

物理存储介质(The physical media):LVM 存储介质可以是磁盘分区,整个磁盘,RAID 阵列或SAN 磁盘,设备必须初始化为 LVM 物理卷,才能与 LVM 结合使用物理卷 PV(physical volume):物理卷就是 LVM 的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与 LVM 相关的管理参数,创建物理卷它可以用硬盘分区,也可以用硬盘本身;

卷组 VG(Volume Group):一个 LVM 卷组由一个或多个物理卷组成

逻辑卷 LV(logical volume):LV 建立在 VG 之上,可以在 LV 之上建立文件系统

PE(physical extents):PV 物理卷中可以分配的最小存储单元,PE 的大小是可以指定的,默认为4MB

LE(logical extent):LV 逻辑卷中可以分配的最小存储单元,在同一个卷组中,LE 的大小和 PE 是相同的,并且一一对应

最小存储单位总结:名称 最小存储单位 硬盘 扇区(512 字节) 文件系统 block(1K 或 4K ) #mkfs.ext4 -b 2048 /dev/sdb1 ,最大支持到 4096raid chunk (512K) #mdadm -C -v /dev/md5 -l 5 -n 3 -c 512 -x 1 /dev/sde{1,2,3,5}LVM PE (4M) # vgcreate -s 4M vg1 /dev/sdb{1,2}

LVM 主要元素构成:

image-20210714143653148

总结:多个磁盘/分区/raid-》多个物理卷 PV-》合成卷组 VG-》从 VG 划出逻辑卷 LV-》格式化 LV挂载使用

15.1.2 LVM 优点

使用卷组,使多个硬盘空间看起来像是一个大的硬盘

使用逻辑卷,可以跨多个硬盘空间的分区 sdb1 sdb2 sdc1 sdd2 sdf

在使用逻辑卷时,它可以在空间不足时动态调整它的大小

在调整逻辑卷大小时,不需要考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间

可以在线对 LV,VG 进行创建,删除,调整大小等操作。LVM 上的文件系统也需要重新调整大小。

允许创建快照,可以用来保存文件系统的备份。

RAID+LVM 一起用:LVM 是软件的卷管理方式,而 RAID 是磁盘管理的方法。对于重要的数据,使用 RAID 用来保护物理的磁盘不会因为故障而中断业务,再用 LVM 用来实现对卷的良性的管理,更好的利用磁盘资源。

15.2 创建 LVM 的基本步骤

1) 物理磁盘被格式化为 PV,(空间被划分为一个个的 PE)

#PV 包含 PE

2) 不同的 PV 加入到同一个 VG 中,(不同 PV 的 PE 全部进入到了 VG 的 PE 池内)

#VG 包含 PV

3) 在 VG 中创建 LV 逻辑卷,基于 PE 创建,(组成 LV 的 PE 可能来自不同的物理磁盘)

#LV 基于 PE 创建

4) LV 直接可以格式化后挂载使用

#格式化挂载使用

5) LV 的扩充缩减实际上就是增加或减少组成该 LV 的 PE 数量,其过程不会丢失原始数据

15.2.1 lvm 常用的命令

功能 PV 管理命令 VG 管理命令 LV 管理命令 scan 扫描 pvscan vgscan lvscan create 创建 pvcreate vgcreate lvcreate display 显示 pvdisplay vgdisplay lvdisplay remove 移除 pvremove vgremove lvremove extend 扩展 vgextend lvextend reduce 减少 vgreduce lvreduce

下面的操作会用的一些查看命令:

查看卷名 简单对应卷信息的查看 扫描相关的所有的对应卷 详细对应卷信息的查看 物理卷 pvs pvscan pvdisplay 卷组 vgs vgscan vgdisplay 逻辑卷 lvs lvscan lvdisplay

15.2.2 创建并使用 LVM 逻辑卷

1、创建 PV

添加一个 sdb 磁盘,创建 4 个主分区,每个分区2G

[root@Centos83 ~]# ls /dev/sdb* /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb4 [root@Centos83 ~]# yum -y install lvm2 # 创建 pv [root@Centos83 ~]# pvcreate -y /dev/sdb{1,2,3,4} Physical volume "/dev/sdb1" successfully created. Physical volume "/dev/sdb2" successfully created. Physical volume "/dev/sdb3" successfully created. Physical volume "/dev/sdb4" successfully created. [root@Centos83 ~]# pvdisplay /dev/sdb1 # 查看物理卷信息 "/dev/sdb1" is a new physical volume of "2.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb1 VG Name PV Size 2.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 2LsDcm-507b-zNzw-NhCn-TuU0-7UKK-RjuAf4 #创建 vg 卷组,语法: vgcreate vg 名字 pv 的名字 [root@Centos83 ~]# vgcreate vg01 /dev/sdb1 Volume group "vg01" successfully created [root@Centos83 ~]# vgs VG #PV #LV #SN Attr VSize VFree cl 1 2 0 wz--n- <99.00g 0 vg01 1 0 0 wz--n- <2.00g <2.00g [root@Centos83 ~]# vgdisplay vg01

创建 LVlvcreate -n 指定新逻辑卷的名称 -L 指定 lv 大小的 SIZE(M,G) (-l:小 l 指定 LE 的数量)vgname 卷组名

[root@Centos83 ~]# lvcreate -n lv01 -L 16M vg01 -y #大写 L 指定逻辑卷大小(常用) Logical volume "lv01" created. [root@Centos83 ~]# lvcreate -n lv02 -l4 vg01 #小写 L 指定 LE 的数量(了解) Logical volume "lv02" created. [root@Centos83 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root cl -wi-ao---- <95.00g swap cl -wi-ao---- 4.00g lv01 vg01 -wi-a----- 16.00m lv02 vg01 -wi-a----- 16.00m [root@Centos83 ~]# pvdisplay /dev/sdb1 --- Physical volume --- PV Name /dev/sdb1 VG Name vg01 PV Size 2.00 GiB / not usable 4.00 MiB Allocatable yes PE Size 4.00 MiB #(同一卷组中,LE 大小等于 PE 的大小) Total PE 511 Free PE 503 Allocated PE 8 # Allocated ['æləkeɪtɪd] 分配 ,已经使用了 8 个 PE PV UUID 2LsDcm-507b-zNzw-NhCn-TuU0-7UKK-RjuAf4 [root@Centos83 ~]# vgdisplay vg01 Alloc PE / Size 8 / 32.00 MiB #已经使用 8 个 PE/ 32M 大小 8*4=32 Free PE / Size 503 / 1.96 GiB # 空闲的 PE 数量 / 空闲大小 247*4=988 [root@Centos83 ~]# ls /dev/vg01/ #其实 lv01 是 dm-0 的软链接 lv01 lv02 [root@Centos83 ~]# ll /dev/vg01/lv01 lrwxrwxrwx 1 root root 7 7月 14 15:11 /dev/vg01/lv01 -> ../dm-2 [root@Centos83 ~]# mkfs.ext4 /dev/vg01/lv01 mke2fs 1.45.6 (20-Mar-2020) 创建含有 16384 个块(每块 1k)和 4096 个inode的文件系统 文件系统UUID:190a2560-0d2e-46ea-849f-879cf3304ba2 超级块的备份存储于下列块: 8193 正在分配组表: 完成 正在写入inode表: 完成 创建日志(1024 个块)完成 写入超级块和文件系统账户统计信息: 已完成 [root@Centos83 ~]# echo "/dev/vg01/lv01 /lv01 ext4 defaults 0 0" >> /etc/fstab

15.2.3 指定 PE 大小

指定 PE 大小用的参数: -s ,如果存储的数据都是大文件,那么 PE 尽量调大,读取速度快

[root@Centos83 ~]# vgcreate -s 16M vg02 /dev/sdb2 #PE 的大小只有为 2 的幂数,且最大为 512M Volume group "vg02" successfully created [root@Centos83 ~]# vgdisplay vg02 --- Volume group --- VG Name vg02 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 1.98 GiB PE Size 16.00 MiB #已经是 16MB Total PE 127 Alloc PE / Size 0 / 0 Free PE / Size 127 / 1.98 GiB VG UUID EH4ySR-RDoN-aUeW-X68N-CH70-3ClO-NJnJjM

15.2.4 LV 扩容

首先,确定一下是否有可用的扩容空间,因为空间是从 VG 里面创建的,并且 LV 不能跨 VG 扩容

[root@Centos83 ~]# vgs VG #PV #LV #SN Attr VSize VFree cl 1 2 0 wz--n- <99.00g 0 vg01 1 2 0 wz--n- <2.00g 1.96g vg02 1 0 0 wz--n- 1.98g 1.98g

扩容逻辑卷

[root@Centos83 ~]# lvextend -L +30m /dev/vg01/lv01 Rounding size to boundary between physical extents: 32.00 MiB. Size of logical volume vg01/lv01 changed from 16.00 MiB (4 extents) to 48.00 MiB (12 extents). Logical volume vg01/lv01 successfully resized. [root@Centos83 ~]# lvextend -L +30m /dev/vg01/lv01 Rounding size to boundary between physical extents: 32.00 MiB. Size of logical volume vg01/lv01 changed from 48.00 MiB (12 extents) to 80.00 MiB (20 extents). Logical volume vg01/lv01 successfully resized. [root@Centos83 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root cl -wi-ao---- <95.00g swap cl -wi-ao---- 4.00g lv01 vg01 -wi-a----- 80.00m #LV 已经扩容成功 lv02 vg01 -wi-a----- 16.00m [root@Centos83 ~]# df -Th /dev/vg01/lv01 文件系统 类型 容量 已用 可用 已用% 挂载点 devtmpfs devtmpfs 441M 0 441M 0% /dev

注:可以看到 LV 虽然扩展了,但是文件系统大小还是原来的,下面开始扩容文件系统

ext4 文件系统扩容使用命令语法: resize2fs 逻辑卷名称 resize2fs /dev/vg01/lv01

xfs 文件系统扩容使用命令语法: xfs_growfs 挂载点 xfs_growfs /lv01

resize2fs 和 xfs_growfs 两者的区别是传递的参数不一样的,xfs_growfs 是采用的挂载点;

resize2fs 是逻辑卷名称,而且 resize2fs 命令不能对 xfs 类型文件系统使用

[root@Centos83 ~]# pvcreate /dev/sdc Physical volume "/dev/sdc" successfully created. [root@Centos83 ~]# vgcreate vg05 /dev/sdc Volume group "vg05" successfully created [root@Centos83 ~]# lvcreate -n lv05 -L 1G vg05 Logical volume "lv05" created. [root@Centos83 ~]# blkid /dev/vg05/lv05 [root@Centos83 ~]# mkdir /lv05 [root@Centos83 ~]# mount /dev/vg05/lv05 /lv05/ mount: /lv05: wrong fs type, bad option, bad superblock on /dev/mapper/vg05-lv05, missing codepage or helper program, or other error. [root@Centos83 ~]# lvextend -L +100m -r /dev/vg05/lv05 /lv05 Physical Volume "/lv05" not found in Volume Group "vg05". [root@Centos83 ~]# df -hT && lvs [root@Centos83 ~]# lvextend -L +100M /dev/vg01/lv01 [root@Centos83 ~]# df -hT && lvs [root@Centos83 ~]# df -hT && lvs [root@Centos83 ~]# resize2fs /dev/vg01/lv01 resize2fs 1.45.6 (20-Mar-2020) 将 /dev/vg01/lv01 上的文件系统调整为 204800 个块(每块 1k)。 /dev/vg01/lv01 上的文件系统现在为 204800 个块(每块 1k)。 [root@Centos83 ~]# resize2fs /dev/vg01/lv01 [root@Centos83 ~]# df -Th /dev/vg01/lv01 文件系统 类型 容量 已用 可用 已用% 挂载点 devtmpfs devtmpfs 441M 0 441M 0% /dev [root@Centos83 ~]# lvextend -L 80m -r /dev/vg01/lv01 #直接扩容到 80M 空间,增加-r 参数,不用再扩文件系统了 [root@Centos83 ~]# df -T /dev/vg01/lv01 文件系统 类型 1K-块 已用 可用 已用% 挂载点 devtmpfs devtmpfs 451532 0 451532 0% /dev

15.2.5 VG 扩容

[root@Centos83 ~]# vgs VG #PV #LV #SN Attr VSize VFree cl 1 2 0 wz--n- <99.00g 0 vg01 1 2 0 wz--n- <2.00g <1.79g vg02 1 0 0 wz--n- 1.98g 1.98g vg05 1 1 0 wz--n- <20.00g <19.00g # vg 扩容的场景:vg 卷组中的空间不了够,需要添加新的硬盘进来 [root@Centos83 ~]# pvcreate /dev/sdb3 # 创建 pv Physical volume "/dev/sdb3" successfully created. [root@Centos83 ~]# vgextend vg01 /dev/sdb3 #扩容成功 Volume group "vg01" successfully extended [root@Centos83 ~]# vgs VG #PV #LV #SN Attr VSize VFree cl 1 2 0 wz--n- <99.00g 0 vg01 2 2 0 wz--n- 3.99g 3.78g vg02 1 0 0 wz--n- 1.98g 1.98g vg05 1 1 0 wz--n- <20.00g <19.00g

15.2.6 LVM 缩小

互动:LVM 可以动态增加,可以动态缩小吗?

答:LVM 可以动态增加,但是 XFS 不支持动态缩小,所以我们无法实现基于 xfs 的动态缩小。

实际生产中,不推荐使用缩减,扩的时候给小点,不够再继续扩,不推荐使用缩减,可能会丢失数据

[root@Centos83 ~]# lvreduce -L -50m -r /dev/vg01/lv01 Rounding size to boundary between physical extents: 48.00 MiB. fsck,来自 util-linux 2.32.1 /dev/mapper/vg01-lv01:没有问题,11/51200 文件,8263/204800 块 resize2fs 1.45.6 (20-Mar-2020) 将 /dev/mapper/vg01-lv01 上的文件系统调整为 155648 个块(每块 1k)。 /dev/mapper/vg01-lv01 上的文件系统现在为 155648 个块(每块 1k)。 Size of logical volume vg01/lv01 changed from 200.00 MiB (50 extents) to 152.00 MiB (38 extents). Logical volume vg01/lv01 successfully resized. #缩小成功 [root@Centos83 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root cl -wi-ao---- <95.00g swap cl -wi-ao---- 4.00g lv01 vg01 -wi-a----- 152.00m lv02 vg01 -wi-a----- 16.00m lv05 vg05 -wi-a----- 1.00g [root@Centos83 ~]# df -hT /dev/vg01/lv01 文件系统 类型 容量 已用 可用 已用% 挂载点 devtmpfs devtmpfs 441M 0 441M 0% /dev [root@Centos83 ~]# resize2fs /dev/vg01/lv01 resize2fs 1.45.6 (20-Mar-2020) 文件系统已经为 155648 个块(每块 1k)。无需进一步处理! [root@Centos83 ~]# lvreduce -L -50M -r /dev/vg05/lv05 Rounding size to boundary between physical extents: 48.00 MiB. Filesystem check failed. # xfs 文件系统 缩小是不支持的

VG 的缩减,要保证你的物理卷是否被使用,是因为它无法缩减一个正在使用的 PV

[root@Centos83 ~]# vgs VG #PV #LV #SN Attr VSize VFree cl 1 2 0 wz--n- <99.00g 0 vg01 2 2 0 wz--n- 3.99g <3.83g vg02 1 0 0 wz--n- 1.98g 1.98g vg05 1 1 0 wz--n- <20.00g <19.00g [root@Centos83 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 cl lvm2 a-- <99.00g 0 /dev/sdb1 vg01 lvm2 a-- <2.00g 1.83g /dev/sdb2 vg02 lvm2 a-- 1.98g 1.98g /dev/sdb3 vg01 lvm2 a-- <2.00g <2.00g /dev/sdb4 lvm2 --- 2.00g 2.00g /dev/sdc vg05 lvm2 a-- <20.00g <19.00g [root@Centos83 ~]# cp -r /boot/grub2 /lv01/ #复制一些测试数据 [root@Centos83 ~]# vgreduce vg01 /dev/sdb1 #将 sdb1 移出失败,因 sdb1 正在被使用 Physical volume "/dev/sdb1" still in use

互动:如果 sdb1 是一个磁盘阵列,而这个磁盘阵列使用年代太久,我们必须移出怎么办?

移动数据

[root@Centos83 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 cl lvm2 a-- <99.00g 0 /dev/sdb1 vg01 lvm2 a-- <2.00g 1.83g /dev/sdb2 vg02 lvm2 a-- 1.98g 1.98g /dev/sdb3 vg01 lvm2 a-- <2.00g <2.00g /dev/sdb4 lvm2 --- 2.00g 2.00g /dev/sdc vg05 lvm2 a-- <20.00g <19.00g [root@Centos83 ~]# pvmove /dev/sdb1 /dev/sdb3 #必须保证 sdb3 物理卷和 sdb1 物理卷属于一个卷组 [root@Centos83 ~]# pvmove /dev/sdb1 /dev/sdb3 #将物理卷 sdb1 上的数据移到新增加物理卷 sdb3 上 /dev/sdb1: Moved: 9.52% /dev/sdb1: Moved: 90.48% /dev/sdb1: Moved: 100.00% [root@Centos83 ~]# vgreduce vg01 /dev/sdb1 #移完数据再把 sdb1 物理卷从vg01 卷组中移除 Removed "/dev/sdb1" from volume group "vg01" [root@Centos83 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 cl lvm2 a-- <99.00g 0 /dev/sdb1 lvm2 --- 2.00g 2.00g /dev/sdb2 vg02 lvm2 a-- 1.98g 1.98g /dev/sdb3 vg01 lvm2 a-- <2.00g 1.83g /dev/sdb4 lvm2 --- 2.00g 2.00g /dev/sdc vg05 lvm2 a-- <20.00g <19.00g

15.2.7 LVM 删除

创建 LVM 流程:

pvcreate 创建 pv -> vgcreate 创建卷组 -> lvcreate 创建逻辑卷 -> mkfs.xfs lv 格式化-> mount 挂载

删除 LVM 流程:

umount 卸载 -> lvremove lv 移出卷组中所有逻辑卷-> vgremove vg 移出卷组-> pvremove 移出 pv

[root@Centos83 ~]# lvremove /dev/vg01/lv01 Do you really want to remove active logical volume vg01/lv01? [y/n]: y Logical volume "lv01" successfully removed [root@Centos83 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root cl -wi-ao---- <95.00g swap cl -wi-ao---- 4.00g lv02 vg01 -wi-a----- 16.00m lv05 vg05 -wi-a----- 1.00g [root@Centos83 ~]# vgremove vg01 Do you really want to remove volume group "vg01" containing 1 logical volumes? [y/n]: y Do you really want to remove active logical volume vg01/lv02? [y/n]: y #如果卷组中还有 lv,移出时,会提示,是否也移出,咱们这里直接移出 Logical volume "lv02" successfully removed Volume group "vg01" successfully removed [root@Centos83 ~]# vgs VG #PV #LV #SN Attr VSize VFree cl 1 2 0 wz--n- <99.00g 0 vg02 1 0 0 wz--n- 1.98g 1.98g vg05 1 1 0 wz--n- <20.00g <19.00g #没有 vg01 [root@Centos83 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 cl lvm2 a-- <99.00g 0 /dev/sdb1 lvm2 --- 2.00g 2.00g /dev/sdb2 vg02 lvm2 a-- 1.98g 1.98g /dev/sdb3 lvm2 --- 2.00g 2.00g /dev/sdb4 lvm2 --- 2.00g 2.00g /dev/sdc vg05 lvm2 a-- <20.00g <19.00g [root@Centos83 ~]# pvremove /dev/sdb1 #已经移出 Labels on physical volume "/dev/sdb1" successfully wiped. [root@Centos83 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 cl lvm2 a-- <99.00g 0 /dev/sdb2 vg02 lvm2 a-- 1.98g 1.98g /dev/sdb3 lvm2 --- 2.00g 2.00g /dev/sdb4 lvm2 --- 2.00g 2.00g /dev/sdc vg05 lvm2 a-- <20.00g <19.00g

15.3 实战-使用 SSM 工具创建可动态扩容的存储池

安装 SSM:

[root@Centos83 ~]# yum -y install system-storage-manager.noarch

SSM:检查关于可用硬驱和 LVM 卷的信息。显示关于现有磁盘存储设备、存储池、LVM 卷和存储快照的信息。

15.3.1 查看磁盘信息

列出设备信息

[root@Centos83 ~]# ssm list dev ----------------------------------------------------------- Device Free Used Total Pool Mount point ----------------------------------------------------------- /dev/sda 100.00 GB PARTITIONED /dev/sda1 1.00 GB /boot /dev/sda2 0.00 KB 99.00 GB 99.00 GB cl /dev/sdb 20.00 GB PARTITIONED /dev/sdb1 2.00 GB /dev/sdb2 1.98 GB 0.00 KB 2.00 GB vg02 /dev/sdb3 2.00 GB /dev/sdb4 2.00 GB /dev/sdc 19.00 GB 1.00 GB 20.00 GB vg05 /dev/sdd 20.00 GB /dev/sde 20.00 GB /dev/sdf 20.00 GB /dev/sdg 20.00 GB /dev/sdh 20.00 GB /dev/sdi 20.00 GB /dev/sdj 20.00 GB /dev/sdk 20.00 GB /dev/sdl 20.00 GB /dev/sdm 20.00 GB -----------------------------------------------------------

存储池信息

[root@Centos83 ~]# ssm list pool --------------------------------------------------- Pool Type Devices Free Used Total --------------------------------------------------- cl lvm 1 0.00 KB 99.00 GB 99.00 GB vg02 lvm 1 1.98 GB 0.00 KB 1.98 GB vg05 lvm 1 19.00 GB 1.00 GB 20.00 GB ---------------------------------------------------

15.3.2 实战:为公司的邮件服务器创建基于 LVM 的邮件存储

实战场景:公司要搭建一台邮件服务器,考虑到后期公司发展规模扩张,需要你创建一个名为 mail 的 LVM 存储池,并在其上创建一个名为 mail-lv,初始大小为 1G 的 lvm 卷,格式化为 xfs 文件系统,并将其挂载/mail-lv 目录下。此存储池中的空间后期要可以动态扩容。

将 sdb 上所有卷组信息删除:

[root@Centos83 ~]# ssm list pool --------------------------------------------------- Pool Type Devices Free Used Total --------------------------------------------------- cl lvm 1 0.00 KB 99.00 GB 99.00 GB vg02 lvm 1 1.98 GB 0.00 KB 1.98 GB vg05 lvm 1 19.00 GB 1.00 GB 20.00 GB --------------------------------------------------- [root@Centos83 ~]# vgremove vg02 Volume group "vg02" successfully removed [root@Centos83 ~]# pvremove /dev/sdb{1,2,3,4} Failed to read lvm info for /dev/sdb1 PVID . Labels on physical volume "/dev/sdb2" successfully wiped. Labels on physical volume "/dev/sdb3" successfully wiped. Labels on physical volume "/dev/sdb4" successfully wiped.

创建目录

[root@Centos83 ~]# mkdir /mail-lv

用的命令如下:

ssm create -s lv 大小 -n lv 名称 --fstype lv 文件系统类型 -p 卷组名 设备 挂载点

不需要手动创建物理卷,卷组,逻辑卷,格式化文件系统,挂载等操作

这条命令自动把设备变成 pv,创建 vg , lv ,格式化文件系统, 自动挂载

[root@Centos83 ~]# ssm create -s 1G -n mail-lv --fstype xfs -p mail /dev/sdb[1-4] /mail-lv Physical volume "/dev/sdb1" successfully created. Physical volume "/dev/sdb2" successfully created. Physical volume "/dev/sdb3" successfully created. Physical volume "/dev/sdb4" successfully created. Volume group "mail" successfully created WARNING: ext4 signature detected on /dev/mail/mail-lv at offset 1080. Wipe it? [y/n]: y Wiping ext4 signature on /dev/mail/mail-lv. Logical volume "mail-lv" created. meta-data=/dev/mail/mail-lv isize=512 agcount=4, agsize=65536 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 data = bsize=4096 blocks=262144, 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 [root@Centos83 ~]# df -h /mail-lv/ 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/mail-mail--lv 1014M 40M 975M 4% /mail-lv [root@Centos83 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 cl lvm2 a-- <99.00g 0 /dev/sdb1 mail lvm2 a-- <2.00g 1020.00m /dev/sdb2 mail lvm2 a-- <2.00g <2.00g /dev/sdb3 mail lvm2 a-- <2.00g <2.00g /dev/sdb4 mail lvm2 a-- <2.00g <2.00g /dev/sdc vg05 lvm2 a-- <20.00g <19.00g [root@Centos83 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root cl -wi-ao---- <95.00g swap cl -wi-ao---- 4.00g mail-lv mail -wi-ao---- 1.00g lv05 vg05 -wi-a----- 1.00g [root@Centos83 ~]# lvextend -L +500m -r /dev/mail/mail-lv Size of logical volume mail/mail-lv changed from 1.00 GiB (256 extents) to <1.49 GiB (381 extents). Logical volume mail/mail-lv successfully resized. meta-data=/dev/mapper/mail-mail--lv isize=512 agcount=4, agsize=65536 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 data = bsize=4096 blocks=262144, 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 data blocks changed from 262144 to 390144 [root@Centos83 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 cl lvm2 a-- <99.00g 0 /dev/sdb1 mail lvm2 a-- <2.00g 520.00m /dev/sdb2 mail lvm2 a-- <2.00g <2.00g /dev/sdb3 mail lvm2 a-- <2.00g <2.00g /dev/sdb4 mail lvm2 a-- <2.00g <2.00g /dev/sdc vg05 lvm2 a-- <20.00g <19.00g [root@Centos83 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root cl -wi-ao---- <95.00g swap cl -wi-ao---- 4.00g mail-lv mail -wi-ao---- <1.49g lv05 vg05 -wi-a----- 1.00g

image-20210714175027937

总结:

15.1 LVM 的工作原理

15.2 创建 LVM 的基本步骤

15.3 实战-使用 SSM 工具为公司的邮件服务器创建可动态扩容的存储池

网友评论