VPCによる仮想マシンの作成 File Storage

仮想プライベートクラウド 4.17 そしてその後 ベアメタルのワーカーノードのみ RHCOSのみ

File Storage for VPC を使用して、 OpenShift Virtualization 上で実行される仮想マシンの永続ストレージをプロビジョニングします。

このトピックでは、環境を検証し、VPC File Storage を使用する仮想マシンを作成し、仮想マシンが正常に起動することを検証する方法について説明します。

開始前に

VPC File Storage を使用して仮想マシンを作成する前に、以下のタスクを完了してください:

  1. Red Hat CoreOS (RHCOS) を使用するベアメタルワーカーノードで VPC クラスタを作成します。 詳細については、 VPCクラスタの作成を 参照してください。
  2. OpenShift 仮想化の導入を計画する 』の計画ガイダンスを参照してください。
  3. OpenShift 仮想化用ストレージの設定 」の説明に従って、VPC File Storage を設定します。
  4. OpenShift Virtualization Operator のインストール 」の説明に従って、 OpenShift Virtualization Operator をインストールします。
  5. virtctlCLIをインストールします。 詳細については、 OpenShift 仮想化 CLI ツールの使用を開始するを参照してください。

環境の検証

仮想マシンを作成する前に、クラスタの準備が整っていることを確認してください。

  1. OpenShift 仮想化コンポーネントが配置されていることを確認します。

    oc get hyperconverged -n openshift-cnv
    oc get pods -n openshift-cnv
    

    HyperConverged の出力から PHASE の値 Deployed を探す。 ポッド出力で、仮想化ポッドが Running または Completed ステータスを表示していること、 PendingCrashLoopBackOffError でスタックしていないことを確認します。

  2. VPC File CSIドライバアドオンがインストールされていることを確認します。

    ibmcloud ks cluster addon ls -c CLUSTER_NAME | grep vpc-file-csi-driver
    

    出力から vpc-file-csi-driver アドオンを探し、その健全性状態が normal であること、またはステータスがアドオンの準備ができていることを示していることを確認する。

  3. VPC File Storage クラスが利用可能であることを確認します。

    oc get storageclass | grep vpc-file
    

    ibmc-vpc-file-1000-iopsibmc-vpc-file-6000-iops などのストレージクラスを探す。 後のステップで使用するストレージ・クラス名をメモしておく。

  4. 選択した VPC File Storage クラスのストレージ・プロファイルが、 ReadWriteMany アクセス・モードおよび Filesystem ボリューム・モードで構成されていることを確認します。

    oc get storageprofile <storage-class-name> -o yaml
    

    出力で、 spec の下にある claimPropertySets を探す。 accessModesReadWriteMany を含み、 volumeModeFilesystem に設定されていることを確認する。

    claimPropertySets:
    - accessModes:
      - ReadWriteMany
      volumeMode: Filesystem
    
  5. 選択したストレージ・クラスが永続ボリューム・クレームをプロビジョニングできることを確認する。

    cat <<EOF | oc apply -f -
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: vpc-file-test-pvc
    spec:
      accessModes:
      - ReadWriteMany
      resources:
        requests:
          storage: 10Gi
      storageClassName: <storage-class-name>
    EOF
    
  6. テスト用永続ボリュームの請求がバインドされていることを確認する。

    oc get pvc vpc-file-test-pvc
    

    出力で、 STATUS 列を探し、永続ボリューム・クレームが Bound を示していることを確認する。 クレームが Pending のままであれば、ストレージクラスまたはストレージプロファイルが正しく設定されていない。

  7. クレームがバインドされていない場合は、永続的なボリュームのクレームの詳細を確認してください。

    oc describe pvc vpc-file-test-pvc
    
  8. テスト用の永続ボリューム・クレームを削除します。

    oc delete pvc vpc-file-test-pvc
    

ウェブコンソールからの仮想マシンの作成

OpenShift ウェブコンソールを使用して、VPC File Storage にディスクを格納する仮想マシンを作成します。

  1. クラスタの OpenShift Webコンソールにログインします。
  2. ナビゲーションメニューで、 仮想化 > をクリックします。 VirtualMachines.
  3. 仮想マシンを手動で定義する場合は、[ Create]をクリックしてテンプレートを選択するか、[ From YAML ]を選択します。
  4. 仮想マシンの名前を入力してください。
  5. 仮想マシンを作成したいプロジェクトを選択してください。
  6. ストレージ・セクションで、 ibmc-vpc-file-1000-iopsibmc-vpc-file-6000-iops などの VPC File Storage クラスを選択します。
  7. ワークロード要件に基づいてディスクサイズを設定する。
  8. CPUとメモリの設定を見直し、必要に応じて更新する。
  9. Create VirtualMachine をクリックします。
  10. 仮想マシンの詳細ページで、[ ディスク]、[ ネットワークインターフェイス ]、および[ 構成] タブを確認し、仮想マシンが期待される設定で作成されていることを確認します。

仮想マシンが作成されると、コンソールは関連する永続ボリュームクレームとデータボリュームリソースを作成します。

CLI から仮想マシンを作成する

再利用可能なマニフェストから仮想マシンを作成する場合は、CLI を使用します。

  1. 仮想マシンのワークロード用にネームスペースを作成する。

    oc create namespace vm-project
    
  2. VPC File Storage クラスを参照する仮想マシン・マニフェストを作成します。

    cat <<EOF | oc apply -f -
    apiVersion: kubevirt.io/v1
    kind: VirtualMachine
    metadata:
      name: rhel9-vm
      namespace: vm-project
    spec:
      running: false
      template:
        metadata:
          labels:
            kubevirt.io/domain: rhel9-vm
        spec:
          domain:
            cpu:
              cores: 2
            devices:
              disks:
              - disk:
                  bus: virtio
                name: rootdisk
              - disk:
                  bus: virtio
                name: cloudinitdisk
            resources:
              requests:
                memory: 4Gi
          volumes:
          - dataVolume:
              name: rhel9-vm-rootdisk
            name: rootdisk
          - cloudInitNoCloud:
              userData: |
                #cloud-config
                user: cloud-user
                password: changeme
                chpasswd: { expire: false }
            name: cloudinitdisk
      dataVolumeTemplates:
      - metadata:
          name: rhel9-vm-rootdisk
        spec:
          pvc:
            accessModes:
            - ReadWriteMany
            resources:
              requests:
                storage: 40Gi
            storageClassName: <storage-class-name>
            volumeMode: Filesystem
          source:
            blank: {}
    EOF
    
  3. 仮想マシンとデータボリュームのリソースが作成されたことを確認します。

    oc get vm -n vm-project
    oc get dv -n vm-project
    oc get pvc -n vm-project
    

    出力で、仮想マシン rhel9-vm がリストされ、データボリューム rhel9-vm-rootdisk が存在し、永続ボリューム請求 rhel9-vm-rootdisk が作成されていることを確認します。 永続ボリューム要求がまだ Bound でない場合は、プロビジョニングが完了するまで待ってから続行します。

  4. データボリュームの準備ができていない場合は、データボリュームの詳細を確認してください。

    oc describe dv rhel9-vm-rootdisk -n vm-project
    oc describe pvc rhel9-vm-rootdisk -n vm-project
    
  5. 仮想マシンを始動します。

    virtctl start rhel9-vm -n vm-project
    
  6. 仮想マシンインスタンスが実行されていることを確認します。

    oc get vmi -n vm-project
    

    出力で、 仮想マシ ンの イ ン ス タ ン ス名を確認 し、 フェーズが Running であ る こ と を確認 し ます。 仮想マシンインスタンスが表示されない場合は、仮想マシンのステータスを確認します。

    oc get vm rhel9-vm -n vm-project -o yaml
    

仮想マシンの検証

仮想マシンを作成したら、ストレージとコンピュートリソースが期待どおりに動作していることを確認します。

  1. パーシステント・ボリューム・クレームがバインドされていることを確認する。

    oc get pvc -n vm-project
    

    出力で、永続ボリュームのクレーム rhel9-vm-rootdisk を探し、 STATUS 列が Bound を示していることを確認する。

  2. データボリュームのインポートまたはプロビジョニングが正常に完了したことを確認します。

    oc get dv -n vm-project
    

    出力で、データ・ボリュームが Succeeded または Ready のような成功したフェーズを表示していることを確認する。 データボリュームの準備ができていない場合は、データボリュームと永続ボリュームのクレームイベントを確認してください。

    oc describe dv rhel9-vm-rootdisk -n vm-project
    oc describe pvc rhel9-vm-rootdisk -n vm-project
    
  3. 仮想マシンインスタンスが起動していることを確認する。

    oc get vmi -n vm-project
    
  4. 仮想マシンインスタンスの詳細を確認し、ノードの配置、インターフェイス、およびアタッチされているボリュームを確認します。

    oc describe vmi rhel9-vm -n vm-project
    
  5. cloud-init認証情報を設定した場合は、仮想マシンコンソールに接続します。

    virtctl console rhel9-vm -n vm-project
    
  6. インスタンスが起動しない場合は、仮想マシンの詳細を確認してください。

    oc describe vm rhel9-vm -n vm-project
    oc describe vmi rhel9-vm -n vm-project
    

制限と配慮を理解する

仮想マシンにVPC File Storage :

VPC( File Storage )のパフォーマンス
VPC File Storage はネットワーク・アタッチド・ストレージのオプションである。 一般に、開発、テスト、低I/Oワークロードに最適である。
スナップショットとクローン
スナップショットとクローンのサポートは、 OpenShift Data Foundationとは異なります。 本番ワークロード用にVPC File Storage を標準化する前に、ストレージ要件を見直しましょう。
ライブ・マイグレーション
ライブマイグレーションは、ストレージプロファイルが正しく構成され、ワークロードが OpenShift 仮想化要件を満たしている場合にサポートされます。
ストレージプロファイルの設定
CDI がストレージクラスを正しく使用できるように、VPC ファイル CSI プロビジョナのストレージプロファイルを構成する必要があります。

トラブルシューティング

仮想マシンが起動しない、またはディスクが正しくプロビジョニングされない場合は、以下のトピックを確認してください:

次のステップ

VPC File Storage を使用して仮想マシンを作成した後、VPC を使用して仮想マシンを作成します:

  1. Virtualization Serviceクラスタ内の仮想マシンの管理
  2. 仮想ネットワークインターフェースの設定
  3. Red Hat OpenShift 仮想化のドキュメントを読む