文章目录
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)->格式化->挂载
物理磁盘:首先,您有物理磁盘,可以是硬盘、SSD或分区等。物理磁盘是存储数据的物理介质。
物理卷(Physical Volume,PV):将物理磁盘转换为LVM中的物理卷。这可以通过使用pvcreate
命令将物理磁盘标记为物理卷。
卷组(Volume Group,VG):将一个或多个物理卷组合成卷组。卷组是一个逻辑的单元,类似于一个存储池。使用vgcreate
命令创建卷组,并将物理卷添加到卷组中。
逻辑卷(Logical Volume,LV):从卷组中划分出逻辑卷。逻辑卷就像硬盘上的一个分区,用于存储数据。使用lvcreate
命令创建逻辑卷,并可以指定逻辑卷的大小和格式。
格式化:一旦逻辑卷创建完毕,可以使用文件系统指令(例如mkfs
命令)对逻辑卷进行格式化,以便能够在其中存储文件系统。
挂载:格式化后的逻辑卷可以被挂载到文件系统树中的指定目录上。挂载操作将逻辑卷与特定的目录关联起来,使得可以在该目录下访问和使用逻辑卷中的文件系统。
实操
一、在VMware虚拟机中添加新磁盘
在虚拟机设置中选择硬盘添加一块新硬盘
二、查看linux磁盘信息
使用命令lsblk,来查看系统上的磁盘分区信息。
lsblk
在此我们发现一下信息:
sda
是一个20GB的磁盘,有三个分区:
sda1
是一个300MB的分区,被挂载为/boot
,用于存储引导文件(启动分区)。sda2
是一个2GB的分区,被标记为[SWAP],用于交换空间(虚拟内存)。sda3
是一个17.7GB的分区,被挂载为根目录/
,用于存储操作系统和用户数据。 sdb
是另一个20GB的磁盘,没有分区信息。
sr0
是一个虚拟光驱
三、创建物理卷(PV)
在此我们需要把sdb
这块硬盘设置为物理卷(PV),使用以下命令:
pvcreate /dev/sdb
“pvcreate /dev/sdb” 是一个LVM命令,用于将指定的磁盘或分区
/dev/sdb
转换为LVM(Logical Volume Manager)中的物理卷(Physical Volume, PV)。
创建成功后,我们来输入pvdisplay 来查看我们新建的物理卷(PV)信息
输出中的信息显示了物理卷的一些重要属性:
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
此时我们使用vgdisplay,来查看验证是否创建成功
输出中的信息显示了卷组(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
这个命令的意思是在卷组
my_disk
中创建一个逻辑卷my_home
,大小为 4GB。以下是对该命令中的参数的解释:-L 4G
:使用-L
参数指定逻辑卷的大小,这里大小为 4GB。4G
表示使用GB
作为计量单位,也可以使用M
表示为MB
。my_home
:使用-n
参数指定逻辑卷的名称。在这个例子中,逻辑卷的名称是my_home
。my_disk
:指定要在其中创建逻辑卷的卷组的名称。在这个例子中,卷组的名称是my_disk
。当命令执行成功后,将在卷组
my_disk
中创建一个名为my_home
的逻辑卷,并分配 4GB 的空间给它。
此时使用命令lvdisplay,来查看验证逻辑卷是否创建成功
lvdisplay
根据输出的信息显示逻辑卷(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
注意:
在LVM选择文件系统的时候,最好选择ext4文件系统,在ext4文件系统下我们可以无损的对逻辑卷扩容或者缩容,
而XFS文件系统,只能对逻辑卷进行无损扩容,并不能进行无损缩容,如果一定要缩容,就要重新格式化逻辑卷,这就导致存储在逻辑卷中的数据丢失。
根据信息提示,现在已经成功的创建了一个ext4的文件系统,接下来就是最后一步,把它挂载到根目录下就可以正常使用了
七、挂载与卸载
现在我们需要给刚刚新建的逻辑分区创建一个挂载点,也就是新建一个文件夹。
挂载是在操作系统层面上进行的,它创建了一个链接,使得文件系统中的数据可以通过指定的挂载点在操作系统中访问。一旦文件系统被成功挂载,用户可以在挂载点下访问和操作文件。其实挂载就是一种链接,它是操作系统与存储设备的接口,我们通过挂载点去访问存储设备。
mkdir /home/my_home
挂载又分为永久挂载和临时挂载
永久挂载:
它是在系统启动时自动将文件系统挂载到指定的挂载点,它需要再系统配置文件中添加相应的条目,在linux系统重,通常是编辑
/etc/fstab
文件来配置永久挂载。特点是重启后不需要再进行重复挂载,既可使用。
临时挂载:
它是手动执行的挂载操作,需要手动去配置设备名称、挂载点等操作选项,它适合于暂时需要访问的文件系统例如:U盘、光驱等,重启后自动消除,需要重新挂载。通过mount
命令来实现挂载,通过umount
来卸载设备。
永久挂载设置
配置永久挂载,需要先用vim编辑\etc\fstab
文件
在此处添加需要挂载设备的相关信息:
该条目描述要挂载的文件系统。每个条目通常包含七个字段,以空格或制表符分隔。
<设备名称> <挂载点> <文件系统类型> <挂载选项> <文件系统检查选项> <备份间隔> <优先级>
<设备名称>
:要挂载的设备的名称或设备ID。例如,/dev/my_disk/my_home
或UUID:5Kms0D-Xui9-VsgW-nIWE-Pe1y-NRC5-vbV2qM
。<挂载点>
:指定要将设备挂载到的目录。例如,/mnt
。<文件系统类型>
:设备上的文件系统类型,例如ext4
。<挂载选项>
:选择设备的挂载选项,如rw
(读写)或ro
(只读)。<文件系统检查选项>
:指定设备的文件系统检查选项(如每次挂载时检查、跳过检查等)。<备份间隔>
:指定文件系统备份的间隔(如每日、每周等)。<优先级>
:指定文件系统挂载的优先级。
挂载名称我们可以通过lvdisplay来查询:
然后根据该信息进行文件的配置:
完成/etc/fstab
文件设置后,需要重启系统或者使用命令mount -a
来重新加载,使得更改生效。
使用完毕以后我们使用 lsblk命令来查看LVM分区是否成功挂载:
从以上输出的信息中发现,我们的操作都已经成功了 文件已经成功的挂载在/home/my_home目录下了。
临时挂载配置
设置完永久挂载,我们再来试试如何进行临时挂载。现在需要把刚刚设置的永久挂载取消,在/etc/fstab
文件中删除刚刚配置的条目。
现在已经完全取消了。我们再来尝试临时挂载,使用以下命令:
mount /dev/my_disk/my_home /home/my_home
临时挂载比永久挂载更简单,只需要一条命令就搞定了,挂载学会了,我们来看看如何卸载,使用如下命令:
umount /home/my_home
一条命令搞定。简单快捷
LVM的增删改查
LVM的查
其实LVM的查,我们在创建LVM的过程已经使用过的分别就是:pvdisplay、vgdisplay、lvdisplay 。它们分别可以查看物理卷、卷组、逻辑卷的相关信息.
除了以上命令,还可以使用vgs、lvs、df -h 来查看LVM的信息
同时还有三个命令可以用来扫描PV、VG、LV卷的状态信息
pvscan
vgscan
lvscan
LVM的改
在日后的运行中,随着内容不断增加,存储空间也逐渐减少,这时候就可以为逻辑卷增加存储空间了,因为LVM是动态分配存储空间的技术,我们可以随时为该逻辑卷增加或减少空间,这种操作不限于是同一块磁盘,也可以是其他磁盘,这也极大的方便我们随时更改空间。更改空间可以使用以下命令去操作:
lvresize -L <逻辑卷的大小> /dev/<卷组名称>/<逻辑卷名称>#LVM增、缩空间,这条命令可以指定空间大小lvextend -L <逻辑卷的大小> /dev/<卷组名称>/<逻辑卷名称>#LVM增空间lvreduce -L <逻辑卷的大小> /dev/<卷组名称>/<逻辑卷名称>#LVM缩减空间
使用lvresize
命令后,使用lsblk显示 空间已经变成10G了,但是df -h命令却还是显示为4G,这是因为lvresize
命令只调整了逻辑卷的大小,并没有直接调整文件系统内部的大小。您需要相应地调整文件系统的大小,以使其能够利用新的逻辑卷空间。
处理办法也很简单,使用下行命令即可恢复正常:
resize2fs -p /dev/<卷组名>/<逻辑卷名>或者在扩容lvresize 命令后加上-p参数等价于resize2fs -p, 它会自动调整文件系统的大小。
第一个方法
第二个方法:
相比之下,第二种方法更为简单实用。
LVM的删
要删除LVM逻辑卷,需要先卸载逻辑卷,然后使用才能以下命令来进行删除操作:
umount /<逻辑卷挂载点>lvremove /dev/<卷组名>/<逻辑卷名>
这样就可以成功将逻辑卷删除。
删除物理卷、和卷组的命令和其类似它们分别为:
pvremove /dev/<设备名> # 删除物理卷(PV)vgremove /dev/<卷组名> # 删除卷组(VG)
在删除物理卷(PV)前,需要将分配到卷组(VG)中的容量先返回
使用命令:
vgreduce my_disk /dev/sdc
我们在查看vg卷中,空间是否已经返还。
从以上信息中,我们可以发现空间已经返还给物理卷,现在我们可以使用pvremove删除物理卷
根据以上显示的信息,我们可以确定已经把sdc从LVM中删除了,sdc又处于最原始的状态。
LVM的增
为什么要把增放到最后讲,因为在之前的操作中,我们已经对LVM的增基本全部都操作了一遍,创建一个LVM需要有三个步骤
它们分别为:
创建物理卷(PV)
物理卷就相当于是我们的存储池,它们可以是硬盘、分区或raid设备。
创建物理卷的命令为:
pvcreate /dev/<设备名>
创建卷组(VG)
卷组就是由一个或多个物理卷组成的逻辑容器,它们组成一个集合,用来管理和分配存储池中的总体存储容量,并提供逻辑划分
创建卷组的命令为:
vgcreate <卷组名> /dev/<设备名>
创建逻辑卷(LV)
逻辑卷就是从卷组中分配出来的逻辑空间,它可以看做为物理卷和文件系统的中间层,逻辑卷它是用于实际存储的逻辑分区
创建逻辑卷命令为:
lvcreate -L <空间大小> /dev/<卷组名>/<逻辑卷名>
LVM 新增硬盘如何扩充、缩减
思路
新添加的硬盘需要扩充到之前的逻辑卷中,需要把新硬盘线创建一个物理卷,然后加入逻辑卷相应的卷组当中,在使用逻辑卷改命令去扩充空间
一、新建物理卷
二、加入卷组
这一步命令有所不同,它的命令为:
vgextend my_disk /dev/sdc
三、给逻辑卷扩充空间
lvextend -L -r +10G /dev/my_disk/my_home
这样我们就成功的为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 则是原始逻辑卷的路径,表示创建这个快照是为它而服务。
在使用lvs查询的时候,已经创建成功了
创建的快照,不需要格式化也可以挂载在根目录上,因为它只是源逻辑卷的元数据的副本,所以不需要重新分配空间。快照卷将记录源逻辑卷在快照创建之前的数据状态,因此其文件系统和数据布局与源逻辑卷是相同的
原始逻辑卷文件内容
快照逻辑卷文件内容
快照就这样创建成功了
二、快照的恢复使用
增删改查操作
快照逻辑卷和普通的逻辑卷的增删改查方式基本都一样,可以参考以上LVM的增删改查的命令去操作。
快照的使用
如果只是单文件需要恢复,可以直接去快照挂载的路径去copy文件到原始文件系统当中,可以一般文件的copy方法一致。
如果原始文件系统出现逻辑错误,或者大量内容被误操作,我们可以通过lvconvert -merge命令来执行合并快照操作。
lvconvert -merge <快照路径>
我先模拟一下数据被误删的情况,在my_home中随意删除一些数据内容,然后在去合并快照,看看是否能恢复文件
在合并前,需要把原始逻辑卷先卸载,是为了确保在合并过程中数据的一致性和完整性
umount /home/my_home
my_home原始逻辑卷已经卸载
lvconvert -merge /dev/my_disk/home_snapshort
经过操作后我们已经把原始卷和快照逻辑卷合并了。在来挂载原始逻辑卷是否恢复
现已经恢复了之前删掉的数据。
快照在合并以后,之前的快照就会消失,留下来的就是一个完整原始逻辑卷,如果有需要可以在创建一个快照
LVM镜像
简介
镜像(Mirroring)是一种提供数据冗余和容错的机制,通过在多个物理存储设备上创建逻辑卷的副本。镜像创建了逻辑卷的实时拷贝,确保数据的高可用性和可靠性。当一个物理设备发生故障时,可以使用镜像卷继续访问数据。镜像卷的更新操作会同时更新镜像的副本。
虽然镜像和快照都涉及到逻辑卷的复制,但它们的目的和用途是不同的。镜像旨在提供冗余和容错,以保证数据的可用性和可靠性。而快照则是为了保护和备份数据,并提供可以随时回滚到历史数据状态的能力。
实操
创建一个带镜像的逻辑卷,必须是在创建逻辑卷之前就规划好,如果是想在后期再添加逻辑卷基本是不可能的。
在使用LVM镜像逻辑卷时,我们要先了解以下几个概念
镜像逻辑卷(Mirrored Logical Volume)使用了数据卷(Data Volume)来存储实际的数据。
数据卷是 LVM 逻辑卷中实际用于存储文件系统、用户数据和其他数据的部分。当通过 LVM 创建一个逻辑卷时,数据卷将被创建并分配存储空间,这些存储空间用于存储实际的数据。
而镜像逻辑卷是为了提供镜像和冗余功能而创建的。镜像逻辑卷包含了一个原始逻辑卷和一个或多个镜像卷(也称为镜像副本)。镜像卷是一种特殊的数据卷,用于存储与原始逻辑卷相同的数据副本。
当对镜像逻辑卷进行写操作时,数据将被同时写入到原始逻辑卷和镜像卷中。这样,即使其中一个卷发生故障,数据仍然可从其他正常的卷中恢复和访问,从而提供了数据的冗余性和可用性。
在 LVM 的镜像逻辑卷中,数据卷指的是用于存储实际数据的卷,它可以是原始逻辑卷或镜像卷。数据卷在镜像逻辑卷中承担着存储和保护数据的重要角色。
日志卷:
日志卷(log volume)是用于记录逻辑卷(logical volume)上的数据变更操作的一种特殊卷。它用于提供数据的一致性和完整性,以及恢复逻辑卷数据状态。
日志卷主要用于 LVM 的写操作,当有写操作发生时,相应的修改会首先被记录在日志卷中。通过记录日志操作,可以确保在意外故障发生时,可以恢复逻辑卷的数据状态,并保证数据的一致性。这种机制被称为写日志(write logging)。
日志卷的创建是可选的,不是必需的,它提供了额外的数据保护和可靠性。在创建逻辑卷时,可以选择指定日志卷。如果没有指定日志卷,写操作将会在不使用日志的情况下直接将数据写入逻辑卷中。
日志卷通常与逻辑卷位于同一卷组中,但也可以将日志卷和逻辑卷放置到不同的卷组中,以实现更灵活的配置。
在创建镜像逻辑卷前,要保存物理卷(PV)在2个以上,这是为了提供数据冗余和容错性,以确保数据的可用性和可靠性。因为数据卷和镜像卷都要1个物理卷,最好是两块不同的硬盘,这样才能最好保证数据的可靠性。
把之前的LVM各类卷全部remove掉,重新创建一个卷组(VG):
创建一个镜像逻辑卷的命令为:
lvcreate -L <逻辑卷大小> -m<镜像数列(冗余级别)> -n <镜像名> <物理卷路径1(数据卷和镜像卷)><物理卷路径2(数据卷和镜像卷)><物理卷路径3(日志卷)>
还是刚刚的LVM系统,继续创建一个镜像来测试:
lvcreate -L 5G -m1 -n home_mirror my_disk /dev/sdb /dev/sdc /dev/sdd
现在已经都已经创建好了一个镜像逻辑卷。
再来把这快镜像逻辑卷格式化并挂载。
使用命令
mkfs.ext4 /dev/my_disk/mirror_home && mkdir -p /home/mirror_home && mount /dev/my_disk/mirror_home /home/mirror_home
已经成功的格式化,并挂载到/home/mirror_home 挂载点下。
测试镜像卷的恢复能力
创建测试
先复制一些文件内容到我们的镜像盘中
模拟破坏
使用命令:
dd if=/dev/zero of=/dev/sdb count=10 bs=1M
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 的文件。
此时我们发现/dev/sdb 已经处于unknown,表示设备未被正确识别或无法访问。
因为我们做了镜像卷,所以还是可以访问该卷中的数据,
现在我们把损坏的硬盘移除掉使用如下命令:
vgreduce --removemissing --force my_disk
--removemissing
:指定要移除缺失物理卷的操作。--force
:强制执行操作,即使在某些情况下可能会导致数据丢失。当执行这个命令时,LVM 会从卷组
vg_test
中移除任何标记为缺失的物理卷。缺失的物理卷指的是在卷组中定义了但当前无法访问的物理卷。这可能是由于物理卷故障、设备不可用或其他原因导致的。移除缺失的物理卷的目的是确保卷组的正常运行,并使其仅依赖于可用的物理卷。然而,需要谨慎操作并确认执行此操作不会导致数据丢失。因为
--force
选项会强制执行操作,即使存在数据丢失的风险。
现在已经把数据损坏的硬盘移除掉了,
恢复镜像
把刚移除的硬盘从新加入到物理卷、卷组中。
接在来我们进行镜像盘恢复:
使用命令
lvconvert --repair /dev/my_disk/mirror_home
这样我们就完成镜像的恢复。
总结
LVM是一款强大的磁盘管理工具,它无视了磁盘在硬件上的区分,能够完美的解决挂载空间大小扩充、缩减的需求,操作简单方便,并且提供了更高级别的存储管理,如卷组和逻辑卷的概念。卷组是物理卷的集合,而逻辑卷则是从卷组中划分出的逻辑存储单元。这种层次结构使得存储的管理更加灵活和可控。使用LVM,您可以随时根据需求扩展或缩减逻辑卷的大小,而无需对文件系统进行复杂的重新分区或复制数据的操作。这使得存储空间的管理变得更加简单和高效。
总之,LVM是一个功能强大且易于使用的磁盘管理工具,能够提供灵活的存储管理,动态调整存储大小,数据迁移能力以及快照和备份功能。因此,它在服务器和虚拟化环境中被广泛应用,为用户带来便捷和高效的存储管理体验。