在調整 Amazon EBS磁碟區大小後擴展檔案系統 - Amazon EBS

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在調整 Amazon EBS磁碟區大小後擴展檔案系統

增加EBS磁碟區 的大小後,您必須將分割區和檔案系統擴展到新的較大大小。您可在磁碟區進入 optimizing 狀態後立即執行此操作。

開始之前

  • 建立磁碟區的快照,以防您需要復原變更。如需詳細資訊,請參閱建立 Amazon EBS快照

  • 確認磁碟區修改成功,且已處於 optimizing 或者 completed 狀態。如需詳細資訊,請參閱監控 Amazon EBS磁碟區修改的進度

  • 請確保磁碟區已連接至執行個體,且已格式化並掛載。如需詳細資訊,請參閱格式化和掛載連接的磁碟區

  • 僅限 Linux 執行個體 ) 如果您在 Amazon 磁碟EBS區上使用邏輯磁碟區,則必須使用邏輯磁碟區管理員 (LVM) 來擴展邏輯磁碟區。如需如何執行此操作的指示,請參閱如何在整個磁碟區上建立邏輯磁碟區?知識中心文章中的擴展邏輯磁碟區一節。 LVM EBS AWS

注意

下列指示會逐步引導您完成擴展 Linux XFSExt4 檔案系統。如需延伸不同檔案系統的相關資訊,請參閱其文件。

在 Linux 上擴展檔案系統之前,如果您的磁碟區有分割區,則必須擴展分割區。

擴展EBS磁碟區的檔案系統

請使用下列程序來擴展已調整大小之磁碟區的檔案系統。

請注意,在 Nitro System 上建置的 Xen 執行個體和執行個體的裝置和分割區命名不同。若要判斷您的執行個體是 Xen 型還是 Nitro 型,請使用 describe-instance-types AWS CLI 命令,如下所示:

[ec2-user ~]$ aws ec2 describe-instance-types --instance-type instance_type --query "InstanceTypes[].Hypervisor"

nitro 表示您的執行個體是以 Nitro 為基礎。 xen 表示您的執行個體是以 Xen 為基礎。

擴展EBS磁碟區的檔案系統
  1. 連線到您的執行個體

  2. 如有需要,請調整分割區的大小。若要這麼做:

    1. 檢查磁碟區是否具有分割區。使用 lsblk 命令。

      Nitro instance example

      在下列範例輸出中,根磁碟區 (nvme0n1) 有兩個分割區 (nvme0n1p1nvme0n1p128),而額外的磁碟區 (nvme1n1) 沒有分割區。

      [ec2-user ~]$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme1n1 259:0 0 30G 0 disk /data nvme0n1 259:1 0 16G 0 disk └─nvme0n1p1 259:2 0 8G 0 part / └─nvme0n1p128 259:3 0 1M 0 part
      Xen instance example

      在下列範例輸出中,根磁碟區 (xvda) 有一個分割區 (xvda1),而額外的磁碟區 (xvdf) 沒有分割區。

      [ec2-user ~]$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 16G 0 disk └─xvda1 202:1 0 8G 0 part / xvdf 202:80 0 24G 0 disk

      如果磁碟區具有分割區,則從下列步驟 (2b) 繼續執行此程序。如果磁碟區沒有分割區,則請跳過步驟 2b、2c 和 2d,並繼續步驟 3 的程序。

      疑難排解秘訣

      如果在命令輸出中沒有看到該磁碟區,請確保該磁碟區連接到執行個體,並且已格式化和掛載

    2. 檢查分割區是否需要擴展。在上一步的 lsblk 命令輸出中,比較分割區大小和磁碟區大小。

      如果分割區大小小於磁碟區大小,請繼續執行下一個步驟。如果分割區大小等於磁碟區大小,則無法擴展分割區。

      疑難排解秘訣

      如果磁碟區仍然反映原始大小,請確認磁碟區修改成功

    3. 擴展分割區。使用 growpart命令並指定裝置名稱和分割區編號。

      Nitro instance example

      分割區編號是 後面的數字p。例如,對於 nvme0n1p1,分割區編號為 1。對於 nvme0n1p128,分割區編號為 128

      若要延伸名為 的分割區nvme0n1p1,請使用下列命令。

      重要

      請注意,裝置名稱 (nvme0n1) 與分割區號碼 (1) 之間有一個空格。

      [ec2-user ~]$ sudo growpart /dev/nvme0n1 1
      Xen instance example

      分割區編號是裝置名稱後面的編號。例如,對於 xvda1,分割區編號為 1。對於 xvda128,分割區編號為 128

      若要延伸名為 的分割區xvda1,請使用下列命令。

      重要

      請注意,裝置名稱 (xvda) 與分割區號碼 (1) 之間有一個空格。

      [ec2-user ~]$ sudo growpart /dev/xvda 1
      對秘訣進行故障診斷
      • mkdir: cannot create directory ‘/tmp/growpart.31171’: No space left on device FAILED: failed to make temp dir:表示磁碟區上沒有足夠的可用磁碟空間,growpart 無法建立執行調整大小所需的暫時目錄。請釋放一些磁碟空間,然後再試一次。

      • must supply partition-number:表示您指定了不正確的分割區。使用 lsblk 命令以確認分割區名稱,並確保您在裝置名稱與分割區號碼之間輸入一個空格。

      • NOCHANGE: partition 1 is size 16773087. it cannot be grown:表示分割區已經擴展到整個磁碟區,無法再進行擴展。確認磁碟區修改成功

    4. 確認分割區已擴展。使用 lsblk 命令。分割區大小現在應該等於磁碟區大小。

      Nitro instance example

      下列範例輸出顯示磁碟區 (nvme0n1) 和分割區 (nvme0n1p1) 大小相同 (16 GB)。

      [ec2-user ~]$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme1n1 259:0 0 30G 0 disk /data nvme0n1 259:1 0 16G 0 disk └─nvme0n1p1 259:2 0 16G 0 part / └─nvme0n1p128 259:3 0 1M 0 part
      Xen instance example

      下列範例輸出顯示磁碟區 (xvda) 和分割區 (xvda1) 大小相同 (16 GB)。

      [ec2-user ~]$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 16G 0 disk └─xvda1 202:1 0 16G 0 part / xvdf 202:80 0 24G 0 disk
  3. 擴展檔案系統。

    1. 獲取需要擴展的檔案系統之名稱、大小、類型和掛載點。使用 df -hT 命令。

      Nitro instance example

      下列範例輸出顯示 /dev/nvme0n1p1 檔案系統的大小為 8 GB,其類型為 xfs,掛載點為 /

      [ec2-user ~]$ df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/nvme0n1p1 xfs 8.0G 1.6G 6.5G 20% / /dev/nvme1n1 xfs 8.0G 33M 8.0G 1% /data ...
      Xen instance example

      下列範例輸出顯示 /dev/xvda1 檔案系統的大小為 8 GB,其類型為 ext4,掛載點為 /

      [ec2-user ~]$ df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/xvda1 ext4 8.0G 1.9G 6.2G 24% / /dev/xvdf1 xfs 24.0G 45M 8.0G 1% /data ...
    2. 擴展檔案系統的命令會因檔案系統類型而有所不同。根據您在上一步記下的檔案系統類型,選擇下列正確命令。

      • 【XFS 檔案系統】 使用 xfs_growfs命令,並指定您在上一個步驟中記下的檔案系統的掛載點。

        Nitro and Xen instance example

        例如,要擴展在 / 上掛載的檔案系統,請使用下列命令。

        [ec2-user ~]$ sudo xfs_growfs -d /
        對秘訣進行故障診斷
        • xfs_growfs: /data is not a mounted XFS filesystem:表示您指定的掛載點不正確,或檔案系統不是 XFS。若要驗證掛載點和檔案系統類型,請使用 df -hT 命令。

        • data size unchanged, skipping:表示檔案系統已擴展整個磁碟區。如果磁碟區沒有分割區,請確認磁碟區修改成功。如果磁碟區有分割區,請確保分割區已依照步驟 2 所述進行擴展。

      • [Ext4 檔案系統] 使用 resize2fs 命令並指定您在上一步記下的檔案系統的名稱。

        Nitro instance example

        例如,要擴展名為 /dev/nvme0n1p1 的已掛載的檔案系統,請使用下列命令。

        [ec2-user ~]$ sudo resize2fs /dev/nvme0n1p1
        Xen instance example

        例如,要擴展名為 /dev/xvda1 的已掛載的檔案系統,請使用下列命令。

        [ec2-user ~]$ sudo resize2fs /dev/xvda1
        對秘訣進行故障診斷
        • resize2fs: Bad magic number in super-block while trying to open /dev/xvda1:表示檔案系統不是 Ext4。若要驗證檔案系統類型,請使用 df -hT 命令。

        • open: No such file or directory while opening /dev/xvdb1:表示您指定了不正確的分割區。若要驗證分割區,請使用 df -hT 命令。

        • The filesystem is already 3932160 blocks long. Nothing to do!:表示檔案系統已擴展整個磁碟區。如果磁碟區沒有分割區,請確認磁碟區修改成功。如果磁碟區有分割區,請確保分割區已依照步驟 2 所述進行擴展。

      • [其他檔案系統] 請參閱檔案系統文件以獲取說明。

    3. 驗證檔案系統已擴展。使用 df -hT 命令並確認檔案系統大小等於磁碟區大小。

使用下列其中一種方法在 Windows 執行個體上擴展檔案系統。

Disk Management utility
使用「磁碟管理」延伸檔案系統
  1. 最佳實務是在擴展含有寶貴資料的檔案系統之前先建立包含該檔案系統之磁碟區的快照,以免需要還原變更。如需詳細資訊,請參閱 建立 Amazon EBS快照

  2. 使用遠端桌面登入 Windows 執行個體。

  3. Run (執行) 對話方塊中輸入 diskmgmt.msc,然後按 Enter 鍵。磁碟管理公用程式隨即開啟。

    Windows Server 磁碟管理公用程式
  4. Disk Management (磁碟管理) 選單中,選擇 Action (動作)、Rescan Disks (重新掃描磁碟)。

  5. 開啟擴展磁碟機的內容 (按一下右鍵) 選單,然後選擇 Extend Volume (擴展磁碟區)。

    注意

    如果有下列情況,Extend Volume (擴展磁碟區) 可能會停用 (呈現灰色):

    • 未配置空間不鄰近於磁碟機。未配置的空間必須鄰近您想要擴展的磁碟機右側。

    • 磁碟區使用主開機記錄 (MBR) 分割區樣式,且大小已達 2TB。使用 的磁碟區大小MBR不得超過 2TB。

    Windows Server 磁碟管理公用程式
  6. Extend Volume (擴展磁碟區) 精靈中,選擇 Next (下一步)。在 Select the amount of space in MB (選取空間容量,以 MB 計),輸入 MB 單位數量以擴展磁碟區。通常,您會指定最大的可用空間。Selected (已選取) 底下的反白文字為新增的空間量,不是磁碟區最終的大小。完成協助程式。

    Windows Server 擴展磁碟區精靈
  7. 如果您增加沒有 AWS NVMe驅動程式的執行個體上的NVMe磁碟區大小,您必須重新啟動執行個體,讓 Windows 看到新的磁碟區大小。如需安裝 AWS NVMe驅動程式的詳細資訊,請參閱 AWS NVMe Windows 執行個體的驅動程式

PowerShell

使用下列程序來擴展使用 的 Windows 檔案系統 PowerShell。

使用 擴展檔案系統 PowerShell
  1. 最佳實務是在擴展含有寶貴資料的檔案系統之前先建立包含該檔案系統之磁碟區的快照,以免需要還原變更。如需詳細資訊,請參閱 建立 Amazon EBS快照

  2. 使用遠端桌面登入 Windows 執行個體。

  3. 以管理員 PowerShell 身分執行 。

  4. 執行 Get-Partition command. PowerShell return 會傳回每個分割區的對應分割區編號、磁碟機代號、偏移、大小和類型。請注意要延伸的分割區磁碟機代號。

  5. 執行下列命令來重新掃描磁碟。

    "rescan" | diskpart
  6. 執行下列命令,使用您在步驟 4 中記下的磁碟機代號取代 <drive-letter>。 會以位元組為單位 PowerShell 傳回允許的分割區大小下限和上限。

    Get-PartitionSupportedSize -DriveLetter <drive-letter>
  7. 若要將磁碟分割區擴充至指定容量,請執行以下命令,輸入新的磁碟區大小以取代 <size>。您可以輸入以 KBMBGB 為單位的大小,例如 50GB

    Resize-Partition -DriveLetter <drive-letter> -Size <size>

    若要將磁碟分割區擴充至可用大小上限,請執行以下命令。

    Resize-Partition -DriveLetter <drive-letter> -Size $(Get-PartitionSupportedSize -DriveLetter <drive-letter>).SizeMax

    下列 PowerShell 命令顯示將檔案系統擴展到特定大小的完整命令和回應流程。

    使用 PowerShell - 特定擴展分割區

    下列 PowerShell 命令顯示將檔案系統擴展到最大可用大小的完整命令和回應流程。

    使用 PowerShell - max 擴展分割區