您现在的位置是:首页 > 唯美句子

Linux 磁盘管理(LVM管理:格式化、挂载、扩容)《二》

作者:利杜鹃时间:2024-04-18 14:38:42分类:唯美句子

简介  文章浏览阅读5.4k次,点赞6次,收藏50次。在 LVM 中,快照是逻辑卷的一种副本,用来记录逻辑卷在创建快照时的数据状态。它类似于文件系统的“影子”,通过记录数据状态,可以在需要时恢复逻辑卷到快照所记录的状态。与实际备份不同,快照只是逻辑卷的一个影子,无法防

点击全文阅读

文章目录

Linux LVM管理(格式化、挂载、扩容、快照、恢复、镜像)linux LVM是什么LVM相关概念:LVM的流程实操一、在VMware虚拟机中添加新磁盘二、查看linux磁盘信息三、创建物理卷(PV)四、创建卷组(VG)五、加入卷组,创建逻辑卷(LV)六、格式化逻辑卷七、挂载与卸载永久挂载设置临时挂载配置 LVM的增删改查LVM的查LVM的改LVM的删LVM的增 LVM 新增硬盘如何扩充、缩减思路一、新建物理卷二、加入卷组三、给逻辑卷扩充空间四、缩减逻辑卷空间 LVM的快照功能快照介绍LVM快照实操一、创建快照逻辑卷 二、快照的恢复使用增删改查操作快照的使用 LVM镜像简介实操测试镜像卷的恢复能力创建测试模拟破坏 恢复镜像 总结

Linux LVM管理(格式化、挂载、扩容、快照、恢复、镜像)

linux LVM是什么

LVM(Logical Volume Manager)是一种linux磁盘管理工具,用于在Linux系统上管理磁盘和存储卷。通过使用LVM,可以将多个物理磁盘或分区组合成一个或多个逻辑卷,并提供灵活的存储空间管理功能。

LVM的优点:

灵活调整存储空间:使用LVM可以动态地增加、缩减和移动逻辑卷的大小,无需重新分区或重新格式化磁盘。数据保护:通过镜像、快照和备份等功能,LVM提供了数据冗余和故障恢复的能力,提高了数据的安全性和可靠性。快照:LVM支持创建逻辑卷的实时副本,用于备份、测试操作或还原到之前的状态。灵活迁移:LVM允许在线迁移逻辑卷,以实现磁盘空间的重新分配和平衡负载。

LVM相关概念:

物理卷(Physical Volume,PV):物理卷是LVM中的基本单元,可以是硬盘、SSD或分区。使用pvcreate命令将物理磁盘或分区转换为物理卷。卷组(Volume Group,VG):卷组是由一个或多个物理卷组成的逻辑单元,相当于一个存储池。通过使用vgcreate命令创建卷组,将物理卷添加到卷组中。逻辑卷(Logical Volume,LV):逻辑卷是从卷组划分出来的独立存储单元,类似于硬盘上的一个分区。使用lvcreate命令创建逻辑卷,可以指定逻辑卷的大小和格式。快照卷(Snapshot Volume):快照卷是逻辑卷的实时副本,用于数据备份、测试或还原到之前的状态。使用lvcreate命令创建逻辑卷时,可以指定为快照卷。物理区(Physical Extent,PE):物理区是卷组中的最小分配单元,通常是4MB或更小的大小。卷组中的空间被划分为一组物理区,逻辑卷和物理卷都在物理区级别上进行分配。扩展(Extent):扩展是逻辑卷和物理卷的分配单位,可以理解为一个逻辑层面的区块,大小通常与物理区相同。

以上是LVM的主要组成部分。物理卷被组合成卷组,而卷组中的空间可以根据需要划分为逻辑卷。逻辑卷可以通过挂载到文件系统树上的特定目录来访问和使用。

LVM的流程

物理磁盘->物理卷(PV)->加入卷组(VG)->卷组中抽取空间,制作逻辑卷(LV)->格式化->挂载

页-1

物理磁盘:首先,您有物理磁盘,可以是硬盘、SSD或分区等。物理磁盘是存储数据的物理介质。

物理卷(Physical Volume,PV):将物理磁盘转换为LVM中的物理卷。这可以通过使用pvcreate命令将物理磁盘标记为物理卷。

卷组(Volume Group,VG):将一个或多个物理卷组合成卷组。卷组是一个逻辑的单元,类似于一个存储池。使用vgcreate命令创建卷组,并将物理卷添加到卷组中。

逻辑卷(Logical Volume,LV):从卷组中划分出逻辑卷。逻辑卷就像硬盘上的一个分区,用于存储数据。使用lvcreate命令创建逻辑卷,并可以指定逻辑卷的大小和格式。

格式化:一旦逻辑卷创建完毕,可以使用文件系统指令(例如mkfs命令)对逻辑卷进行格式化,以便能够在其中存储文件系统。

挂载:格式化后的逻辑卷可以被挂载到文件系统树中的指定目录上。挂载操作将逻辑卷与特定的目录关联起来,使得可以在该目录下访问和使用逻辑卷中的文件系统。

实操

一、在VMware虚拟机中添加新磁盘

image-20230624230656750

在虚拟机设置中选择硬盘添加一块新硬盘

image-20230624230821604

二、查看linux磁盘信息

使用命令lsblk,来查看系统上的磁盘分区信息。

lsblk

image-20230624231422153

在此我们发现一下信息:

sda是一个20GB的磁盘,有三个分区:

sda1是一个300MB的分区,被挂载为/boot,用于存储引导文件(启动分区)。sda2是一个2GB的分区,被标记为[SWAP],用于交换空间(虚拟内存)。sda3是一个17.7GB的分区,被挂载为根目录/,用于存储操作系统和用户数据。

sdb是另一个20GB的磁盘,没有分区信息。

sr0是一个虚拟光驱

三、创建物理卷(PV)

在此我们需要把sdb这块硬盘设置为物理卷(PV),使用以下命令:

pvcreate /dev/sdb

image-20230624232051918

“pvcreate /dev/sdb” 是一个LVM命令,用于将指定的磁盘或分区 /dev/sdb 转换为LVM(Logical Volume Manager)中的物理卷(Physical Volume, PV)。

创建成功后,我们来输入pvdisplay 来查看我们新建的物理卷(PV)信息

image-20230624232320093

输出中的信息显示了物理卷的一些重要属性:

PV Name:物理卷的名称为/dev/sdb。VG Name:物理卷尚未分配给任何卷组(Volume Group, VG),因此该字段为空。PV Size:物理卷的总大小为20.00 GiB。Allocatable:当前物理卷不可分配(Allocatable = NO)。PE Size:物理卷上的物理区(Physical Extent,PE)大小为0,这意味着物理卷尚未格式化或分割成任何逻辑结构。Total PE:物理卷上总共的物理区数量为0。Free PE:物理卷上可用的物理区数量为0,即全部空间都尚未分配给任何逻辑卷。Allocated PE:已经分配给逻辑卷的物理区数量为0,即尚未在物理卷上创建任何逻辑卷。PV UUID:物理卷的唯一标识符为9EOuPp-Qj1o-i2Bz-8cci-x4zx-NyU0-v4He31。

四、创建卷组(VG)

我们成功创建了物理卷后,就需要再创建一个卷组(VG),使用如下命令:

vgcreate my_disk /dev/sdb

image-20230624232610069

此时我们使用vgdisplay,来查看验证是否创建成功

image-20230624232731280

输出中的信息显示了卷组(VG)的一些重要信息分别是:

VG Name:卷组的名称为my_disk。Format:卷组使用的格式为lvm2,代表LVM的第二版本。Metadata Areas:卷组中的元数据区域数量为1,即指定了一个物理卷。Metadata Sequence No:元数据序列号为1,用于跟踪元数据的更改。VG Access:卷组以读写方式访问。VG Status:卷组状态可调整大小(resizable),表示卷组中的逻辑卷大小可以调整。MAX LV:卷组最大逻辑卷数量为0。Cur LV:当前卷组中的逻辑卷数量为0。Open LV:当前处于打开状态的逻辑卷数量为0。Max PV:卷组中最大物理卷数量为0。Cur PV:当前物理卷数量为1。Act PV:当前活跃的物理卷数量为1。VG Size:卷组的总大小为不到20.00 GiB。PE Size:物理区(Physical Extent)的大小为4.00 MiB。这是卷组中逻辑和物理卷的分配单位。Total PE:卷组中的总物理区数量为5119。Alloc PE / Size:已分配给逻辑卷的物理区数量为0,对应的大小为0。Free PE / Size:可用的物理区数量为5119,对应的大小为不到20.00 GiB。VG UUID:卷组的唯一标识符为iTpe74-MDzM-wERS-b5To-0PD7-tBwW-LMRufA。

五、加入卷组,创建逻辑卷(LV)

成功创建卷组后,需要把物理卷(PV)分配到卷组(VG)中,也就是创建逻辑卷(LV)使用以下命令:

lvcreate -L 4G -n my_home my_disk

image-20230624234646225

这个命令的意思是在卷组 my_disk 中创建一个逻辑卷 my_home,大小为 4GB。以下是对该命令中的参数的解释:

-L 4G:使用 -L 参数指定逻辑卷的大小,这里大小为 4GB。4G 表示使用 GB 作为计量单位,也可以使用 M 表示为 MBmy_home:使用 -n 参数指定逻辑卷的名称。在这个例子中,逻辑卷的名称是 my_homemy_disk:指定要在其中创建逻辑卷的卷组的名称。在这个例子中,卷组的名称是 my_disk

当命令执行成功后,将在卷组 my_disk 中创建一个名为 my_home 的逻辑卷,并分配 4GB 的空间给它。

此时使用命令lvdisplay,来查看验证逻辑卷是否创建成功

lvdisplay

image-20230624234803817

根据输出的信息显示逻辑卷(LV),的重要信息它们分别是:

LV Path:逻辑卷的路径为/dev/my_disk/my_home。LV Name:逻辑卷的名称为my_home。VG Name:逻辑卷所属的卷组名称为my_disk。LV UUID:逻辑卷的唯一标识符为5Kms0D-Xui9-VsgW-nIWE-Pe1y-NRC5-vbV2qM。LV Write Access:逻辑卷的读写权限为读写(read/write)。LV Creation host, time:逻辑卷的创建主机为localhost.localdomain,创建时间为2023-06-24 15:45:58 +0000。LV Status:逻辑卷的状态为可用(available)。open:逻辑卷当前打开的文件描述符数量为0。LV Size:逻辑卷的大小为4.00 GiB。Current LE:逻辑卷当前的逻辑区(Logical Extent)数量为1024。Segments:逻辑卷的段数量为1。Allocation:逻辑卷的分配策略为继承(inherit)。Read ahead sectors:逻辑卷当前的预读扇区数为8192。Block device:逻辑卷的块设备名称为253:0。

根据输出,逻辑卷my_home的状态为可用,大小为4.00 GiB,在/dev/my_disk/my_home路径上可以访问。

六、格式化逻辑卷

在做完以上一系列操作后,LVM分区已经创建好,接下来就是对该分区进行格式化,使用mkfs.ext4赋予它文件系统:

mkfs.ext4 /dev/my_disk/my_home

image-20230624235518735

注意:

在LVM选择文件系统的时候,最好选择ext4文件系统,在ext4文件系统下我们可以无损的对逻辑卷扩容或者缩容,

而XFS文件系统,只能对逻辑卷进行无损扩容,并不能进行无损缩容,如果一定要缩容,就要重新格式化逻辑卷,这就导致存储在逻辑卷中的数据丢失。

根据信息提示,现在已经成功的创建了一个ext4的文件系统,接下来就是最后一步,把它挂载到根目录下就可以正常使用了

七、挂载与卸载

现在我们需要给刚刚新建的逻辑分区创建一个挂载点,也就是新建一个文件夹。

挂载是在操作系统层面上进行的,它创建了一个链接,使得文件系统中的数据可以通过指定的挂载点在操作系统中访问。一旦文件系统被成功挂载,用户可以在挂载点下访问和操作文件。其实挂载就是一种链接,它是操作系统与存储设备的接口,我们通过挂载点去访问存储设备。

mkdir /home/my_home

image-20230625000105084

挂载又分为永久挂载和临时挂载

永久挂载:

它是在系统启动时自动将文件系统挂载到指定的挂载点,它需要再系统配置文件中添加相应的条目,在linux系统重,通常是编辑/etc/fstab文件来配置永久挂载。

特点是重启后不需要再进行重复挂载,既可使用。

临时挂载:

它是手动执行的挂载操作,需要手动去配置设备名称、挂载点等操作选项,它适合于暂时需要访问的文件系统例如:U盘、光驱等,重启后自动消除,需要重新挂载。通过mount命令来实现挂载,通过umount来卸载设备。
永久挂载设置

配置永久挂载,需要先用vim编辑\etc\fstab文件

image-20230625001557445

在此处添加需要挂载设备的相关信息:

该条目描述要挂载的文件系统。每个条目通常包含七个字段,以空格或制表符分隔。

<设备名称> <挂载点> <文件系统类型> <挂载选项> <文件系统检查选项> <备份间隔> <优先级>
<设备名称>:要挂载的设备的名称或设备ID。例如,/dev/my_disk/my_homeUUID:5Kms0D-Xui9-VsgW-nIWE-Pe1y-NRC5-vbV2qM<挂载点>:指定要将设备挂载到的目录。例如,/mnt<文件系统类型>:设备上的文件系统类型,例如ext4<挂载选项>:选择设备的挂载选项,如rw(读写)或ro(只读)。<文件系统检查选项>:指定设备的文件系统检查选项(如每次挂载时检查、跳过检查等)。<备份间隔>:指定文件系统备份的间隔(如每日、每周等)。<优先级>:指定文件系统挂载的优先级。

挂载名称我们可以通过lvdisplay来查询:

image-20230625002002891

然后根据该信息进行文件的配置:

image-20230625002335243

完成/etc/fstab文件设置后,需要重启系统或者使用命令mount -a来重新加载,使得更改生效。

使用完毕以后我们使用 lsblk命令来查看LVM分区是否成功挂载:

image-20230625002739884

从以上输出的信息中发现,我们的操作都已经成功了 文件已经成功的挂载在/home/my_home目录下了。

临时挂载配置

设置完永久挂载,我们再来试试如何进行临时挂载。现在需要把刚刚设置的永久挂载取消,在/etc/fstab文件中删除刚刚配置的条目。

image-20230625003100450

现在已经完全取消了。我们再来尝试临时挂载,使用以下命令:

mount /dev/my_disk/my_home /home/my_home

image-20230625003302099

临时挂载比永久挂载更简单,只需要一条命令就搞定了,挂载学会了,我们来看看如何卸载,使用如下命令:

umount /home/my_home

image-20230625003443322

一条命令搞定。简单快捷

LVM的增删改查

LVM的查

其实LVM的查,我们在创建LVM的过程已经使用过的分别就是:pvdisplay、vgdisplay、lvdisplay 。它们分别可以查看物理卷、卷组、逻辑卷的相关信息.

除了以上命令,还可以使用vgs、lvs、df -h 来查看LVM的信息

image-20230625004611935

同时还有三个命令可以用来扫描PV、VG、LV卷的状态信息

pvscan

image-20230625104010968

vgscan

lvscan

image-20230625104058870

LVM的改

在日后的运行中,随着内容不断增加,存储空间也逐渐减少,这时候就可以为逻辑卷增加存储空间了,因为LVM是动态分配存储空间的技术,我们可以随时为该逻辑卷增加或减少空间,这种操作不限于是同一块磁盘,也可以是其他磁盘,这也极大的方便我们随时更改空间。更改空间可以使用以下命令去操作:

lvresize -L <逻辑卷的大小> /dev/<卷组名称>/<逻辑卷名称>#LVM增、缩空间,这条命令可以指定空间大小lvextend -L <逻辑卷的大小> /dev/<卷组名称>/<逻辑卷名称>#LVM增空间lvreduce -L <逻辑卷的大小> /dev/<卷组名称>/<逻辑卷名称>#LVM缩减空间

image-20230625005458337

使用lvresize 命令后,使用lsblk显示 空间已经变成10G了,但是df -h命令却还是显示为4G,这是因为lvresize 命令只调整了逻辑卷的大小,并没有直接调整文件系统内部的大小。您需要相应地调整文件系统的大小,以使其能够利用新的逻辑卷空间。

处理办法也很简单,使用下行命令即可恢复正常:

resize2fs -p /dev/<卷组名>/<逻辑卷名>或者在扩容lvresize 命令后加上-p参数等价于resize2fs -p, 它会自动调整文件系统的大小。

第一个方法

image-20230625010121984

第二个方法:

image-20230625112552462

相比之下,第二种方法更为简单实用。

LVM的删

要删除LVM逻辑卷,需要先卸载逻辑卷,然后使用才能以下命令来进行删除操作:

umount /<逻辑卷挂载点>lvremove /dev/<卷组名>/<逻辑卷名>

image-20230625010912282

这样就可以成功将逻辑卷删除。

删除物理卷、和卷组的命令和其类似它们分别为:

pvremove /dev/<设备名> # 删除物理卷(PV)vgremove /dev/<卷组名> # 删除卷组(VG)

在删除物理卷(PV)前,需要将分配到卷组(VG)中的容量先返回

使用命令:

vgreduce my_disk /dev/sdc

image-20230625105336231

我们在查看vg卷中,空间是否已经返还。

image-20230625105428546

从以上信息中,我们可以发现空间已经返还给物理卷,现在我们可以使用pvremove删除物理卷

image-20230625105532314

image-20230625105618791

根据以上显示的信息,我们可以确定已经把sdc从LVM中删除了,sdc又处于最原始的状态。

LVM的增

为什么要把增放到最后讲,因为在之前的操作中,我们已经对LVM的增基本全部都操作了一遍,创建一个LVM需要有三个步骤

它们分别为:

创建物理卷(PV)

物理卷就相当于是我们的存储池,它们可以是硬盘、分区或raid设备。

创建物理卷的命令为:

pvcreate /dev/<设备名>

创建卷组(VG)

卷组就是由一个或多个物理卷组成的逻辑容器,它们组成一个集合,用来管理和分配存储池中的总体存储容量,并提供逻辑划分

创建卷组的命令为:

vgcreate <卷组名> /dev/<设备名>

创建逻辑卷(LV)

逻辑卷就是从卷组中分配出来的逻辑空间,它可以看做为物理卷和文件系统的中间层,逻辑卷它是用于实际存储的逻辑分区

创建逻辑卷命令为:

lvcreate -L <空间大小> /dev/<卷组名>/<逻辑卷名>

LVM 新增硬盘如何扩充、缩减

思路

新添加的硬盘需要扩充到之前的逻辑卷中,需要把新硬盘线创建一个物理卷,然后加入逻辑卷相应的卷组当中,在使用逻辑卷改命令去扩充空间

一、新建物理卷

image-20230625012936272

二、加入卷组

这一步命令有所不同,它的命令为:

vgextend my_disk /dev/sdc

image-20230625013749677

image-20230625013900064

三、给逻辑卷扩充空间

lvextend -L -r +10G /dev/my_disk/my_home

image-20230625114312364

这样我们就成功的为my_home用新的硬盘扩充到20G了

四、缩减逻辑卷空间

lvreduce -L -r -15G /dev/my_disk/my_home

这样我们就成功的缩减了my_home逻辑卷15G的容量,现在它只有4.8G

LVM的快照功能

快照介绍

在 LVM 中,快照是逻辑卷的一种副本,用来记录逻辑卷在创建快照时的数据状态。它类似于文件系统的“影子”,通过记录数据状态,可以在需要时恢复逻辑卷到快照所记录的状态。

与实际备份不同,快照只是逻辑卷的一个影子,无法防止硬件故障引起的数据丢失。而备份是对实际数据的完整拷贝,即使原始数据丢失,仍然可以通过备份进行数据恢复。

快照的恢复速度更快,因为它仅需要恢复逻辑卷的变化部分,而不是完整的数据。相对于备份需要恢复整个数据量,快照只需要恢复差异部分,因此速度更快。在一个大容量的逻辑卷中,快照的消耗通常比较轻量。

在生产环境中,通常会结合快照和备份来进行数据保护。先创建快照,然后进行备份,这样就可以同时获得快照的恢复速度和备份完整性的优点。快照可以提供快速的恢复,备份则可以提供完整的数据保护。

总结来说,LVM 的快照功能类似于文件系统的“备份”,它记录逻辑卷在创建快照时的数据状态,用于快速恢复数据。但快照只能恢复逻辑错误或操作失误,并不能防止硬件故障造成的数据丢失。

LVM快照实操

一、创建快照逻辑卷
在这一步其实和创建逻辑卷的指令是差不多的 ,只是参数需要变为-s快照的容量最少也要和原始逻辑卷的大小一致,可以保证原始卷所有的数据都能写入到快照中。
lvcreate -L 10G --snapshort -name home_snapshot my_disk/my_home

my_home_snapshot是快照卷的名称,而后门的/dev/my_disk/my_home 则是原始逻辑卷的路径,表示创建这个快照是为它而服务。

image-20230625134809480

在使用lvs查询的时候,已经创建成功了

image-20230625134919867

创建的快照,不需要格式化也可以挂载在根目录上,因为它只是源逻辑卷的元数据的副本,所以不需要重新分配空间。快照卷将记录源逻辑卷在快照创建之前的数据状态,因此其文件系统和数据布局与源逻辑卷是相同的

image-20230625135128802

image-20230625135409390

原始逻辑卷文件内容

快照逻辑卷文件内容

快照就这样创建成功了

二、快照的恢复使用

增删改查操作

快照逻辑卷和普通的逻辑卷的增删改查方式基本都一样,可以参考以上LVM的增删改查的命令去操作。

快照的使用

如果只是单文件需要恢复,可以直接去快照挂载的路径去copy文件到原始文件系统当中,可以一般文件的copy方法一致。

如果原始文件系统出现逻辑错误,或者大量内容被误操作,我们可以通过lvconvert -merge命令来执行合并快照操作。

lvconvert -merge <快照路径>

image-20230625140246483

我先模拟一下数据被误删的情况,在my_home中随意删除一些数据内容,然后在去合并快照,看看是否能恢复文件

在合并前,需要把原始逻辑卷先卸载,是为了确保在合并过程中数据的一致性和完整性

umount /home/my_home

image-20230625142052111

my_home原始逻辑卷已经卸载

lvconvert -merge /dev/my_disk/home_snapshort

image-20230625143126128

经过操作后我们已经把原始卷和快照逻辑卷合并了。在来挂载原始逻辑卷是否恢复

image-20230625143318394

现已经恢复了之前删掉的数据。

快照在合并以后,之前的快照就会消失,留下来的就是一个完整原始逻辑卷,如果有需要可以在创建一个快照

LVM镜像

简介

镜像(Mirroring)是一种提供数据冗余和容错的机制,通过在多个物理存储设备上创建逻辑卷的副本。镜像创建了逻辑卷的实时拷贝,确保数据的高可用性和可靠性。当一个物理设备发生故障时,可以使用镜像卷继续访问数据。镜像卷的更新操作会同时更新镜像的副本。

虽然镜像和快照都涉及到逻辑卷的复制,但它们的目的和用途是不同的。镜像旨在提供冗余和容错,以保证数据的可用性和可靠性。而快照则是为了保护和备份数据,并提供可以随时回滚到历史数据状态的能力。

实操

创建一个带镜像的逻辑卷,必须是在创建逻辑卷之前就规划好,如果是想在后期再添加逻辑卷基本是不可能的。

在使用LVM镜像逻辑卷时,我们要先了解以下几个概念

镜像逻辑卷(Mirrored Logical Volume)使用了数据卷(Data Volume)来存储实际的数据。

数据卷是 LVM 逻辑卷中实际用于存储文件系统、用户数据和其他数据的部分。当通过 LVM 创建一个逻辑卷时,数据卷将被创建并分配存储空间,这些存储空间用于存储实际的数据。

而镜像逻辑卷是为了提供镜像和冗余功能而创建的。镜像逻辑卷包含了一个原始逻辑卷和一个或多个镜像卷(也称为镜像副本)。镜像卷是一种特殊的数据卷,用于存储与原始逻辑卷相同的数据副本。

当对镜像逻辑卷进行写操作时,数据将被同时写入到原始逻辑卷和镜像卷中。这样,即使其中一个卷发生故障,数据仍然可从其他正常的卷中恢复和访问,从而提供了数据的冗余性和可用性。

在 LVM 的镜像逻辑卷中,数据卷指的是用于存储实际数据的卷,它可以是原始逻辑卷或镜像卷。数据卷在镜像逻辑卷中承担着存储和保护数据的重要角色。

日志卷:

日志卷(log volume)是用于记录逻辑卷(logical volume)上的数据变更操作的一种特殊卷。它用于提供数据的一致性和完整性,以及恢复逻辑卷数据状态。

日志卷主要用于 LVM 的写操作,当有写操作发生时,相应的修改会首先被记录在日志卷中。通过记录日志操作,可以确保在意外故障发生时,可以恢复逻辑卷的数据状态,并保证数据的一致性。这种机制被称为写日志(write logging)。

日志卷的创建是可选的,不是必需的,它提供了额外的数据保护和可靠性。在创建逻辑卷时,可以选择指定日志卷。如果没有指定日志卷,写操作将会在不使用日志的情况下直接将数据写入逻辑卷中。

日志卷通常与逻辑卷位于同一卷组中,但也可以将日志卷和逻辑卷放置到不同的卷组中,以实现更灵活的配置。

在创建镜像逻辑卷前,要保存物理卷(PV)在2个以上,这是为了提供数据冗余和容错性,以确保数据的可用性和可靠性。因为数据卷和镜像卷都要1个物理卷,最好是两块不同的硬盘,这样才能最好保证数据的可靠性。

把之前的LVM各类卷全部remove掉,重新创建一个卷组(VG):

image-20230625162001049

创建一个镜像逻辑卷的命令为:

lvcreate -L <逻辑卷大小> -m<镜像数列(冗余级别)> -n <镜像名> <物理卷路径1(数据卷和镜像卷)><物理卷路径2(数据卷和镜像卷)><物理卷路径3(日志卷)>

还是刚刚的LVM系统,继续创建一个镜像来测试:

lvcreate -L 5G -m1 -n home_mirror my_disk /dev/sdb /dev/sdc /dev/sdd

image-20230625162331645

现在已经都已经创建好了一个镜像逻辑卷。

再来把这快镜像逻辑卷格式化并挂载。

使用命令

mkfs.ext4 /dev/my_disk/mirror_home && mkdir -p /home/mirror_home && mount /dev/my_disk/mirror_home  /home/mirror_home

image-20230625162833223

已经成功的格式化,并挂载到/home/mirror_home 挂载点下。

测试镜像卷的恢复能力
创建测试

先复制一些文件内容到我们的镜像盘中

image-20230625163147982

模拟破坏

使用命令:

dd if=/dev/zero of=/dev/sdb count=10 bs=1M

image-20230625164010030

dd 是一个强大的命令行工具,可以用于复制文件、设备和数据流。在你给出的命令中,以下是各个选项的含义:会导致硬盘里的数据损坏。

if=/dev/zero:指定输入文件为 /dev/zero,该设备会产生无限个零字节。of=/dev/sdb:指定输出文件为 /dev/sdb`,该设备将被填充为零字节。count=10:设置要复制的块数为 10。bs=1M:设置每个块的大小为 1MB。

通过执行这个命令,dd 将从 /dev/zero 中读取 10 个 1MB 大小的块,并将其写入 /dev/sdb,从而在 /dev/sdb 上创建一个大小为 10MB 的文件。

image-20230625165526225

此时我们发现/dev/sdb 已经处于unknown,表示设备未被正确识别或无法访问。

因为我们做了镜像卷,所以还是可以访问该卷中的数据,

image-20230625171423705

现在我们把损坏的硬盘移除掉使用如下命令:

vgreduce --removemissing --force my_disk
--removemissing:指定要移除缺失物理卷的操作。--force:强制执行操作,即使在某些情况下可能会导致数据丢失。

当执行这个命令时,LVM 会从卷组 vg_test 中移除任何标记为缺失的物理卷。缺失的物理卷指的是在卷组中定义了但当前无法访问的物理卷。这可能是由于物理卷故障、设备不可用或其他原因导致的。

移除缺失的物理卷的目的是确保卷组的正常运行,并使其仅依赖于可用的物理卷。然而,需要谨慎操作并确认执行此操作不会导致数据丢失。因为 --force 选项会强制执行操作,即使存在数据丢失的风险。

image-20230625171634150

现在已经把数据损坏的硬盘移除掉了,

image-20230625171735057

恢复镜像

把刚移除的硬盘从新加入到物理卷、卷组中。

image-20230625172154593

接在来我们进行镜像盘恢复:

使用命令

lvconvert --repair /dev/my_disk/mirror_home

image-20230625175546202

这样我们就完成镜像的恢复。

总结

LVM是一款强大的磁盘管理工具,它无视了磁盘在硬件上的区分,能够完美的解决挂载空间大小扩充、缩减的需求,操作简单方便,并且提供了更高级别的存储管理,如卷组和逻辑卷的概念。卷组是物理卷的集合,而逻辑卷则是从卷组中划分出的逻辑存储单元。这种层次结构使得存储的管理更加灵活和可控。使用LVM,您可以随时根据需求扩展或缩减逻辑卷的大小,而无需对文件系统进行复杂的重新分区或复制数据的操作。这使得存储空间的管理变得更加简单和高效。

总之,LVM是一个功能强大且易于使用的磁盘管理工具,能够提供灵活的存储管理,动态调整存储大小,数据迁移能力以及快照和备份功能。因此,它在服务器和虚拟化环境中被广泛应用,为用户带来便捷和高效的存储管理体验。

点击全文阅读

郑重声明:

本站所有活动均为互联网所得,如有侵权请联系本站删除处理

我来说两句