4.1. 仮想マシンの管理¶
それぞれの仮想マシン(VM)は、独立した一連の仮想ハードウェアを持つ独立したシステムです。主な特色を以下にまとめます。
- 仮想マシンは通常のコンピューターによく似ていて、同じように動作します。独自の仮想ハードウェアを持っています。仮想マシンでは、ソフトウェアアプリケーションを変更も調整も行わないで実行できます。
- 仮想マシンの設定は、新しい仮想ディスクや仮想メモリを追加するなどして簡単に変更できます。
- 仮想マシンは、互い同士の間で物理ハードウェアリソースを共有しますが、ファイルシステムもプロセスもsysctl変数もそれぞれの間で完全に独立していて、計算ノードからも独立しています。
- 仮想マシンは、サポートされているどのゲストオペレーティングシステムでも実行できます。
仮想マシンの設定に関する現時点の上限値を以下の表にまとめます。
リソース | 上限 |
---|---|
RAM | 1 TiB |
CPU | 48仮想CPU |
ストレージ | 15ボリューム(各512 TiB) |
ネットワーク | 15 NIC |
4.1.1. サポートされるゲストオペレーティングシステム¶
仮想マシンでの動作確認が済んでいてサポートされているゲストオペレーティングシステムを以下にまとめます。
オペレーティング システム | Edition | アーキテクチャ |
---|---|---|
Windows Server 2019 | Essentials、Standard、Datacenter | x64 |
Windows Server 2016 | Essentials、Standard、Datacenter | x64 |
Windows Server 2012 R2 | Essentials、Standard、Datacenter | x64 |
Windows Server 2012 | Standard、Datacenter | x64 |
Windows Server 2008 R2 | Standard、Datacenter | x64 |
Windows Server 2008 | Standard、Datacenter | x64 |
Windows 10 | Home、Professional、Enterprise、Enterprise 2016 LTSB | x64 |
Windows 8.1 | Home、Professional、Enterprise | x64 |
Windows 7 | Home、Professional、Enterprise | x64 |
オペレーティング システム | アーキテクチャ |
---|---|
CentOS 8.x | x64 |
CentOS 7.x | x64 |
CentOS 6.x | x64 |
RHEL 8.x | x64 |
RHEL 7.x | x64 |
Debian 10.x | x64 |
Debian 9.x | x64 |
Ubuntu 20.04.x | x64 |
Ubuntu 18.04.x | x64 |
Ubuntu 16.04.x | x64 |
4.1.2. 仮想マシンの作成¶
VMの作成作業を進める前に、以下のものがそろっていることを確認してください。
以下のいずれかのゲストOSソース(イメージの管理を参照):
VMにインストールするゲストOSの配布用ISOイメージ
QCOW2形式のブートボリュームであるテンプレート
ブートボリューム
注釈
ブートボリュームを入手するには、Managing compute volumesの説明に従ってボリュームを作成し、そのボリュームをVMに接続し、そこにオペレーティングシステムをインストールしてから、VMを削除します。
1つ以上の計算ネットワーク(仮想ネットワークの管理を参照)
SSHキー(SSHキーの管理を参照)
注釈
SSHキーを指定できるのは、テンプレートかブートボリュームからVMを作成する場合に限られます。
注釈
デフォルトでは、ホストのCPUモデルで仮想マシンが作成されます。各計算ノードのCPUが別々になっていると、ライブ移行で問題が発生する可能性があります。その問題を避けるために、すべての新しいVMでCPUモデルを手動で設定することもできます(Setting virtual machine CPU modelを参照)。
VMを作成するには、以下の手順を実行します。
Virtual machines screenで [仮想マシンを作成] をクリックします。VMのパラメータを指定するためのウィンドウが表示されます。
新しいVMの名前を指定します。
次のようにVMのブートメディアを選択します。
ISOイメージまたはテンプレートがある場合、以下の手順を実行します。
[配置元] セクションで [イメージ] を選択し、[イメージ] セクションで [指定] をクリックします。
[イメージ] ウィンドウで、ISOイメージまたはテンプレートを選択し、[完了] をクリックします。
計算ブートボリュームがある場合、以下の手順を実行します。
[配置元] セクションで [ボリューム] を選択し、[ボリューム] セクションで [指定] をクリックします。
[ボリューム] ウィンドウで [接続] をクリックします。
[ボリュームを接続] ウィンドウで、ボリュームを見つけて選択し、[接続] をクリックします。
複数のボリュームを接続する場合、デフォルトでは最初に接続したボリュームがブートボリュームになります。別のボリュームをブータブルとして選択するには、そのボリュームの横にある上矢印ボタンをクリックして、そのボリュームをリストの先頭に配置します。
ブートメディアを選択すると、このメディアを起動するために必要なボリュームが [ボリューム] セクションに自動的に追加されます。
次のようにVMのディスクを構成します。
- [ボリューム] ウィンドウで、デフォルトのブートボリュームがゲストOSを収容できるサイズであることを確認します。そうでない場合は、ブートボリュームの横にある省略記号アイコンをクリックし、[編集] をクリックします。ボリュームのサイズを変更し、[保存] をクリックします。
- (オプション)ボリュームを作成または接続してVMにディスクを追加します。これを行うには、[ボリューム] セクションの鉛筆アイコンをクリックし、[ボリューム] ウィンドウの [追加] または [接続] をクリックします。
- VMの削除中に削除されるボリュームを選択します。これを行うには、[ボリューム] セクションの鉛筆アイコンをクリックし、必要なボリュームの横にある省略記号アイコンをクリックし、[編集] をクリックします。[終了時に削除] を有効にして [保存] をクリックします。
- VMのディスクの構成が完了したら、[完了] をクリックします。
(オプション)プレースメントがある場合は、[プレースメント] ドロップダウンリストが表示されます。プレースメントは、特定の機能(特殊なライセンスなど)を共有するノードやVMをグループ化するために管理者が作成します。VMの特徴に合わせてプレースメントを選択してください。詳細については、Managing placementsを参照してください。
[フレーバー] セクションでVMに割り当てられるRAMおよびCPUリソースの容量を選択します。[フレーバー] ウィンドウでフレーバーを選択し、[完了] をクリックします。
次のように、[ネットワーク] セクションでVMにネットワークインターフェースを追加します。
[ネットワークインターフェース] ウィンドウで [追加] をクリックし、計算ネットワークを選択した上で、[追加] をクリックします。
選択したネットワークに接続されるネットワークインターフェースが、[ネットワークインターフェース] リストに表示されます。
(オプション)新しく追加したネットワークインターフェースの追加のパラメータsuch as IP and MAC addressesを編集します。これを行うには、省略記号アイコンをクリックし、[編集] をクリックし、パラメータを設定します。これらのパラメータを後から編集することはできません。ただし、古いネットワークインターフェースを削除して、新しいネットワークインターフェースに置き換えることは可能です。
VMのネットワークインターフェースの設定が完了したら、[完了] をクリックします。
(オプション)cloud-initおよびOpenSSHがインストールされているテンプレートまたはボリュームから起動する場合は(Preparing Templatesを参照)、以下の手順を実行します。
重要
クラウドイメージにはデフォルトのパスワードがないため、クラウドイメージからデプロイされたVMには、SSHによる鍵認証方式を使用することでのみアクセスできます。
SSHキーをそのVMに追加することで、パスワードを使用せずにSSHでアクセスできるようになります。[SSHキーを選択] ウィンドウでSSHキーを選択し、[完了] をクリックします。
起動後にVMをカスタマイズする(例: ユーザーのパスワードを変更する)ためのユーザーデータを追加します。[カスタマイズスクリプト] フィールドでcloud-configまたはシェルスクリプトを作成するか、スクリプトをロードするためのファイルをローカルサーバーで見つけて選択します。
Windows VMにスクリプトを追加する方法については、Cloudbase-Initの資料を参照してください。たとえば、次のスクリプトを使用してアカウントに新しいパスワードを設定できます。
#ps1 net user <username> <new_password>
VMのパラメータをすべて設定したら、[デプロイ] をクリックして、VMを作成して起動します。
ISOイメージからVMをデプロイする場合は、ビルトインVNCコンソールを使用して、VM内にゲストOSをインストールする必要があります(仮想マシンへの接続を参照)。テンプレートまたはブートボリュームから作成した仮想マシンには、ゲストOSが事前にインストールされています。
4.1.3. 仮想マシンへの接続¶
仮想マシンがデプロイされたら、VNCコンソールまたはSSH経由で仮想マシンに接続できます。
ビルトインVNCコンソールを使用してVMに接続するには、VMの右側のペインで [コンソール] をクリックします。コンソールが別のブラウザウィンドウで開きます。コンソールでは、キーの組み合わせをVMに送信したり、コンソールウィンドウのスクリーンショットを取得したり、コンソールログをダウンロードしたりできます(仮想マシンのトラブルシューティングを参照)。
SSHでVMに接続できるようにするために、cloud-initとOpenSSHがインストールされていることを確認してください(Preparing Templatesを参照)。SSHでVMに接続するには、SSH端末でユーザー名とVMのIPアドレスを指定します。
# ssh <username>@<VM_IP_address>
Linuxクラウドイメージには、オペレーティングシステムに応じて、デフォルトのログインがあります(
centos
、ubuntu
など)。Windows VMに接続する場合は、Cloudbase-Initのインストール時に指定したユーザー名を入力します。SSHキーを指定せずにVMをデプロイした場合、VMにログインするにはパスワードも入力する必要があります。
4.1.4. 仮想マシンの電源の状態の管理¶
仮想マシンを作成したら、実行できる操作を使用して仮想マシンの電源の状態を管理できます。VMの現在の状態で実行できる操作をすべて表示するには、VMまたはVMの横にある省略記号ボタンをクリックします。以下の操作を実行できます。
- VMを起動するには、[実行] をクリックします。
- 稼働中のVMをグレースフルシャットダウンするには、[シャットダウン] をクリックします。仮想マシンの電源がオフになるまでのシャットダウンのデフォルトのタイムアウトは10分です。
vinfra service compute server stop --wait-time
コマンドを使用して、このタイムアウトをVMごとに設定できます(vinfra service compute server stopを参照)。 - VMの電源を強制的にオフにするには、[電源オフ] をクリックします。
- 稼働中のVMをソフトリブートするには、[再起動] をクリックします。
- ゲストOSをグレースフルシャットダウンせずにVMを再起動するには、[ハードリブート] をクリックします。
- 現在のVMの状態をファイルに保存するには、[一時停止] をクリックします。ホストを再起動する必要があるにもかかわらず、VMで稼働しているアプリケーションを停止したくない場合や、ゲストOSを再起動する場合などに、一時停止を行うと便利です。
- 一時停止の状態のVMを再開するには、[再開] をクリックします。
4.1.5. 仮想マシンの再設定と監視¶
仮想マシンのCPU、ストレージ、およびネットワークの使用量を監視するには、VMを選択し、[監視] タブを開きます。
チャートのデフォルトの時間間隔は12時間です。特定の時間間隔を拡大するには、マウスでその間隔を選択します。拡大をリセットするには、任意のチャートをダブルクリックします。
次のパフォーマンスチャートを利用できます。
- CPU/RAM
- VMによるCPUとRAMの使用量。
- ネットワーク
- 受信と送信のネットワークトラフィック。
- ストレージの読み取り/書き込み
- VMによって読み書きされたデータの量。
- 読み取り/書き込み遅延
- 読み取りと書き込みの遅延。チャートの特定の時点にマウスカーソルを合わせると、その時点の平均遅延と最大遅延、95パーセンタイルと99パーセンタイルも確認できます。
注釈
平均の値は5分おきに計算されます。
VMを再設定するには、対象のVMを選択し、[概要] タブで変更するパラメータの横にある鉛筆のアイコンをクリックします。以下を行うことはできません。
- ブートボリュームの変更、切断、または削除
- ブート以外のボリュームの管理(接続と切断を除く)
- 以前追加したネットワークインターフェースの変更
- 棚上げしたVMのネットワークインターフェースの接続および切断
4.1.6. 仮想マシンの棚上げ¶
停止中のVMをホストノードからアンバインドして、予約済みのリソース(CPUやRAMなど)をリリースできます。棚上げしたVMは依然ブート可能なまま、IPアドレスなどの構成が保持されます。これを行うには、VMの右側のペインで [棚上げ] をクリックします。
他の状態になっている仮想マシンを棚上げするには、[シャットダウン] または [電源オフ] をクリックし、確認ウィンドウの [仮想マシンを棚上げ] チェックボックスを選択します。
VMの棚上げの状態を、十分なリソースがあるホストノードで解除するには、VMの右側のペインで [棚上げ解除] をクリックします。
4.1.7. 仮想マシンのレスキュー¶
注釈
この機能は、Linux仮想マシンでのみGUIを使用して利用できます。Windows VMでは、コマンドラインを使用して利用することもできます。
VMの起動で問題が発生した場合、VMをレスキューモードに送信してそのブートボリュームにアクセスできます。「アクティブ」状態のVMがレスキューモードに送信されると、まずソフトシャットダウンされます。VMがレスキューモードになったら、SSHまたはコンソールを使用して接続できます。以前のブートディスクがセカンダリディスクとして接続されるようになりますので、ディスクをマウントして修理できます。
VMをレスキューモードに送信する前に、以下を検討してください。
- レスキューモードでは、VMの起動にqcow2イメージ(テンプレート)のみを使用できます。テンプレートを作成する手順については、テンプレートの準備を参照してください。
- 現在のステータスが「アクティブ」または「シャットダウン」のVMのみをレスキューモードに送信できます。
- レスキューモードのVMに実行できるのは、コンソール、レスキューモードから出る、削除という3つの操作のみです。
- レスキューイメージにcloud-initがインストールされている場合、そのイメージから起動されたVMには、イメージの作成時に使用した同じSSHキーでアクセスできます。
VMをレスキューモードにするには、以下の手順に従います。
Virtual machines screenで、リストにある対象のVMをクリックします。
VMパネルで、ツールバーにある省略記号ボタンをクリックします。次に [レスキューモードに入る] をクリックします。
[レスキューモードに入る] ウィンドウで、VMをレスキューするイメージを選択します。デフォルトでは、VMの作成に使用された最初のイメージが選択されます。[入る] をクリックします。
マシンのステータスが「レスキュー」に変更されます。VMをレスキューモードから通常の処理に戻すには、以下の手順を実行します。
Virtual machines screenで、リストにある対象のVMをクリックします。
VMパネルで、[レスキューモードから出る] をクリックします。
[レスキューモードから出る] ウィンドウで、[終了] をクリックします。VMが自動的に再起動されます。
VMのステータスが「アクティブ」に変更され、元のルートディスクから起動されます。
注釈
レスキューモードを終了する際にVMのステータスが「エラー」に変更された場合は、[状態をリセット] 操作によってステータスをリセットできます。この操作により、VMのステータスは再び「レスキュー」に戻ります。
4.1.8. ゲストツールの管理¶
このセクションではゲストツールのインストール方法とアンインストール方法を説明します。この機能では、実行中のVMディスクの一貫性のあるスナップショットを作成する(ボリュームスナップショットの管理を参照)必要があります。
4.1.8.1. ゲストツールのインストール¶
仮想マシン内にゲストツールをインストールするには、以下の手順を実行します。
Windows VM内:
- システム管理者から提供されたWindowsゲストツールのISOイメージをダウンロードします。
- VM内にイメージをマウントします。
- Windows8またはWindows Server 2012以降では、ISOイメージをネイティブにマウントできます。これを行うには、ゲストツールのISOイメージを右クリックし、 [マウント] を選択します。
- Windows 7とWindows Server 2008の場合、ISOイメージのマウントにはサードパーティーのアプリケーションが必要です。
- エクスプローラーでマウントした光学式ドライブに移動し、
setup.exe
を実行してゲストツールをインストールします。 - インストールが完了したら、VMを再起動します。
Linux VM内:
システム管理者から提供されたLinuxゲストツールのISO イメージをダウンロードします。
ゲストツールのイメージがある光学式ドライブのマウントポイントを作成し、インストーラを実行します。
# mkdir /mnt/cdrom # mount <path_to_guest_tools_iso> /mnt/cdrom # bash /mnt/cdrom/install
注釈
ゲストツールは、ツールと共にインストールされるQEMUゲストエージェントに依拠します。ツールを動作させるにはエージェントサービスを実行する必要があります。
4.1.8.2. ゲストツールのアンインストール¶
ゲストツールに仮想マシン内の他のソフトウェアとの互換性がないことが判明した場合は、次の手順によりゲストツールをアンインストールできます。
Windows VM内:
デバイスマネージャーからQEMUデバイスドライバを削除します。
重要
VirtIO/SCSIハードディスクドライバとNetKVMネットワークドライバは削除しないでください。VirtIO/SCSIハードディスクドライバがないとVMは起動せず、NetKVMネットワークドライバがないとネットワーク接続が失われます。
インストールされているアプリケーションの一覧から、QEMUゲストエージェントとゲストツールをアンインストールします。
ゲストツールモニターを停止して削除します。
> sc stop VzGuestToolsMonitor > sc delete VzGuestToolsMonitor
イベントログからゲストツールモニターの登録を解除します。
> reg delete HKLM\SYSTEM\CurrentControlSet\services\eventlog\Application\\ VzGuestToolsMonitor
RebootNotifierのautorunレジストリキーを削除します。
> reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v \ VzRebootNotifier
C:\Program Files\Qemu-ga\
ディレクトリを削除します。VzGuestToolsMonitor.exe
がロックされている場合は、すべてのEvent Viewerウィンドウを閉じます。閉じた後もロックが続く場合は、eventlog
サービスを再起動します。> sc stop eventlog > sc start eventlog
ゲストツールを削除したら、仮想マシンを再起動します。
Linux VM内:
パッケージの削除:
RPMベースのシステム(CentOSなど):
# yum remove dkms-vzvirtio_balloon prl_nettool qemu-guest-agent-vz vz-guest-udev
DEBベースのシステム(DebianおよびUbuntu):
# apt-get remove vzvirtio-balloon-dkms prl-nettool qemu-guest-agent-vz vz-guest-udev
システムに上記のパッケージのいずれかがインストールされていない場合、コマンドは失敗します。その場合は、インストールされていないパッケージをコマンドから除外して、再度実行します。
ファイルの削除:
# rm -f /usr/bin/prl_backup /usr/share/qemu-ga/VERSION /usr/bin/install-tools \ /etc/udev/rules.d/90-guest_iso.rules /usr/local/bin/fstrim-static /etc/cron.weekly/fstrim
udev
ルールを再読み込みします。# udevadm control --reload
ゲストツールの削除後、仮想マシンを再起動します。
4.1.9. 仮想マシンのトラブルシューティング¶
VMのデプロイに失敗した場合、右側のペインでエラーメッセージを確認できます。失敗の原因の1つとして、計算ノードにVMをホストするためのRAMまたはCPUの空きリソースがない可能性が考えられます。
VMの状態が障害や一時的な状態のまま変わらない場合、VMを直近の安定した状態(アクティブ、シャットダウン、または棚上げ)にリセットできます。これを行うには、VMの右側のペインで [状態をリセット] をクリックします。
VMの状態が「電源オフ」のタスク状態のまま変わらない場合(VMの右側のペインに、「アクティブ(電源オフ)」ステータスと表示されます)、vinfra service compute server cancel-stop
を実行してこのタスクをキャンセルできます(vinfra service compute server cancel-stopを参照)。このコマンドにより、ゲストOSのシャットダウンがキャンセルされ、VMがアクティブ状態に戻ります。
VMをトラブルシュートするには、VMの右側のペインで [コンソールログをダウンロード] をクリックして、VMコンソールログを確認することもできます。ログがVM内部で有効になっている場合のみ、ログにログメッセージが書き込まれます。有効になっていない場合は、ログは空になります。ログを有効にするには、以下の手順を実行します。
Linux VMでは、ログのレベルのTTY1およびTTYS0を有効にします。
/etc/default/grub
ファイルにGRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0"
という行を追加します。ブートローダーに応じて、以下のいずれかを実行します。
# grub-mkconfig -o /boot/grub/grub.cfg
または、
# grub2-mkconfig -o /boot/grub2/grub.cfg
VMを再起動します。
Windows VMでは、Emergency Management Services(EMS)コンソールリダイレクトを有効にします。
管理者権限を使用して、Windows PowerShellを起動します。
PowerShellコンソールで、EMSコンソールリダイレクトのCOMポートと通信速度を設定します。Windows VMの場合は、通信速度が9600 bpsのCOM1ポートしかないので、以下の手順を実行します。
bcdedit /emssettings EMSPORT:1
現在のブートエントリでEMSを有効にします。
bcdedit /ems on
ドライバステータスログを有効にして、ロード済みのドライバのリストを確認することもできます。そのリストは、ドライバで障害が発生している場合やブートプロセスに長い時間がかかっている場合のトラブルシューティングに活用できます。以下の手順を実行します。
- 管理者権限を使用して、[システム構成] を起動します。
- [システム構成] ウィンドウで、[ブート] タブを開き、[OSブート情報] と [すべてのブート設定を保存する] のチェックボックスを選択します。
- 変更内容を確認し、システムを再起動します。
4.1.10. 仮想マシンの削除¶
仮想マシンを削除するには、対象の省略記号ボタンをクリックして [削除] をクリックします。複数のVMをまとめて削除するには、削除するVMを選択して [削除] をクリックします。
VMのデプロイで [終了時に削除] オプションが有効化されたディスクとともに、VMデプロイが削除されます。