如何进行简单的LVM的管理与ssm工具的使用?
实战:
环境准备
CentOS7.6
一、我们为您创建并使用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
[aaa@qq.com ~]# vgdisplay vg01
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
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
说明已经扩容成功
[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
已经扩容成功
[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查看磁盘信息
列出设备信息
储存池信息
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文件管理
下一篇: 搭建 Jenkins 实录