Linux 磁盤擴容操作指引
磁盤新擴容的空間,可以被獨立創建成一個分區,或者用於擴容已有分區的空間。
Linux 虛擬機雲硬盤擴容有以下兩種場景需求:
1. 對於新增的容量空間,建立獨立的新分區,老的分區保持不變。
2. 擴容舊的分區至新增的容量空間,並且保持老分區的數據不丟失。
以上兩種場景,在您的linux虛擬機雲硬盤升級成功之后,都可以通過linux下的分區擴容工具(fdisk/e2fsck/resize2fs),執行一系列命令,完成分區擴容,並且保證原數據不會丟失。
以下分別介紹兩種場景下的操作流程:
新空間格式化成一個獨立分區
1. 查看數據盤信息
登錄Linux雲服務器后,可以使用“fdisk -l”命令查看數據盤的已分區和未分區的信息。使用“df –h”命令,無法看到未分區和格式化的數據盤。
2. 數據盤分區
執行以下命令,新建一個分區
fdisk /dev/xvdc
按照界面的提示,依次輸入”p”(查看現有分區信息)、“n”(新建分區)、“p”(新建主分區)、“2”(使用第2個主分區),兩次回車(使用默認配置),輸入“w”(保存分區表),開始分區。
這里是以創建1個分區為例,用戶也可以根據自己的需求創建多個分區。
3. 查看新分區
使用“fdisk -l”命令,即可查看到,新的分區xvdc2已經創建完成
4. 格式化新分區
在進行分區格式化時,用戶可以自行決定文件系統的格式,如ext2、ext3等。
這里以“ext3”為例:
使用下面的命令對新分區進行格式化。
mkfs.ext3 /dev/ xvdc2
5.掛載新分區
使用命令“mkdir /data1”創建data1目錄,再通過“mount /dev/xvdc2 /data1”命令手動掛載新分區后,用“df -h”命令查看,出現以下信息說明掛載成功,即可以查看到數據盤了。
6.添加分區信息
如果希望雲服務器在重啟或開機時能自動掛載數據盤,必須將分區信息添加到/etc/fstab中。如果沒有添加,則雲服務器重啟或開機后,都不能自動掛載數據盤。
使用“echo '/dev/xvdc2 /data1 ext3 defaults 0 0' >> /etc/fstab
”命令添加分區信息后,使用“cat /etc/fstab”命令查看,出現以下信息表示添加分區信息成功。
新空間增加到已有分區空間中
1. 查看數據盤信息
登錄Linux雲服務器后,可以使用“fdisk -l”命令查看數據盤的已分區和未分區的信息。使用“df –h”命令,無法看到未分區和格式化的數據盤。
2. 卸載正在使用的磁盤
使用以下命令,卸載已掛載的需要擴容的磁盤
umount /data
3. 數據盤分區
執行以下命令:
fdisk /dev/xvdc
按照界面的提示,一次輸入”p”(查看已有分區信息), ”d”(刪除需要擴容的分區)、“n”(新建分區)、“p”(新建主分區)、“1”(使用第1個主分區,必須保持與需要擴容的分區一樣),兩次回車(使用默認配置),輸入“w”(保存分區表),開始分區。
這里是以創建1個分區為例,用戶也可以根據自己的需求擴容多個分區。
4. 檢查擴容后的分區
使用“fdisk –l /dev/xvdc1”命令,即可查看到,新的分區xvdc1已經創建並擴容完成
再使用e2fsck -f /dev/xvdc1檢查擴容的分區是否ok
5. 擴容分區
使用resize2fs /dev/xvdc1命令擴容分區
6.掛載擴容后的分區
通過“mount /dev/xvdc1 /data”命令手動掛載擴容后的分區,用“df -h”命令查看,出現以下信息說明掛載成功,即可以查看到數據盤了。
再執行”ll /data”命令,可以查看到,擴容后原分區的數據沒有丟失
將新空間增加到已有分區空間中(第二中情況適用於磁盤未分區)
若原有的硬盤分區為一個MBR分區(可以看到vdb1,vdc1等字樣),同時在此分區上制作了文件系統。或原有的硬盤沒有分區,直接在此硬盤上制作了文件系統。這兩種情況都可以選擇使用自動擴容工具進行擴容。
自動擴容工具適用於Linux操作系統,用於將擴容時新擴的雲硬盤存儲空間添加到已存在的文件系統中,擴容能夠成功必須滿足下面3個條件:
-
文件系統是ext2/ext3/ext4
-
當前文件系統不能有錯誤
-
擴容后的磁盤大小不超過2TB
下面介紹自動擴容工具的使用方法。
卸載正在使用的硬盤分區
執行以下命令卸載分區:
umount 掛載點
下載一鍵擴容工具
執行以下命令下載工具:
wget -O /tmp/devresize.py http://mirrors.tencentyun.com/install/virts/devresize.py
執行擴容工具
執行以下命令進行擴容:
python /tmp/devresize.py 硬盤路徑
請注意,這里硬盤路徑是需要擴容的雲硬盤,而不是分區名。若您的文件系統在vdb1上,則應執行python /tmp/devresize.py /dev/vdb
若輸出“The filesystem on /dev/vdb1 is now XXXXX blocks long.“則表示擴容成功。
若輸出的是“[ERROR] - e2fsck failed!!“,請先用fsck對文件系統所在分區進行修復,可以執行以下命令進行自動修復:
fsck -a 分區路徑
請注意這里與前一個命令不同,需要填寫的是文件系統所在分區。若您的文件系統在vdb1上,則應執行fsck -a /dev/vdb1
。
修復成功后,再使用python /tmp/devresize.py 硬盤路徑
來使用擴容工具進行擴容。
重新掛載擴容后的分區
執行以下命令掛載擴容后的分區:
mount 分區路徑 掛載點
並通過以下命令查看擴容后的分區容量:
df -h
這里通過mount /dev/vdb1 /data
命令手動掛載擴容后的分區(如果原先是沒有分區的,執行mount /dev/vdb /data
),用df -h
命令查看,出現以下信息說明掛載成功,即可以查看到數據盤了:
再執行ll /data
命令,可以查看到,擴容后原分區的數據沒有丟失,新增加的存儲空間已經擴容到文件系統中。