文章目录
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的流程
-
物理卷(Physical Volume,PV):将物理磁盘转换为LVM中的物理卷。这可以通过使用
pvcreate
命令将物理磁盘标记为物理卷。 -
卷组(Volume Group,VG):将一个或多个物理卷组合成卷组。卷组是一个逻辑的单元,类似于一个存储池。使用
vgcreate
命令创建卷组,并将物理卷添加到卷组中。 -
逻辑卷(Logical Volume,LV):从卷组中划分出逻辑卷。逻辑卷就像硬盘上的一个分区,用于存储数据。使用
lvcreate
命令创建逻辑卷,并可以指定逻辑卷的大小和格式。 -
挂载:格式化后的逻辑卷可以被挂载到文件系统树中的指定目录上。挂载操作将逻辑卷与特定的目录关联起来,使得可以在该目录下访问和使用逻辑卷中的文件系统。
实操
一、在VMware虚拟机中添加新磁盘
二、查看linux磁盘信息
lsblk
-
sda
是一个20GB的磁盘,有三个分区:
三、创建物理卷(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
- 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。以下是对该命令中的参数的解释:
此时使用命令lvdisplay,来查看验证逻辑卷是否创建成功
lvdisplay
- 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
注意:
根据信息提示,现在已经成功的创建了一个ext4的文件系统,接下来就是最后一步,把它挂载到根目录下就可以正常使用了
七、挂载与卸载
现在我们需要给刚刚新建的逻辑分区创建一个挂载点,也就是新建一个文件夹。
挂载是在操作系统层面上进行的,它创建了一个链接,使得文件系统中的数据可以通过指定的挂载点在操作系统中访问。一旦文件系统被成功挂载,用户可以在挂载点下访问和操作文件。其实挂载就是一种链接,它是操作系统与存储设备的接口,我们通过挂载点去访问存储设备。
mkdir /home/my_home
挂载又分为永久挂载和临时挂载
永久挂载:
临时挂载:
永久挂载设置
在此处添加需要挂载设备的相关信息:
该条目描述要挂载的文件系统。每个条目通常包含七个字段,以空格或制表符分隔。
<设备名称> <挂载点> <文件系统类型> <挂载选项> <文件系统检查选项> <备份间隔> <优先级>
完成/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的信息
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
从以上信息中,我们可以发现空间已经返还给物理卷,现在我们可以使用pvremove删除物理卷
根据以上显示的信息,我们可以确定已经把sdc从LVM中删除了,sdc又处于最原始的状态。
LVM的增
为什么要把增放到最后讲,因为在之前的操作中,我们已经对LVM的增基本全部都操作了一遍,创建一个LVM需要有三个步骤
它们分别为:
-
创建物理卷(PV)
-
创建卷组(VG)
-
创建逻辑卷(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快照实操
一、创建快照逻辑卷
lvcreate -L 10G --snapshort -name home_snapshot my_disk/my_home
my_home_snapshot是快照卷的名称,而后门的/dev/my_disk/my_home 则是原始逻辑卷的路径,表示创建这个快照是为它而服务。
创建的快照,不需要格式化也可以挂载在根目录上,因为它只是源逻辑卷的元数据的副本,所以不需要重新分配空间。快照卷将记录源逻辑卷在快照创建之前的数据状态,因此其文件系统和数据布局与源逻辑卷是相同的
原始逻辑卷文件内容
快照逻辑卷文件内容
快照就这样创建成功了
二、快照的恢复使用
增删改查操作
快照逻辑卷和普通的逻辑卷的增删改查方式基本都一样,可以参考以上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
当执行这个命令时,LVM 会从卷组
vg_test
中移除任何标记为缺失的物理卷。缺失的物理卷指的是在卷组中定义了但当前无法访问的物理卷。这可能是由于物理卷故障、设备不可用或其他原因导致的。移除缺失的物理卷的目的是确保卷组的正常运行,并使其仅依赖于可用的物理卷。然而,需要谨慎操作并确认执行此操作不会导致数据丢失。因为
--force
选项会强制执行操作,即使存在数据丢失的风险。
现在已经把数据损坏的硬盘移除掉了,
恢复镜像
把刚移除的硬盘从新加入到物理卷、卷组中。
接在来我们进行镜像盘恢复:
使用命令
lvconvert --repair /dev/my_disk/mirror_home
这样我们就完成镜像的恢复。
总结
LVM是一款强大的磁盘管理工具,它无视了磁盘在硬件上的区分,能够完美的解决挂载空间大小扩充、缩减的需求,操作简单方便,并且提供了更高级别的存储管理,如卷组和逻辑卷的概念。卷组是物理卷的集合,而逻辑卷则是从卷组中划分出的逻辑存储单元。这种层次结构使得存储的管理更加灵活和可控。使用LVM,您可以随时根据需求扩展或缩减逻辑卷的大小,而无需对文件系统进行复杂的重新分区或复制数据的操作。这使得存储空间的管理变得更加简单和高效。
总之,LVM是一个功能强大且易于使用的磁盘管理工具,能够提供灵活的存储管理,动态调整存储大小,数据迁移能力以及快照和备份功能。因此,它在服务器和虚拟化环境中被广泛应用,为用户带来便捷和高效的存储管理体验。
原文地址:https://blog.csdn.net/weixin_44369049/article/details/131404958
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_21580.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!