インスタンス・ストレージの管理

インスタンス・ストレージは、クラウド・ネイティブのワークロード (またはアプリやサービス) のパフォーマンスを改善するために役立つ、安価で高速な一時ストレージを提供します。 詳しくは、インスタンス・ストレージについてを参照してください。

仮想サーバー・インスタンスを使用してインスタンス・ストレージ・ディスクをプロビジョンするには、インスタンス・ストレージを含むプロファイルを選択します。 インスタンスストレージのディスクデバイスは、インスタンスプロファイルの一部として購入されているため、稼働中に接続または切断することはできません。 汎用プロファイル・ファミリー (平衡型、コンピュート、メモリー) および一部の専用プロファイル・ファミリー (非常に高いメモリーとストレージ最適化) には、すべてインスタンス・ストレージのプロファイル・オプションがあります。 すべての第3世代インスタンス・プロファイルにはインスタンス・ストレージが含まれています。 詳細は、 第3世代インスタンス・プロファイルを 参照。 インスタンス・ストレージの量は、プロファイルに割り当てられている vCPU の数に比例して割り振られます。 プロファイルの詳細については、 x86-64 インスタンス・プロファイルを 参照してください。

コンソールでインスタンスストレージを使用した仮想サーバーインスタンスのプロビジョニング

インスタンス・ストレージを備えた仮想サーバー・インスタンスを作成する前に、IBM Cloud VPC を作成しておく必要があります。

インスタンス・ストレージと一緒にプロビジョンするには、以下の手順を実行します。

  1. IBM Cloud コンソールで、 [ナビゲーション]メニュー アイコン > [インフラストラクチャ]VPC アイコン > [コンピュート] > [仮想サーバーインスタンス ] の順に選択します。
  2. [VPC 用仮想サーバーインスタンス] ページで、 [作成 ] をクリックし、必要な情報を入力します。 具体的なフィールドについて詳しくは、仮想サーバーの作成を参照してください。
  3. インスタンスのストレージプロファイルを選択するには、「 すべてのプロファイルを表示 」をクリックしてください。 すべての ox2 プロファイルと、プロファイル名の 4 番目の位置に文字「d」があるプロファイルには、インスタンス・ストレージが含まれます。 インスタンス・ストレージを含むプロファイルの例は、 bx2d-2x8 および ox2-2x16です。 リストをフィルターに掛けるには、チェック・ボックスを使用します。 インスタンス・プロファイルのリストについては、 x86-64 インスタンス・プロファイル を参照してください。
  4. 使用するプロファイルを選択し、**「保存」**をクリックします。 インスタンス・ストレージのディスクが仮想サーバー・インスタンスに接続されるのは、ブート・ボリュームの後、かつリモート・ブロック・ストレージ・ボリューム (存在する場合) の前です。
  5. インスタンスをプロビジョンする準備ができたら、**「仮想サーバー・インスタンスの作成 (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 仮想サーバーからインスタンス・ストレージ・メタデータを使用する例を示しています。

  1. 存続期間の短いインスタンス 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 ライセンスでライセンスされたサードパーティツールである。

  2. このトークンを使用してインスタンス・メタデータを取得し、 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')
    
  3. /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 ワードの名前ですが、カスタム名を持つように編集することができます。 詳しくは、 デフォルト名のいずれかの更新 を参照してください。

インスタンス・ストレージのディスクのパーティショニング、フォーマット、およびマウント

インスタンス・ストレージのディスクは、リモート・ブロック・ボリュームと同じように、パーティション化し、ファイル・システムを指定してフォーマットし、階層ファイル・システムにマウントすることができます。

以下の 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