Linux中的逻辑卷LVM管理完整初学者指南
这是 Linux 中 LVM(逻辑卷管理)的完整初学者指南。
在本教程中,您将了解 LVM 的概念、它的组件以及为什么要使用它。
我不会仅限于理论上的解释,我还将展示在 Linux 中创建和管理 LVM 的动手示例。
简而言之,我将为您提供在现实世界中开始使用 LVM 所需的所有必要信息。 Linux 中的 LVM 是什么?
LVM 代表逻辑卷管理。这是管理存储系统的另一种方法,而不是传统的基于分区的方法。在 LVM 中,您无需创建分区,而是创建逻辑卷,然后您可以像挂载磁盘分区一样轻松地将这些卷挂载到文件系统中。 LVM 的组件
LVM 包含三个主要组件: 物理卷 卷组 逻辑卷
尽管该列表由三个部分组成,但其中只有两个是分区系统的直接对应部分,下表记录了这一点。 磁盘分区系统 LVM 分区 逻辑卷 磁盘 卷组
物理卷没有任何直接对应物,但我很快就会谈到这一点。 为什么要使用 LVM?
LVM 的主要优点是调整卷或卷组的大小非常容易。它抽象出了所有丑陋的部分(分区、原始磁盘),并为我们留下了一个中央存储池可供使用。
如果您曾经经历过分区大小调整的恐惧,那么您会想要使用 LVM。 动手实验室准备
这篇文章不仅仅是理论。在此过程中,我将展示实际的命令示例,学习某些东西的最佳方法是亲身实践。为此,我建议您使用虚拟机。
为了帮助你,我已经准备了一个简单的 Vagrantfile,你可以用它来用 VirtualBox 启动一个非常轻量级的虚拟机。此虚拟机具有三个额外的磁盘,您和我可以将它们用于下面的命令示例。
在文件系统的某处创建一个目录,并将以下内容保存在该文件中,名为Vagrantfile. Vagrant.configure "2" do |config| config.vm.box = "ubuntu/focal64" config.vm.hostname = "lvm" 3.times {|i| config.vm.disk :disk, size: "5GB", name: "drive-#{i}"} config.vm.provider :virtualbox do |machine| machine.memory = 1024 machine.cpus = 1 machine.customize ["modifyvm", :id, "--cpuexecutioncap", "50"] end end # vi: set ft=ruby
或者,如果您愿意,可以使用wget或curl从我的 gist 下载文件。 wget https://gist.githubusercontent.com/debdutdeb/98ed1b6aef36885d07ce8247188dfd5e/raw/524259da5dfa2d8750883d01c8159829729e224d/Vagrantfile
确保你安装了Vagrant和VirtualBox。
一旦 Vagrantfile 就位,将环境变量设置VAGRANT_EXPERIMENTAL为disks. export VAGRANT_EXPERIMENTAL=disks
最后,使用以下命令启动虚拟机(确保您与 Vagrantfile 位于同一目录中): vagrant up
机器运行后,您可以使用vagrant sshSSH 连接到它并运行本文中的示例命令。
完成后请记住vagrant destroy从与 Vagrantfile 相同的目录运行。 安装 LVM
在您可以使用任何命令之前,您需要安装该lvm2软件包。这应该预装在大多数现代发行版中,尤其是基于 Ubuntu 的发行版中。但是,在继续之前,我不得不提到这一点。要安装lvm2,请查阅您的发行版的文档。 LVM 实践
对于这个动手演练,我构建了一个具有 40G 根存储(不重要)和三个大小为 5G 的外部磁盘的虚拟机。这些磁盘的大小是任意的。 vagrant@lvm:~$ lsblk -o name,size,fstype NAME SIZE FSTYPE loop0 55.5M squashfs loop1 32.3M squashfs loop2 70.4M squashfs sda 40G sda1 40G ext4 sdb 10M iso9660 sdc 5G sdd 5G sde 5G
如您所见,我将使用的设备sdc是sdd和sde。
还记得我告诉过你 LVM 包含三个主要组件吗? 物理卷 卷组 逻辑卷
是时候一一见他们了。 1. 物理卷
关于 LVM,您首先需要了解的是物理卷。物理卷是用于实现抽象即逻辑卷的原材料或构建块。简单来说,物理卷是 LVM 系统的逻辑单元。
物理卷可以是任何东西,原始磁盘或磁盘分区。创建和初始化物理卷是一回事。两者都意味着您只是在为进一步的操作准备构建块(即分区、磁盘)。这将在瞬间变得更加清晰。
实用程序:pv所有管理物理卷的实用程序都以P hysical Volume的字母开头。例如pvcreate, pvchange,pvs等pvdisplay。
此框之后提到的任何内容都是破坏性的,除非您使用的是虚拟环境或云上的服务器,其中没有存储重要数据或无法意外访问,我建议您立即停止。 创建物理卷
您可以使用原始未分区磁盘或分区本身来创建物理卷。
正如我之前提到的,我的虚拟机连接了三个外部驱动器,让我们从/dev/sdc.
我们使用pvcreate命令来创建物理卷。只需将设备名称传递给它即可。 sudo pvcreate /dev/sdc
你应该看到这样的东西:- vagrant@lvm:~$ sudo pvcreate /dev/sdc Physical volume "/dev/sdc" successfully created.
接下来我将/dev/sdd分成相等的部分。使用任何工具cfdisk,,,等parted,fdisk有很多工具可以完成这项工作。 vagrant@lvm:~$ lsblk -o name,size,fstype | grep sdd sdd 5G sdd1 2.5G sdd2 2.5G
您现在可以在一个步骤中从这两个分区中快速创建另外两个物理卷,同时将这两个设备传递给pvcreate。 sudo pvcreate /dev/sdd1 /dev/sdd2
看一看:- vagrant@lvm:~$ sudo pvcreate /dev/sdd1 /dev/sdd2 Physical volume "/dev/sdd1" successfully created. Physical volume "/dev/sdd2" successfully created. 列出可用的物理卷
您可以使用三个命令来获取可用物理卷的列表pvscan,pvs和pvdisplay。您通常不需要向这些命令传递任何内容。
pvscan:- vagrant@lvm:~$ sudo pvscan PV /dev/sdc lvm2 [5.00 GiB] PV /dev/sdd1 lvm2 [2.50 GiB] PV /dev/sdd2 lvm2 [<2.50 GiB] Total: 3 [<10.00 GiB] / in use: 0 [0 ] / in no VG: 3 [<10.00 GiB]
pvs:- vagrant@lvm:~$ sudo pvs PV VG Fmt Attr PSize PFree /dev/sdc lvm2 --- 5.00g 5.00g /dev/sdd1 lvm2 --- 2.50g 2.50g /dev/sdd2 lvm2 --- <2.50g <2.50g
pvdisplay:- vagrant@lvm:~$ sudo pvdisplay "/dev/sdc" is a new physical volume of "5.00 GiB" --- NEW Physical volume --- PV Name /dev/sdc VG Name PV Size 5.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID SzSkdD-xKYa-4y7P-teyU-481p-uiQ8-qieMJJ "/dev/sdd1" is a new physical volume of "2.50 GiB" --- NEW Physical volume --- PV Name /dev/sdd1 VG Name PV Size 2.50 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 553Iy4-JJ21-LfIw-udtO-j9Cd-7gFS-iXXFVS "/dev/sdd2" is a new physical volume of "<2.50 GiB" --- NEW Physical volume --- PV Name /dev/sdd2 VG Name PV Size <2.50 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID bf7ghn-QkPm-EUdp-GdyW-shMG-5sMn-VhNtYB
正如您所看到的,除了列出物理卷之外,这些命令还为您提供了大量有关这些卷的其他信息。 删除物理卷
pvremove您可以使用该命令删除物理卷。就像pvcreate,只需将设备(初始化为物理卷)传递给pvremove命令。
为了演示,我将从/dev/sdd2列表中删除。 sudo pvremove /dev/sdd2
输出应与此相同:- vagrant@lvm:~$ sudo pvremove /dev/sdd2 Labels on physical volume "/dev/sdd2" successfully wiped.
现在列出物理卷sudo pvs vagrant@lvm:~$ sudo pvs PV VG Fmt Attr PSize PFree /dev/sdc lvm2 --- 5.00g 5.00g /dev/sdd1 lvm2 --- 2.50g 2.50g
/dev/sdd2不再在这里。 2. 卷组
卷组是物理卷的集合。它是 LVM 中的下一个抽象级别。卷组是结合了多个原始存储设备的存储容量的存储池。
实用程序:所有卷组实用程序名称都以 开头vg,代表卷组,例如、等。vgcreatevgsvgrename 创建卷组
卷组是使用该vgcreate命令创建的。的第一个参数vgcreate是您要为该卷组指定的名称,其余的是要支持存储池的物理卷的列表。 sudo vgcreate lvm_tutorial /dev/sdc /dev/sdd1
例子:- vagrant@lvm:~$ sudo vgcreate lvm_tutorial /dev/sdc /dev/sdd1 Volume group "lvm_tutorial" successfully created 列出卷组
列出卷组类似于列出物理卷,您可以使用具有不同详细级别的不同命令vgdisplay、vgscan和vgs。
我个人更喜欢vgs命令,sudo vgs vagrant@lvm:~$ sudo vgs VG #PV #LV #SN Attr VSize VFree lvm_tutorial 2 0 0 wz--n- 7.49g 7.49g vgscan:- vagrant@lvm:~$ sudo vgscan Found volume group "lvm_tutorial" using metadata type lvm2 vgdisplay:- vagrant@lvm:~$ sudo vgdisplay --- Volume group --- VG Name lvm_tutorial System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 7.49 GiB PE Size 4.00 MiB Total PE 1918 Alloc PE / Size 0 / 0 Free PE / Size 1918 / 7.49 GiB VG UUID LYVE9P-vY0G-OAW6-an8q-yfBx-rrB1-YU61m1 列出附加到卷组的物理卷
您可以使用以下命令列出连接到特定卷组的所有物理卷:- sudo pvdisplay -S vgname= -C -o pv_name
例子:- vagrant@lvm:~$ sudo pvdisplay -S vgname=lvm_tutorial -C -o pv_name PV /dev/sdc /dev/sdd1
您还可以获得物理卷的计数。 sudo vgdisplay -S vgname= -C -o pv_count
例子:- vagrant@lvm:~$ sudo vgdisplay -S vgname=lvm_tutorial -C -o pv_count #PV 3 扩展卷组
扩展卷组意味着向卷组添加额外的物理卷。为此,vgextend使用该命令。语法很简单:- vgextend ....
让我们将lvm_tutorial音量扩大/dev/sdd2. sudo vgextend lvm_tutorial /dev/sdd2
专注于输出:- vagrant@lvm:~$ sudo vgextend lvm_tutorial /dev/sdd2 Physical volume "/dev/sdd2" successfully created. Volume group "lvm_tutorial" successfully extended
在物理卷部分,我们最终将其/dev/sdd2作为物理卷删除,但必须将分区或原始磁盘初始化为物理卷,否则 LVM 将无法将其作为卷组的一部分进行管理。所以在将它添加到卷组之前vgextend做好准备。/dev/sdd2
现在列出附加到此卷组的物理卷,以确保安全。 sudo pvdisplay -S vgname=lvm_tutorial -C -o pv_name
输出:- vagrant@lvm:~$ sudo pvdisplay -S vgname=lvm_tutorial -C -o pv_name PV /dev/sdc /dev/sdd1 /dev/sdd2
/dev/sdd2现在按预期在列表中。 减少卷组
就像扩展一个卷组意味着添加另一个物理卷一样,减少它意味着删除一个或多个物理卷。
我们使用vgreduce命令来执行此操作。一般语法如下:- vgreduce ....
让我们删除物理卷/dev/sdc和/dev/sdd1. sudo vgreduce lvm_tutorial /dev/sdc /dev/sdd1
例子:- vagrant@lvm:~$ sudo vgreduce lvm_tutorial /dev/sdc /dev/sdd1 Removed "/dev/sdc" from volume group "lvm_tutorial" Removed "/dev/sdd1" from volume group "lvm_tutorial"
如果卷组有任何活动的逻辑卷,您将无法像这样减少它。
再次列出物理卷。 sudo pvdisplay -S vgname=lvm_tutorial -C -o pv_name
输出:- vagrant@lvm:~$ sudo pvdisplay -S vgname=lvm_tutorial -C -o pv_name PV /dev/sdd2
那两个物理卷不见了。
现在,为了本文的其余部分,将这两个物理卷添加回来。 sudo vgextend lvm_tutorial /dev/sdc /dev/sdd1 删除卷组
vgremove您可以使用该命令删除逻辑卷。 sudo vgremove lvm_tutorial
现在不要运行此命令,否则您必须重新创建卷组。如果您想对其进行测试,请在本文的最后运行它。 3. 逻辑卷
这是您将主要使用的内容。逻辑卷就像一个分区,但它不是位于原始磁盘之上,而是位于卷组之上。你可以, 使用您想要的任何文件系统格式化逻辑卷。 将其挂载到您想要的文件系统中的任何位置。
在本节中,您将学习, 如何创建逻辑卷。 对逻辑卷的常用操作。 调整逻辑卷的大小。 删除逻辑卷。
实用程序 :所有卷组实用程序名称都以 开头lv,代表逻辑卷。例如, ,等等, ,等等lvcreatelvslvreducevgcreatevgsvgrename创建逻辑卷
lvcreate使用该命令创建逻辑卷。常用的语法如下所示, sudo lvcreate -L -n -L选项用于新逻辑卷的大小,您可以使用任何以"GB"、"MB"或"KB"结尾的整数。例如"1GB"。 -n选项用于命名此逻辑卷。 需要将这个逻辑卷所属的卷组的名称传递给它,因此,在为逻辑卷提供大小时,请确保卷组有可用空间。
在虚拟机上运行以下命令: sudo lvcreate -L 5GB -n lv1 lvm_tutorial
示例输出: vagrant@lvm:~$ sudo lvcreate -L 5GB -n lv1 lvm_tutorial Logical volume "lv1" created. 对逻辑卷的常用操作
正如我之前所说,您可以将文件系统放在逻辑卷上,也可以将其挂载到文件系统的任何位置。
/dev// 创建后,您可以在路径中找到逻辑卷。例如,在我们的例子中,音量将在/dev/lvm_tutorial/lv1 .vagrant@lvm:~$ ls -l /dev/lvm_tutorial/lv1 lrwxrwxrwx 1 root root 7 May 17 02:09 /dev/lvm_tutorial/lv1 -> ../dm-0
现在您可以像使用任何分区一样使用它。用ext4格式化, sudo mkfs.ext4 /dev/lvm_tutorial/lv1
将它安装在当前目录结构中的某个位置,例如/mnt, sudo mount -t ext4 /dev/lvm_tutorial/lv1 /mnt 调整逻辑卷的大小
您可以使用命令扩展逻辑卷lvextend并使用命令减小其大小lvreduce。或者,您可以使用单个命令lvresize来完成这两项任务。
首先让我们看看卷组中是否还有剩余空间。 sudo vgs -S vgname=lvm_tutorial -o vg_free
输出:- vagrant@lvm:~$ sudo vgs -S vgname=lvm_tutorial -o vg_free VFree <4.99g
根据输出,我还有一些空间,所以让我们将卷大小增加 2GB。
请记住,逻辑卷仍安装在/mnt. vagrant@lvm:~$ mount | grep "/mnt" /dev/mapper/lvm_tutorial-lv1 on /mnt type ext4 (rw,relatime)
使用以下命令调整卷大小: sudo lvresize -L +2GB lvm_tutorial/lv1
一般语法是这样的: lvresize -L [+|-][Size] /
后面的符号 + 或 --L取决于您是尝试增加音量还是分别减小音量。
卷大小增加后,文件系统也必须调整大小。对于 ext4,要使用的命令是resize2fs. sudo resize2fs /dev/lvm_tutorial/lv1
输出: vagrant@lvm:~$ sudo resize2fs /dev/lvm_tutorial/lv1 resize2fs 1.45.5 (07-Jan-2020) Filesystem at /dev/lvm_tutorial/lv1 is mounted on /mnt; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 1 The filesystem on /dev/lvm_tutorial/lv1 is now 1835008 (4k) blocks long.
并非所有文件系统都支持热调整大小,Ext4 和 XFS 是受支持的文件系统之一。我建议你坚持这些。
减少逻辑卷是一项稍微复杂的任务,我不会在本文中讨论这个问题。我将把这个卷的大小减少 1GB。 删除逻辑卷
lvremove您可以使用该命令删除逻辑卷。命令语法如下:- lvremove /
在虚拟机上运行此命令:- sudo lvremove lvm_tutorial/lv1
输出:- vagrant@lvm:~$ sudo lvremove lvm_tutorial/lv1 Do you really want to remove and DISCARD active logical volume lvm_tutorial/lv1? [y/n]: y Logical volume "lv1" successfully removed
在逻辑卷、物理卷和卷组上还有许多其他操作可行,但不可能将所有这些都写到一篇文章中。
我/dev/sde在虚拟机中为您多留了一个磁盘,使用它,练习本文中的一些命令,创建一个新的卷组,扩展一个现有的卷组,只是练习。
我希望这篇文章对你有所帮助,如果你想在以后看到更多关于这方面的内容,请在下面的评论部分告诉我。
实话实说美帝火星着陆酷炫似飞碟,地外行星首次运行Linux北京时间2月19日凌晨4时55分,执行美火星2020任务的毅力号(Perseverancerover)火星探测器经过6个多月的飞行,缓慢降落到火星上一个古老的湖床表面,正式开启探测
美拉日韩半导体结盟,突出重围只此一手28nm制程国产化在日益深化的中美科技博弈中,半导体似乎成为了美方最为依仗的天险。科技发展到今天,半导体已经是最具战略意义的产业技术和物资。尤其是最近两年,贸易角逐科技逆全球化疫情下的互联网生态汽车
小米们的骁龙888盛宴,是我们需要正视的后麒麟时代的5G危机移动CPU跨入5nm制程时代,5G的普及进入关键时期,消费类电子得以迅猛发展。对于移动用户来说,5G可能只是一种速率更快的通信方式,但自2019年起,5G技术商用背后却上演着一场决
华为中芯的蝴蝶效应,传统车企的迟到觉悟,台湾半导体的举足轻重编者按芯片制造已在当今世界经济体系中,占据举足轻重的地位,半导体领域的蝴蝶连锁效应,可以影响全球供应链的格局,这是芯片代工企业拥有崇高地位的时代。2021年伊始,汽车芯片缺货开始影
LED显示屏短路检测方法有哪些判断LED显示屏出现问题的原因必须先主后次方式的处理,先处理明显的严重的,小问题放在后边处理。LED显示屏短路应为最高优先级。1LED显示屏压降检测法,将万用表调到二极管压降检测档
led显示屏的优势以及使用时的注意事项根据LED显示屏的优势,LED显示屏的选择如下1点间距应尽可能小点间距是指全彩LED显示屏上相邻像素的中心点之间的距离。点与点之间的距离越小,单位面积像素越多,分辨率越高,拍摄距离
液晶广告机高性价比体现在哪些方面?当前,液晶广告机凭借时尚轻巧的外观智能显示的服务终端,像移动手机那样普遍流行于整个社会发展的形态当中。在这个庞大的广告机应用市场里,液晶广告机的价格也是极易戳中用户的内在需求,成为
液晶拼接屏的恰当的安装方式如何选择液晶拼接屏有别于家庭装的电视机,液晶拼接屏主要是商业,具备很显著和丰富多彩的作用,能够24小时持续应用,运用场所也十分普遍。如今液晶拼接屏早已经常可以看到。可是因为液晶拼接屏的接缝
直插led显示屏和表贴led显示屏有哪些区别近年来,LED显示屏发展迅猛,我国早已成为世界LED显示屏最大生产制造基地。LED显示屏厂家合利来也凭借着强大的现货生产能力和极具性价比的价格优势一直列于行业前头!今天就客户常问的
55英寸液晶拼接屏使用需要注意哪些细节?保持干燥的使用环境。55英寸液晶拼接内部设计非常精密,如果使用环境潮湿会容易氧化腐蚀造成短路等现象,给使用者带来巨大经济损失。因此,要尽量保持55英寸液晶拼接屏干燥的使用环境。如果
液晶拼接屏在技术上的拼接缝隙问题是否已解决液晶拼接屏的市场应用基于多年的数字拼接墙显示系统的研发设计与实际应用。液晶拼接屏已达到超窄边框,拼接缝隙低至3。5mm,在不断的技术应用与改进中,融入高性能的网络拼接处理模块设计边