謝邀
對,這是一個很有意義的問題,我們經常有這樣的需求,有沒有一種方法能夠在不關機不影響在線業務的情況下拓展我們的磁盤分區甚至是根分區呢?答案是有!我在IT領域工作接近20年,我們也經常這么做的,在這里,我只希望把我學到的一些東西分享給大家,希望能幫到一些人解決困擾,提高效率,最好能早些下班回家接孩子。
第一件事,從專業角度提醒,在進行下面的任何操作之前,一定要備份你的重要數據,以防萬一。
進入正題,談到一個系統的根分區,確實是很多時候會讓人有一種畏懼心理,因為根分區一旦被損壞系統就宕機,在線業務就停,老板就會找過來,所以很多人不愿意動這個地方。可偏偏天不如人愿,在現今大數據時代,數據每天在飛速增長,磁盤分區總有滿的時候,不得已也是要動它一動的。如何拓展,往下看,我們以國內使用比較多的CentOSLinux系統為例講述這個技術。
前提條件,你的Linux系統使用了LVM(邏輯卷管理LogicalVolumeManager)技術,你的服務器硬件支持磁盤熱插拔,好消息是,這兩樣都很容易滿足,LVM這個技術在近幾年發布的Linux系統中基本都是滿足的,包括CentOS,Ubuntu等等,默認就安裝并使用了這個管理包,無需另外添加,至于硬件方面基本上目前市場上主流的PCserver基本都能滿足,不過謹慎起見,還是要翻看一下硬件供應商附帶給你的硬件說明書,上面會有明確說明,并且會告訴你如何熱插拔硬盤部件,一定要看說明不能盲目操作。如果你是家用PC,不支持熱插拔,那就關機裝上硬盤在重新啟動系統,家用機一般沒有在線業務,重啟一下也無妨。
如何確定我們的Linux根分區是否使用了LVM技術?方法很簡單,遠程登錄到你的系統,按照下面命令來查看即可。命令:mount
打下mout命令后,如果你看到了類似第一行的顯示
/dev/mapper/vg_basesystem-lv_rooton/typeext4(rw)
證明你的系統使用了LVM技術,你可以繼續往下操作了,這行的意思是說你的邏輯卷組名稱叫做basesystem,你的邏輯卷的名稱叫做lv-root,它正被掛載在“/”即跟分區上,記住這兩個名稱,后面會用到
下面我們就來拓展這個跟分區:
為了后面驗證我們的拓展時候已經成功,我們先開一下目前這個跟分區是多大空間,然后在線拓展完了之后我們再看一次,確定它已經被擴大了。
步驟一,查看根分區大小(命令為df-h)
圖上看到,我們目前根分區大小為40G,有效空間為37G,我們現在打算把這個分區在線拓展到60G以上,繼續往下看
第二步,在服務器上安裝新的硬盤,并且對它進行預處理以便加到LVM的管理中。
安裝硬件的話,因為多數PCserver都支持硬盤熱插拔,安裝廠家的說明書操作在相應的槽位上把硬盤推進去就可以了,大約等待5-10分鐘,新加進來的硬盤就能被發現了。接著回到操作系統進行下一步操作:
用fisk-l找系統目前掛載的硬盤:
我們發現(紅線部分),我們這個系統目前只有一個硬盤/dev/sda其大小為48.3GB,它被分成了兩個分區/dev/sda1和、/dev/sda2,其中sda1為linux的引導盤(Boot),而sda2正在被LinuxLVM管理下,就是上面我們看到的跟分區所在的地方。
我們現在把一個25GB的因硬盤加入到系統中(為了快速演示我這里添加一個最小的),添加完了之后回到系統繼續進行下面的步驟:
這個時候用fdisk-l查看,就發現多了一個硬盤,名稱是/dev/sdb
接下來我們就把這個新硬盤/dev/sdb拓展到我們原來正在使用的根分區里面去。
首先要把該硬盤分區并且類型改為8e類型以便支持LVM拓展,實現方法如下:
命令提示符輸入fdisk/dev/sdb(注意各位要輸入正確的硬盤設備號,我這里新加入的硬盤是sdb,但你要對照自己的系統輸入,有的是sdc,sdd都有可能,如果不確定就用fdisk-l列出來看一下)
現在硬盤準備好了,開始拓展
創建一個PV,這樣做(pv,vg,lv這幾個名稱的解析在文件末尾給出)
將剛剛創建的PV加入到VG中
拓展LV容量
將容量拓展到跟分區
至此,我們的拓展全部完成,驗證一下現在這個根分區是不是已經從原來的40Gb拓展到65GB了呢?還是用df-h命令就可以驗證了,如下圖
對的,我們的根分區從原來的40GB成功拓展到65GB了。
你學到了嗎?如果有疑問也可以在留言區留下您的問題,或者關注我的賬號,我會陸陸續續把一些閱讀量比較高的問題回答整理成文章放到我的頭條主頁上,也會不定期更新一些視頻上來,以便大家可以隨時訪問。
注釋:PV--PhysicalVolume,VG--VolumeGroup,LV--LogicalVolume(不是LV包包哦)