4.1. 仮想マシンの管理¶
それぞれの仮想マシン(VM)は、独立した一連の仮想ハードウェアを持つ独立したシステムです。主な特色を以下にまとめます。
仮想マシンは通常のコンピューターによく似ていて、同じように動作します。独自の仮想ハードウェアを持っています。仮想マシンでは、ソフトウェアアプリケーションを変更も調整も行わないで実行できます。
仮想マシンの設定は、新しい仮想ディスクや仮想メモリを追加するなどして簡単に変更できます。
仮想マシンは、互い同士の間で物理ハードウェアリソースを共有しますが、ファイルシステムもプロセスもsysctl変数もそれぞれの間で完全に独立していて、計算ノードからも独立しています。
仮想マシンは、サポートされているどのゲストオペレーティングシステムでも実行できます。
仮想マシンの設定に関する現時点の上限値を以下の表にまとめます。
リソース |
上限 |
---|---|
RAM |
1 TiB |
CPU |
48論理CPU |
ストレージ |
15ボリューム(各512 TiB) |
ネットワーク |
15 NIC |
論理CPUはマルチコア(マルチスレッド)プロセッサのコア(スレッド)です。
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 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形式のブートボリュームであるテンプレート、または
ブートボリューム
注釈
ブートボリュームを入手するには、ボリュームの管理の説明に従ってボリュームを作成し、そのボリュームをVMに接続し、そこにオペレーティングシステムをインストールしてから、VMを削除します。
1つ以上の仮想ネットワーク(プライベート仮想ネットワークの管理を参照)
SSHキー(SSHキーの管理を参照)
注釈
SSHキーを指定できるのは、テンプレートかブートボリュームからVMを作成する場合に限られます。
注釈
デフォルトでは、ホストのCPUモデルで仮想マシンが作成されます。各計算ノードのCPUが別々になっていると、ライブ移行で問題が発生する可能性があります。その問題を避けるために、すべての新しいVMでCPUモデルを手動で設定することもできます(Setting Virtual Machines CPU Modelを参照)。
VMを作成するには、以下の手順を実行します。
Virtual machines screenで [仮想マシンを作成] をクリックします。VMのパラメータを指定するためのウィンドウが表示されます。
新しいVMの名前を指定します。
[配置元] で、ブートボリュームがある場合やブートボリュームを作成する場合は [ボリューム] を選択します。そうでない場合は [イメージ] を選択します。
どちらを選択したかに応じて、[ボリューム] セクションか [イメージ] セクションにある鉛筆のアイコンをクリックし、以下のいずれかの操作を実行します。
[イメージ] ウィンドウで、ISOイメージまたはテンプレートを選択し、[完了] をクリックします。
[ボリューム] ウィンドウで以下のいずれかの操作を実行します。
インストールしたゲストOSですでにボリュームを作成していた場合は、[接続] をクリックし、対象のボリュームを見つけて選択し、[完了] をクリックします。
必要に応じて、[ボリューム] ウィンドウで [追加] または [接続] をクリックして、他のボリュームを作成したり接続したりすることもできます。ボリュームをブータブルとして選択するには、そのボリュームの横にある上矢印ボタンをクリックして、そのボリュームをリストの先頭に配置します。
イメージまたはボリュームを選択すると、[プレースメント] ドロップダウンリストが表示されます。プレースメントは、特定の機能(特殊なライセンスなど)を共有するノードやVMをグループ化するために管理者が作成します。VMの特徴に合わせてプレースメントを選択してください。詳細については、Managing Placementsを参照してください。
[フレーバー] ウィンドウでフレーバーを選択して [完了] をクリックします。
ネットワークウィンドウで [追加] をクリックし、仮想ネットワークインターフェースを選択し、[追加] をクリックします。そのインターフェースが [ネットワークインターフェース] リストに表示されます。
新しく追加したネットワークインターフェースの追加のパラメータ(IPアドレスやMACアドレスやなりすまし保護など)を設定できます。そのためには、インターフェースの省略記号のアイコンをクリックし、[編集] をクリックし、[ネットワークインターフェースを編集] ウィンドウでパラメータを設定します。
それらのパラメータを後から編集することはできません。ただし、古いネットワークインターフェースを削除して、新しいネットワークインターフェースに置き換えることは可能です。
[完了] をクリックします。
(オプション)ISOイメージではなくテンプレートかブートボリュームからVMをデプロイする場合は、以下の項目も指定できます。
VMに追加するSSHキー。そのためには、[SSHキーを選択] ウィンドウでSSHキーを選択して [完了] をクリックします。
注釈
SSHでVMに接続できるようにするために、VMのテンプレートまたはブートボリュームにcloud-initとOpenSSHがインストールされていることを確認してください(Preparing Templatesを参照)。
起動後にVMをカスタマイズするためのユーザーデータ。ユーザーデータは、cloud-configまたはシェルスクリプトのどちらかの形式で指定できます。そのためには、[カスタマイズスクリプト] フィールドでスクリプトを作成するか、スクリプトをロードするためのファイルをローカルサーバーで見つけて選択します。
注釈
ゲストOSのカスタマイズを可能にするために、VMのテンプレートまたはブートボリュームにcloud-initがインストールされていることを確認してください(Preparing Templatesを参照)。
Windows VMにスクリプトを追加する方法については、Cloudbase-Initの資料を参照してください。たとえば、次のスクリプトを使用してアカウントに新しいパスワードを設定できます。
#ps1 net user <username> <new_password>
[仮想マシンを作成] ウィンドウに戻り、[デプロイ] をクリックして、VMを作成して起動します。
ゲストOSがあらかじめインストールされているブートボリュームやテンプレートではなくISOイメージからVMをデプロイする場合は、VMを選択し、[コンソール] をクリックし、ビルトインVNCコンソールを使用してゲストOSをインストールします。
(オプション)SSHキーを追加したテンプレートからVMをデプロイする場合は、ユーザー名とVMのIPアドレスを使用してSSHでVMに接続できます。
Linuxテンプレートの場合は、クラウドイメージOSのデフォルトのユーザー名を入力します(たとえば、CentOSクラウドイメージなら、デフォルトのログインは
centos
です)。Windowsテンプレートの場合は、Cloudbase-Initのインストール時に指定したユーザー名を入力します。
たとえば、次のようになります。
# ssh myuser@10.10.10.10
4.1.3. 仮想マシンの操作の概要¶
仮想マシンを作成したら、現在の状態で実行できる操作を使用して仮想マシンを管理できます。実行できる操作の完全なリストを確認するには、VMの横かVMパネルの上部にある省略記号のアイコンをクリックします。以下の操作があります。
[実行]: VMを起動します。
[コンソール]:ビルトインVNCコンソールを使用して、稼働中のVMに接続します。コンソールブラウザウィンドウでは、キーの組み合わせをVMに送信したり、コンソールウィンドウのスクリーンショットを取得したり、コンソールログをダウンロードしたりできます。
[再起動]: 稼働中のVMをソフトリブートします。
[シャットダウン]: 稼働中のVMをシャットダウンします。
[ハードリブート]: 電源をいったん切ってから電源を入れ直し、それからVMを起動します。
[電源オフ]: VMの電源を強制的にオフにします。
[棚上げ] 停止中のVMをホストノードからアンバインドして、予約済みのリソース(CPUやRAMなど)をリリースします。棚上げしたVMは依然ブート可能なまま、IPアドレスなどの構成が保持されます。
他の状態になっている仮想マシンを棚上げするには、[シャットダウン] または [電源オフ] をクリックし、確認ウィンドウの [仮想マシンを棚上げ] チェックボックスを選択します。
[棚上げ解除]: VMの棚上げの状態を、十分なリソースがあるホストノードで解除します。
[一時停止]: 現在のVMの状態をファイルに保存します。
ホストを再起動する必要があるにもかかわらず、VMで稼働しているアプリケーションを停止したくない場合や、ゲストOSを再起動する場合などに、一時停止を行うと便利です。
[再開]: 一時停止の状態のVMを再開します。
[コンソールログをダウンロード]:コンソールログをダウンロードします。VM内部でログを有効にしてください。そうしないと、ログは空のままになります(詳細については、仮想マシン内のログの有効化を参照)。
障害が発生した仮想マシンのトラブルシューティングを行うときに、コンソールログを調べると役立ちます。
[状態をリセット]: 障害の状態や一時的な状態になっているVMを直近の安定状態(アクティブ、シャットダウン、棚上げ)にリセットします。
[削除]: 計算クラスターからVMを削除します。
4.1.4. 仮想マシン内のログの有効化¶
VMのコンソールログにログメッセージが書き込まれるのは、TTY1とTTYS0のログのレベルがVM内部で有効になっている場合に限られます。たとえば、Linux VMであれば、以下のようにしてログを有効にできます。
/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.5. 仮想マシンの再設定と監視¶
仮想マシンのCPU、ストレージ、およびネットワークの使用量を監視するには、VMを選択し、[監視] タブを開きます。
チャートのデフォルトの時間間隔は12時間です。特定の時間間隔を拡大するには、マウスでその間隔を選択します。拡大をリセットするには、任意のチャートをダブルクリックします。
次のパフォーマンスチャートを利用できます。
- CPU/RAM
VMによるCPUとRAMの使用量。
- ネットワーク
受信と送信のネットワークトラフィック。
- ストレージの読み取り/書き込み
VMによって読み書きされたデータの量。
- 読み取り/書き込み遅延
読み取りと書き込みの遅延。チャートの特定の時点にマウスカーソルを合わせると、その時点の平均遅延と最大遅延、95パーセンタイルと99パーセンタイルも確認できます。
VMを再設定するには、対象のVMを選択し、[概要] タブで変更するパラメータの横にある鉛筆のアイコンをクリックします。以下を行うことはできません。
ブートボリュームの変更、切断、または削除
ブート以外のボリュームの管理(接続と切断を除く)
以前追加したネットワークインターフェースの変更
棚上げしたVMのネットワークインターフェースの接続および切断
4.1.6. ゲストツールの管理¶
このセクションではゲストツールのインストール方法とアンインストール方法を説明します。この機能では、実行中のVMディスクの一貫性のあるスナップショットを作成する(ボリュームスナップショットの管理を参照)必要があります。
4.1.6.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.6.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
ゲストツールの削除後、仮想マシンを再起動します。