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

在这里插入图片描述
实战:
环境准备
CentOS7.6
在这里插入图片描述
一、我们为您创建并使用LVM逻辑卷
1.创建PV
添加一个sdb磁盘
fdisk /dev/sdb

[root@TSL ~]# 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,最后查看如下:

[root@TSL ~]# ls /dev/sdb*
/dev/sdb  /dev/sdb1  /dev/sdb2  /dev/sdb3  /dev/sdb4
[root@TSL ~]# 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.

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

[root@TSL ~]# 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名称

[root@TSL ~]# vgcreate vg01 /dev/sdb1
  Volume group "vg01" successfully created
[root@TSL ~]# vgs
  VG   #PV #LV #SN Attr   VSize    VFree   
  vg01   1   0   0 wz--n- 1020.00m 1020.00m
[root@TSL ~]# 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名称

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

再次查看

[root@TSL ~]# pvdisplay /dev/sdb1

在这里插入图片描述

[root@TSL ~]# vgdisplay vg01

在这里插入图片描述
2.文件系统与挂载

[root@TSL ~]# mkdir /lv01

查看逻辑卷

[root@TSL ~]# ls /dev/vg01
lv01

lv01的软连接是dm-0

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

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

[root@TSL ~]# vgcreate -s 16M vg02 /dev/sdb2
  Volume group "vg02" successfully created
  [root@TSL ~]#  vgdisplay vg02

在这里插入图片描述
4.LV扩容
首先,确定一下是否有可用的扩容空间,因为空间是从VG里面创建的,并且LV不能跨VG扩容

[root@TSL ~]# 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|
扩容逻辑卷

[root@TSL ~]# lvextend -L +30 /dev/vg01/lv01

注:在指定大小的时候,扩容30m和扩容到30m是不一样的写法
扩容30m-------->-L +30M
扩容到30m ----------->-L 30M
在这里插入图片描述
说明已经扩容成功

[root@TSL ~]# lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv01 vg01 -wi-ao---- 48.00m   
[root@TSL ~]# 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类型文件系统使用。

[root@TSL ~]# xfs_growfs /lv01

在这里插入图片描述
已经扩容成功

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

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

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

5.VG扩容

[root@TSL ~]# 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卷组中的空间不了够,需要添加新的硬盘进来

[root@TSL ~]# pvcreate /dev/sdb3
  Physical volume "/dev/sdb3" successfully created.
[root@TSL ~]# vgextend vg01 /dev/sdb3 
  Volume group "vg01" successfully extended
#我们发现扩容成功
[root@TSL ~]# 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的动态缩小。

[root@TSL ~]#  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.#缩小成功
[root@TSL ~]# df -Th /lv01
Filesystem            Type  Size  Used Avail Use% Mounted on
/dev/mapper/vg01-lv01 xfs    77M  1.1M   76M   2% /lv01
#我们发现文件系统上面的空间没有变

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

root@TSL ~]# 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
[root@TSL ~]# 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
[root@TSL ~]# cp -r /boot/grub /lv01/
[root@TSL ~]# vgreduce vg01 /dev/sdb1
  Physical volume "/dev/sdb1" still in use

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

[root@TSL ~]# pvmove  /dev/sdb1  /dev/sdb3
  /dev/sdb1: Moved: 100.00%
[root@TSL ~]# vgreduce vg01 /dev/sdb1
  Removed "/dev/sdb1" from volume group "vg01"
[root@TSL ~]# 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

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

移出pv sdb1

[root@TSL ~]# pvremove /dev/sdb1
  Labels on physical volume "/dev/sdb1" successfully wiped.
[root@TSL ~]# 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

[root@TSL ~]# yum -y install system-storage-manager

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

[root@TSL ~]# vgremove vg02
[root@TSL ~]# pvremove /dev/sdb{1,2,3,4}

创建目录

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

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

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

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

发布了5 篇原创文章 · 获赞 2 · 访问量 187

猜你喜欢

转载自blog.csdn.net/qq_44902227/article/details/104648793
今日推荐