ディスクの容量を拡張した後、パーティションとファイルシステムも拡張する必要があります。 このプロセスは、新しく追加された容量を既存のパーティションとファイルシステムに割り当て、オペレーティングシステムが追加の領域を使用できるようにします。 このトピックでは、RDS Custom インスタンスのディスクのパーティションとファイルシステムを拡張する方法について説明します。
前提条件
RDS Custom インスタンスは、次の要件を満たしています。
ステータスは [実行中] です。
オペレーティングシステムは Alibaba Cloud Linux 2/3、CentOS 7 以降、Debian 11 以降、または Ubuntu 14 以降です。
ディスクは、次の要件を満たしています。
ステータスは [使用中] です。
システムディスクの使用率は 100% 未満です。
重要拡張を確実に成功させるために、インスタンスにログインし、
df -hコマンドを実行して、ルートパーティションの使用率が 100% 未満であることを確認してください。
ディスク容量を拡張しましたが、パーティションとファイルシステムはまだ拡張していません。
注意事項
強くお勧めしますが、ディスクを拡張する前に、ディスクのスナップショットを作成してデータをバックアップしてください。
パーティションとファイルシステムの拡張ではデータが失われることはありません。 ただし、誤操作によるデータ損失を防ぐために、スナップショットを作成してディスクデータをバックアップすることをお勧めします。
手順
手順 1: 拡張するディスクの情報を表示し、拡張手順を確認する
次のコマンドを実行して、拡張するディスクの名前とそのパーティション情報を表示します。
sudo fdisk -lu
ディスクがパーティション分割されているかどうかを確認します。 上の図では、インスタンスには 3 つのディスクがあります。システムディスク
/dev/nvme0n1と 2 つのデータディスク /dev/nvme1n1 と /dev/nvme2n1 です。 データディスクを例として使用します。データディスク
/dev/nvme1n1はパーティション分割されています。/dev/nvme1n1p1 パーティションがあります。データディスク
/dev/nvme2n1はパーティション分割されていません (raw デバイスです)。
ディスクのパーティションタイプを決定します。
Disklabel typeフィールドは、パーティションタイプを示します。 値gptは GUID パーティションテーブル (GPT) を示し、値dosはマスターブートレコード (MBR) を示します。 この例では、ディスクは GPT パーティションタイプを使用しています。
次のコマンドを実行して、拡張するディスクのファイルシステム情報を取得します。
パーティション分割されていないディスクの場合
sudo file -s /dev/raw_device_nameパーティション分割されたディスクの場合
sudo file -s /dev/partition_name
/dev/nvme1n1p1パーティションを例に説明します。 次のコマンドを実行します。sudo file -s /dev/nvme1n1p1次の結果が返された場合、
/dev/nvme1n1p1パーティションのファイルシステムは ext4 です。/dev/nvme1n1p1: Linux rev 1.0 ext4 filesystem data, UUID=342527ce-**** (needs journal recovery) (extents) (64bit) (large files) (huge files)/dev/nvme1n1p1: data が返された場合、パーティションにはファイルシステムがありません。
実行する拡張手順を確認します。
ディスクがパーティション分割されており、ファイルシステムがある場合: 最初に、手順 2: パーティションを拡張するを実行します。 次に、手順 3: ファイルシステムを拡張するを実行します。
説明MBR パーティション形式は、2 TiB を超えるディスクをサポートしていません。 ディスクが MBR パーティションタイプを使用しており、2 TiB を超えるサイズに拡張する場合、最初に MBR パーティションを GPT パーティションに変換してから、パーティションとファイルシステムを拡張する必要があります。
ディスクがパーティション分割されているが、ファイルシステムがない場合: 手順 2: パーティションを拡張するのみを実行します。
ディスクがパーティション分割されていないが、ファイルシステムがある場合: 手順 3: ファイルシステムを拡張するのみを実行します。
ディスクがパーティション分割されておらず、ファイルシステムもない場合: このトピックの操作を実行する必要はありません。
手順 2: パーティションを拡張する
ディスクがパーティション分割されていないが、ファイルシステムがある場合は、パーティションを拡張する必要はありません。 手順 3: ファイルシステムを拡張するを直接実行できます。
次のコマンドを実行して、パーティションを拡張します。 この例では、
/dev/nvme1n1p1パーティションを使用します。/dev/nvme1n1はディスク名で、1(p1内)はパーティション番号です。 ディスク名とパーティション番号の間にはスペースが必要です。 コマンド内のディスク名とパーティション番号を実際の値に置き換えてください。Alibaba Cloud Linux 2/3、CentOS 7 以降
GPT パーティション ( gdisk ツールが必要です。)
type growpart || sudo yum install -y cloud-utils-growpart sudo yum update cloud-utils-growpart type sgdisk || sudo yum install -y gdisk sudo LC_ALL=en_US.UTF-8 growpart /dev/nvme1n1 1MBR パーティション
type growpart || sudo yum install -y cloud-utils-growpart sudo yum update cloud-utils-growpart sudo LC_ALL=en_US.UTF-8 growpart /dev/nvme1n1 1
Debian 11 以降、Ubuntu 14 以降
GPT パーティション ( gdisk ツールが必要です。)
sudo apt-get update sudo apt-get install -y cloud-guest-utils type sgdisk || sudo apt-get install -y gdisk sudo LC_ALL=en_US.UTF-8 growpart /dev/nvme1n1 1MBR パーティション
sudo apt-get update sudo apt-get install -y cloud-guest-utils sudo LC_ALL=en_US.UTF-8 growpart /dev/nvme1n1 1
重要NVMe ディスクの場合、
/dev/nvme1n1p1パーティションを例に説明します。/dev/nvme1n1はディスク名で、1(p1内)はパーティション番号です。 ディスク名とパーティション番号の間にはスペースが必要です。 パーティションを拡張するには、growpart /dev/nvme1n1 1コマンドを実行します。仮想ディスクの場合、
/dev/vdb1パーティションを例に説明します。/dev/vdbはディスク名で、1はパーティション番号です。 ディスク名とパーティション番号の間にはスペースが必要です。 拡張コマンドはgrowpart /dev/vdb 1です。LC_ALL=en_US.UTF-8は、中国語オペレーティングシステムの文字コードとの互換性を確保するための環境変数設定です。ディスクに複数の連続したパーティションがある場合、最後のパーティションのみを拡張できます。 たとえば、データディスク
/dev/nvme3n1には、/dev/nvme3n1p1、/dev/nvme3n1p2、/dev/nvme3n1p3の 3 つのパーティションがあります。 最後のパーティション/dev/nvme3n1p3のみ拡張できます。 データディスクのパーティションを拡張するには、growpart /dev/nvme3n1 3コマンドを実行します。拡張するディスクパーティションが MBR パーティションテーブルの拡張パーティションである場合 (パーティション番号は通常 5 以上です)、論理パーティションを拡張する前に拡張パーティションを拡張する必要があります。 たとえば、
/dev/nvme1n1p1(プライマリパーティション)、/dev/nvme1n1p2(拡張パーティション)、/dev/nvme1n1p5(論理パーティション) の 3 つのパーティションがある場合、growpart /dev/nvme1n1 2を実行してから、growpart /dev/nvme1n1 5を実行してパーティションを拡張する必要があります。
CHANGEDを含むメッセージが返された場合、パーティションは拡張されています。CHANGED: partition=1 start=2048 old: size=41938944 end=41940991 new: size=52426719 end=52428766次のコマンドを実行して、パーティションが拡張されたかどうかを確認します。
sudo fdisk -lu/dev/nvme1n1p1パーティションの拡張を例に説明します。/dev/nvme1n1p1パーティションの容量が /dev/nvme1n1 ディスクの容量と同じであれば、パーティションは正常に拡張されています。
手順 3: ファイルシステムを拡張する
次のコマンドを実行して、拡張するデバイスのマウントディレクトリを取得します。
df -Th
Typeの値はファイルシステムタイプです。Mounted onの値は、パーティションのマウントディレクトリです。 次に例を示します。/dev/nvme2n1ディスクのファイルシステムは ext4 で、マウントディレクトリは /tmp です。/dev/nvme1n1p1パーティションのファイルシステムは ext4 で、マウントディレクトリは /mnt です。
説明[ファイルシステム] の値が nvme2n1 などのディスク名の場合、デスティネーションディスクはパーティション分割されておらず、raw デバイスです。 値が /dev/nvme1n1p1 などのパーティション名の場合、デスティネーションディスクはパーティション分割されています。
次のコマンドを実行して、ファイルシステムを拡張します。
ext* (ext2、ext3、ext4 など) ファイルシステム
/dev/nvme2n1ディスクなどのパーティション分割されていないディスクの場合。sudo resize2fs /dev/nvme2n1たとえば、/dev/nvme1n1p1 はディスクパーティションです。
sudo resize2fs /dev/nvme1n1p1
xfs ファイルシステム
マウントディレクトリが/mnt である xfs ファイルシステムの拡張を例に説明します。 必要に応じて、コマンド内のマウントディレクトリを置き換えてください。
Alibaba Cloud Linux 2/3、CentOS 7 以降
type xfs_growfs || sudo yum install -y xfsprogs sudo xfs_growfs /mntDebian 11 以降、Ubuntu 14 以降
type xfs_growfs || sudo apt-get install -y xfsprogs sudo xfs_growfs /mnt
btrfs ファイルシステム
マウントディレクトリが/mnt である btrfs ファイルシステムの拡張を例に説明します。 必要に応じて、コマンド内のマウントディレクトリを置き換えてください。
sudo btrfs filesystem resize max /mntdf -Thコマンドを実行して、拡張が成功したかどうかを確認します。たとえば、
/dev/nvme1n1p1パーティションを含むディスクが 25 GiB に拡張されています。 ファイルシステムが拡張されると、その容量も 25 GiB になります。説明ファイルシステムは特定量のストレージ容量を占有するため、ファイルシステムの空き容量は、拡張されたディスクの合計容量よりわずかに小さくなる場合があります。