千家信息网

Linux逻辑卷管理员

发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,博文结构什么是LVMLVM中PV、VG、PE、LV扩大LV容量LVM的磁盘快照LVM 相关指令汇整什么是LVM:LVM 的重点在于"可以弹性的调整 filesystem 的容量!而并非在于性能与数据保
千家信息网最后更新 2024年11月20日Linux逻辑卷管理员
博文结构什么是LVMLVM中PV、VG、PE、LV扩大LV容量LVM的磁盘快照LVM 相关指令汇整

什么是LVM:

LVM 的重点在于"可以弹性的调整 filesystem 的容量!而并非在于性能与数据保全上面。
若需要文件的读写性能或者是数据的可靠性,应该用RAID磁盘阵列

LVM 可以整合多个实体 partition 在一起,让这些 partitions 看起来就像是一个磁盘一样!而且,还可以在未来新增或移除其他的实体 partition 到这个 LVM 管理的磁盘当中

LVM中PV、VG、PE、LV:

LVM 的全名是 Logical Volume Manager,中文可以翻译作逻辑卷轴管理员。

LVM 的作法是将几个实体的 partitions (或 disk)通过软件组合成为一块看起来是独立的大磁盘(VG),然后将这块大磁盘再经过分区成为可使用分区(LV),最终就能够挂载使用了。

Physical Volume, PV, 实体卷轴

我们实际的 partition (或 Disk)需要调整系统识别码(system ID)成为 8e (LVM 的识别码),然后再经过pvcreate 的指令将他转成 LVM 最底层的实体卷轴(PV),之后才能够将这些 PV 加以利用!调整 system ID 的方是就是通过gdisk

Volume Group, VG, 卷轴群组

由一个或多个物理卷组成一个整体,即称为卷组,在卷组中可以动态的添加或移除物理卷。许多个物理卷可以分别组成不同的卷组,卷组的名称由用户自行定义。

所谓的 LVM 大磁盘就是将许多 PV 整合成这个 VG 的东西就是啦!所以 VG 就是 LVM 组合起来的大磁盘!
那么这个大磁盘最大可以到多少容量呢?(PE 以及 LVM 的格式版本有关)
在默认的情况下,使用 32位的 Linux 系统时,基本上 LV 最大仅能支持到 65534 个 PE 而已,若使用默认的 PE 为 4MB 的情况下,最大容量则仅能达到约 256GB 而已~不过,这个问题在 64位的 Linux 系统上面已经不存在了!LV 几乎没有啥容量限制

Physical Extent, PE, 实体范围区块

LVM 默认使用 4MB 的 PE 区块,而 LVM 的 LV 在 32 位系统上最多仅能含有 65534 个 PE (lvm1 的格式),因此默认的 LVM 的 LV 会有4M*65534/(1024M/G)=256G。
他是整个 LVM 最小的储存区块,也就是说,其实我们的文件数据都是借由写入PE 来处理的。(类似文件系统的block大小)

Logical Volume, LV, 逻辑卷轴

逻辑卷建立子啊卷组之上,与物理卷没有直接关系,对于逻辑卷来说,每一个卷组就是一个整体,从这个整体中"切出"一小块空间,作为用户创建文件系统的基础,这一小块空间就称为逻辑卷,使用mkfs等工具在逻辑卷上创建文件系统以后,就可以直接挂载到Linux操作系统中目录下使用。

最终的 VG 还会被切成 LV,这个 LV 就是最后可以被格式化使用的类似分区
那么 LV 是否可以随意指定大小呢?(否)
既然 PE 是整个 LVM 的最小储存单位,那么 LV 的大小就与在此 LV 内的 PE 总数有关。
为了方便使用者利用 LVM 来管理其系统,因此 LV 的设备文件名通常指定为"/dev/vgname/lvname "的样式!

VG阶段vgcreate :就是主要创建 VG 的指令vgscan :搜寻系统上面是否有 VG 存在vgdisplay :显示目前系统上面的 VG 状态vgextend :在 VG 内增加额外的 PVvgreduce :在 VG 内移除 PVvgchange :设置 VG 是否启动(active)vgremove :删除一个 VG 
LV 阶段lvcreate :创建 LV lvscan :查询系统上面的 LV lvdisplay :显示系统上面的 LV 状态lvextend :在 LV 里面增加容量lvreduce :在 LV 里面减少容量lvremove :删除一个 LV lvresize :对 LV 进行容量大小的调整

创建逻辑卷并使用的顺序:创建物理卷→创建卷组→创建逻辑卷→格式化挂载

常用的LVM逻辑卷与文件系统管理的命令:

pvscan命令:用于扫描系统中所有的物理卷,并输出相关信息

pvcreate命令:用于将分区或整个硬盘转换为物理卷,主要是添加LVM属性信息并划分PE存储单位(该命令需要使用硬盘或分区的设备文件作为参数,可以是多个)

pvdisplay命令:用于显示物理卷的详细信息,需要使用指定的物理卷作为命令参数,默认时将显示所有物理卷的信息

pvremove命令:用于将物理卷还原成普通分区或磁盘,不再用于LVM体系,被移除的物理卷将无法被pvscan识别。

卷组管理命令:
vgscan命令:用于扫描系统中以建立的LVM卷组及相关信息。通过执行命令可以列出cl卷组。

vgcreate命令:用于将一个或多个物理卷创建为一个卷组。

[root@localhost ~]# vgcreate web_document  /dev/sdb1 /dev/sdb2 #使用物理卷/dev/sdb1、/dev/sdb2创建名为web_document的卷组。

vgdisplay命令:用于显示系统中个卷组的详细信息,需要使用指定卷组名作为命令参数(未指定卷组名时将显示所有卷组的信息)

vgremove命令:用于删除指定的卷组,将指定卷组名作为参数即可。

vgextend命令:用于扩展卷组的磁盘空间,当创建新的物理卷,并需要将其添加到已有卷组中时,就可以使用vgextend命令,该命令的第一个参数为需要扩展容量的卷组名称,后面是为需要添加到该卷组中的物理卷。


逻辑卷管理命令:

lvscan命令:用于扫描系统中已建立的逻辑卷及相关信息。通过命令可以可以列出cl卷组中的逻辑卷。

lvcreate命令:用于从指定的卷组中分割空间,以创建新的逻辑卷,需要指定逻辑卷大小、名称及所在的卷组名作为参数

lvdisplay命令:用于显示逻辑卷的详细信息,可以指定逻辑卷的设备文件作为参数,也可以使用卷组名作为参数,以显示该卷组中所有逻辑卷的信息

lvextend命令:用于动态扩展逻辑卷的空间,当目前使用的逻辑卷空间不足时,可以从所在卷组中分割额外的空间进行扩展。只要指定需增加的容量大小及逻辑卷设备文件位置即可,前提条件是该卷组中还有尚未分配的磁盘空间,否则需要先扩展卷组容量。

vcreate命令:用于删除指定的逻辑卷,直接使用逻辑卷的设备文件作为参数即可。

配置案例


创建逻辑卷

格式化逻辑卷,创建XFS文件系统。


挂载

如果添加逻辑卷或删除后,使用命令" xfs_growfs 挂载点"来更新逻辑卷!

1、xfs文件系统的备份--xfsdump命令:

xfsdump命令的限制:xfsdump不支持没有挂载的文件系统,所以只能备份已挂载的;Xfsdump必须使用root的权限才能操作(涉及文件系统的关系);Xfsdump只能备份xfs文件系统;Xfsdump备份下来的数据(文件或存储媒体)只能让xfsrestore解压;Xfsdump是通过文件系统的UUID来分辨各个备份文件的,因此不能备份两个具有相同UUID的文件系统。
常用选项:-L:xfsdump会记录每次备份的session标头,这里可以填写针对此文件系统的简易说明;-M:xfsdump可以记录存储媒体的标头,这里可以填写此媒体的简易说明。-l:是L的小写,就是指定等级,有0~9共10个等级,默认为0,即完整备份,1~9是指增量备份。-f:有点类似tar,后面接产生的文件,也可以接例如/dev/st0设备文件名或其他一般文件文件名;-I:大写的"i",从/var/lib/xfsdump/inventory 列出目前备份的信息状态。
root@localhost ~]# xfsdump -l O -L boot_all -Mboot_all -f /srv/boot.dump /boot#将完整备份的文件名记录成为/srv/boot.dump#如果不加-L和-M选项进入互动模式xfsdump: using file dump (drive_simple) strategyxfsdump: version 3.1.4 (dump format 3.0) - type ^C for status and controlxfsdump: WARNING: most recent level 0 dump was interrupted, but not resuming that dump since resume (-R) option not specifiedxfsdump: level 0 dump of localhost.localdomain:/boot  #开始备份本机的/boot系统xfsdump: dump date: Wed Aug 21 00:04:00 2019  #备份的时间xfsdump: session id: 2ab52f27-54d8-4cb3-b99f-5f78601afeed  #这次dump的IDxfsdump: session label: "boot_all"  #简单给予一个名字记忆#开始备份程序xfsdump: ino map phase 1: constructing initial dump listxfsdump: ino map phase 2: skipping (no pruning necessary)xfsdump: ino map phase 3: skipping (only one dump stream)xfsdump: ino map construction completexfsdump: estimated dump size: 146934272 bytesxfsdump: creating dump session media file 0 (media 0, file 0)xfsdump: dumping ino mapxfsdump: dumping directoriesxfsdump: dumping non-directory filesxfsdump: ending media filexfsdump: media file size 146605160 bytesxfsdump: dump size (non-dir files) : 146370000 bytesxfsdump: dump complete: 1 seconds elapsedxfsdump: Dump Summary:xfsdump:   stream 0 /srv/boot.dump OK (success)xfsdump: Dump Status: SUCCESS[root@localhost ~]# xfsdump -I  #查看有没有文件被xfsdump备份过的数据

2、xfs文件系统的还原--xfsrestore命令:

常用选项如下:-I:大写的"i"跟xfsdump相同的输出!可查询备份数据,包括Label名称和备份时间等;-f:后面接的就是备份文件!企业中很有可能会接/dev/st0等磁带机!-L:可用"-I"查询到的数据。在这个选项后输入;-s:需要接某特定目录,也能复原某一文件或目录;-r:如果是用文件来存储备份数据,那这个就不需要使用。如果是一个磁盘内有多个文件,需要使用它来达成累积复原;-i:进入互动模式(一般不需要)
[root@localhost ~]# xfsrestore -I  #查看备份文件数据[root@localhost ~]# xfsrestore -f /srv/boot.dump -L boot_all /boot#  直接将备份数据覆盖回去
0