共计 3515 个字符,预计需要花费 9 分钟才能阅读完成。
传统分区的问题:
如果分区空间用满了,只能从新分区。
解决方案:加一个逻辑(软件)中间层。
以下有三个解决方案(逻辑层):
LVM,老牌的,很成熟,能够实现在线动静扩大(不能实现高可用)。
stratis,应用精简文件系统来解决空间节约问题。
3、vdo
一、LVM
fs(file system 文件系统)
lv(logical volume 逻辑卷):每个卷组中能够定义一个或多个逻辑卷,逻辑卷是位于物理分区上的信息汇合。
vg(volume group 卷组): 卷组是可用物理硬盘的汇合,能够逻辑地看成一块大硬盘,一个卷组由一个或多个物理卷组成。
pv(physical volume 物理卷):物理卷是底层真正提供容量,一个物理卷能够是整个磁盘、或磁盘上的分区。
PE (Physical Extend), 咱们的 LVM 磁盘治理中 PE 的默认大小是 4M 大小(能够指定大小),其实 PE 就是咱们逻辑卷治理的最根本单位(一旦确定将不能扭转)。比如说我有一个 400M 的硬盘,那么在将其格式化成 PV 的时候,其理论就是将这块物理硬盘划分成了 100 个的 PE,因为 PE 默认的大小就是 4M。
dm: device mapper,将一个或多个底层块设施组织成一个逻辑设备的模块;/dev/dm-#
1.1、装置 lvm 工具
yum install lvm2
罕用的 LVM 部署命令
性能 / 命令 物理卷治理 卷组治理 逻辑卷治理
扫描 pvscan vgscan lvscan
建设 pvcreate vgcreate lvcreate
显示 pvdisplay vgdisplay lvdisplay
删除 pvremove vgremove lvremove
扩大 vgextend lvextend
放大 vgreduce lvreduce
1.2、创立逻辑卷:
1.2.1、环境筹备
我应用的是 3A 服务器近程连贯的
应用一块硬盘的两个分区 /dev/sdb2 /dev/sdb3
或者两个硬盘 /dev/sdb、/dev/sdc
1.2.2、创立 pv(Physical volume 物理卷)
在分区或磁盘内写入一段元数据(标识以后分区或磁盘是一个 pv)
pvcreate /dev/sdb2 /dev/sdb3
如果报错:
Device /dev/sdb excluded by a filter.
Device /dev/sdc excluded by a filter.
可能是因为此硬盘曾经分区,存在分区表
查看创立的 pv
1、# pvs
2、# pvdisplay
1.2.3、创立 VG(Volume group 卷组)
将指定的 PV,逻辑上进行组合成一个大的存储池
-s 参数,可指定 PE 大小,默认为 4MB
把两块硬盘设施退出到 fantest 卷组中,而后查看卷组的状态
vgcreate fantest /dev/sdb2 /dev/sdb3
查看创立的 VG
1、# vgs
2、# vgdisplay
1.2.4、创立 LV(Logical volume 逻辑卷)
切割出一个约为 150MB 的逻辑卷设施,这里须要留神切割单位的问题。在对逻辑卷进行切割时有两种计量单位。
- L 参数:第一种是以容量为单位,所应用的参数为 -L。例如,应用 -L 150M 生成一个大小为 150MB 的逻辑卷。
- l 参数:另外一种是以根本单元的个数为单位,所应用的参数为 -l。每个根本单元的大小默认为 4MB。例如,应用 -l 37 能够生成一个大小为 37×4MB=148MB 的逻辑卷。
应用所有闲暇空间:lvcreate -n opt -l 100%FREE centos
查看 LV:
1、# lvs
2、# lvdisplay
1.2.5、格式化 LV,创立文件系统
把生成好的逻辑卷进行格式化,创立文件系统
mkfs -t xfs /dev/fantest/lv01
或者
mkfs.ext4 /dev/fantest/lv01
1.2.6、挂载 lv
创立一个目录,用于挂载 lv:
mkdir /home/lv01
mount /dev/fantest/lv01 /home/lv01
把挂载信息写入到配置文件,使其永恒失效
echo “/dev/fantest/lv01 /home/lv01 xfs defaults 0 0” >> /etc/fstab
1.3、扩容逻辑卷
1.3.1、如果 VG 还有足够空间可调配时,间接调配即可
只有卷组(VG)中有足够的资源,就能够始终为逻辑卷(LV)扩容。
1.3.1.1、查看 VG 的资源状况
1.3.1.2、逻辑卷扩容
1.3.1.2.1、- l 参数:另外一种是以根本单元的个数为单位,所应用的参数为 -l。每个根本单元的大小默认为 4MB。例如,应用 -l 37 能够生成一个大小为 37×4MB=148MB 的逻辑卷
具体操作与 - L 参数类似,参考下方方法即可
1.3.1.2.2、- L 参数:是以容量为单位,所应用的参数为 -L。例如,应用 -L 150M 生成一个大小为 150MB 的逻辑卷。
先查看未扩容前,逻辑卷资源占用状况
执行以下命令,扩容逻辑卷(LV):
lvextend -L +100M /dev/fantest/lv01
执行以下命令,扩容 xfs 文件系统 或者在 lvextend 命令中退出 -r 参数
xfs_growfs /home/lv01
1.3.2、如果 VG 没有足够空间可调配,则先创立 PV,扩容卷组(VG)后再扩容逻辑卷(LV)
扩大前查看资源状况
先创立 pv
pvcreate /dev/sdb4
扩容 VG
vgextend fantest /dev/sdb4
1.4、放大逻辑卷
相较于扩容逻辑卷,在对逻辑卷进行缩容操作时,其失落数据的危险更大。所以在生产
环境中执行相应操作时,肯定要提前备份好数据。另外 Linux 零碎规定,在对 LVM 逻辑卷进行缩容操作之前,要先查看文件系统的完整性(当然这也是为了保障咱们的数据安全)。在执行缩容操作前记得先把文件系统卸载掉。
tips:放大逻辑卷时,残余的空间大小必须为一个 PV 的大小以上
1.4.1、迁徙数据
这里拿 /home 测试,先将 /home 下内容备份删除,并卸载 /home
1.4.2、放大逻辑卷
1.4.2.1、ext 文件系统
将逻辑卷大小调整为 10G
resize2fs /dev/centos/home 10G
resize2fs 命令是用来增大或者膨胀未加载的“ext2/ext3/ext4”文件系统的大小
1.4.2.2、xfs 文件系统
放大 home 逻辑卷的大小为 3G
lvreduce -L 3G /dev/centos/home
把生成好的逻辑卷进行格式化,创立文件系统
mkfs.xfs -f /dev/centos/home
1.5、删除逻辑卷
当生产环境中想要重新部署 LVM 或者不再须要应用 LVM 时,则须要执行 LVM 的删除
操作。为此,须要提前备份好重要的数据信息,而后顺次删除逻辑卷、卷组、物理卷设施,这个程序不可颠倒。
1.5.1、勾销逻辑卷与目录的挂载关联,删除配置文件中永恒失效的设施参数。
umount /home/lv01
vi /etc/fstab
1.5.2、删除逻辑卷设施
lvremove /dev/fantest/lv01
1.5.3、删除卷组,此处只写卷组名称即可,不须要设施的绝对路径
vgremove fantest
1.5.4、删除物理卷设施
pvremove /dev/sdb3 /dev/sdb
1.6、逻辑卷快照
LVM 的快照卷性能有两个特点:
➢ 快照卷的容量必须等同于逻辑卷的容量;
➢ 快照卷仅一次无效,一旦执行还原操作后则会被立刻主动删除。
1.6.1、应用 -s 参数生成一个快照卷,应用 -L 参数指定切割的大小。另外,还须要在命令前面写上是针对哪个逻辑卷执行的快照操作
lvcreate -L 100M -s -n kuaizhao /dev/fantest/fan
1.6.2、在逻辑卷所挂载的目录中创立一个 100MB 的垃圾文件,而后再查看快照卷的状态。能够发现存储空间占的用量回升了
dd if=/dev/zero of=/home/lvm_test/test.txt count=1 bs=100M
1.6.3、为了校验 kuaizhao 快照卷的成果,须要对逻辑卷进行快照还原操作。在此之前记得先卸载掉逻辑卷设施与目录的挂载
umount /home/lvm_test
如果报错:
umount: /home/lvm_test: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
可能是有用户正在占用目录
lvconvert –merge /dev/fantest/kuaizhao
1.6.4、快照卷会被主动删除掉,并且刚刚在逻辑卷设施被执行快照操作后再创立进去的 100MB 的垃圾文件也被革除了。
mount /dev/fantest/fan /home/lvm_test