linux下分區容量不足了如何進行擴容

日常工作中,經常會遇到某個分區剩余容量不足的問題,所以我們需要掌握如何在linux服務器下對分區進行擴容。對于分區擴容,這里分為了兩個情況

  • LVM分區的擴容

  • 非LVM分區的擴容

LVM分區的擴容

一般,我們都建議使用LVM,這樣方便分區的彈性伸縮。關于LVM的介紹,物理卷、邏輯組、邏輯卷等這里就不細說了,大家可以去看看我另外的兩篇關于LVM的文章。

場景:/www 目錄是我們的和網站相關的目錄,這個目錄所掛載的分區采用了LVM,本來這個目錄有1G空間大小,但是隨著系統的運行,剩余空間只剩下不到100M了。現在需對該分區進行擴容。

準備工作,實現場景

#?pvcreate?/dev/sdb1 #?vgcreate?vgwww?/dev/sdb1 #?lvcreate?-l?255?vgwww #?mkfs.ext4?/dev/vgwww/lvol0? #?mount?/dev/vgwww/lvol0?/www #?dd?if=/dev/zero?of=/www/bigfile?bs=1M?count=900 #?df?-h …… /dev/mapper/vgwww-lvol0??988M??903M???19M???98%?/www

分區擴容

首先,我們要看vgwww還有沒有剩余空間,如果沒有的話,則需要先在vgwww中添加pv。

#?vgdisplay?vgwww ?…… ??Free??PE?/?Size???????0?/?0???<p>通過上面信息可以得知,該vg沒有剩余空間了。那么就需要對此vg增加pv了。現在我們看看有沒有沒有被使用的pv,如果沒有的話,先需要創建pv。</p><pre class="brush:php;toolbar:false">#?pvscan ??PV?/dev/sdb1???VG?vgwww???????????lvm2?[1020.00?MiB?/?0????free] ??Total:?1?[1020.00?MiB]?/?in?use:?1?[1020.00?MiB]?/?in?no?VG:?0?[0???]

可以看到,沒有可用的pv。那么,先創建pv

#?pvcreate?/dev/sdc1 ??Physical?volume?"/dev/sdc1"?successfully?created. #?pvscan ??PV?/dev/sdb1???VG?vgwww???????????lvm2?[1020.00?MiB?/?0????free] ??PV?/dev/sdc1??????????????????????lvm2?[1023.00?MiB] ??Total:?2?[<p>pv已經有了,那么將新的pv加到vgwww邏輯卷組中。</p><pre class="brush:php;toolbar:false">#?vgextend?vgwww?/dev/sdc1 ??Volume?group?"vgwww"?successfully?extended #?vgdisplay?vgwww ?…… ??Free??PE?/?Size???????255?/?1020.00?MiB ??VG?UUID???????????????xdw96k-xZNv-tmVf-Pkcx-SX7T-C1tz-ZZq3HG

現在vg多出了255個PE沒有被使用。接下來,就是對LV進行擴容了

#?lvresize?-l?+255?/dev/vgwww/lvol0? ??Size?of?logical?volume?vgwww/lvol0?changed?from?1020.00?MiB?(255?extents)?to?1.99?GiB?(510?extents). ??Logical?volume?vgwww/lvol0?successfully?resized. ?? #?lvdisplay? ??---?Logical?volume?--- ??…… ??LV?Size????????????????1.99?GiB??<p>這個時候,雖然lv大小變大了,但是/dev/mapper/vgwww-lvol0文件系統并沒有變大。</p><pre class="brush:php;toolbar:false">#?df?-h 文件系統?????????????????容量??已用??可用?已用%?掛載點 …… /dev/mapper/vgwww-lvol0??988M??903M???19M???98%?/www

這個時候,我們還需要xfs_growfs (針對xfs文件系統)或resize2fs (針對ext文件系統)來處理下。

#?該主機使用的是ext4文件系統 #?resize2fs?/dev/vgwww/lvol0? #?df?-h 文件系統?????????????????容量??已用??可用?已用%?掛載點 …… /dev/mapper/vgwww-lvol0??2.0G??904M??982M???48%?/www

至此,對于該文件系統的擴容完成了。

非LVM分區的擴容

最近,我就碰到了這個情況。我有一個朋友,他的阿里云服務器根分區快滿了,本來40G的云盤,后來加了20G。找到我說,我明明已經加了20G,怎么顯示還是40G阿,讓我幫他解決下問題。

不巧的是,它根目錄沒有使用lvm,我也一時半會不知道怎么辦。后來查詢了相關信息,找到了一個解決辦法。但是這個解決辦法是有局限性的,就是對需要擴容的分區,這個分區必須是該磁盤的最后一個分區。

下面首先模擬場景:/bak 目錄掛載在一個單獨的分區,該分區開始時候分了500M,現在需要對其進行擴容操作

#?df?-h 文件系統?????????????????容量??已用??可用?已用%?掛載點 …… /dev/sdd1????????????????497M???26M??472M????6%?/bak

開始擴容操作

#?首先卸載掛載點  #?fdisk?/dev/sdd …… 命令(輸入?m?獲取幫助):p …… ???設備?Boot??????Start?????????End??????Blocks???Id??System /dev/sdd1????????????2048?????1026047??????512000???83??linux  #記住開始點,即2048。然后刪除該分區,重新建立分區 命令(輸入?m?獲取幫助):d 已選擇分區?1 分區?1?已刪除  命令(輸入?m?獲取幫助):n Partition?type: ???p???primary?(0?primary,?0?extended,?4?free) ???e???extended Select?(default?p):? Using?default?response?p 分區號?(1-4,默認?1): 起始?扇區?(2048-2097151,默認為?2048):2048 Last?扇區,?+扇區?or?+size{K,M,G}?(2048-2097151,默認為?2097151): 將使用默認值?2097151 分區?1?已設置為?Linux?類型,大小設為?1023?MiB  命令(輸入?m?獲取幫助):w   #?partprobe

這個時候,通過lsblk命令查看該分區大小已經變大了,但是df -h的結果還是沒變,需要使用xfs_growfs 命令處理下。

?#?xfs_growfs?/dev/sdd1 ? ?#?df?-h 文件系統?????????????????容量??已用??可用?已用%?掛載點 …… /dev/sdd1???????????????1020M???26M??995M????3%?/bak

另外有一點需要特別注意:絕對不能對該分區寫入文件系統,這樣之前的數據就都沒了

更多相關技術文章,請訪問linux系統教程欄目!

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享