LVM (Logic Volume Management,逻辑卷管理)

是传统商业Unix就带有的一项高级磁盘管理工具,异常强大。后来LVM移植到了Linux操作系统上,尽管不像原来Unix版本那么强大,但瘦死的骆驼比马大,LinuxLVM仍然非常强大,可以在生产运行系统上面直接在线扩展硬盘分区,可以把分区umount以后收缩分区大小,还可以在系统运行过程中把一个分区从一块硬盘搬到另一块硬盘上面去等等,简直就像变魔术,而且这一切都可以在一个繁忙运行的系统上面直接操作,不会对你的系统运行产生任何影响,很安全。 


还是拿JavaEye的网站服务器随便举个小例子吧。话说今天晚上我登录JavaEye网站服务器随便这么一查看磁盘使用状况: 

  1. df -h  


竟然发现/home分区的磁盘消耗的很快 

  1. Filesystem                Size  Used  Avail Use%   Mounted on  
  2. /dev/mapper/system-home    40G   32G    8G  80%    /home  



有点出乎意料,已经使用了80%,如果用光了,可就有点麻烦了,所以为了安全,把/home分区扩大5GB,多给它点硬盘空间,敲入两条shell命令 

  1. lvextend -L +5G /dev/system/home  
  2. resize_reiserfs -s +5G /dev/system/home   


先把逻辑卷扩大5GB,再把上面的reiserfs文件系统扩大5GB,前后耗时不超过3秒钟。再df -h查看一下: 

  1. Filesystem                Size  Used  Avail Use%   Mounted on  
  2. /dev/mapper/system-home    45G   32G    13G  71%    /home  



哈哈,/home立刻多了5GB,搞定收工,这是不是很像变戏法,我没停任何服务,没重起服务器,大家没有任何感觉,就一切搞定,说实话我也一直觉得LVMcool,所以我一直是LVM+Reiserfs的忠实拥趸。有兴趣学习LVM的同学可以下载后面的附件,这可是我珍藏多年的LVM秘籍! 


另外强烈推荐Daniel RobbinsIBM DW网站上面关于LVM的系列文章: 


通用线程: 学习 Linux LVM,第 1 部分 

通用线程:学习 Linux LVM,第 2部分 


另外,在大规模的生产系统上面,文件系统的管理是一个错综复杂的工作,如果你对这个方面的知识很感兴趣,你可以继续了解一下EVMS(Enterprise Volume Management System,企业级文件卷管理系统)EVMS Linux 下的所有存储技术提供了统一的、可扩展的、基于插件的 API。这意味着什么?它意味着由于 EVMS,您可以使用单个工具来对磁盘分区、创建 LVM 对象以及甚至创建 Linux 软件 RAID 卷。并且可以使用这一工具以强有力的方式合并这些技术。还是推荐看Daniel Robbins的文章: 



3.9 扩展LV 

为逻辑卷增加容量可用使用lvextend,即可以指定要增加的尺寸也可以指定扩容后的尺寸,如 

# lvextend -L12G /dev/testvg/testlv 

lvextend -- extending logical volume "/dev/testvg/testlv" to 12 GB 

lvextend -- doing automatic backup of volume group "testvg" 

lvextend -- logical volume "/dev/testvg/testlv" successfully extended 

将扩大逻辑卷testlv的容量为12GB 

# lvextend -L+1G /dev/testvg/testlv 

lvextend -- extending logical volume "/dev/testvg/testlv" to 13 GB 

lvextend -- doing automatic backup of volume group "testvg" 

lvextend -- logical volume "/dev/testvg/testlv" successfully extended 

将为LV testlv再增大容量1GB13GB 

LV扩容的一个前提是:LV所在的VG有足够的空闲存储空间可用。 

在为LV扩容之后,应同时为LV之上的文件系统扩容,使二者相匹配。对不同的文件系统有相对应的扩容方法。 

3.9.1 ext2/ext3 

除非内核已有ext2online 补丁,否则在改变ext2/ext3文件系统的大小时应卸载它: 

# umount /dev/testvg/testlv 

# resize2fs /dev/testvg/testlv 

# mount /dev/testvg/testlv /home 

这里假设testlv安装点为/home。在es2fsprogs-1.19或以上版本中包含resize2fs命令。 

LVM发行包中有一个称为e2fsadm的工具,它同时包含了lvextendresize2fs的功能,如: 

# e2fsadm -L+1G /dev/testvg/testlv 

等价于下面两条命令: 

# lvextend -L+1G /dev/testvg/testlv 

# resize2fs /dev/testvg/testlv 

但用户仍需首先卸载文件系统。 

3.9.2 reiserfs 

ext2不同,Reiserfs不必卸载文件系统,如: 

# resize_reiserfs -f /dev/testvg/testvl 

3.9.3  xfs 

SGI XFS文件系统必须在安装的情况下才可改变大小,并且要使用安装点而不是块设备,如: 

# xfs_growfs /home 

3.10 缩小LV 

逻辑卷可扩展同样也可缩小,但应在缩小LV之前首先减小文件系统,否则将可能导致数据丢失。 

3.10.1 ext2/ext3 

可以使用LVM的工具e2fsadm操作,如: 

# umount /home 

# e2fsadm -L-1G /dev/testvg/testvl 

# mount /home 

如果采用resize2fs,就必须知道缩少后卷的块数: 

# umount /home 

# resize2fs /dev/testvg/testvl 524288 

# lvreduce -L-1G /dev/testvg/testvl 

# mount /home 

3.10.2 reiserfs 

在缩小reiserfs时,应首先卸载它,如: 

# umount /home 

# resize_reiserfs -s-1G /dev/testvg/testvl 

# lvreduce -L-1G /dev/testvg/testvl 

# mount -treiserfs /dev/testvg/testvl /home 

3.10.3 xfs 

无法实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值