調整 EBS 卷大小後擴展文件系統 - Amazon EBS

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

調整 EBS 卷大小後擴展文件系統

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

開始之前

注意

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

在 Linux 上擴展文件系統之前,如果您的卷有分區,則必須擴展該分區。

擴展 EBS 磁碟區的檔案系統

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

請注意,在 Nitro 系統上建置的 Xen 執行個體和執行個體的裝置和分割區命名會有所不同。若要判斷您的執行個體是以 Xen 為基礎還是以硝基為基礎,請依照下列方式使用指describe-instance-types AWS CLI 令:

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

nitro 表示執行個體基於 Nitro。xenxen-on-nitro 表示執行個體基於 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

      例如,若要擴展名為 nvme0n1p1 的分割區,請使用下列命令。

      重要

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

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

      例如,若要擴展名為 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 驅動程式的詳細資訊,請參閱適用於 Windows 執行個體的 AWS NVMe 驅動程式

PowerShell

請使用下列程序來擴充 Windows 檔案系統 PowerShell。

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

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

  3. 以管理員 PowerShell 身份運行。

  4. 執行Get-Partition命令。 PowerShell 返回每個分區的相應分區號,驅動器號,偏移量,大小和類型。請注意要延伸的分割區磁碟機代號。

  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 擴展分區