仮想マシン管理

はじめに

このラボの最初のセクションでは、OpenShift Virtualization における仮想マシンの作成と管理の基本について紹介します。OpenShift 4.18 から、仮想化ベースの資産を視覚化し管理しやすくする新しい仮想化パースペクティブと仮想マシンのツリービューが追加されました。UIの変更について確認した後、事前定義されたテンプレートから仮想マシンを作成するプロセス全体をウェブコンソールがどのようにガイドするかを説明します。その後、そのVMのプロパティを確認し、基本的なカスタマイズを行い、仮想マシン管理者に求められることが多いライブマイグレーションなどの操作を行います。

目標
  • 新しい仮想マシンを作成する

  • 仮想マシンのリソースを確認し、変更する

  • OpenShift コンソールを使用して VM の電源状態がどのように管理されるかを理解する

  • 2 つのホスト間で VM をライブマイグレーションする

念のため、OpenShift コンソールへの認証情報は以下の通りです。

OpenShift クラスタコンソールは {openshift_console_url} で利用可能です。

ログインは以下で可能です。

  • User: {user}

  • Password: {password}

Virtualization パースペクティブへの切り替え

  1. 最初にログインすると、Developer (開発者)パースペクティブが表示され、紹介プロンプトが表示されます。 Skip tour ボタンをクリックしてウィンドウを閉じます。

    00 Dev Perspective
  2. 次に、左上にある Developer をクリックし、 Virtualization のパースペクティブに切り替えます。

    01 Virt Perspective
  3. OpenShift Virtualization への歓迎を告げるプロンプトが表示されます。 Do not show this again(次回以降表示しない)のチェックボックスをクリックすると、ウィンドウが消えます。

    02 Welcome Virt

OpenShift Virtualization の探索

Virtualization ビューに到着すると、現在使用中のすべての仮想化リソースの概要を表示する Overview ページが表示されます。少し時間を取って探索してみましょう。

03 Virt Overview
Virtualization パースペクティブは、Red Hat OpenShift Virtualizationがインストールされ、適切に構成されている場合のみ利用可能です。このラボ環境では、インストールと構成はすでに実行済みです。
  1. 左側のサイドメニューで VirtualMachines 項目をクリックすると、すべてのVMアセットの仮想化ツリービューが表示されます。

    04 Tree View
  2. このページを少し見てみましょう。このビューは3つの列に分かれており、左側には管理メニュー、中央にはVMベースのプロジェクトの構成、そして仮想マシンビューがあります。

  3. 左側のメニューは、OpenShiftの仮想化統合機能の主なコントロールです。仮想マシンを構築するためのカタログ、テンプレート、インスタンスタイプなどの仮想化関連の項目や、仮想マシンのストレージとネットワークを設定するメニューが表示されています。

    05 Left Menu
  4. 前述の中央の列はプロジェクトビューです。OpenShiftの他のオブジェクトと同様に、プロジェクト(Kubernetesのネームスペースの抽象化)は、ユーザーがリソースを使用および管理する際に必要な権限やその他の要素が適用される管理画面です。デフォルトでは、ここにスライダーがあり、既存のVMを持つプロジェクトのみが表示されます。現在、表示できるプロジェクトは vmimported-{user} のみです。これは、仮想マシンにアクセスできる唯一のプロジェクトだからです。

    06 Project Tree
  5. 仮想マシン概要の列には、デフォルトで「すべてのプロジェクト」がリスト表示され、共有クラスター環境内のすべてのユーザーのVMが表示されます。列を並べ替えることでVMの検索が容易になり、また、列の表示をアレンジして整理することも可能です。中央の列で特定のプロジェクトまたは仮想マシンをハイライトすると、この表示が変更されます。

    07 VM List
  6. 中央の列からプロジェクト vmimported-{user} をクリックすると、現在展開され、特定のユーザーアカウントで利用可能な仮想マシンが表示されます。

    08 VM Imported Project
    ラボガイドは、可能な限り動的に設定され、お客様の特定のユーザーアカウントとプロジェクト名を表示するように構成されていますが、ラボガイド内の画像は固定されており、異なるユーザーが表示される場合があります。そのため、これらのタスクは、お客様のユーザーアカウントと関連プロジェクトを参照して実行してください。
  7. 仮想マシンの概要の列には、vmimported-{user} プロジェクト内の仮想マシンだけが表示されます。3つのVMがリスト表示されますが、現在はオンになっていません。これらはラボの後半部分で使用します。

    09 VMs Stopped

新しいプロジェクトを作成

VMを作成する前に、新しいプロジェクトを作成する必要があります。仮想マシンは特定のプロジェクト、またはネームスペースにデプロイされ、デフォルトでは、ネームスペースへのアクセス権限のないユーザーは、仮想マシンにアクセス、管理、制御できません。管理者はすべてのプロジェクトにアクセスでき、すべての仮想マシンを表示できますが、一般ユーザーは必要に応じてプロジェクトへのアクセス権限を付与する必要があります。

  1. 中央のツリー表示カラムの右上にある Create Project をクリックします。

    10 Column Create
  2. Name フィールドに vmexamples-{user} と入力してプロジェクト名を指定し、 Create をクリックします。

    11 Create Project
    この新しいプロジェクトをすぐに表示するために、仮想マシン概要の列が変更されていますが、プロジェクト内にVMが存在しないため、中央の列には表示されません。また、デフォルトでは表示しないオプションがオンになっています。

Linux 仮想マシンの作成

  1. 仮想マシン概要の列から、 Create VirtualMachine ボタンをクリックし、ドロップダウンメニューから From template を選択します。

    VM は、InstanceType ウィザードから作成することも、カスタムの YAML 定義を入力して作成することもできますが、今回のラボのシナリオでは、既存のテンプレートをベースとした VM の作成に限定します。
    12 Create VM Button
  2. カタログ画面に移動し、利用可能な事前定義のVMテンプレートを示す多数のタイルが表示されます。

    利用可能なテンプレートのリストを確認すると、一部に青いバッジが付いているものがあることに気づくでしょう。これは、自動的にダウンロードされ保存されたテンプレートソースディスクを使用しているテンプレートであることを示しています。

    利用可能なオプションをカスタマイズできる環境で展開している場合は、これらのブートソースのデフォルトでの可用性を変更したり、これらのソースディスクを削除したりすることができます。

    13 Create VM Templates
  3. Fedora VM タイルを選択すると、ダイアログが開きます。

    14 Create VM Quick
  4. 名前を fedora01 に変更し、Quick create VirtualMachine をクリックします。

    15 Create VM Quick Name
  5. ツリービューに戻り、仮想マシン概要の列に新しいVMの情報が表示されていることを確認します。また、VMが含まれているため、中央の列に vmexamples-{user} プロジェクトが表示され、プロジェクト内でハイライトされていることに注目してください。

  6. よく見ると、仮想マシン概要の列で、VMステータスが Provisioning から Starting に変わり、準備が整うと Running に変わっていることが分かります。

    この間、ストレージプロバイダはテンプレートディスクを複製し、新しく作成された仮想マシンで使用できるようにしています。この処理にかかる時間は、ブートディスクの作成に使用するストレージプロバイダや、システムの現在の負荷によって異なります。

    16 Fedora Running
  7. 仮想マシンが起動したら、右側の列にある Overview ページでさらに詳しく調べることができます:

    • Details:このタイルには、VM の名前、ステータス、作成時間、OS、仮想リソース、および作成元のテンプレートなど、VM に関する情報が表示されます。また、VNC 端末の縮小版と、フルスクリーン Web コンソールを起動する機能も含まれています。

    • General:このタイルには、ゲストが実行されている Namespace (プロジェクト)、インスタンス名、および Kubernetes Podなど、OpenShift 固有の情報が表示されます。

    • Snapshots: このタイルでは、既存のスナップショットに関する情報を表示し、スナップショットをすばやく作成するためのボタンも表示されます。

    • Network: このタイルでは、ソフトウェア定義ネットワーク(SDN)上の仮想マシンのIPアドレスと内部ホスト名が表示されます。高度なネットワークが定義されていない場合、VMは自動的にPodネットワークに接続されます。このラボの後半では、高度なネットワークオプションと、VMの接続性をカスタマイズする方法について説明します。

    • Utilization: このタイルでは、CPU、メモリ、ストレージ、ネットワークスループットなど、現在この仮想マシンで使用中のリソースの概要が表示されます。

      17 Fedora Details
  8. VMの詳細を確認したら、Events タブをクリックして、先ほど行われたプロビジョニングプロセスの詳細を確認します。VMの作成に問題がある場合は、このタブにも表示されます。作成中に発生したイベントは以下の通りです。

    18 Fedora Events
    • DataVolume が作成されました。 DataVolumes は、仮想マシンの作成ワークフロー中に、OpenShift ネイティブストレージへのクローンまたはインポートプロセスを抽象化し、VM ディスクの作成を管理するために使用されます。

    • 新しい VM インスタンス Fedora01 が起動しました。

仮想マシンの管理

仮想マシンの管理運用は、単にVMを作成し構成をカスタマイズするだけではありません。プラットフォーム管理者として、VMの状態を制御し、ライブマイグレーションを実行して、リソースのバランス調整、メンテナンスタスクの実行、ノードの再構成を行う必要があります。

  1. Configuration タブをクリックすると、仮想マシンのリソースに関する詳細情報の取得や変更を行うことができます。

    19 VM Configuration

    このタブには7つのサブタブがあります。

    20 Configuration Tab
    • Details: このタブでは、VMの物理的特徴がすべて1つのパネルに表示されます。 ここから、CPUやメモリの変更、ホスト名の変更、パススルードライブの追加、ブート順の変更など、さまざまな記述子や基本ハードウェア構成の編集を行うことができます。

    • Storage: このタブにはシステムに接続されたディスクがリストされ、新しいディスクをシステムに追加することができます。ゲストがエージェントで構成されている場合、ファイルシステムと使用率がリストされます。ここでは、追加のディスクとして ConfigMapsSecrets 、および Service Accounts をアタッチすることができます。これは、仮想マシンで実行中のアプリケーションに構成データを渡す場合に便利です。

    • Network: このタブには、VM用に現在構成されているネットワークインターフェースが表示され、新しいインターフェースを追加することもできます。

    • Scheduling: このタブには、VMの実行場所と、退避時の対応戦略(Eviction strategy)を示す高度な構成オプションが含まれています。このタブは、アフィニティルール/アンチアフィニティルール、ノードセレクタと許容範囲の設定、およびVMがどのクラスタノードにスケジュールされるかに影響するその他の動作の設定に使用されます。

    • SSH: このタブでは、構成済みのロードバランサー上で SSH サービスを作成するか、機能が有効になっている場合は公開 SSH 鍵を注入することで、マシンへのリモートアクセスを構成できます。

    • Initial run: このタブでは、Linux の cloud-init または Microsoft Windows の sys-prep を構成できます。これには、SSH 鍵の注入、アプリケーションのインストール、ネットワーク構成など、最初の起動時に実行するコマンドの設定が含まれます。

    • Metadata: このタブには、仮想マシンに現在適用されているラベルとアノテーションが表示されます。これらの値を変更することで、特定の目的のためにマシンにタグ付けしたり、マシンを一意に識別することで自動ワークフローを有効にすることができます。

  2. これらの各項目をクリックして自由に探索することができますが、入門的な目的では、ストレージとネットワークに特に焦点を当ててみましょう。

  3. Storage サブタブをクリックして、VMに関連付けられているディスクの一覧を表示します。

    21 Storage Tab

    この環境では、ディスクに使用されるストレージのソースとタイプを定義するデフォルトの StorageClass は ocs-external-storagecluster-ceph-rbd と呼ばれます。 このストレージは、OpenShift Data Foundation (ODF) が仮想マシンの実行用に提供するデフォルトのタイプです。 各ストレージプロバイダには、VM ディスクをバックアップするストレージの特性を定義する異なるストレージクラスがあります。

  4. VMにアタッチされたネットワークインターフェースを確認するには、Network サブタブをクリックします。

    22 Network Tab

    VMが作成されると、デフォルトで Pod Networking ネットワークの masquerade タイプのインターフェースが作成されます。これによりVMがSDNに接続され、VMからOpenShiftクラスターの外部へのアクセスが可能になります。クラスター内の他のVMやPodは、このインターフェースを使用して仮想マシンにアクセスできます。

    さらに、SDN に接続された VM は、ロードバランサータイプのサービスである Route を使用して外部からアクセスすることもできます。また、外部ネットワークへの直接アクセスを許可するように Network Attachment Definition を構成することもできます。この概念については、後ほど詳しく説明します。

仮想マシンの状態の制御

仮想化環境の管理権限を持つユーザーとして、ウェブコンソールから仮想マシンの停止、開始、再起動、一時停止、および一時停止の解除を行うことができます。

  1. Overview タブをクリックして、サマリー画面に戻ります。

  2. 右上のコーナーに、実行状態のショートカットボタン(停止、再起動、一時停止、および開始)があります。また、Actions というタイトルのドロップダウンメニューもあります。

    23 VM State Actions
    • Stop: 仮想マシンの正常なシャットダウンを開始します。

    • Restart: オペレーティングシステムにシグナルを送信して仮想マシンを再起動します。 ゲスト統合が適切に機能するために必要です。

    • Pause: プロセスは凍結され、CPUリソースやI/Oへのアクセスはできなくなりますが、ハイパーバイザーレベルでVMが使用するメモリは割り当てられたままになります。

    • Start: 停止した仮想マシンを起動します。仮想マシンが稼働中の場合は、このボタンはグレー表示されます。

  3. ショートカットボタンは便利ですが、Actions メニューをクリックしてドロップダウンリストに表示されるオプションを選択することでも、これらのオプションやその他のオプションにアクセスできます。

    24 VM Actions Menu
  4. Stop ボタンをクリックし、仮想マシンが Stoped 状態になるまで待ちます。

    25 VM Stopped
  5. Actions をクリックすると、Start オプションが表示され、Restart および Pause オプションはグレー表示されます。

    26 VM Actions List Stopped
  6. Start をクリックし、Running ステータスになるまで待ちます。

  7. Actions メニューまたはショートカットボタンを使用して、Pause オプションをクリックします。 仮想マシンの状態が Paused に変わります。

    27 VM Actions Paused
  8. Actions メニューの Unpause オプションを使用するか、ショートカットボタンを使用して仮想マシンを再開します。

仮想マシンのライブマイグレーション

このセクションでは、VM をシャットダウンせずに、VM を OpenShift ノードから別のノードにマイグレートします。ライブマイグレーションには、VMディスクをソースノードとデスティネーションノードの両方に同時にマウントできるように、ReadWriteMany (RWX) ストレージが必要です。OpenShiftの仮想化は、あなたがよく知っている他の仮想化ソリューションとは異なり、各クラスタメンバーにマウントされたモノリシックなデータストアを使用して、多数のVMディスクを多数の異なるVM用に保持するものではありません。代わりに、各VMディスクは、必要とされる時に、必要とされる場所にのみマウントされる独自のボリュームに保存されます。

  1. 仮想マシンが稼働している物理ノードを確認するには、Overview ページの 一般 タイルの下にある Podvirt-launcher-fedora01-uuid をクリックします。

    28 Pod Name
  2. これにより、Podの詳細ページが表示されます。Node というセクションヘッダーを検索し、そのPodが実行されているワーカーの名前を確認します。このスクリーンショットでは、worker-cluster-ttgmt-3 で実行されています。

    29 Pod Details Node
  3. ブラウザの戻るボタンをクリックして、Overview ページに戻ります。

  4. Actions メニューを使用して、MigrationCompute のオプションを選択します。

    30 VM Dialog Migrate
  5. 数秒後、VMのステータスが Migrating に変更され、その進捗状況を確認できるようになります。

    31 VM Migrating
  6. 移行が完了すると、VMは Running ステータスに戻りますが、新しいノード上で稼働します。確認するために、virt-launcher-fedora01-uuid のPod名をクリックしてみましょう。

    32 Migrated Status
  7. 仮想マシンが新しいノード(worker-cluster-ttgmt-2)上で稼働していること、および、ライブマイグレーションプロセスによりVMインスタンスが新しいワーカーノード上の新しいPodに中断なく転送されたため、Pod自体が新しいPodに新しい一意のIDで存在していることが確認できます。

    33 Pod Details Node Migrated

まとめ

このラボでは、OpenShift Virtualizationの仮想化管理環境の概要を説明し、状態管理や物理ホスト間のライブマイグレーションなど、基本的な仮想マシン管理タスクをいくつか実行しました。これらはどちらも、プラットフォーム管理者としてよく必要となる一般的なタスクであり、OpenShift VirtualizationでVMを操作する際に利用できる基本的な機能に慣れるための良い方法です。