Unix系统中LVM硬盘管理的好帮手(1)


平时在部署Unix操作系统规划分区的时候,最让我们头疼的问题是什么呢?恐怕就是硬盘空间大小的分配了。如刚开始可能只有少数几个同事需要用到这台unix电脑,为此只给home目录规划不多的空间。可是随着用户的增加,home目录的空间就逐渐被消耗光了。此时该如何处理呢?如果没有采用LVM机制来管理硬盘空间的话,则即使硬盘中还有剩余的空间,系统工程师也无法马上把剩余的空间跟当前采用的home目录合并。而是需要先把Home目录中的当前数据复制到其他空间中,然后把当前的目录与硬盘的剩余空间进行合并,并格式化成可用的文件系统。最后再把数据复制到新的Home目录中。可见类似的操作很麻烦,而且很容易导致原有数据的破坏。

如果需要增加swap分区的容量,那么还简单一点。可以把现有硬盘中的可用空间格式化成Swap文件系统并挂载到现有的swap空间即可。但是,这个后来挂载的swap空间虽然不需要格式化原有的swap 空间,可是这个后来增加的swap空间的执行效率并没有原始的swap分区那么好。为此采用挂栽的方式来增加Swap空间也是不得已而为之的事情。

那么在Unix操作系统中有否其他的解决方式呢?为了让Unix操作系统能够更加灵活的管理硬盘空间,专家们提出了LVM(逻辑卷管理器)的解决方案。通过这个解决措施,系统工程师可以在不格式化原有分区的情况下,便利的扩展原有的分区大小。如可以缩小某个分区的大小,把节省下来的空间给其他需要的分区等等。如下图所示,LVM可以帮助系统管理员解决如下问题:

一、任意调整Unix目录大小。

如在使用过程中,由于用户数量的增多,/home目录空间不能够满足当前的需求。为此系统工程师需要把硬盘中没有的空间划给/home 目录使用。此时如果采用了逻辑卷管理的话,则在不格式化原有/home目录分区的情况下,即可以扩大原有的/home目录大小。假设我们现在硬盘1中还有20个G的剩余空间。现在系统工程师需要把其中的10个G的容量给/home目录。在不需要重新格式化原有/home目录分区的情况下,只需要采用两个简单的命令即可以完成这个功能。

第一个命令:lvextend。

这个命令主要用来扩展逻辑卷的大小。如上图所示,如果采用LVM管理机制的话,可以把一个或者多个硬盘创建为逻辑卷组。然后Unix系统下的各个分区就是这个逻辑卷组下面的扩展逻辑卷。现在系统工程师想要扩展/home目录的空间,就只需要增加home目录所在分区的扩展逻辑卷大小即可。为了实现这个目的,就只需要使用lvextend命令即可。如lvextend –L +10240 /home即可。在使用这个命令的时候,需要注意一个问题,即其采取的单位都是以M为单位,而不是以G为单位。所以如果需要增加10个G的空间的话,就需要使用10240。这主要是因为传统的分区命令都是以M为单位的。为此在设计这个解决方案的时候,仍然沿用了M为单位。这或多或少给系统工程师维护硬盘带来了一定的麻烦。在利用这个命令的时候,需要注意这个细节问题。

第二个命令:resize_reiserfs

此时系统工程师可以利用lvdisplay命令来查看home目录所在的扩展逻辑卷组的大小,发现其容量确实增加了。但是如果使用df命令来查看home分区大小的话,会发现其仍然是原先的空间,还没有改变。这主要是因位新创建的空间并不能够直接拿来使用。这主要是因为新创建的空间文件系统跟Home目录原有的格式不兼容。为了使用这个新增加的空间,系统工程师还需要使用resize_reiserfs命令来格式化新增加的空间,让home目录可以使用这个新增加的空间。

注意,通过以上两个命令就可以扩展Home目录分区的大小。而在这整个过程中,笔者并没有备份原有home目录中的文件,也没有重新格式化Home目录所在的分区。也就是说,把HOME目录分区当作扩展逻辑卷来管理,其空间可以实现动态的调整。即在不格式化原有分区的情况下,可以实现动态的调整。不过为了系统文件的安全,如果系统工程师第一次使用这个管理方法的话,则最好还是先对原有的文件进行备份。以免因为误操作而导致文件被意外损坏。

二、LVM使用的限制。

虽然LVM提供了硬盘管理的一个捷径。但是在使用过程中,仍然有一些使用方面的限制。如在Unix操作系统下部署LVM解决机制的时候,需要注意/boot分区的部署。如果把/boot分区部署在逻辑卷管理器上面的话,将导致Unix操作系统无法正常启动。这主要是因为在操作系统启动的时候,开机管理程序需要读取一些文件。而因为现在Unix操作系统采用的任何一款开机管理程序都无法读取逻辑卷中的文件系统。所以如果把存放操作系统启动信息的/boot目录部署在逻辑卷中的话,将导致Unix操作系统无法正常启动。如上图所示,笔者在部署硬盘分区的时候,就没有把/boot分区部署在逻辑卷中。而是在硬盘中独立划分了一块区域,用来做/boot分区。还好这个分区往往是用来存放一些系统启动时的必要信息,为此其所需要的空间都是比较少的。为此在采用LVM解决方案时,系统工程师切记要把/boot分区部署在独立的分区中。即在硬盘上划分一个独立的分区给/boot用。


相关内容