インスタンス・ストレージの管理
インスタンス・ストレージは、クラウド・ネイティブのワークロード (またはアプリやサービス) のパフォーマンスを改善するために役立つ、安価で高速な一時ストレージを提供します。 詳しくは、インスタンス・ストレージについてを参照してください。
仮想サーバー・インスタンスを使用してインスタンス・ストレージ・ディスクをプロビジョンするには、インスタンス・ストレージを含むプロファイルを選択します。 インスタンスストレージのディスクデバイスは、インスタンスプロファイルの一部として購入されているため、稼働中に接続または切断することはできません。 汎用プロファイル・ファミリー (平衡型、コンピュート、メモリー) および一部の専用プロファイル・ファミリー (非常に高いメモリーとストレージ最適化) には、すべてインスタンス・ストレージのプロファイル・オプションがあります。 すべての第3世代インスタンス・プロファイルにはインスタンス・ストレージが含まれています。 詳細は、 第3世代インスタンス・プロファイルを 参照。 インスタンス・ストレージの量は、プロファイルに割り当てられている vCPU の数に比例して割り振られます。 プロファイルの詳細については、 x86-64 インスタンス・プロファイルを 参照してください。
コンソールでインスタンスストレージを使用した仮想サーバーインスタンスのプロビジョニング
インスタンス・ストレージを備えた仮想サーバー・インスタンスを作成する前に、IBM Cloud VPC を作成しておく必要があります。
インスタンス・ストレージと一緒にプロビジョンするには、以下の手順を実行します。
- IBM Cloud コンソールで、 [ナビゲーション]メニュー
> [インフラストラクチャ]
> [コンピュート] > [仮想サーバーインスタンス ] の順に選択します。
- [VPC 用仮想サーバーインスタンス] ページで、 [作成 ] をクリックし、必要な情報を入力します。 具体的なフィールドについて詳しくは、仮想サーバーの作成を参照してください。
- インスタンスのストレージプロファイルを選択するには、「 すべてのプロファイルを表示 」をクリックしてください。 すべての ox2 プロファイルと、プロファイル名の 4 番目の位置に文字「d」があるプロファイルには、インスタンス・ストレージが含まれます。 インスタンス・ストレージを含むプロファイルの例は、 bx2d-2x8 および ox2-2x16です。 リストをフィルターに掛けるには、チェック・ボックスを使用します。 インスタンス・プロファイルのリストについては、 x86-64 インスタンス・プロファイル を参照してください。
- 使用するプロファイルを選択し、**「保存」**をクリックします。 インスタンス・ストレージのディスクが仮想サーバー・インスタンスに接続されるのは、ブート・ボリュームの後、かつリモート・ブロック・ストレージ・ボリューム (存在する場合) の前です。
- インスタンスをプロビジョンする準備ができたら、**「仮想サーバー・インスタンスの作成 (Create virtual server instance)」**をクリックします。
次のステップ
インスタンスが作成されたら、浮動 IP アドレスをそのインスタンスに関連付けます。 その後、インスタンスに接続できます。 詳しくは、Linux インスタンスへの接続または Windows インスタンスへの接続を参照してください。 既存のインスタンスに浮動 IP アドレスがある場合は、別のインスタンスに新たに浮動 IP を割り当てる必要はありません。 最初に浮動 IP があるものに接続してから、自動的に割り当てられたプライベート・サブネット IP アドレスを使用して、2 つ目のインスタンスに SSH 接続できます。
CLI からインスタンスストレージを使用して仮想サーバーインスタンスをプロビジョニングする
インスタンス・ストレージを使用して仮想サーバー・インスタンスをプロビジョンするには、 CLI を使用した仮想サーバーの作成 の手順に従います。 インスタンス・ストレージ・ディスクを含むプロファイルを選択してください。 プロファイルについて詳しくは、インスタンス・プロファイルを参照してください。
API を使用してインスタンス・ストレージを備えた仮想サーバー・インスタンスをプロビジョンする
インスタンス・ストレージを使用して仮想サーバー・インスタンスをプロビジョンするには、 REST API を使用した VPC リソースの作成 の手順に従います。 インスタンス・ストレージ・ディスクを含むプロファイルを選択してください。 プロファイルについて詳しくは、 インスタンス・プロファイルを参照してください。
API (または CLI) は、インスタンス・ストレージ・ディスクの接続に使用されるインターフェース・タイプを判別するのに役立ちます。 作成操作 (または取得) から返されるインスタンス・オブジェクトは、以下の部分出力例に示すように、 disks アレイ内のインスタンス・ディスクを報告します。
"disks": [
{
"created_at": "2022-04-19T17:13:28Z",
"href": "https://sample-region.iaas.cloud.ibm.com/v1/instances/vsi_aba03916-8804-46ae-9275-b7dc196e94b3/disks/c4e4d137-a44f-47b8-beb0-a22dc8f8c6ea",
"id": "c4e4d137-a44f-47b8-beb0-a22dc8f8c6ea",
"interface_type": "virtio_blk",
"name": "babbling-drove-grove-catnap",
"resource_type": "instance_disk",
"size": 600
}]
この例は、 virtio_blk のインターフェース・タイプを示しています。
インスタンス・ストレージのディスクでカスタム・イメージを使用する
カスタム・イメージを使用する場合は、ディスクを使用するための適切なデバイス・ドライバーをイメージの中にロードしてください。
インスタンス・ストレージ・デバイスのインターフェース・タイプが virtio_blk の場合は、 libvirt virtio ドライバーをインストールする必要があります。 libvirt virtio ドライバーは、 IBM が提供するすべてのオペレーティングシステムに自動的にインストールされます。 インスタンス・ストレージを使用するすべての汎用プロファイルは、 virtio_blk 接続のみを提供します。
インスタンスからインスタンス・ストレージを使用する
インスタンスでのブロック・デバイスのリスト表示
Linux® では、インスタンスにログインした後、 lsblk コマンドを使用してブロックデバイスの一覧を表示できます。 以下の例でプロビジョンされるインスタンスには、600 GB のインスタンス・ディスクが 2 つと 50 GiB のデータ・ボリュームが 2 つあります。 lsblk コマンドには、インスタンスストレージとリモート Block Storage との違いを明確にするために、カスタム列のリストが指定されています。
インスタンスディスクの容量はギガバイト(GB)単位で表示されますが、 lsblk ではギビバイト( GiB )単位で表示されます。
$ lsblk -o NAME,SIZE,MAJ:MIN,TYPE,PHY-SEC,LOG-SEC,MOUNTPOINT
NAME SIZE MAJ:MIN TYPE PHY-SEC LOG-SEC MOUNTPOINT
vda 100G 252:0 disk 512 512
├─vda1 1G 252:1 part 512 512 /boot
└─vda2 99G 252:2 part 512 512
├─cl-root 97G 253:0 lvm 512 512 /
└─cl-swap 2.1G 253:1 lvm 512 512
vdb 558.8G 252:16 disk 4096 4096
vdc 558.8G 252:32 disk 4096 4096
vdd 50G 252:48 disk 512 512
vde 50G 252:64 disk 512 512
vdf 366K 252:80 disk 512 512
vdg 44K 252:96 disk 512 512
この例では、すべての Block Storage デバイスが virtio_blk デバイスです:
vdaこれがブートボリュームです。vdbまた、vdcは、600 GB のインスタンスストレージディスクです。 Linux®では、インスタンス・ストレージ・ディスクはブート・ボリュームの後に続き、最初のディスクは/dev/vdbになります。 lsblk コマンドは「G」単位を base-2 ギビバイトとして表示するため、サイズは 558.8 GiBs と表示されます。 セクター・サイズ列の値は、オペレーティング・システムまたはプロファイルの生成によって異なる場合があります。 例えば、x3dインスタンス・プロファイル・ファミリーは、ローカル・ディスク用に 512 バイトのセクター・サイズでプロビジョンすることができます。vddまた、vdeは、インスタンスにアタッチされているリモートデータボリュームです。 これらのデータ量は、lsblkが表示しているのと同じ単位で指定されているため、そのサイズは GiBs (50)のままとなります。vdfまた、vdgは、インスタンスの cloud-init 設定に使用される小さなブロックボリュームです。
メタデータ・サービスを使用したインスタンス・ストレージのリスト
インスタンス内からメタデータ・サービスを使用して、インスタンスに関する情報 (インスタンス・ストレージ・ディスクを含む) を取得できます。 メタデータ情報を取得するには、インスタンスのプロビジョン時に、または後でインスタンスを更新することによって、メタデータ・サービス機能を有効にする必要があります。 有効化および使用手順について詳しくは、 インスタンスからのメタデータへのアクセス を参照してください。
Metadata サービスが有効になっているインスタンスがある場合、以下のステップは、 Linux 仮想サーバーからインスタンス・ストレージ・メタデータを使用する例を示しています。
-
存続期間の短いインスタンス ID トークンを取得します。
instance_identity_token=`curl -X PUT "http://api.metadata.cloud.ibm.com/instance_identity/v1/token?version=2022-03-01" -H "Metadata-Flavor: ibm" -H "Accept: application/json" -d '{ "expires_in": 300}' | jq -r '(.access_token)'`セキュアメタデータサービスエンドポイントが有効な場合は HTTP、の代わりに HTTPS を使用してください。 curlコマンドを実行する前に、
curlまたはjqパッケージをインストールする必要があるかもしれない。jqは MIT ライセンスでライセンスされたサードパーティツールである。 -
このトークンを使用してインスタンス・メタデータを取得し、
disks部分を選択して、json を bash 変数に保管します。disks=$(curl -sS -X GET "http://api.metadata.cloud.ibm.com/metadata/v1/instance?version=2024-02-20" -H "Authorization: Bearer $instance_identity_token" | jq -r '.disks') -
/dev/disk/by-idでvirtioデバイスをループし、デバイス・パスを前のステップで保管したインスタンス・ディスク情報に相関させます。for ln in $(ls /dev/disk/by-id/virtio*); do b=$(basename $ln); s=${b#virtio-}; disk=$(echo $disks | jq -r ".[] | select(.id | startswith(\"$s\"))"); if [ -n "$disk" ]; then echo "$ln $(readlink -f $ln) $(echo $disk | jq -r '(.size|tostring) + " " + .name')";fi;done
以下は、前のコマンドの出力例です。ここで、列の順序は (1) by-id path、(2) symlink device target、(3) size in GB、(4) Cloud UI/CLI/API ディスク名です。
/dev/disk/by-id/virtio-0736-35db69bb-d09b-4 /dev/vdc 600 palmtree-vacuumed-judiciary-wharf
/dev/disk/by-id/virtio-0736-874803ac-2593-4 /dev/vdb 600 lunacy-dismantle-dotted-fiddling
この場合、ディスク名はランダムに生成された 4 ワードの名前ですが、カスタム名を持つように編集することができます。 詳しくは、 デフォルト名のいずれかの更新 を参照してください。
インスタンス・ストレージのディスクのパーティショニング、フォーマット、およびマウント
インスタンス・ストレージのディスクは、リモート・ブロック・ボリュームと同じように、パーティション化し、ファイル・システムを指定してフォーマットし、階層ファイル・システムにマウントすることができます。
- Linux®の手順については、 使用する Block Storage for VPC データ・ボリュームのセットアップ(Linux) または cloud-config スクリプトを使用した単一ディスク・インスタンス・ストレージの構成 を参照してください。
- Windows® では、「コンピュータの管理」UI を使用して、ブロックボリュームをオンライン状態にし、パーティションを作成して、フォーマットを行います。 詳しくは、 Block Storage for VPC データ・ボリュームのセットアップ(Windows) を参照してください。
以下の lsblk の例は、 bx3d-48x240 インスタンスにログインして vdc を 2 つの 1 次区画にパーティション化し、それらを別々のファイル・システムでフォーマットし、マウントした後の出力を示しています。 正規表現を使用した grep コマンドは、メタデータ・サービス(前のセクションを参照)を通じて取得されたvdbとvdcデバイスだけに出力をフィルタリングするために使用される。
$ lsblk | grep -E "NAME|vd[b|c]"
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
vdb 252:16 0 726.4G 0 disk
vdc 252:32 0 726.4G 0 disk
├─vdc1 252:33 0 200G 0 part /mnt/localdisk1
└─vdc2 252:34 0 526.4G 0 part /mnt/localdisk2
インスタンスストレージは一時的な性質を持つため、 Linux® ( VM )の /etc/fstab ファイル内のマウントエントリを、 nofail オプションを指定して設定するか、あるいはマウントエントリを完全に省略してください。 この設定により、ブート中のマウント障害を回避できます。
以下の例は、 nofail オプションを指定したマウント・エントリーを示しています。
/dev/vdb1 /mnt/inststg1 ext4 defaults,nofail 0 0
インスタンス・プロファイルのインスタンス・ストレージ詳細の検索
インスタンスプロファイルをフィルタリングする際は、Web UI または CLI で「インスタンスストレージ」列を探してください。 これは、 Storage(GB) と呼ばれる場合があります。
以下の例は、可能な列値とその意味を示しています。
- 1 x 150 GB – 150 GB のブロック・デバイスが 1 つ、インスタンス・ストレージとして仮想サーバー・インスタンスに接続されています。
- 2 x 600 GB – 600 GB(合計 1200)のインスタンスストレージブロックデバイスが 2 つ接続されています。
状況によっては、インスタンスプロファイルやアタッチされたインスタンスディスクに対して、インターフェースタイプ(通常は virtio_blk )が表示されることがあります。 以下の例は、特定のインスタンス・プロファイルについて CLI から取得された詳細を示しています。
ibmcloud is in-pr bx2d-48x192
Getting instance profile bx2d-48x192 under account YYYYYY as user vpc-user@myco.com...
Name bx2d-48x192
Architecture amd64
vCPU Manufacturer intel
Family balanced
vCPUs 48
Memory(GiB) 192
GPU Model Manufacturer Count Memory(GiB)
- - - -
Numa Count -
Bandwidth(Mbps) 80000
Volume bandwidth(Mbps) -
Instance Storage Disks Quantity Size Supported interface types
2 900 virtio_blk
Min NIC Count 1
Max NIC Count 10
インスタンス・ストレージの情報の表示
以下の CLI の例を使用して、仮想サーバー・インスタンスのインスタンス・ストレージの情報を表示できます。 ご自身のインスタンスIDまたは名前を置き換えてください。
ibmcloud is instance-disks 0716_f8c0fd3b-cada-46c3-91f6-c271937ef488
Listing disks of instance 0716_f8c0fd3b-cada-46c3-91f6-c271937ef488 under account YYYYYY as user vpc-user@myco.com...
ID Name Size Interface Type
0716-6ebed02f-c421-4b06-a73b-f334413e84b3 clunky-refocus-tidings-underpaid 600 virtio_blk
0716-54ee0659-d92a-4d4c-ac6b-8f03cb178a07 linguini-epiphany-lush-preschool 600 virtio_blk
デフォルト名の更新
以下のCLIコマンドを使用すると、インスタンスストレージディスクのカスタム名を更新できます。 最後の 2 つのパラメーターは、それぞれ独自のインスタンス ID とディスク ID に置き換えてください。
ibmcloud is instance-disk-update 0716_f8c0fd3b-cada-46c3-91f6-c271937ef488 0716-6ebed02f-c421-4b06-a73b-f334413e84b3 --name my-instance-disk1
Updating instance disk 0716-6ebed02f-c421-4b06-a73b-f334413e84b3 of instance 0716_f8c0fd3b-cada-46c3-91f6-c271937ef488 under account YYYYYY as user vpc-user@myco.com...
ID 0716-6ebed02f-c421-4b06-a73b-f334413e84b3
Name my-instance-disk1
Size 600
Interface Type virtio_blk
Created 2020-10-29T22:57:15-05:00
$ ibmcloud is instance-disks 0716_f8c0fd3b-cada-46c3-91f6-c271937ef488
Listing disks of instance 0716_f8c0fd3b-cada-46c3-91f6-c271937ef488 under account YYYYYY as user vpc-user@myco.com...
ID Name Size Interface Type
0716-6ebed02f-c421-4b06-a73b-f334413e84b3 my-instance-disk1 600 virtio_blk
0716-54ee0659-d92a-4d4c-ac6b-8f03cb178a07 linguini-epiphany-lush-preschool 600 virtio_blk