すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:Linuxインスタンスでサイズが2 TiBを超えないデータディスクを初期化する

最終更新日:Sep 10, 2024

新しいデータディスクをLinux Elastic Compute Service (ECS) インスタンスに接続した後、ディスクがオペレーティングシステムによって認識され、データの保存に使用される前に、データディスクを初期化する必要があります。 データディスクのサイズが2 TiBを超えず、さまざまなカテゴリのデータをさまざまなパーティションに保存および管理する場合は、このトピックで説明する初期化操作を実行できます。 初期化動作は、データディスクを分割し、ファイルシステムをディスクにマウントすることを含む。

説明

このトピックで説明する初期化操作は、Linux ECSインスタンスと一緒に作成された空のデータディスク、または個別に作成されECSインスタンスにアタッチされた空のデータディスクに対してのみ実行できます。 詳細については、「概要」トピックのシナリオセクションを参照してください。

前提条件

データディスクがLinux ECSインスタンスにアタッチされ、[使用中] 状態になっています。 詳細については、「データディスクのアタッチ」をご参照ください。

説明

Linux ECSインスタンスと一緒に作成されたデータディスクは、すでにインスタンスに接続されています。

手順

次の例では、Alibaba Cloud Linux 3を実行するECSインスタンスが使用されています。 データディスクを初期化するために実行できるコマンドは、インスタンスのオペレーティングシステムによって異なる場合があります。

手順1: Linux ECSインスタンスに接続してデータディスクを表示

  1. Linux ECSインスタンスに接続します。

    詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。

  2. 次のコマンドを実行して、データディスクのデバイス名を取得します。

    sudo fdisk -lu

    次のコマンド出力は、2つのディスクがLinux ECSインスタンスに接続されていることを示します。

    • ①: /dev/vdaはシステムディスクで、インスタンスとともに作成され、すでに初期化されています。

    • ②: /dev/vdbはデータディスクで、初期化が必要です。

    image

(条件付きで必要) 手順2: データディスクにパーティションを作成する

アプリケーション、ファイル、ストレージデータなど、さまざまなカテゴリのデータをさまざまなパーティションに個別に保存、保守、および管理する場合は、この手順を実行してデータディスクにパーティションを作成します。 データディスクを生のディスクとして使用する場合は、ディスクを分割する必要なしに、ディスクのファイルシステムを作成できます。 詳細については、「rawディスクにファイルシステムを作成する」をご参照ください。

重要
  • パーティションの最大サイズとディスクあたりのパーティションの最大数は、パーティションの形式によって異なります。 詳細については、「概要」トピックのパーティション形式セクションをご参照ください。

  • その後、データディスクを2 TiBを超えるサイズに拡張する場合は、ディスクをGUIDパーティションテーブル (GPT) 形式でパーティション化します。 データディスクをMaster Boot Record (MBR) 形式でパーティション分割する場合、ディスクを2 TiBを超えるサイズに拡張することはできません。 MBRパーティション形式のデータディスクを2 TiBを超えるサイズに拡張すると、ディスクの再パーティション化と再フォーマットが必要になる場合があり、データが失われます。

GPTパーティションの作成

Partedツールを使用して、サイズが2 TiBを超えないデータディスクにGPTパーティションを作成するには、次の手順を実行します。

  1. 次のコマンドを実行してPartedをインストールします。

    sudo yum install -y parted
    説明

    この手順で使用するyumコマンドは、CentOSなどのLinuxディストリビューションに適用できます。 他のLinuxディストリビューションの場合は、パッケージ管理ソフトウェアに基づいてコマンドを変更します。 たとえば、次のコマンドを実行して、DebianまたはUbuntuにPartedをインストールします。

    sudo apt-get update
    sudo apt-get install -y parted
  2. Partedを使用してデータディスクを分割します。

    1. 次のコマンドを実行して、データディスクを分割します。 この例では、/dev/vdbデータディスクが使用されています。

      sudo parted /dev/vdb

      /dev/vdbはデータディスクのデバイス名です。 /dev/vdbをデータディスクの実際のデバイス名に置き換えます。

    2. [Parted] コマンドラインで、次のコマンドを実行して、パーティション形式をGPTに設定します。

      mklabel gpt
    3. 次のコマンドを実行してプライマリパーティションを作成し、パーティションの開始位置と終了位置を指定します。

      この例では、primaryという名前のプライマリパーティションがデータディスクに作成され、ディスク容量の100% がプライマリパーティションに割り当てられます。

      mkpart primary 1 100%
    4. (条件付きで必要) データディスクに複数のパーティションを作成する場合は、手順cを繰り返します。

    5. 次のコマンドを実行して、パーティションが整列しているかどうかを確認します。

      プライマリパーティションの数は1です。 ディスクのパフォーマンスを最適化するには、パーティションを調整することを推奨します。

      align-check optimal 1

      パーティションが整列している場合、次のコマンド出力が返されます。

      1 aligned
      説明

      パーティションがずれている場合は、1 not alignedが返されます。 位置ずれの問題を解決する方法については、このトピックの「ディスク初期化に関するよくある質問」をご参照ください。

    6. 次のコマンドを実行して、パーティションテーブルを確認します。

      print
    7. 次のコマンドを実行してPartedを終了します。

      quit

    次の図は、パーティション分割プロセスを示しています。

    image.png

  3. 次のコマンドを実行して、パーティションテーブルを再読み込みします。

    partprobe
  4. 次のコマンドを実行して、新しいパーティションに関する情報を表示します。 この例では、/dev/vdbデータディスクが使用されています。

    sudo fdisk -lu /dev/vdb

    /dev/vdbはデータディスクのデバイス名です。 /dev/vdbをデータディスクの実際のデバイス名に置き換えます。

    次のコマンド出力が返されます。 新しいパーティションが作成されると、GPTに関する情報が表示されます。

    image.png

MBRパーティションの作成

fdiskを使用して、サイズが2 TiBを超えないデータディスクにMBRパーティションを作成するには、次の手順を実行します。

  1. MBRパーティションを作成します。

    1. 次のコマンドを実行して、データディスクを分割します。 この例では、/dev/vdbデータディスクが使用されています。

      sudo fdisk -u /dev/vdb

      /dev/vdbはデータディスクのデバイス名です。 /dev/vdbをデータディスクの実際のデバイス名に置き換えます。

      次のコマンド出力が返されます。

      image.png

    2. fdiskコマンドラインで、pを押して、入力キーを使用して、データディスクのパーティション情報を確認します。

      次のコマンド出力が返されます。

      image.png

    3. 入力nを押して、入力キーを使用してデータディスクを分割します。

      次のコマンド出力が返されます。

      image.png

      前の図に示すように、データディスクには2種類のパーティションがあります。

      • p: プライマリパーティション。

      • e: 拡張パーティション。

        説明

        パーティションの詳細については、「概要」トピックのパーティション形式セクションをご参照ください。

    4. この例では、プライマリパーティションは1つだけ作成されます。 入力pを押して、入力キーを使用してプライマリパーティションを作成します。

      次のコマンド出力が返されます。

      image.png

      パーティション番号は、プライマリパーティションの番号を示し、1から4の範囲です。

    5. パーティション番号を入力し、入力キーを使用します。

      この例では、プライマリパーティションは1つだけ作成されます。 Enterキーを押して、プライマリパーティションの番号としてデフォルト値1を使用します。

      次のコマンド出力が返されます。

      image.png

    6. 開始セクタ番号を入力し、入力キーを使用します。

      第1セクタは、パーティションの開始セクタ番号を指定する。 有効な値: 2048〜83886079。 デフォルト値:2048。 この例では、Enterキーを押して、開始セクタ番号としてデフォルト値2048を使用します。

      次のコマンド出力が返されます。

      image.png

      説明

      選択可能な開始セクタ番号の範囲と終了セクタ番号の範囲が自動的に表示されます。 範囲に含まれる開始セクタ番号と終了セクタ番号を指定するか、デフォルト値を使用できます。 開始セクタ番号は、終了セクタ番号よりも小さくなければならない。

    7. エンドセクター番号を入力し、入力キーを使用します。

      Last sectorは、パーティションの終了セクタ番号を示します。 有効な値: 2048〜83886079。 デフォルト値: 83886079 この例ではEnterキーを押して、デフォルト値83886079を終了セクタ番号として使用します。

      次のコマンド出力が返されます。

      image.png

      説明

      選択可能な開始セクタ番号の範囲と終了セクタ番号の範囲が自動的に表示されます。 範囲に含まれる開始セクタ番号と終了セクタ番号を指定するか、デフォルト値を使用できます。 開始セクタ番号は、終了セクタ番号よりも小さくなければならない。

    8. pを押して、入力キーを使用して、データディスクのパーティション情報を表示します。

      新しいパーティション /dev/vdb1に関する詳細情報を含む次のコマンド出力が返されます。

      image.png

      説明

      上記のパーティション分割操作が成功しなかった場合は、qを入力してfdiskを終了します。 分割結果は保持されません。 上記の手順を再度実行できます。

    9. wを押して、入力キーを使用して、パーティショニング結果をパーティションテーブルに書き込みます。

      次のコマンド出力は、パーティションが作成されたことを示します。

      image.png

  2. (条件付きで必要) データディスク上に複数のパーティションを作成する場合は、ステップ1を繰り返します。

  3. 次のコマンドを実行して、新しいパーティションの情報を表示します。 この例では、/dev/vdbデータディスクが使用されています。

    sudo fdisk -lu /dev/vdb

    /dev/vdbはデータディスクのデバイス名です。 /dev/vdbをデータディスクの実際のデバイス名に置き換えます。

    次のコマンド出力が返されます。 新しいパーティションが作成されると、/dev/vdb1に関する情報が表示されます。

    image.png

ステップ3: ファイルシステムの作成とマウント

ディスクがアタッチされているECSインスタンスのオペレーティングシステムによってディスクが認識され、期待どおりに使用される前に、ディスクがパーティション分割されているかどうかに関係なく、データディスクにファイルシステムを作成してマウントする必要があります。 作成できるファイルシステムの種類は、パーティションのサイズによって異なります。 ビジネス要件を満たすファイルシステムを作成します。

  1. 次のコマンドを実行してe2fsprogsをインストールします。

    sudo yum install -y e2fsprogs
    説明

    この手順で使用するyumコマンドは、CentOSなどのLinuxディストリビューションに適用できます。 他のLinuxディストリビューションの場合は、パッケージ管理ソフトウェアに基づいてコマンドを変更します。 たとえば、DebianまたはUbuntuでapt-get install <Package name> コマンドを実行します。

  2. ファイルシステムを作成します。 この例では、Ext4ファイルシステムとXFSファイルシステムが作成されています。

    Ext4ファイルシステムの作成

    sudo mkfs -t ext4 /dev/vdb1

    /dev/vdb1は、データディスクのパーティション名です。 /dev/vdb1を実際のパーティション名に置き換えます。

    説明

    次のコマンド出力が返されます。これは、データディスクの /dev/vdb1パーティション用にExt4ファイルシステムが作成されていることを示しています。

    image.png

    XFSファイルシステムの作成

    sudo mkfs -t xfs /dev/vdb1

    /dev/vdb1は、データディスクのパーティション名です。 /dev/vdb1を実際のパーティション名に置き換えます。

    次のコマンド出力が返されます。これは、データディスクの /dev/vdb1パーティション用にXFSファイルシステムが作成されていることを示しています。

    image.png

  3. 次のコマンドを実行して、ファイルシステムをマウントします。

    説明

    異なるマウントパラメーターを指定してmountコマンドを実行すると、データセキュリティ要件やパフォーマンス要件などのビジネス要件に基づいてExt4ファイルシステムをマウントできます。 詳細については、「マウントコマンドオプションを使用したExt4ファイルシステムのマウント」をご参照ください。

    sudo mount /dev/vdb1 /mnt

    コマンドの次のパラメータに注意してください。

    • /dev/vdb1は、データディスクのパーティション名です。 /dev/vdb1を実際のパーティション名に置き換えます。

    • /mntは、パーティションのマウントポイントです。 /mntを既存のディレクトリに置き換えます。 または、sudo mkdir -p <New directory> コマンドを実行してディレクトリを作成し、/mntを新しいディレクトリに置き換えます。 サンプルコマンド: sudo mkdir -p /data

  4. 次のコマンドを実行して、ファイルシステムが期待どおりにマウントされているかどうかを確認します。

    df -Th

    次のコマンド出力が返されます。 ファイルシステムがマウントされている場合、新しいファイルシステムに関する情報が表示されます。

    image

手順4: インスタンスの起動時に自動的にマウントするようにディスクパーティションを設定する

インスタンスの起動時にディスクパーティションを自動的にマウントする場合は、ビジネス要件に基づいて、ディスクパーティションに関する情報を /etc/fstabファイルに書き込み、ディスクパーティションのマウント情報を /etc/fstabファイルに追加します。

  1. 次のコマンドを実行して、etc/fstabファイルをバックアップします。

    sudo cp /etc/fstab /etc/fstab.bak
  2. 新しいパーティションに関する情報を/etc/fstabファイルを作成します。

    sudo sh -c "echo `blkid /dev/vdb1 | awk '{print \$2}' | sed 's/\"//g'` /mnt ext4 defaults 0 0 >> /etc/fstab"

    コマンドの次のパラメータに注意してください。

    • /dev/vdb1: データディスクのパーティション名。 /dev/vdb1を実際のパーティション名に置き換えます。 df -Thコマンドを実行して、パーティションの名前を取得できます。

    • /mnt: パーティションのマウントポイント。 /mntを実際のマウントポイントに置き換えます。 df -Thコマンドを実行して、パーティションのマウントポイントを取得できます。

    • ext4: パーティションのファイルシステムタイプ。 ext4を、作成したファイルシステムのタイプに置き換えます。 df -Thコマンドを実行して、パーティションのファイルシステムタイプを取得できます。

    • defaults: ファイルシステムのmountパラメーター。 ビジネス要件に基づいてマウントパラメータを指定します。 詳細は、「fstab」をご参照ください。

    説明

    Ubuntu 12.04オペレーティングシステムはバリアをサポートしていません。 sudo sh -c "echo 'blkid /dev/vdb1 | awk '{print $2}' | sed 's/\" // g'' /mnt ext4 barrier=0 0 0 >> /etc/fstab "コマンドを実行して、ディスクパーティションに関する情報を /etc/fstabファイルに書き込みます。

  3. (条件付きで必要) データディスクに複数の連続したパーティションがある場合は、各パーティションに固有のコマンドを実行して、パーティション情報を /etc/fstabファイルに書き込みます。

    たとえば、/dev/vdb1および /dev/vdb2パーティションを持つ /dev/vdbデータディスクの場合、次のコマンドを別々に実行します。

    sudo sh -c "blkid /dev/vdb1 | awk '{print $2}' | sed 's/\"//g'` <Mount point of the /dev/vdb1 partition> <File system type of the /dev/vdb1 partition> defaults 0 0 >> /etc/fstab"
    sudo sh -c "blkid /dev/vdb2 | awk '{print $2}' | sed 's/\"//g'` <Mount point of the /dev/vdb2 partition> <File system type of the /dev/vdb2 partition> defaults 0 0 >> /etc/fstab"
  4. 次のコマンドを実行して、/etc/fstabファイルの新しいパーティションに関する情報を表示します。

    cat /etc/fstab

    /dev/vdb1パーティションに関する情報を含む次のコマンド出力が返されます。

    image.png

    説明

    コマンド出力に含まれるパーティションに関する情報が正しくない場合は、/etc/fstabファイルから正しくないパーティション情報を削除し、パーティションに関する正しい情報をファイルに追加できます。 詳細については、「データディスクを自動的に接続するためのfstabファイルのUUIDの設定」をご参照ください。

  5. 次のコマンドを実行して、パーティションが自動的にマウントされているかどうかを確認します。

    sudo umount /dev/vdb1
    sudo mount -a
    mount | grep /mnt

    次のコマンド出力が返されます。 パーティションのファイルシステムがマウントされている場合、ファイルシステムのマウント情報が表示されます。

    image

ディスクの初期化に関するFAQ

GPTパーティションがディスク上に作成されているが、ずれている場合はどうすればよいですか?

  1. 次のコマンドを実行して、ディスクのパラメーターを照会します。

    cat /sys/block/vdb/queue/optimal_io_size
    cat /sys/block/vdb/queue/minimum_io_size
    cat /sys/block/vdb/alignment_offset
    cat /sys/block/vdb/queue/physical_block_size
  2. 次のコマンドを実行して、プライマリパーティションを再作成します。

    mkpart primary <Recommended sector number>s 100%

    推奨セクタ番号は、以下の式を用いて計算される。<推奨セクタ番号>= (<optimal_io_size> + <alignment_offset>)/<physical_block_size> 。 たとえば、開始セクタ番号が1024の場合、mkpart primary 1024s 100% コマンドを実行して、プライマリパーティションを再作成できます。

Linuxインスタンスでe2fsprogsをアップグレードするにはどうすればよいですか?

Ext4ファイルシステムを持つ16 TiBデータディスクをフォーマットするには、バージョンが1.42以降のe2fsprogsを使用する必要があります。 1.42より前のバージョンのe2fsprogsを使用すると、次のエラーメッセージが報告されます。

mkfs.ext4: Size of device /dev/vdb too big to be expressed in 32 bits using a blocksize of 4096.            

バージョンが1.42以降のe2fsprogsをインストールするには、次の手順を実行します。 この例では、e2fsprogs 1.42.8がインストールされます。

  1. 次のコマンドを実行して、使用するe2fsprogsのバージョンを確認します。

    rpm -qa | grep e2fsprogs

    次のコマンド出力が返されます。

    查询版本

    e2fsprogsのバージョンが1.42より前の場合、次の操作を実行してe2fsprogsをアップグレードします。

  2. 次のコマンドを実行してe2fsprogs 1.42.8をダウンロードします。

    e2fsprogsのWebサイトにアクセスして、最新のソフトウェアパッケージを入手できます。

    wget https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v1.42.8/e2fsprogs-1.42.8.tar.gz --no-check-certificate
  3. e2fsprogsの新しいバージョンをコンパイルします。

    1. 次のコマンドを実行して、ソフトウェアパッケージを解凍します。

      tar xvzf e2fsprogs-1.42.8.tar.gz
    2. 次のコマンドを実行して、パッケージディレクトリに移動します。

      cd e2fsprogs-1.42.8
    3. 次のコマンドを実行して、Makefileファイルを生成します。

      ./configure
    4. 次のコマンドを実行して、e2fsprogsをコンパイルします。

      make
    5. 次のコマンドを実行してe2fsprogsをインストールします。

      make install
  4. 次のコマンドを実行して、e2fsprogsがアップグレードされているかどうかを確認します。

    rpm -qa | grep e2fsprogs

Linuxインスタンスのlazy init機能を無効にするにはどうすればよいですか?

デフォルトでは、Ext4ファイルシステムのlazy init機能が有効になっています。 この機能が有効になっている場合、インスタンスはスレッドを開始して、Ext4ファイルシステムのメタデータを継続的に初期化します。 lazy init機能が有効になっているときにデータディスクをフォーマットすると、ディスクのIOPSが一時的に影響を受ける可能性があります。

ディスクをフォーマットした直後にデータディスクのパフォーマンスをテストする場合は、ファイルシステムをフォーマットするときに次のコマンドを実行してlazy init機能を無効にします。

sudo mke2fs -O 64bit,has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize -E lazy_itable_init=0,lazy_journal_init=0 /dev/vdb1
説明

lazy init機能が無効になっている場合、ディスクのフォーマットに長時間が必要になる場合があります。 例えば、32 TiBデータディスクは、フォーマットされるために10分から30分を必要とし得る。 ビジネス要件に基づいてlazy init機能を無効にします。

関連ドキュメント

  • ディスクのサイズが2 TiBより大きく、ディスク上の異なるパーティションに異なるカテゴリのデータを保存および管理する場合は、ディスクを初期化します。 詳細については、「サイズが2 TiBを超えるデータディスクの初期化」トピックの「Linuxインスタンスでサイズが2 TiBを超えるデータディスクの初期化」をご参照ください。

  • ディスクをパーティション分割せずに生のディスクとして使用する場合は、ディスクを初期化するときに生のディスク用のファイルシステムを作成するだけで済みます。 詳細については、「rawディスクにファイルシステムを作成する」をご参照ください。

  • ディスクに十分なストレージスペースがない場合は、ディスクの容量を拡張してストレージスペースを増やすことができます。 ディスクを拡張する方法については、「概要」をご参照ください。