Linux逻辑卷管理员

zhongcanw 2019-11-10

博文结构 什么是LVM LVM中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

Linux逻辑卷管理员

Volume Group, VG, 卷轴群组

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

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

Linux逻辑卷管理员

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, 逻辑卷轴

Linux逻辑卷管理员

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

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

Linux逻辑卷管理员

Linux逻辑卷管理员

VG阶段

vgcreate :就是主要创建 VG 的指令
vgscan :搜寻系统上面是否有 VG 存在
vgdisplay :显示目前系统上面的 VG 状态
vgextend :在 VG 内增加额外的 PV
vgreduce :在 VG 内移除 PV
vgchange :设置 VG 是否启动(active)
vgremove :删除一个 VG
LV 阶段

lvcreate :创建 LV 
lvscan :查询系统上面的 LV 
lvdisplay :显示系统上面的 LV 状态
lvextend :在 LV 里面增加容量
lvreduce :在 LV 里面减少容量
lvremove :删除一个 LV 
lvresize :对 LV 进行容量大小的调整

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

Linux逻辑卷管理员

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

Linux逻辑卷管理员

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

Linux逻辑卷管理员

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

Linux逻辑卷管理员

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

Linux逻辑卷管理员

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

Linux逻辑卷管理员

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

Linux逻辑卷管理员

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

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

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

Linux逻辑卷管理员

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

Linux逻辑卷管理员

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

Linux逻辑卷管理员


逻辑卷管理命令:

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

Linux逻辑卷管理员

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

Linux逻辑卷管理员

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

Linux逻辑卷管理员

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

Linux逻辑卷管理员

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

Linux逻辑卷管理员

配置案例


创建逻辑卷

Linux逻辑卷管理员

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

Linux逻辑卷管理员


挂载

Linux逻辑卷管理员

如果添加逻辑卷或删除后,使用命令“ 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 列出目前备份的信息状态。
~]# xfsdump -l O -L boot_all -Mboot_all -f /srv/boot.dump /boot
#将完整备份的文件名记录成为/srv/boot.dump
#如果不加-L和-M选项进入互动模式
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.4 (dump format 3.0) - type ^C for status and control
xfsdump: WARNING: most recent level 0 dump was interrupted, but not resuming that dump since resume (-R) option not specified
xfsdump: 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的ID
xfsdump: session label: "boot_all"  #简单给予一个名字记忆
#开始备份程序
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 146934272 bytes
xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 146605160 bytes
xfsdump: dump size (non-dir files) : 146370000 bytes
xfsdump: dump complete: 1 seconds elapsed
xfsdump: Dump Summary:
xfsdump:   stream 0 /srv/boot.dump OK (success)
xfsdump: Dump Status: SUCCESS
[ ~]# xfsdump -I  #查看有没有文件被xfsdump备份过的数据

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

常用选项如下:

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

相关推荐