擴容數據盤(Linux 實例)
隨著業務的增長,您的磁盤容量可能無法滿足數據存儲的需要,這時您可以擴容磁盤。
本文檔介紹的方法只適用于數據盤。如果要擴容系統盤,需要采用更換系統盤的方式。請參考 更換硬盤。
擴容須知
擴容前
- 建議在擴容磁盤之前 手動創建快照,以備份數據。
- 磁盤上如果正在執行創建快照的操作,則此時不允許進行擴容操作。
- 只做磁盤容量的擴容,不做文件系統的擴容。
- 支持普通盤的擴容,不支持本地盤(本地磁盤、本地 SSD 盤)的擴容。
- 掛載在實例上的數據盤,只有實例為 運行中 (Running) 或者 已停止 (Stopped) 狀態時,才可以進行擴容操作。
擴容后
- 使用 ECS 控制臺或者 Open API 擴容磁盤之后,需要在 ECS 控制臺或者使用 Open API 重啟實例之后才可以生效。
- 擴容生效之后的磁盤,仍然需要用戶手動格式化擴展的存儲空間。
操作步驟
本文檔以 Ubuntu 14.04 系統為例,介紹如何進行磁盤擴容。其他 Linux 系統的操作相似。
本實例中,選定最初的磁盤大小為 63 GB,我們將其擴容到 70 GB。
-
登錄 控制后臺。
-
單擊左側導航中的 實例。然后選擇頁面頂部的地域。
-
首先進入磁盤列表頁面,點擊 更多 > 磁盤擴容。注意只有 數據盤 才有該選項。對于 系統盤, 需要通過 更換操作系統 的方式進行擴容。
-
進入擴容頁后,填寫擴容后的磁盤容量大小,單擊 去擴容。
也可以直接使用 OpenAPI 進行擴容操作:ResizeDisk --DiskId=d-94tomxanq --NewSize=70
- 重啟服務器。進入實例列表頁面,點擊 更多,選擇 重啟。
或者使用 OpenAPI 進行重啟操作:RebootInstance --InstanceId=i-94lw423m7
-
登錄到 ECS 實例。
-
如果磁盤是之前是 mount 在服務器上的,先 umount 磁盤。
umount /mnt/dev1
- 刪除原有分區并新建分區。如果此前未分區,直接格式化使用,請直接跳到第 9 步。
有些用戶使用 parted 工具來操作分區,但是 parted 和 fdisk 不能交叉使用的,否則會導致分區的起始扇區不一致的問題。因此刪除原有分區建新分區的時候,請按照如下步驟進行操作:
1). 使用 fdisk -l 羅列一下分區信息并記錄一下即將擴容磁盤的最終容量、起始扇區位置。
2). 使用 fdisk 指令,輸入 d 來刪除原有的分區。
3). 依次輸入 n,p,1 來新建分區。
4). 選擇 sector 時,在此示例中直接回車選擇默認值,您也可以按照自己的需求來選擇。為了保證數據的一致性,First sector 建議和之前的分區保持一致。
下面是使用 fdisk的示例:
``` root@iZ94lw423m7Z:~# fdisk /dev/xvdb Command (m for help): d Selected partition 1 Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-146800639, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-146800639, default 146800639): Using default value 146800639 Command (m for help): wq The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. ```
如果在 First sector 這發現位置和之前記錄的不一致,說明之前可能使用了 parted 來分區的,那么就停止當前的 fdisk 操作,使用 parted 重新操作。
使用 parted 指令,輸入p羅列當前的分區情況,如有則使用 rm+ 序列號來刪除老的分區表,然后使用 unit s 定義起始位置單位使用扇區個數計量,最后使用 mkpart 命令來創建即可,如下圖所示。
9 檢查文件系統,并變更文件系統大小。
使用 e2fsck 的時候由于系統需要檢查并訂正文件系統元數據,所以速度較慢、耗時較長,請耐心等待。
使用 e2fsck 和 resize2fs 指令,正確操作情況下,不會造成原有數據丟失的。
``` e2fsck -f /dev/xvdb1 resize2fs /dev/xvdb1 ```
10 將擴容完畢的磁盤掛載回原有的掛載點。
``` mount /dev/xvdb1 /mnt/dev1 ```
11 用 df -TH 指令可以查看到磁盤的信息。
``` df -TH Filesystem Type Size Used Avail Use% Mounted on /dev/xvda1 ext4 22G 1.4G 19G 7% / none tmpfs 4.1k 0 4.1k 0% /sys/fs/cgroup udev devtmpfs 510M 4.1k 510M 1% /dev tmpfs tmpfs 105M 381k 104M 1% /run none tmpfs 5.3M 0 5.3M 0% /run/lock none tmpfs 521M 0 521M 0% /run/shm none tmpfs 105M 0 105M 0% /run/user /dev/xvdb1 ext4 74G 55M 71G 1% /mnt/dev1 ```
推薦閱讀
一 緣由公司服務器磁盤滿了,在擴容的過程中有很多坑,寫出來。 擴容前的磁盤情況, /dev/xvdb1 文件系統已經 二 擴容過程可參考 阿里云擴容官方文檔 第1步:進入 ECS>>>詳細閱讀
地址:http://www.geekbao.cn/jishu/diannao/299869.html