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

平时在部署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 –L10240 /home即可 。在使用这个命令的时候 , 需要注意一个问题 , 即其采取的单位都是以M为单位 , 而不是以G为单位 。所以如果需要增加10个G的空间的话 , 就需要使用10240 。这主要是因为传统的分区命令都是以M为单位的 。为此在设计这个解决方案的时候 , 仍然沿用了M为单位 。这或多或少给系统工程师维护硬盘带来了一定的麻烦 。在利用这个命令的时候 , 需要注意这个细节问题 。
第二个命令:resize_reiserfs
此时系统工程师可以利用lvdisplay命令来查看home目录所在的扩展逻辑卷组的大小 , 发现其容量确实增加了 。但是如果使用df命令来查看home分区大小的话 , 会发现其仍然是原先的空间 , 还没有改变 。这主要是因位新创建的空间并不能够直接拿来使用 。这主要是因为新创建的空间文件系统跟Home目录原有的格式不兼容 。为了使用这个新增加的空间 , 系统工程师还需要使用resize_reiserfs命令来格式化新增加的空间 , 让home目录可以使用这个新增加的空间 。

推荐阅读