LVM (Logic Volume Management,逻辑卷管理)
是傳統(tǒng)商業(yè)Unix就帶有的一項(xiàng)高級(jí)磁盤管理工具,異常強(qiáng)大。后來LVM移植到了Linux操作系統(tǒng)上,盡管不像原來Unix版本那么強(qiáng)大,但瘦死的駱駝比馬大,Linux的LVM仍然非常強(qiáng)大,可以在生產(chǎn)運(yùn)行系統(tǒng)上面直接在線擴(kuò)展硬盤分區(qū),可以把分區(qū)umount以后收縮分區(qū)大小,還可以在系統(tǒng)運(yùn)行過程中把一個(gè)分區(qū)從一塊硬盤搬到另一塊硬盤上面去等等,簡(jiǎn)直就像變魔術(shù),而且這一切都可以在一個(gè)繁忙運(yùn)行的系統(tǒng)上面直接操作,不會(huì)對(duì)你的系統(tǒng)運(yùn)行產(chǎn)生任何影響,很安全。?
還是拿JavaEye的網(wǎng)站服務(wù)器隨便舉個(gè)小例子吧。話說今天晚上我登錄JavaEye網(wǎng)站服務(wù)器隨便這么一查看磁盤使用狀況:?
竟然發(fā)現(xiàn)/home分區(qū)的磁盤消耗的很快?
有點(diǎn)出乎意料,已經(jīng)使用了80%,如果用光了,可就有點(diǎn)麻煩了,所以為了安全,把/home分區(qū)擴(kuò)大5GB,多給它點(diǎn)硬盤空間,敲入兩條shell命令?
先把邏輯卷擴(kuò)大5GB,再把上面的reiserfs文件系統(tǒng)擴(kuò)大5GB,前后耗時(shí)不超過3秒鐘。再df -h查看一下:?
哈哈,/home立刻多了5GB,搞定收工,這是不是很像變戲法,我沒停任何服務(wù),沒重起服務(wù)器,大家沒有任何感覺,就一切搞定,說實(shí)話我也一直覺得LVM很cool,所以我一直是LVM+Reiserfs的忠實(shí)擁躉。有興趣學(xué)習(xí)LVM的同學(xué)可以下載后面的附件,這可是我珍藏多年的LVM秘籍!?
另外強(qiáng)烈推薦Daniel Robbins在IBM DW網(wǎng)站上面關(guān)于LVM的系列文章:?
通用線程: 學(xué)習(xí) Linux LVM,第 1 部分?
通用線程:學(xué)習(xí) Linux LVM,第 2部分?
另外,在大規(guī)模的生產(chǎn)系統(tǒng)上面,文件系統(tǒng)的管理是一個(gè)錯(cuò)綜復(fù)雜的工作,如果你對(duì)這個(gè)方面的知識(shí)很感興趣,你可以繼續(xù)了解一下EVMS(Enterprise Volume Management System,企業(yè)級(jí)文件卷管理系統(tǒng))。EVMS 為 Linux 下的所有存儲(chǔ)技術(shù)提供了統(tǒng)一的、可擴(kuò)展的、基于插件的 API。這意味著什么?它意味著由于 EVMS,您可以使用單個(gè)工具來對(duì)磁盤分區(qū)、創(chuàng)建 LVM 對(duì)象以及甚至創(chuàng)建 Linux 軟件 RAID 卷。并且可以使用這一工具以強(qiáng)有力的方式合并這些技術(shù)。還是推薦看Daniel Robbins的文章:?
3.9 擴(kuò)展LV?
為邏輯卷增加容量可用使用lvextend,即可以指定要增加的尺寸也可以指定擴(kuò)容后的尺寸,如?
# 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?
將擴(kuò)大邏輯卷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再增大容量1GB至13GB。?
為LV擴(kuò)容的一個(gè)前提是:LV所在的VG有足夠的空閑存儲(chǔ)空間可用。?
在為LV擴(kuò)容之后,應(yīng)同時(shí)為LV之上的文件系統(tǒng)擴(kuò)容,使二者相匹配。對(duì)不同的文件系統(tǒng)有相對(duì)應(yīng)的擴(kuò)容方法。?
3.9.1 ext2/ext3?
除非內(nèi)核已有ext2online 補(bǔ)丁,否則在改變ext2/ext3文件系統(tǒng)的大小時(shí)應(yīng)卸載它:?
# umount /dev/testvg/testlv?
# resize2fs /dev/testvg/testlv?
# mount /dev/testvg/testlv /home?
這里假設(shè)testlv安裝點(diǎn)為/home。在es2fsprogs-1.19或以上版本中包含resize2fs命令。?
在LVM發(fā)行包中有一個(gè)稱為e2fsadm的工具,它同時(shí)包含了lvextend與resize2fs的功能,如:?
# e2fsadm -L+1G /dev/testvg/testlv?
等價(jià)于下面兩條命令:?
# lvextend -L+1G /dev/testvg/testlv?
# resize2fs /dev/testvg/testlv?
但用戶仍需首先卸載文件系統(tǒng)。?
3.9.2 reiserfs?
與ext2不同,Reiserfs不必卸載文件系統(tǒng),如:?
# resize_reiserfs -f /dev/testvg/testvl?
3.9.3? xfs?
SGI XFS文件系統(tǒng)必須在安裝的情況下才可改變大小,并且要使用安裝點(diǎn)而不是塊設(shè)備,如:?
# xfs_growfs /home?
3.10 縮小LV?
邏輯卷可擴(kuò)展同樣也可縮小,但應(yīng)在縮小LV之前首先減小文件系統(tǒng),否則將可能導(dǎo)致數(shù)據(jù)丟失。?
3.10.1 ext2/ext3?
可以使用LVM的工具e2fsadm操作,如:?
# umount /home?
# e2fsadm -L-1G /dev/testvg/testvl?
# mount /home?
如果采用resize2fs,就必須知道縮少后卷的塊數(shù):?
# umount /home?
# resize2fs /dev/testvg/testvl 524288?
# lvreduce -L-1G /dev/testvg/testvl?
# mount /home?
3.10.2 reiserfs?
在縮小reiserfs時(shí),應(yīng)首先卸載它,如:?
# 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?
無法實(shí)現(xiàn)。
總結(jié)
以上是生活随笔為你收集整理的LVM (Logic Volume Management,逻辑卷管理)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 成都大熊猫繁育基地需要预约吗
- 下一篇: 刀尖潜伏剧情介绍