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

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

最終更新日:Dec 28, 2023

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

前提条件

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

背景情報

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

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

リソース

説明

Linux

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

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

データディスク

説明

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

手順

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

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

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

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

    fdisk -lu

    次のようなコマンド出力が返されます。これは、インスタンスに2つのディスクがあることを示します。デバイス名が /dev/vdaであるシステムディスクと、デバイス名が /dev/vdbである新しいデータディスクです。 Data disk information

手順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をインストールします。

    yum install -y parted
    説明

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

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

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

      parted /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を終了します。

      終了

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

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

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

    fdisk -lu /dev/vdb

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

    以下のようなコマンド出力が返されます。 新しいパーティションが作成されると、gptの情報が表示されます。 gpt

MBRパーティションの作成

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

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

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

      fdisk -u /dev/vdb

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

      以下のようなコマンド出力が返されます。

      image

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

      以下のようなコマンド出力が返されます。

      image

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

      以下のようなコマンド出力が返されます。

      image

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

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

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

        説明

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

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

      以下のようなコマンド出力が返されます。

      image

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

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

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

      以下のようなコマンド出力が返されます。

      image

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

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

      以下のようなコマンド出力が返されます。

      image

      説明

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

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

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

      以下のようなコマンド出力が返されます。

      image

      説明

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

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

      次のようなコマンド出力が返されます。これは、新しい /dev/vdb1パーティションの詳細情報を示します。

      image

      説明

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

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

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

      image

      説明

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

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

    fdisk -lu /dev/vdb

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

    以下のようなコマンド出力が返されます。 新しいパーティションが作成されると、/dev/vdb1の情報が表示されます。Partitioning results

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

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

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

    yum install -y e2fsprogs
    説明

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

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

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

    mkfs -t ext4 /dev/vdb1

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

    重要

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

    mkfs -t xfs /dev/vdb1

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

    以下のようなコマンド出力が返されます。 この例では、データディスクの /dev/vdb1パーティションに対してext4ファイルシステムが作成されます。Create a file system

手順4: /etc/fstabファイルの設定とパーティションのマウント

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

重要

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

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

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

    • rootユーザーの場合、次のコマンドを実行して /etc/fstabを変更できます。

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

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

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

      • /mnt: パーティションのマウントポイント。 実際のマウントポイントに置き換えます。 パーティションを既存のディレクトリにマウントするか、mkdirコマンドを実行してディレクトリを作成し、パーティションを新しいディレクトリにマウントします。

      • 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

    以下のようなコマンド出力が返されます。 Query fstab

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

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

    df -h

    以下のようなコマンド出力が返されます。 ファイルシステムがマウントされている場合は、新しいファイルシステムの情報が表示されます。 Query the mount result

ディスクの初期化に関する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をインストールします。 この例では、e2fsprogs 1.42.8 を使用します。

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

    rpm -qa | grep e2fsprogs

    以下のようなコマンド出力が返されます。

    Query the e2fsprogs version

    バージョンが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 機能を無効化してください。

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機能を無効にします。