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

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

最終更新日:Apr 18, 2024

Elastic Compute Service (ECS) インスタンスに接続されている新しいデータディスクにデータを保存、読み取り、および書き込みする前に、データディスクを初期化する必要があります。 初期化操作には、ディスクのパーティショニング、ファイルシステムのフォーマット、およびファイルシステムのマウントが含まれます。 このトピックでは、Linuxインスタンスでサイズが2 TiBを超えないデータディスクを初期化する方法について説明します。

前提条件

データディスクはLinux ECSインスタンスにアタッチされています。 詳細については、「データディスクのアタッチ」をご参照ください。

背景情報

この例では、次の表に示す構成のECSインスタンスとデータディスクが使用されています。 動作は、実際の条件に基づいて変化し得る。

オペレーティングシステム

リソース

説明

Linux

ECSインスタンスで使用されるイメージ

Alibaba Cloud Linux 3.2104 64ビットパブリックイメージ

データディスク

説明

サイズが2 TiBを超えるディスクを初期化する方法については、「サイズが2 TiBを超えるデータディスクの初期化」をご参照ください。

手順

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

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

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

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

    sudo fdisk -lu

    次のサンプルコマンド出力は、インスタンスに2つのディスクがあることを示します。デバイス名が /dev/vdaであるシステムディスクと、デバイス名が /dev/vdbである新しいデータディスクです。

    image.png

手順2: データディスクにパーティションを作成する

重要
  • マスターブートレコード (MBR) パーティション形式を使用するディスクの最大サイズは2 TiBです。 ディスクのサイズが2 TiBを超える場合、またはディスクのサイズが2 TiBを超える場合は、GUIDパーティションテーブル (GPT) パーティション形式を使用します。

  • Partedを使用して、MBRパーティションとGPTパーティションを作成できます。 fdiskを使用して、MBRパーティションのみを作成できます。

GPTパーティションの作成

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

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

    sudo yum install -y parted
    説明

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

  2. Partedを使用してデータディスクを分割します。

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

      sudo parted /dev/vdb

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

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

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

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

      mkpartプライマリ1 100%
      説明

      データディスクに複数のパーティションを作成する場合は、この手順を繰り返します。

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

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

      align-チェック最適1

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

      1整列
      説明

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

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

      プリント
    6. 次のコマンドを実行してPartedを終了します。

      終了

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

    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と入力し、enterキーを押してデータディスクのパーティション情報を確認します。

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

      image.png

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

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

      image.png

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

      • p: primaryパーティション

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

        説明

        MBRディスクに最大4つのパーティションを作成できます。 パーティションは、すべてのプライマリパーティション、または3つのプライマリパーティションと1つの拡張パーティションにすることができます。 拡張パーティションを使用する前に、パーティションを論理パーティションに分割する必要があります。 詳細については、「概要」トピックのパーティション形式セクションをご参照ください。

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

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

      image.png

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

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

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

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

      image.png

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

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

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

      image.png

      説明

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

    7. 終了セクタ番号を入力し、Enterキーを押します。

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

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

      image.png

      説明

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

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

      次のサンプルコマンド出力が返されます。これは、新しいパーティション /dev/vdb1に関する詳細情報を示しています。

      image.png

      説明

      上記のパーティション分割操作が期待どおりに実行されない場合は、qを入力してfdiskを終了します。 分割結果は保持されません。 上記の手順を再実行できます。

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

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

      image.png

      説明

      データディスクに複数のパーティションを作成する場合は、この手順を繰り返します。

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

    sudo fdisk -lu /dev/vdb

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

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

    image.png

手順3: パーティションのファイルシステムの作成

新しいパーティションのファイルシステムを作成します。 パーティションのサイズは、ファイルシステムの種類によって異なります。 ビジネス要件を満たすファイルシステムを作成します。

  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

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

インスタンスの起動時にデータディスクをマウントする場合は、ディスクパーティションに関する情報を /etc/fstabに書き込み、インスタンスの起動時に自動的にマウントするようにディスクパーティションを構成します。

重要

UUID を使用して /etc/fstab 内の新しいパーティションを参照することを推奨します。 ディスクに対して実行される操作 (リリース操作など) により、他のディスクのデバイス名が変更される場合があります。 /etc/fstabでデータディスクのデバイス名を使用する場合、デバイス名を変更すると、保存されているデータが影響を受ける可能性があります。

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

    sudo cp /etc/fstab /etc/fstab.bak
  2. 新しいパーティションに関する情報を /etc/fstabに書き込みます。

    ルートユーザー

    次のコマンドを実行して、/etc/fstabファイルを変更します。

    echo 'blkid /dev/vdb1 | awk '{print $2}' | sed 's/\"// g'' /mnt ext4デフォルト0 >> /etc/fstab

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

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

    • /mnt: パーティションのマウントポイント。 /mntを実際のマウントポイントに置き換えます。

      重要

      実際の環境に基づいて、マウントポイントとしてディレクトリを指定または作成します。 パーティションを既存のディレクトリにマウントするか、mkdirコマンドを実行してディレクトリを作成し、パーティションを新しいディレクトリにマウントします。

    • ext4: パーティションのファイルシステムタイプ。 ext4を作成したファイルシステムのタイプに置き換えます。

    • defaults: ファイルシステムのマウントパラメータ。 データセキュリティとファイルシステムの高性能を確保するために、ビジネス要件に基づいてパラメーターを設定します。 詳細については、「マウントコマンドを実行してExt4ファイルシステムをマウントする」をご参照ください。

    説明
    • Ubuntu 12.04オペレーティングシステムはバリアをサポートしていません。 新しいパーティションに関する情報を /etc/fstabに書き込むには、echo 'blkid /dev/vdb1 | awk '{print $2}' | sed 's/\"// g'' /mnt ext4 barrier=0 0 0 >> /etc/fstabコマンドを実行する必要があります。 インスタンスがUbuntu 12.04オペレーティングシステムを実行していない場合は、メモを無視してください。

    • ディスクに複数の連続したパーティションがある場合は、各パーティションに固有のコマンドを実行して、パーティション情報を /etc/fstabに書き込みます。 たとえば、/dev/vdb1および /dev/vdb2パーティションを持つ /dev/vdbデータディスクの場合、次のコマンドを別々に実行します。

      echo 'blkid /dev/vdb1 | awk '{print $2}' | sed 's/\"// g'' <マウントポイントの /dev/vdb1> <ファイルシステムタイプの /dev/vdb1> デフォルト0 >> /etc/fstab
      echo 'blkid /dev/vdb2 | awk '{print $2}' | sed 's/\"// g'' <マウントポイントの /dev/vdb2> <ファイルシステムタイプの /dev/vdb2> デフォルト0 >> /etc/fstab 

    通常のユーザー

    /etc/fstabファイルを変更します。 詳細については、「データディスクを自動的にマウントするためのfstabファイルのUUIDの設定」をご参照ください。

  3. 次のコマンドを実行して、/etc/fstabの新しいパーティションに関する情報を確認します。

    cat /etc/fstab

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

    image.png

  4. 次のコマンドを実行して、/etc/fstabファイルで構成されているファイルシステムをマウントします。 ファイルシステムが /etc/fstabで正しく構成されている場合、エラーは報告されません。

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

    df -h

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

    image.png

ディスクの初期化に関する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 <推奨セクター番号> s 100%

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

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

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

mkfs.ext4: 4096のブロックサイズを使用して32ビットで表現するには、デバイス /dev/vdbのサイズが大きすぎます。            

e2fsprogs 1.42以降をインストールするには、次の手順を実行します。 この例では、e2fsprogs 1.42.8 を使用します。

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

    rpm -qa | grep 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をコンパイルします。

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

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

    rpm -qa | grep e2fsprogs

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

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

ディスクのフォーマット直後にデータディスクのパフォーマンスをテストする場合、以下のコマンドを実行して、ファイルシステムのフォーマット時に lazy init 機能を無効化してください。

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

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

参考資料