`
robbin
  • 浏览: 4797877 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
377a9ecd-1ea1-34ac-9530-9daa53bb2a7b
robbin谈管理
浏览量:135676
社区版块
存档分类
最新评论

LVM - 很好很强大

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

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

df -h


竟然发现/home分区的磁盘消耗的很快
Filesystem                Size  Used  Avail Use%   Mounted on
/dev/mapper/system-home    40G   32G    8G  80%    /home


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

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

先把逻辑卷扩大5GB,再把上面的reiserfs文件系统扩大5GB,前后耗时不超过3秒钟。再df -h查看一下:
Filesystem                Size  Used  Avail Use%   Mounted on
/dev/mapper/system-home    45G   32G    13G  71%    /home


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

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

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

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

通用线程: 高级文件系统实现者指南,第 12 部分 EVMS 简介
通用线程: 高级文件系统实现者指南,第 13 部分EVMS 详情

BTW:Daniel Robbins在IBM DW所有的文章都值得一读,特别是《通用线程: 高级文件系统实现者指南》这个系列。

介绍点背景知识:Daniel Robbins是Gentoo Linux的创始人,Linux社区赫赫有名的牛人。早几年微软公司成立了一个开源实验室,把Daniel Robbins给忽悠过去了,此事曾经在Linux社区闹的沸沸扬扬。Daniel Robbins当时是报着推动微软公司开源,并且促进微软和开源社区之间交流的目的而去的,但是Daniel Robbins在微软公司不到一年就辞职离开了,原因是发现被微软忽悠了,微软根本没有足够开源的诚意,他在微软也就是一个闲职。


分享到:
评论
33 楼 realzhang 2009-11-28  
看起来很好,准备迁移到lvm上。
32 楼 SteveGY 2009-08-09  
虽然这个故事已经讨论很久了,但估计应该有unix admin提醒过:并不是所有的lvm在线操作都是稳定可靠的,aix 5.3 + oracle 10g,在io繁忙的系统上,动态扩展磁盘空间是有风险的,会造成磁盘死锁,系统挂起。相信类似的问题在linux lvm上也有,系统软件环境越复杂,风险就越大,所以不要轻易在生产环境中做一些没有测试过的lvm操作。
31 楼 chenxf84 2009-01-05  
lvm用的不多,基本上都是大家一样的使用方法,从老大们的讨论中学到了很多
30 楼 lovejuan1314 2008-12-19  
老大就是老大啊~~ 哈~ 言传身教~

偶也是LVM的超级粉丝,想当初第一次碰它的时候,还把一个测试服务器分区搞坏了。汗~~    
29 楼 windir 2008-12-17  
功能是强大,谢谢提供!
28 楼 recoco 2008-12-15  
0000 写道
我的一个案例:
Dell PowerEdge 2250(好像是这个型号) 阵列,插满14块300G硬盘,用一块不记得什么牌子的RAID卡连到同是Dell某型号的1U小服务器上,做RAID 5,发现,该阵列+RAID卡的配置居然最大只能支持2T左右的容量(可能当前这个容量就已经是海量了),居然不能把这些硬盘做成一个区……所以只好做成2个RAID 5,然后用LVM再合并到一起来。我承认我有点BT……


很多稍老点的卡都只能支持到2T 的。
27 楼 neora 2008-12-12  
luoshuixin 写道
牛人,从磁盘划分到搭建服务器,再到应用编码,简直了,什么事情都一个人搞定!


基本功,理论上每个程序员都应该做到。
26 楼 clark 2008-12-11  
hongliang 写道

另外,我狠少遇到需要LVM上阵的情景,没有LVM的相关管理经验。我想问一下,你的/home是建立在lvm上的逻辑分区上的逻辑卷,如果你重装系统,格式化硬盘分区,可以选择单独格式化LVM卷(除了/home的/卷)并将系统安装上去?我不太懂这个,按照我的菜鸟理解,重装系统格式化的应该是硬盘分区(disk partition)而不是LVM逻辑卷(LVM logic volume)吧,这样一来,你的LVM逻辑分区上的数据还能保留?


LVM 管理的分区,现在的 linux 发行版可以直接识别出来,能单独格式化LVM卷并将系统安装上去,/home 逻辑卷 可以保留,不格式化,你的LVM逻辑分区上的数据还能保留,不会丢。

hongliang 写道

robbin 写道

3、在多块物理硬盘的服务器,逻辑分区可以分到不同的物理硬盘上

这其实应该是RAID干的事


单个 RAID 组的硬盘个数是有限制的,想你有500个硬盘的情形,用 LVM 可以将硬RAID后的盘组合到一起。

hongliang 写道

我只是想说LVM最大的用处是跟RAID结合,提供诸如硬件级别的在线扩容等高端应用。你这种情景搞来搞去还是自己机器上已经有的几块硬盘,最多就是弥补一下当初分区的欠妥之处,使得日后能够灵活应对而已。这不是LVM的本意。而且如果你不是使用3(逻辑分区分到不同的物理硬盘上,类似Stripe模式)的话,LVM会对性能造成一定影响,也带来了一些管理复杂度。而如果用Stripe,那也必然影响数据可靠性,系统维护的好,硬盘挂了的几率比格式化系统要高的多。当然无论是性能影响还是管理复杂度,这些问题都几乎可以忽略不计。我只是觉得有些不必要。


小硬盘用LVM也一样有价值。如果你有一个不能停机的系统,有一个磁盘空间马上就要满了,另一个还有90%的剩余。如果关键分区的空间满了,整个系统会挂掉,这时你会后悔没用LVM。

hongliang 写道

我写这么多就怕有些菜鸟听你这么一忽悠,就呼啦啦不管3721全跑去学LVM了,哈哈,你的影响力可不小哦  LVM这东西是用到才觉得好,只可用,不可特意去学。用不用LVM要看具体的生产环境,如果就那么几块硬盘几百G空间在那搞来搞去,用不用LVM还是需要仔细分析才能决定的,免得带来不必要的系统复杂。


除非你有LVM 使用经验,否则根本无法判断是否该用LVM?何时用LVM?对自己不了解的技术下判断,肯定是错误的。

LVM在linux上已经有多年了,很奇怪还有人不知道!LVM 的使用其实很简单,但是需要了解其管理磁盘的基本原理。
25 楼 somebody 2008-12-10  
hongliang 写道
为什么/home自己分一个区呢?

一般我都是/boot分100M,再分点给swap,剩下的都给/就行了



这种做法确实比较多人在用。

不过对于想装多个发行版本的人来说这样可一点不好。

装多个版本。一般分几个区做为各自的/
然后分一个/home做为用户目录。这样不管进哪个版本都在同个分区下。

还有个重要的作用就是重装系统的时候很方便。直接把/格式化了。再安装。资料不受任何影响。
24 楼 cwchen 2008-12-10  
LVM是个好东西,一般的用途也就是在不影响关键业务的前提下动态调整磁盘的大小,我一般都是用LVM+Raid5,很方便,不过ZFS出来后,LVM的功能上表现的远不如ZFS,还是看看ZFS吧,sun的东西一般来说还是不错的
23 楼 0000 2008-12-10  
wangzy 写道
还有个很好用的功能,就是用lvm的快照功能来做mysql的热备,配合binlog可以实现完全备份。


这样也行?是个好办法
22 楼 wangzy 2008-12-10  
还有个很好用的功能,就是用lvm的快照功能来做mysql的热备,配合binlog可以实现完全备份。

21 楼 xi2008wang 2008-12-09  
我支持hongliang

现在服务器我都是boot:100M, swap: 2*ram, 其它全给/
20 楼 0000 2008-12-08  
And 案例2:
自己部门做的一个用来共享文件的服务器(就是samba啦),突然发现硬盘利用率已经到只剩下2G空间的程度了——本来就是淘汰的服务器,随便凑的几块大小不一的硬盘——在库房找到一块新从别的机器上换下来的300G的硬盘,挂上去,直接LVM扩展空间,原有文件没有任何变化,也不需要另建共享目录(相应就不需要再做帐号设置了)啥的,方便的很哪
19 楼 0000 2008-12-08  
我的一个案例:
Dell PowerEdge 2250(好像是这个型号) 阵列,插满14块300G硬盘,用一块不记得什么牌子的RAID卡连到同是Dell某型号的1U小服务器上,做RAID 5,发现,该阵列+RAID卡的配置居然最大只能支持2T左右的容量(可能当前这个容量就已经是海量了),居然不能把这些硬盘做成一个区……所以只好做成2个RAID 5,然后用LVM再合并到一起来。我承认我有点BT……
18 楼 recoco 2008-12-08  
jieyuan_cg 写道
如果磁盘空间一定,用LVM管理我觉得意义不大。因为只能调整以前分区的大小,没有其他更好的用途。
如果可以扩展磁盘空间,用LVM管理就比较好。


扩展磁盘空间只是一个基本应用而已。
17 楼 jeffyan 2008-12-06  
jieyuan_cg 写道
Magicloud 写道
动态调整分区大小只是lvm的基本应用。其它包括文件项(不是文件内容)镜像,多pv协同工作(数据散列(不是哈希),校验等)。
而关于调整大小,需要文件系统支持,目前Linux下只有ext3支持最完善,但因为ext3的不稳定(试试非读写状态断电,上电检查时再断电。和你的数据说拜拜吧。),我从来不用。动态调整大小的意义在于提高硬盘利用率,特别是不间断服务的应急。


不会吧?ext3问题多多么?还准备把一磁盘柜格成ext3呢……没有这方面的经验,请您指点指点。
ext3作为生产环境不行么?那Linux应该用什么格式?

ext3 可以用,谁说不稳定,它好像特别增加了恢复功能的日志,以前恢复需要很久时间,现在很快的recovery
16 楼 jeffyan 2008-12-06  
hongliang 写道
为什么/home自己分一个区呢?

一般我都是/boot分100M,再分点给swap,剩下的都给/就行了

如果是多块硬盘,直接做好Raid。

Robbin遇到的问题不是严重的场景,因为不是你的硬盘不够用,而是当初分区的时候没有设计这么长远而已。真正的大问题是所有硬盘都快用光了,需要新增硬盘,这就需要服务器的RAID卡支持在线扩容,在线扩容后会新增一个逻辑分区,这才是LVM大展身手的时候,直接把新扩充出来的逻辑分区补充给/就行了。从这一点上来说,品牌服务器确实比DIY的服务器考虑周全的多。

不过一开始就用LVM也有应用场景,那就是服务器是用做存储的,对磁盘容量有要求,已经意识到了将来某一天必然要对这个服务器动手术。否则用LVM就没有必要了,系统管理员的工作之一就是整理磁盘上的非重要数据,将磁盘使用量控制在一定范围内,而不能任由其无限制地增长

BTW: JavaEye在google中国的rank真高,这个帖子昨天发的今天已经上搜索“LVM”的首页了,厉害 

昏 千万不能这样做,如果/ 挂掉,里面的数据就全完蛋,就像整个硬盘只有一个C盘一样
15 楼 jieyuan_cg 2008-12-05  
Magicloud 写道
动态调整分区大小只是lvm的基本应用。其它包括文件项(不是文件内容)镜像,多pv协同工作(数据散列(不是哈希),校验等)。
而关于调整大小,需要文件系统支持,目前Linux下只有ext3支持最完善,但因为ext3的不稳定(试试非读写状态断电,上电检查时再断电。和你的数据说拜拜吧。),我从来不用。动态调整大小的意义在于提高硬盘利用率,特别是不间断服务的应急。


不会吧?ext3问题多多么?还准备把一磁盘柜格成ext3呢……没有这方面的经验,请您指点指点。
ext3作为生产环境不行么?那Linux应该用什么格式?
14 楼 deeplydrink 2008-12-05  
确实很好很强大啊

相关推荐

Global site tag (gtag.js) - Google Analytics