当前位置: 首页 > Linux

LVM逻辑卷管理精讲(附图文)!

时间:2023-04-06 20:06:23 Linux

1.1。前言每一个Linux用户在安装Linux的时候都会遇到这样一个困境:在对系统进行分区的时候如何准确的评估和分配每个硬盘分区的容量,因为系统管理员不仅要考虑当前分区所需要的容量,而且还应该预见分区将来可能需要的容量的最大值。因为如果估计不准确,当某个分区不够用时,管理员甚至可能要备份整个系统,清空硬盘,重新分区硬盘,然后再将数据恢复到新的分区。虽然有很多动态调整磁盘的工具,比如PartationMagic等,但并不能彻底解决问题,因为一个分区可能会再次耗尽;另一方面需要重启系统才能实现,对于很多关键服务器来说,宕机是不可接受的,而对于添加新硬盘,想要一个可以跨越多个硬盘的文件系统,一个分区大小调整程序是解决不了的问题。因此,完美的解决方案应该是在零停机的前提下自由调整文件系统的大小,可以轻松实现文件系统跨越不同的磁盘和分区。幸运的是,Linux提供的逻辑卷管理器(LVM,LogicalVolumeManager)机制是一个完美的解决方案。LVM是逻辑卷管理器的缩写。它是Linux环境下管理磁盘分区的一种机制。LVM是建立在硬盘和分区之上的逻辑层,用来提高磁盘分区管理的灵活性。性别。通过LVM系统管理员可以方便地管理磁盘分区,例如:将几个磁盘分区连接成一个完整的卷组(volumegroup),形成一个存储池。管理员可以在卷组上自由创建逻辑卷,并进一步在逻辑卷组上创建文件系统。管理员可以通过LVM方便地调整存储卷组的大小,并可以按组命名、管理和分配磁盘存储,如按用途定义:“开发”和“销售”,而不是使用物理磁盘名称“sda”和“sdb”。并且当一个新的磁盘被添加到系统中时,LVM管理员不必将磁盘的文件移动到新的磁盘上以充分利用新的存储空间,而是直接跨磁盘扩展文件系统。1.2.LVM的基本术语============前面说了,LVM是在磁盘分区和文件系统之间增加的一个逻辑层,为文件系统屏蔽底层磁盘分区布局,提供抽象创建磁盘卷上的文件系统。首先我们讨论以下LVM术语:这里的物理存储介质(Thephysicalmedia)是指系统的存储设备:硬盘,如:/dev/hda1、/dev/sda等,是存储系统中最底层的存储单元。物理卷(physicalvolume)物理卷是指硬盘分区或逻辑上与磁盘分区具有相同功能的设备(如RAID)。等),但包含与LVM相关的管理参数。·卷组(VolumeGroup)LVM卷组类似于非LVM系统中的物理硬盘,由物理卷组成。可以在一个卷组上创建一个或多个“LVM分区”(逻辑卷),该卷组由一个或多个物理卷组成。逻辑卷(logicalvolume)LVM的逻辑卷类似于非LVM系统中的硬盘分区,可以在逻辑卷上建立文件系统(如/home或/usr等)。PE(physicalextent)每个物理卷被划分为称为PE(PhysicalExtents)的基本单元,具有唯一编号的PE是LVM可以寻址的最小单元。PE的大小是可配置的,默认为4MB。·LE(logicalextent)逻辑卷也分为可寻址的基本单元,称为LE(LogicalExtents)。在同一个卷组中,LE的大小与PE的大小相同,并且存在一一对应关系。首先可以看出,物理卷(PV)是由大小相同的基本单元PE组成的。卷组由一个或多个物理卷组成。从上图可以看出,PE和LE是一一对应的。逻辑卷是在卷组上创建的。逻辑卷相当于非LVM系统的一个磁盘分区,可以在其上创建文件系统。下图是磁盘分区、卷组、逻辑卷和文件系统之间的逻辑关系示意图:正如非LVM系统在分区表的开头存储包含分区信息的元数据一样,逻辑卷和与卷组相关的元数据也存储在物理卷开头的VGDA(VolumeGroupDescriptorArea)中。VGDA包括以下内容:PV描述符、VG描述符、LV描述符和一些PE描述符。当系统启动LVM时,会激活VG并将VGDA加载到内存中,以识别LV的实际物理存储位置。系统在进行I/O操作时,会根据VGDA建立的映射机制访问实际的物理位置。1.3.安装LVM==========首先判断系统是否安装了lvm工具:[root@physical/]#rpm–qa|greplvm如果命令结果输出rpm版本,说明系统已经安装了LVM管理工具;如果命令没有输出,说明没有安装LVM管理工具,需要从网络下载LVMrpm工具包或者从光盘安装。【注意】安装LVM的RPM包后,需要配置内核支持LVM才能使用LVM。默认的RedHat内核支持LVM。如果需要重新编译内核,需要在配置内核时进入Multi-deviceSupport(RAIDandLVM)子菜单,选择以下两个选项:Multipledevicesdriversupport(RAIDandLVM)<*>Logicalvolumemanager(LVM)Support,然后重新编译内核,为新内核添加LVM支持。为了使用LVM,请确保在系统启动时激活LVM。幸运的是,在RedHat7.0之后的版本中,系统启动脚本已经支持激活LVM。/etc/rc.d/rc.sysinit中的内容如下:#LVMinitializationif[-e/proc/lvm-a-x/sbin/vgchange-a-f/etc/lvmtab];然后$"SettingupLogicalVolumeManagement:"action/sbin/vgscan&&/sbin/vgchange-ayfi关键是两个命令,vgscan命令扫描所有磁盘获取卷组信息,并创建文件卷组数据文件/etc/lvmtab和/etc/lvmtab.d/*;vgchange-ay命令激活系统中的所有卷组。1.4.创建分区=========(1)对磁盘sdb进行分区:命令:fdisk/dev/sdb如果不知道fdisk中的具体操作,可以输入m求助。最常用的有n(新建)d(删除)p(打印)q(退出)t(修改系统标识)w(写入退出)[root@QiMingServer/]#fdisk/dev/sdb(2)changeSystemidentifier:输入t更改分区1的属性,输入L查看属性对应的命令。输入8e将分区1更改为LinuxLVM格式。-l查看系统中的磁盘状态,发现/dev/sdb上已经有一个LinuxLVM格式的/dev/sdb1分区(3)让内核重新读取分区表命令:partprobeignoresthewarningof/dev/sda[root@QiMingServer/]#partprobe1.5.插件存储作为逻辑卷扩展================创建PV物理卷:扫描系统PV:pvscan创建PV:pvcreate/dev/sdb1查看PV:pvdisplay这样,我们创建了一个1TB的PV。注意Allocatable为NO【注意】以下内容为独立部分,即通过外部存储扩展已有卷组。启明服务器在安装系统时,创建的卷组vg_qimingserver会检查卷组名称,将物理卷添加为卷组。将上面创建的物理卷/dev/sdb1添加到已有的逻辑卷组(vg_qimingserver)中。这里要注意,1T的硬盘空间转换成逻辑卷后,可用空间可能还不到1T。这时候最好用vgdisplayvg_qimingserver看看还剩多少空间,看free选项。格式如下:Extendlogicalvolume本次要扩展的逻辑卷是vg_qimingserver-vg_venusbig_lv_home逻辑卷放在/dev/mapper。现在为vg_qimingserver-vg_venusbig_lv_home逻辑卷添加新添加的空间[root@QiMingServer/]#lvextend-L+1T/dev/mapper/vg_qimingserver-vg_venusbig_lv_home现在添加之后不会生效,需要执行acommand[root@QiMingServer/]#resize2fs-p/dev/mapper/vg_qimingserver-vg_venusbig_lv_home【注意】扩展逻辑卷就是直接将物理卷添加到逻辑卷组中,然后添加逻辑卷的空间(空闲)卷组的物理卷被扩展为原来的逻辑卷。1.6.创建卷组=========创建卷组的命令是vgcreate#vgcreateweb_document/dev/hdb1/dev/hdbvgcreate命令的第一个参数是指定卷组的逻辑名:web_document.以下参数用于指定要添加到卷组的所有分区和磁盘。vgcreate除了创建卷组web_document外,还将PE的大小设置为4MB(默认为4MB),这意味着在该卷组上创建的所有逻辑卷都以4MB为增量进行扩容或缩容。由于内核原因,PE大小决定了逻辑卷的最大大小。一个4MB的PE决定了单个逻辑卷的最大容量为256GB。如果要使用大于256G的逻辑卷,在创建卷组时指定一个更大的PE。PE大小范围从8KB到512MB,并且必须始终是2的倍数(使用-s指定,有关详细信息,请参见manvgcreate)。1.7.激活卷组=========为了立即使用卷组而不是重新启动系统,您可以使用vgchange来激活卷组:#vgchange-ayweb_document1.8。添加一个新的物理卷到卷组=================当系统安装一个新的磁盘并创建一个新的物理卷,并把它添加到一个已经存在的卷组中时,您需要使用vgextend命令:#vgextendweb_document/dev/hdc1其中/dev/hdc1是新的物理卷。1.9.从卷组中删除物理卷================要从卷组中删除物理卷,首先要确保要删除的物理卷没有被任何逻辑覆盖volume如果正在使用,使用pvdisplay命令查看一个物理卷的信息:如果一个物理卷正在被一个逻辑卷使用,需要将该物理卷的数据备份到其他地方,然后删除它。删除物理卷的命令是vgreduce:#vgreduceweb_document/dev/hda11.10。创建逻辑卷===========创建逻辑卷的命令是lvcreate:#lvcreate-L1500–nwww1web_document该命令是在卷组上创建一个名为www1的逻辑卷,大小为1500Mweb_document,设备入口为/dev/web_document/www1(web_document为卷组名,www1为逻辑卷名)。如果要创建一个使用所有卷组的逻辑卷,需要先查看卷组的PE号,然后在创建逻辑卷时指定:#vgdisplayweb_document|grep"总PE"总PE45230#lvcreate-l45230web_document-nwww11.11.创建文件系统============作者推荐使用exit4文件系统替代ext2和ext3:创建文件系统后,就可以加载使用了:#mkdir/data/wwwroot#mount/dev/web_document/www1/data/wwwroot如果想在系统启动时自动加载文件系统,还需要在/etc/fstab中添加内容:/dev/web_document/www1/data/wwwrootreiserfsdefaults121月12日。删除逻辑卷=============删除逻辑卷之前,首先需要卸载它,然后再删除它:#umount/dev/web_document/www1#lvremove/dev/web_document/www1lvremove--你真的要删除“/dev/web_document/www1”吗?[y/n]:ylvremove--自动备份卷组"web_document"lvremove--逻??辑卷"/dev/web_document/www1"成功删除1.13。扩展逻辑卷的大小=============LVM提供了轻松调整逻辑卷大小的能力。扩展逻辑卷大小的命令是lvcreate:#lvextend-L12G/dev/web_document/www1lvextend--将逻辑卷“/dev/web_document/www1”扩展到12GBlvextend--自动备份卷组“web_document”lvextend--逻??辑volume"/dev/web_document/www1"成功扩展以上命令会将逻辑卷www1的大小扩展到12G#lvextend-L+1G/dev/web_document/www1lvextend--扩展逻辑卷"/dev/web_document/www1"到13GBlextend--做卷组“web_document”的自动备份lvextend--逻??辑卷“/dev/web_document/www1”扩展成功上面的命令将逻辑卷www1的大小增加了1G。增加逻辑卷的容量后,需要修改文件系统的大小以利用扩展的空间。作者推荐使用reiserfs文件系统,而不是ext2或ext3。所以这里只讨论reiserfs的情况。Reiserfs文件工具提供了一个文件系统调整大小的工具:resize_reiserfs。想调整加载文件系统大小的:#resize_reiserfs-f/dev/web_document/www1一般建议卸载文件系统,调整大小,再加载:#umount/dev/web_document/www1#resize_reiserfs/dev/web_document/www1#mount-treiserfs/dev/web_document/www1/data/wwwroot对于使用ext2或ext3文件系统的用户,可以考虑使用工具:ext2resize。1.14.减小逻辑卷的大小=============使用lvreduce实现逻辑卷的容量,同样需要先卸载文件系统:#umount/data/wwwroot#resize_reiserfs-s-2G/dev/web_document/www1#lvreduce-L-2G/dev/web_document/www1#mount-treiserfs/dev/web_document/www1/data/wwwroot欢迎点赞转发分享支持!