欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何进行简单的LVM的管理与ssm工具的使用?

程序员文章站 2022-05-11 14:49:49
...

如何进行简单的LVM的管理与ssm工具的使用?
实战:
环境准备
CentOS7.6
如何进行简单的LVM的管理与ssm工具的使用?
一、我们为您创建并使用LVM逻辑卷
1.创建PV
添加一个sdb磁盘
fdisk /dev/sdb

[aaa@qq.com ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x3dc04c3c.

Command (m for help): n  #创建一个分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p  #查看
Partition number (1-4, default 1):   #回车
First sector (2048-41943039, default 2048):  #回车
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +1G   #这里我们用1G
Partition 1 of type Linux and of size 1 GiB is set

Command (m for help): w   #保存
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

我们创建4个主分区,每个1G,最后查看如下:

[aaa@qq.com ~]# ls /dev/sdb*
/dev/sdb  /dev/sdb1  /dev/sdb2  /dev/sdb3  /dev/sdb4
[aaa@qq.com ~]# pvcreate /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.

【注】:在这一步可能,你会出现一个错误,
查看物理卷信息

[aaa@qq.com ~]# pvdisplay /dev/sdb1
  "/dev/sdb1" is a new physical volume of "1.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               1.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               Rv7qKe-oWh4-Xw0J-L9Go-NCiV-6i8V-bnwYBP

创建vg卷组
语法:vgcreate vg名称 pv名称

[aaa@qq.com ~]# vgcreate vg01 /dev/sdb1
  Volume group "vg01" successfully created
[aaa@qq.com ~]# vgs
  VG   #PV #LV #SN Attr   VSize    VFree   
  vg01   1   0   0 wz--n- 1020.00m 1020.00m
[aaa@qq.com ~]# vgdisplay vg01
  --- Volume group ---
  VG Name               vg01
  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               2uiBeE-FjxA-yqgp-HNcg-pNFA-j0R3-8aFo0c

创建lv
语法:lvcreate -n 指定lv名称 -L指定lv大小的SIZE(M,G) (-l:小l 指定LE的数量) vg名称

[aaa@qq.com ~]# lvcreate -n lv01 -L 16M vg01
  Logical volume "lv01" created.
[aaa@qq.com ~]# lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv01 vg01 -wi-a----- 16.00m 

再次查看

[aaa@qq.com ~]# pvdisplay /dev/sdb1

如何进行简单的LVM的管理与ssm工具的使用?

[aaa@qq.com ~]# vgdisplay vg01

如何进行简单的LVM的管理与ssm工具的使用?
2.文件系统与挂载

[aaa@qq.com ~]# mkdir /lv01

查看逻辑卷

[aaa@qq.com ~]# ls /dev/vg01
lv01

lv01的软连接是dm-0

[aaa@qq.com ~]# ll /dev/vg01/lv01
lrwxrwxrwx. 1 root root 7 Mar  4 11:47 /dev/vg01/lv01 -> ../dm-0
[aaa@qq.com ~]# mkfs.xfs /dev/vg01/lv01
[aaa@qq.com ~]# mount /dev/vg01/lv01
mount: can't find /dev/vg01/lv01 in /etc/fstab
[aaa@qq.com ~]# mount /dev/vg01/lv01 /lv01
[aaa@qq.com ~]# df -Th /lv01
Filesystem            Type  Size  Used Avail Use% Mounted on
/dev/mapper/vg01-lv01 xfs    13M  896K   12M   7% /lv01
[aaa@qq.com ~]# echo  "/dev/vg01/lv01 /lv01 xfs defaults 0 0"  >> /etc/fstab

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

[aaa@qq.com ~]# vgcreate -s 16M vg02 /dev/sdb2
  Volume group "vg02" successfully created
  [aaa@qq.com ~]#  vgdisplay vg02

如何进行简单的LVM的管理与ssm工具的使用?
4.LV扩容
首先,确定一下是否有可用的扩容空间,因为空间是从VG里面创建的,并且LV不能跨VG扩容

[aaa@qq.com ~]# vgs
  VG   #PV #LV #SN Attr   VSize    VFree   
  vg01   1   1   0 wz--n- 1020.00m 1004.00m
  vg02   1   0   0 wz--n- 1008.00m 1008.00m

扩展命令如下:
| extend | vgextend | lvextend|
扩容逻辑卷

[aaa@qq.com ~]# lvextend -L +30 /dev/vg01/lv01

注:在指定大小的时候,扩容30m和扩容到30m是不一样的写法
扩容30m-------->-L +30M
扩容到30m ----------->-L 30M
如何进行简单的LVM的管理与ssm工具的使用?
说明已经扩容成功

[aaa@qq.com ~]# lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv01 vg01 -wi-ao---- 48.00m   
[aaa@qq.com ~]# df -Th /lv01
Filesystem            Type  Size  Used Avail Use% Mounted on
/dev/mapper/vg01-lv01 xfs    13M  896K   12M   7% /lv01

【注】:可以看到LV虽然扩展了,但是文件系统大小还是原来的,下面开始扩容文件系统。
xfs文件系统扩容使用命令语法: xfs_growfs 挂载点
这里顺便说一下ext4文件系统:
ext4文件系统扩容使用命令语法: resize2fs 逻辑卷名称
两者的区别:resize2fs和xfs_growfs 两者的区别是传递的参数不一样的,xfs_growfs是采用的挂载点;resize2fs是逻辑卷名称,而且resize2fs命令不能对xfs类型文件系统使用。

[aaa@qq.com ~]# xfs_growfs /lv01

如何进行简单的LVM的管理与ssm工具的使用?
已经扩容成功

[aaa@qq.com ~]# df -Th /lv01
Filesystem            Type  Size  Used Avail Use% Mounted on
/dev/mapper/vg01-lv01 xfs    45M  992K   44M   3% /lv01

那有没有一步到位的呢?请看下面命令:

[aaa@qq.com ~]# lvextend -L 80M -r /dev/vg01/lv01
[aaa@qq.com ~]# df -T /lv01/
Filesystem            Type 1K-blocks  Used Available Use% Mounted on
/dev/mapper/vg01-lv01 xfs      78500  1088     77412   2% /lv01
[aaa@qq.com ~]# df -Th /lv01/
Filesystem            Type  Size  Used Avail Use% Mounted on
/dev/mapper/vg01-lv01 xfs    77M  1.1M   76M   2% /lv01

5.VG扩容

[aaa@qq.com ~]# vgs
  VG   #PV #LV #SN Attr   VSize    VFree   
  vg01   1   1   0 wz--n- 1020.00m  940.00m
  vg02   1   0   0 wz--n- 1008.00m 1008.00m

假如vg卷组中的空间不了够,需要添加新的硬盘进来

[aaa@qq.com ~]# pvcreate /dev/sdb3
  Physical volume "/dev/sdb3" successfully created.
[aaa@qq.com ~]# vgextend vg01 /dev/sdb3 
  Volume group "vg01" successfully extended
#我们发现扩容成功
[aaa@qq.com ~]# vgs
  VG   #PV #LV #SN Attr   VSize    VFree   
  vg01   2   1   0 wz--n-    1.99g    1.91g
  vg02   1   0   0 wz--n- 1008.00m 1008.00m

6.LVM缩小
A:在上面的场景中,LVM可以动态增加,那可以动态缩小吗?
B:LVM可以动态增加,也可以动态缩小,但是XFS不支持动态缩小,所以我们无法实现基于xfs的动态缩小。

[aaa@qq.com ~]#  lvreduce -L -20m /dev/vg01/lv01
  WARNING: Reducing active and open logical volume to 60.00 MiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg01/lv01? [y/n]: y
  Size of logical volume vg01/lv01 changed from 80.00 MiB (20 extents) to 60.00 MiB (15 extents).
  Logical volume vg01/lv01 successfully resized.#缩小成功
[aaa@qq.com ~]# df -Th /lv01
Filesystem            Type  Size  Used Avail Use% Mounted on
/dev/mapper/vg01-lv01 xfs    77M  1.1M   76M   2% /lv01
#我们发现文件系统上面的空间没有变

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

aaa@qq.com ~]# vgs
  VG   #PV #LV #SN Attr   VSize    VFree   
  vg01   2   1   0 wz--n-    1.99g    1.93g
  vg02   1   0   0 wz--n- 1008.00m 1008.00m
[aaa@qq.com ~]# pvs
  PV         VG   Fmt  Attr PSize    PFree   
  /dev/sdb1  vg01 lvm2 a--  1020.00m  960.00m
  /dev/sdb2  vg02 lvm2 a--  1008.00m 1008.00m
  /dev/sdb3  vg01 lvm2 a--  1020.00m 1020.00m
  /dev/sdb4       lvm2 ---     1.00g    1.00g
[aaa@qq.com ~]# cp -r /boot/grub /lv01/
[aaa@qq.com ~]# vgreduce vg01 /dev/sdb1
  Physical volume "/dev/sdb1" still in use

我们发现将sdb1移出失败,是因为sdb1正在被使用
A:如果sdb1是一个磁盘阵列,而这个磁盘阵列使用得过于太久,我们必须移出怎么办?
B:将sdb1上数据移到新增加sdb3 pv 上,尝试一下,看能不能移除?

[aaa@qq.com ~]# pvmove  /dev/sdb1  /dev/sdb3
  /dev/sdb1: Moved: 100.00%
[aaa@qq.com ~]# vgreduce vg01 /dev/sdb1
  Removed "/dev/sdb1" from volume group "vg01"
[aaa@qq.com ~]# pvs
  PV         VG   Fmt  Attr PSize    PFree   
  /dev/sdb1       lvm2 ---     1.00g    1.00g
  /dev/sdb2  vg02 lvm2 a--  1008.00m 1008.00m
  /dev/sdb3  vg01 lvm2 a--  1020.00m  960.00m
  /dev/sdb4       lvm2 ---     1.00g    1.00g
  #我们发现已经成功移除,vg01中只有sdb3了

7.LVM删除
创建LVM流程:
pvcreate创建pv -> vgcreate创建卷组 -> lvcreate创建逻辑卷 -> mkfs.xfs lv 格式化-> mount挂载
删除LVM流程:
umount卸载 -> lvremove lv移出卷组中所有逻辑卷-> vgremove vg移出卷组-> pvremove 移出pv

[aaa@qq.com ~]# umount /lv01
[aaa@qq.com ~]# lvremove /dev/vg01/lv01
Do you really want to remove active logical volume vg01/lv01? [y/n]: y
  Logical volume "lv01" successfully removed
[aaa@qq.com ~]# lvs  #已经看不见lv01
[aaa@qq.com ~]# vgremove vg01   #直接移除卷组
  Volume group "vg01" successfully removed
[aaa@qq.com ~]# vgs
  VG   #PV #LV #SN Attr   VSize    VFree   
  vg02   1   0   0 wz--n- 1008.00m 1008.00m

移出pv sdb1

[aaa@qq.com ~]# pvremove /dev/sdb1
  Labels on physical volume "/dev/sdb1" successfully wiped.
[aaa@qq.com ~]# pvs
  PV         VG   Fmt  Attr PSize    PFree   
  /dev/sdb2  vg02 lvm2 a--  1008.00m 1008.00m
  /dev/sdb3       lvm2 ---     1.00g    1.00g
  /dev/sdb4       lvm2 ---     1.00g    1.00g

二、使用SSM工具为公司的邮件服务器创建可动态扩容的存储池
2.1安装ssm

[aaa@qq.com ~]# yum -y install system-storage-manager

SSM:检查关于可用硬驱和LVM卷的信息。显示关于现有磁盘存储设备、存储池、LVM卷和存储快照的信息。
2.1.1查看磁盘信息
列出设备信息
如何进行简单的LVM的管理与ssm工具的使用?
储存池信息
如何进行简单的LVM的管理与ssm工具的使用?
2.2.为公司的邮件服务器创建基于LVM的邮件存储
描述:公司要搭建一台邮件服务器,考虑到后期公司发展规模扩张,需要你创建一个名为mail 的LVM存储池,并在其上创建一个名为mail-lv,初始大小为2G的lvm卷,格式化为xfs文件系统,并将其挂载/mail-lv目录下。此存储池中的空间后期要可以动态扩容。
将sdb上所有卷组信息删除:

[aaa@qq.com ~]# vgremove vg02
[aaa@qq.com ~]# pvremove /dev/sdb{1,2,3,4}

创建目录

[aaa@qq.com ~]# mkdir /mail-lv

用的命令如下:
ssm create -s lv大小 -n lv名称 --fstype lv文件系统类型 -p 卷组名 设备 挂载点
自动把设备变成pv,创建vg , lv ,格式化文件系统, 自动挂载

[aaa@qq.com ~]# 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
#部分已省略
[aaa@qq.com ~]# df -h /mail-lv
Filesystem                 Size  Used Avail Use% Mounted on
/dev/mapper/mail-mail--lv 1014M   33M  982M   4% /mail-lv

总结:
我们学会了LVM的创建以及删除等一些实用场景。

相关标签: 笔记 linux