調整磁碟區大小後擴展 Linux 檔案系統 - Amazon Elastic Compute Cloud

調整磁碟區大小後擴展 Linux 檔案系統

增加 EBS 磁碟區的大小之後,您必須使用檔案系統的專用命令,來擴展為更大的檔案系統。您可在磁碟區進入 optimizing 狀態後立即調整檔案系統的大小。

重要

最佳實務是在擴展含有寶貴資料的檔案系統之前先建立磁碟區的快照,以免需要還原變更。如需更多詳細資訊,請參閱 建立 Amazon EBS 快照。如果 Linux AMI 使用 MBR 分割配置,您會受限於最大 2 TiB 的開機磁碟機。如需詳細資訊,請參閱 Linux 磁碟區的需求EBS 磁碟區的大小與組態限制

在 Linux 上擴展檔案系統的程序如下:

  1. 您的 EBS 磁碟區可能具有一個包含檔案系統和資料的分割區。增加磁碟區的大小不會增加分割區的大小。在已調整大小的磁碟區上擴展檔案系統之前,請先檢查磁碟區具有的分割區是否必須擴展為新的磁碟區大小。

  2. 使用檔案系統專用命令將每個檔案系統大小調整為新的磁碟區容量。

如需有關擴展 Windows 檔案系統的詳細資訊,請參閱《Windows 執行個體的 Amazon EC2 使用者指南》中的調整磁碟區大小後擴展 Windows 檔案系統

下列範例會引導您完成擴展 Linux 檔案系統的程序。對於此處未顯示的檔案系統和分割結構,請參閱這些檔案系統和分割結構的說明文件,以取得相關指示。

注意

如果您在 Amazon EBS 磁碟區上使用邏輯磁碟區,則必須使用邏輯磁碟區管理工具 (LVM) 來擴展邏輯磁碟區。如需如何執行這項操作的說明,請參閱如何在整個 EBS 磁碟區建立 LVM 邏輯磁碟區擴展邏輯磁碟區一節。 AWS 知識中心文章。

範例:擴展 NVMe EBS 磁碟區的檔案系統

在此範例中,假設您有一個建置在 Nitro 系統上的執行個體,例如 M5 執行個體。您將開機磁碟區的大小從 8 GB 調整為 16 GB,並將其他磁碟區從 8 GB 調整為 30 GB。請使用下列程序來擴展已調整大小之磁碟區的檔案系統。

擴展 NVMe EBS 磁碟區的檔案系統

  1. 連線到您的執行個體

  2. 若要驗證每個磁碟區的檔案系統,請使用 df -hT 命令。

    [ec2-user ~]$ df -hT

    以下是執行個體的輸出範例,其有一個含 XFS 檔案系統的開機磁碟區,以及另一個含 XFS 檔案系統的磁碟區。命名慣例 /dev/nvme[0-26]n1 指出磁碟區會公開為 NVMe 區塊型儲存設備。

    [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 ...
  3. 若要檢查磁碟區是否有必須擴展的分割區,請使用 lsblk 命令來顯示連接到執行個體之 NVMe 區塊型儲存設備的相關資訊。

    [ec2-user ~]$ 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

    此範例輸出顯示下列內容:

    • 根磁碟區 /dev/nvme0n1 具有分割區 /dev/nvme0n1p1。在根磁碟區的大小反映新大小 (16 GB) 時,分割區的大小會反映原始大小 (8 GB),且必須加以擴展,然後您才能擴展檔案系統。

    • 磁碟區 /dev/nvme1n1 沒有分割區。磁碟區的大小反映新大小 (30 GB)。

  4. 對於具有分割區的磁碟區 (例如上一個步驟中顯示的根磁碟區),請使用 growpart 命令來擴展分割區。請注意,裝置名稱與分割區號碼之間有一個空格。

    [ec2-user ~]$ sudo growpart /dev/nvme0n1 1
  5. (選用) 若要驗證分割區是否反映增加的磁碟區大小,請再次使用 lsblk 命令。

    [ec2-user ~]$ 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
  6. 若要驗證每個磁碟區的檔案系統大小,請使用 df -h 命令。在此範例輸出中,兩個檔案系統都會反映原始磁碟區大小 8 GB。

    [ec2-user ~]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/nvme0n1p1 8.0G 1.6G 6.5G 20% / /dev/nvme1n1 8.0G 33M 8.0G 1% /data ...
  7. 若要擴充每個磁碟區上的檔案系統,請使用適用於您檔案系統的正確指令,如下所示:

    • [XFS 檔案系統] 若要延伸每個磁碟區上的檔案系統,請使用 xfs_growfs 命令。在此範例中,//datadf -h 輸出中顯示的磁碟區裝載點。

      [ec2-user ~]$ sudo xfs_growfs -d / [ec2-user ~]$ sudo xfs_growfs -d /data

      如果尚未安裝 XFS 工具,您可以依照下列方式安裝它們。

      [ec2-user ~]$ sudo yum install xfsprogs
    • [ext4 檔案系統] 若要延伸每個磁碟區上的檔案系統,請使用 resize2fs 命令。

      [ec2-user ~]$ sudo resize2fs /dev/nvme0n1p1 [ec2-user ~]$ sudo resize2fs /dev/nvme1n1
    • [其他檔案系統] 若要延伸每個磁碟區上的檔案系統,請參閱檔案系統的說明文件以取得指示。

  8. (選用) 若要驗證每個檔案系統是否反映增加的磁碟區大小,請再次使用 df -h 命令。

    [ec2-user ~]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/nvme0n1p1 16G 1.6G 15G 10% / /dev/nvme1n1 30G 33M 30G 1% /data ...

範例:擴展 EBS 磁碟區的檔案系統

對於此範例,假設您已將執行個體 (例如 T2 執行個體) 的開機磁碟區大小從 8 GB 調整為 16 GB,並將另一個磁碟區從 8 GB 調整為 30 GB。請使用下列程序來擴展已調整大小之磁碟區的檔案系統。

擴展 EBS 磁碟區的檔案系統

  1. 連線到您的執行個體

  2. 若要驗證每個磁碟區使用的檔案系統,請使用 df -hT 命令。

    [ec2-user ~]$ df -hT

    以下是執行個體的輸出範例,其有一個含 ext4 檔案系統的開機磁碟區,以及另一個含 XFS 檔案系統的磁碟區。

    [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 8.0G 45M 8.0G 1% /data ...
  3. 若要檢查磁碟區是否有必須擴展的分割區,請使用 lsblk 命令來顯示連接到執行個體之區塊型儲存設備的相關資訊。

    [ec2-user ~]$ 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 30G 0 disk └─xvdf1 202:81 0 8G 0 part /data

    此範例輸出顯示下列內容:

    • 根磁碟區 /dev/xvda 具有分割區 /dev/xvda1。在磁碟區的大小為 16 GB 時,分割區的大小仍為 8 GB,且必須加以擴展。

    • 磁碟區 /dev/xvdf 具有分割區 /dev/xvdf1。在磁碟區的大小為 30 GB 時,分割區的大小仍為 8 GB,且必須加以擴展。

  4. 對於具有分割區的磁碟區 (例如上一個步驟中顯示的磁碟區),請使用 growpart 命令來擴展分割區。請注意,裝置名稱與分割區號碼之間有一個空格。

    [ec2-user ~]$ sudo growpart /dev/xvda 1 [ec2-user ~]$ sudo growpart /dev/xvdf 1
  5. (選用) 若要驗證分割區是否反映增加的磁碟區大小,請再次使用 lsblk 命令。

    [ec2-user ~]$ 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 30G 0 disk └─xvdf1 202:81 0 30G 0 part /data
  6. 若要驗證每個磁碟區的檔案系統大小,請使用 df -h 命令。在此範例輸出中,兩個檔案系統都會反映原始磁碟區大小 8 GB。

    [ec2-user ~]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 8.0G 1.9G 6.2G 24% / /dev/xvdf1 8.0G 45M 8.0G 1% /data ...
  7. 若要擴充每個磁碟區上的檔案系統,請使用適用於您檔案系統的正確指令,如下所示:

    • [XFS 磁碟區] 若要擴展每個磁碟區上的檔案系統,請使用 xfs_growfs 命令。在此範例中,//datadf -h 輸出中顯示的磁碟區裝載點。

      [ec2-user ~]$ sudo xfs_growfs -d / [ec2-user ~]$ sudo xfs_growfs -d /data

      如果尚未安裝 XFS 工具,您可以依照下列方式安裝它們。

      [ec2-user ~]$ sudo yum install xfsprogs
    • [ext4 磁碟區] 若要擴展每個磁碟區上的檔案系統,請使用 resize2fs 命令。

      [ec2-user ~]$ sudo resize2fs /dev/xvda1 [ec2-user ~]$ sudo resize2fs /dev/xvdf1
    • [其他檔案系統] 若要延伸每個磁碟區上的檔案系統,請參閱檔案系統的說明文件以取得指示。

  8. (選用) 若要驗證每個檔案系統是否反映增加的磁碟區大小,請再次使用 df -h 命令。

    [ec2-user ~]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 16G 1.9G 14G 12% / /dev/xvdf1 30G 45M 30G 1% /data ...