当前位置:  首页  >  服务器技术  >  Linux/unix  >  Linux教程

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

文章标题:Unix系统中LVM硬盘管理的好帮手。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

    平时在部署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目录分区当作扩展逻辑卷来管理,其空间可以实现动态的调整。即在不格式化原有分区的情况下,可以实现动态的调整。不过为了系统文件的安全,如果系统工程师第一次使用这个管理方法的话,则最好还是先对原有的文件进行备份。以免因为误操作而导致文件被意外损坏。

 

[1] [2] 下一页

吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有