新しいデータディスクをLinux Elastic Compute Service (ECS) インスタンスに接続した後、ディスクがオペレーティングシステムによって認識され、データの保存に使用される前に、データディスクを初期化する必要があります。 データディスクのサイズが2 TiBを超えず、さまざまなカテゴリのデータをさまざまなパーティションに保存および管理する場合は、このトピックで説明する初期化操作を実行できます。 初期化動作は、データディスクを分割し、ファイルシステムをディスクにマウントすることを含む。
このトピックで説明する初期化操作は、Linux ECSインスタンスと一緒に作成された空のデータディスク、または個別に作成されECSインスタンスにアタッチされた空のデータディスクに対してのみ実行できます。 詳細については、「概要」トピックのシナリオセクションを参照してください。
前提条件
データディスクがLinux ECSインスタンスにアタッチされ、[使用中] 状態になっています。 詳細については、「データディスクのアタッチ」をご参照ください。
Linux ECSインスタンスと一緒に作成されたデータディスクは、すでにインスタンスに接続されています。
手順
次の例では、Alibaba Cloud Linux 3を実行するECSインスタンスが使用されています。 データディスクを初期化するために実行できるコマンドは、インスタンスのオペレーティングシステムによって異なる場合があります。
手順1: Linux ECSインスタンスに接続してデータディスクを表示
Linux ECSインスタンスに接続します。
詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。
次のコマンドを実行して、データディスクのデバイス名を取得します。
sudo fdisk -lu
次のコマンド出力は、2つのディスクがLinux ECSインスタンスに接続されていることを示します。
①:
/dev/vda
はシステムディスクで、インスタンスとともに作成され、すでに初期化されています。②:
/dev/vdb
はデータディスクで、初期化が必要です。
(条件付きで必要) 手順2: データディスクにパーティションを作成する
アプリケーション、ファイル、ストレージデータなど、さまざまなカテゴリのデータをさまざまなパーティションに個別に保存、保守、および管理する場合は、この手順を実行してデータディスクにパーティションを作成します。 データディスクを生のディスクとして使用する場合は、ディスクを分割する必要なしに、ディスクのファイルシステムを作成できます。 詳細については、「rawディスクにファイルシステムを作成する」をご参照ください。
パーティションの最大サイズとディスクあたりのパーティションの最大数は、パーティションの形式によって異なります。 詳細については、「概要」トピックのパーティション形式セクションをご参照ください。
その後、データディスクを2 TiBを超えるサイズに拡張する場合は、ディスクをGUIDパーティションテーブル (GPT) 形式でパーティション化します。 データディスクをMaster Boot Record (MBR) 形式でパーティション分割する場合、ディスクを2 TiBを超えるサイズに拡張することはできません。 MBRパーティション形式のデータディスクを2 TiBを超えるサイズに拡張すると、ディスクの再パーティション化と再フォーマットが必要になる場合があり、データが失われます。
GPTパーティションの作成
Partedツールを使用して、サイズが2 TiBを超えないデータディスクにGPTパーティションを作成するには、次の手順を実行します。
次のコマンドを実行してPartedをインストールします。
sudo yum install -y parted
説明この手順で使用する
yum
コマンドは、CentOSなどのLinuxディストリビューションに適用できます。 他のLinuxディストリビューションの場合は、パッケージ管理ソフトウェアに基づいてコマンドを変更します。 たとえば、次のコマンドを実行して、DebianまたはUbuntuにPartedをインストールします。sudo apt-get update sudo apt-get install -y parted
Partedを使用してデータディスクを分割します。
次のコマンドを実行して、データディスクを分割します。 この例では、
/dev/vdb
データディスクが使用されています。sudo parted /dev/vdb
/dev/vdb
はデータディスクのデバイス名です。 /dev/vdbをデータディスクの実際のデバイス名に置き換えます。[Parted] コマンドラインで、次のコマンドを実行して、パーティション形式をGPTに設定します。
mklabel gpt
次のコマンドを実行してプライマリパーティションを作成し、パーティションの開始位置と終了位置を指定します。
mkpart <Partition name> <Start position> <End position>
重要パーティションの開始位置と終了位置は、MiBまたはGiB (デフォルトでは4096B) の単位で指定されます。 ユニットが正しくない場合、パーティションの配置に影響し、ディスクのパフォーマンスに影響します。
必要に応じて、<Partition name> 、<Start position> 、および <End position> の値を指定します。
単一パーティションの例: primaryという名前のプライマリパーティションがデータディスクに作成されます。 パーティションの開始位置は1 MiBで、ディスク容量の100% がプライマリパーティションに割り当てられます。
mkpart primary 1MiB 100%
マルチパーティションの例: データディスクに2つのパーティションが作成されます。 第1のパーティションは、20 GiBの容量を有するプライマリと名付けられる。 残りのディスク容量は、セカンダリという名前の2番目のパーティションに割り当てられます。
mkpart primary 1MiB 20GiB mkpart secondary 20GiB 100%
(条件付きで必要) データディスクに複数のパーティションを作成する場合は、手順cを繰り返します。
次のコマンドを実行して、パーティションが整列しているかどうかを確認します。
プライマリパーティションの数は
1
です。 ディスクのパフォーマンスを最適化するには、パーティションを調整することを推奨します。align-check optimal 1
パーティションが整列している場合、次のコマンド出力が返されます。
1 aligned
説明パーティションがずれている場合は、
1 not aligned
が返されます。 位置ずれの問題を解決する方法については、このトピックの「ディスク初期化に関するよくある質問」をご参照ください。次のコマンドを実行して、パーティションテーブルを確認します。
print
次のコマンドを実行してPartedを終了します。
quit
次の図は、パーティション分割プロセスを示しています。
次のコマンドを実行して、パーティションテーブルを再読み込みします。
partprobe
次のコマンドを実行して、新しいパーティションに関する情報を表示します。 この例では、
/dev/vdb
データディスクが使用されています。sudo fdisk -lu /dev/vdb
/dev/vdb
はデータディスクのデバイス名です。 /dev/vdbをデータディスクの実際のデバイス名に置き換えます。次のコマンド出力が返されます。 新しいパーティションが作成されると、GPTに関する情報が表示されます。
MBRパーティションの作成
fdiskを使用して、サイズが2 TiBを超えないデータディスクにMBRパーティションを作成するには、次の手順を実行します。
MBRパーティションを作成します。
次のコマンドを実行して、データディスクを分割します。 この例では、
/dev/vdb
データディスクが使用されています。sudo fdisk -u /dev/vdb
/dev/vdb
はデータディスクのデバイス名です。 /dev/vdbをデータディスクの実際のデバイス名に置き換えます。次のコマンド出力が返されます。
fdiskコマンドラインで、pを押して、
入力
キーを使用して、データディスクのパーティション情報を確認します。次のコマンド出力が返されます。
入力nを押して、
入力
キーを使用してデータディスクを分割します。次のコマンド出力が返されます。
前の図に示すように、データディスクには2種類のパーティションがあります。
p
: プライマリパーティション。e
: 拡張パーティション。説明パーティションの詳細については、「概要」トピックのパーティション形式セクションをご参照ください。
この例では、プライマリパーティションは1つだけ作成されます。 入力pを押して、
入力
キーを使用してプライマリパーティションを作成します。次のコマンド出力が返されます。
パーティション番号
は、プライマリパーティションの番号を示し、1から4の範囲です。パーティション番号を入力し、
入力
キーを使用します。この例では、プライマリパーティションは1つだけ作成されます。
Enter
キーを押して、プライマリパーティションの番号としてデフォルト値1
を使用します。次のコマンド出力が返されます。
開始セクタ番号を入力し、
入力
キーを使用します。第1セクタ
は、パーティションの開始セクタ番号を指定する。 有効な値: 2048〜83886079。 デフォルト値:2048。 この例では、Enter
キーを押して、開始セクタ番号としてデフォルト値2048
を使用します。次のコマンド出力が返されます。
説明選択可能な開始セクタ番号の範囲と終了セクタ番号の範囲が自動的に表示されます。 範囲に含まれる開始セクタ番号と終了セクタ番号を指定するか、デフォルト値を使用できます。 開始セクタ番号は、終了セクタ番号よりも小さくなければならない。
エンドセクター番号を入力し、
入力
キーを使用します。Last sector
は、パーティションの終了セクタ番号を示します。 有効な値: 2048〜83886079。 デフォルト値: 83886079 この例では、Enter
キーを押して、デフォルト値83886079
を終了セクタ番号として使用します。次のコマンド出力が返されます。
説明選択可能な開始セクタ番号の範囲と終了セクタ番号の範囲が自動的に表示されます。 範囲に含まれる開始セクタ番号と終了セクタ番号を指定するか、デフォルト値を使用できます。 開始セクタ番号は、終了セクタ番号よりも小さくなければならない。
入力pを押して、
入力
キーを使用して、データディスクのパーティション情報を表示します。新しいパーティション
/dev/vdb1
に関する詳細情報を含む次のコマンド出力が返されます。説明上記のパーティション分割操作が成功しなかった場合は、
q
を入力してfdiskを終了します。 分割結果は保持されません。 上記の手順を再度実行できます。入力wを押して、
入力
キーを使用して、パーティショニング結果をパーティションテーブルに書き込みます。次のコマンド出力は、パーティションが作成されたことを示します。
(条件付きで必要) データディスク上に複数のパーティションを作成する場合は、ステップ1を繰り返します。
次のコマンドを実行して、新しいパーティションの情報を表示します。 この例では、
/dev/vdb
データディスクが使用されています。sudo fdisk -lu /dev/vdb
/dev/vdb
はデータディスクのデバイス名です。 /dev/vdbをデータディスクの実際のデバイス名に置き換えます。次のコマンド出力が返されます。 新しいパーティションが作成されると、
/dev/vdb1
に関する情報が表示されます。
ステップ3: ファイルシステムの作成とマウント
ディスクがアタッチされているECSインスタンスのオペレーティングシステムによってディスクが認識され、期待どおりに使用される前に、ディスクがパーティション分割されているかどうかに関係なく、データディスクにファイルシステムを作成してマウントする必要があります。 作成できるファイルシステムの種類は、パーティションのサイズによって異なります。 ビジネス要件を満たすファイルシステムを作成します。
次のコマンドを実行してe2fsprogsをインストールします。
sudo yum install -y e2fsprogs
説明この手順で使用するyumコマンドは、CentOSなどのLinuxディストリビューションに適用できます。 他のLinuxディストリビューションの場合は、パッケージ管理ソフトウェアに基づいてコマンドを変更します。 たとえば、DebianまたはUbuntuで
apt-get install <Package name>
コマンドを実行します。ファイルシステムを作成します。 この例では、Ext4ファイルシステムとXFSファイルシステムが作成されています。
Ext4ファイルシステムの作成
sudo mkfs -t ext4 /dev/vdb1
/dev/vdb1
は、データディスクのパーティション名です。 /dev/vdb1を実際のパーティション名に置き換えます。説明16 TiBデータディスク用のExt4ファイルシステムを作成するときにエラーが発生した場合、使用するe2fsprogsパッケージのバージョンが1.42より前である可能性があります。 e2fsprogsのバージョンをバージョン1.42以降にアップグレードします。 詳細については、「」をご参照ください。Linuxインスタンスでe2fsprogsをアップグレードするにはどうすればよいですか? このトピックのセクション。
Ext4ファイルシステムの遅延init機能は、データディスクのI/Oパフォーマンスに影響します。 Ext4ファイルシステムのlazy init機能を無効にすることができます。 詳細については、「」をご参照ください。Linuxインスタンスのlazy init機能を無効にするにはどうすればよいですか? このトピックのセクション。
次のコマンド出力が返されます。これは、データディスクの
/dev/vdb1
パーティション用にExt4ファイルシステムが作成されていることを示しています。XFSファイルシステムの作成
sudo mkfs -t xfs /dev/vdb1
/dev/vdb1
は、データディスクのパーティション名です。 /dev/vdb1を実際のパーティション名に置き換えます。次のコマンド出力が返されます。これは、データディスクの
/dev/vdb1
パーティション用にXFSファイルシステムが作成されていることを示しています。次のコマンドを実行して、ファイルシステムをマウントします。
説明異なるマウントパラメーターを指定して
mount
コマンドを実行すると、データセキュリティ要件やパフォーマンス要件などのビジネス要件に基づいてExt4ファイルシステムをマウントできます。 詳細については、「マウントコマンドオプションを使用したExt4ファイルシステムのマウント」をご参照ください。sudo mount /dev/vdb1 /mnt
コマンドの次のパラメータに注意してください。
/dev/vdb1
は、データディスクのパーティション名です。 /dev/vdb1を実際のパーティション名に置き換えます。/mnt
は、パーティションのマウントポイントです。 /mntを既存のディレクトリに置き換えます。 または、sudo mkdir -p <New directory>
コマンドを実行してディレクトリを作成し、/mntを新しいディレクトリに置き換えます。 サンプルコマンド:sudo mkdir -p /data
次のコマンドを実行して、ファイルシステムが期待どおりにマウントされているかどうかを確認します。
df -Th
次のコマンド出力が返されます。 ファイルシステムがマウントされている場合、新しいファイルシステムに関する情報が表示されます。
手順4: インスタンスの起動時に自動的にマウントするようにディスクパーティションを設定する
インスタンスの起動時にディスクパーティションを自動的にマウントする場合は、ビジネス要件に基づいて、ディスクパーティションに関する情報を /etc/fstabファイルに書き込み、ディスクパーティションのマウント情報を /etc/fstabファイルに追加します。
次のコマンドを実行して、etc/fstabファイルをバックアップします。
sudo cp /etc/fstab /etc/fstab.bak
新しいパーティションに関する情報を/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ファイルに書き込みます。(条件付きで必要) データディスクに複数の連続したパーティションがある場合は、各パーティションに固有のコマンドを実行して、パーティション情報を /etc/fstabファイルに書き込みます。
たとえば、
/dev/vdb1
および/dev/vdb2
パーティションを持つ/dev/vdb
データディスクの場合、次のコマンドを別々に実行します。sudo sh -c "echo `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 "echo `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"
次のコマンドを実行して、/etc/fstabファイルの新しいパーティションに関する情報を表示します。
cat /etc/fstab
/dev/vdb1
パーティションに関する情報を含む次のコマンド出力が返されます。説明コマンド出力に含まれるパーティションに関する情報が正しくない場合は、/etc/fstabファイルから正しくないパーティション情報を削除し、パーティションに関する正しい情報をファイルに追加できます。 詳細については、「データディスクを自動的に接続するためのfstabファイルのUUIDの設定」をご参照ください。
次のコマンドを実行して、パーティションが自動的にマウントされているかどうかを確認します。
sudo umount /dev/vdb1 sudo mount -a mount | grep /mnt
次のコマンド出力が返されます。 パーティションのファイルシステムがマウントされている場合、ファイルシステムのマウント情報が表示されます。
ディスクの初期化に関するFAQ
GPTパーティションがディスク上に作成されているが、ずれている場合はどうすればよいですか?
Linuxインスタンスでe2fsprogsをアップグレードするにはどうすればよいですか?
Linuxインスタンスのlazy init機能を無効にするにはどうすればよいですか?
関連ドキュメント
ディスクのサイズが2 TiBより大きく、ディスク上の異なるパーティションに異なるカテゴリのデータを保存および管理する場合は、ディスクを初期化します。 詳細については、「サイズが2 TiBを超えるデータディスクの初期化」トピックの「Linuxインスタンスでサイズが2 TiBを超えるデータディスクの初期化」をご参照ください。
ディスクをパーティション分割せずに生のディスクとして使用する場合は、ディスクを初期化するときに生のディスク用のファイルシステムを作成するだけで済みます。 詳細については、「rawディスクにファイルシステムを作成する」をご参照ください。
ディスクに十分なストレージスペースがない場合は、ディスクの容量を拡張してストレージスペースを増やすことができます。 ディスクを拡張する方法については、「概要」をご参照ください。