ウェブサイト検索

XenServer でゲスト仮想マシンを作成およびインストールする方法 - パート 5


XenServer シリーズを引き続き進めながら、この記事では実際のゲスト自体 (仮想マシンと呼ばれることが多い) の作成に取り組みます。

更新: 2016 年 5 月に、Citrix は XenServer 7 プラットフォームの新しいバージョンをリリースしました。インストール方法は次のとおりです: XenServer 7 の新規インストール。

この記事は、ネットワーク、パッチ適用、ストレージに関するこれまでの記事がすべて完了していることを前提としています。ありがたいことに、新しい用語について実際に議論する必要はなくなり、ゲストの作成を始めることができます。

システムレビュー

この時点で、この XenServer ホストでは多くの設定が完了しました。これは、何が構成されているか、またどの記事でそのトピックが議論されているかを簡単に確認するのに役立ちます。

  1. XenServer 6.5がサーバーにインストールされました
    1. https://linux-console.net/citrix-xenserver-installation-and-network-configuration-in-linux/
  2. すべての XenServer 6.5 パッチが適用されました
    1. https://linux-console.net/install-xenserver-patches-in-linux/
  3. ネットワークインターフェイスのチーミングとVLANが作成されました
    1. https://linux-console.net/xenserver-network-lacp-bond-vlan-and-bonding-configuration/
  4. iSCSI および ISO ストレージ リポジトリは、オペレーティング システムのインストール ファイルとゲストが使用する仮想ハードディスクを保持するために作成されました。
    1. https://linux-console.net/xenserver-create-and-add-storage-repository/

XenServerでの仮想ゲストの作成

ガイドのこの部分では、ISO インストーラーを利用して、新しく作成したゲスト マシンを実際に起動し、オペレーティング システムをインストールします。 ISO リポジトリの作成については、4 番目の記事を必ず参照してください。

XenServer には、仮想ゲストを迅速にプロビジョニングするために使用できる一連のテンプレートが付属しています。これらのテンプレートは、選択したオペレーティング システムに共通のオプションを提供します。オプションには、ハード ドライブのスペース、CPU アーキテクチャ、使用可能な RAM の量などが含まれます。

これらのオプションは後で手動で変更できますが、ここでは簡単なテンプレートを使用してその使用法を説明します。使用可能なテンプレートのリストを取得するには、従来の 'xe' コマンドにさまざまな引数を渡して、使用可能なテンプレートを返すようにシステムに要求することができます。


xe template-list

このコマンドは大量の出力を返す可能性があります。出力を読みやすくするために、次のように出力を「less」 にパイプすることをお勧めします。


xe template-list | less

これにより、利用可能なテンプレートを解析して必要なUUID情報を見つけやすくなります。この記事は Debian 8 Jessie で動作しますが、Citrix が新しいテンプレートをリリースするまでは、古い Debian 7 Wheezy テンプレートを使用する必要があります。 。

Debian 7 を選択しても、実際のオペレーティング システムの動作には何も影響しません。 (以下のスクリーンショットでは、コマンドでUUIDを使用して、通常の出力の一部をトリミングしています)。


xe sr-list name-label=”Tecmint iSCSI Storage”

この UUID を使用すると、このゲストをセットアップするための初期情報がすべて取得されます。 XenServer のほとんどすべてと同様に、新しいゲストをプロビジョニングするために別の「xe」 コマンドが使用されます。


xe vm-install template=”Debian Wheezy 7.0 (64-bit)” new-name-label="TecmintVM" sr-uuid=bea6caa4-ecab-8509-33a4-2cda2599fb75

強調表示されているUUIDは、新しくプロビジョニングされたゲストのUUIDです。将来的に作業が簡単になる可能性がある、ハウスキーピングの手順がいくつかあります。 1 つ目は、新しく作成された VDI に名前ラベルを提供することであり、2 つ目は、テンプレートによってプロビジョニングされたデフォルトのハードウェア仕様を変更することです。

VDI に名前を付けることがなぜ重要なのかを確認するには、次の「xe」 コマンドを使用してプロビジョニングするときに、システムが VDI に何を自動的に割り当てるかを見てください。


xe vbd-list vm-name-label=TecmintVM – Used to get the VDI UUID
xe vdi-list vbd-uuids=2eac0d98-485a-7c22-216c-caa920b10ea9    [Used to show naming issue]

両方の情報を収集するには、次のコマンドを使用することもできます。


xe vm-disk-list vm=TecmintVM

黄色の部分が気になるところです。多くの人にとって、この問題は軽微ですが、管理目的で、この特定の VDI の目的を追跡するために、よりわかりやすい名前が望まれます。この特定の VDI の名前を変更するには、上記の出力の UUID が必要で、別の「xe」 コマンドを作成する必要があります。


xe vdi-param-set uuid=90611915-fb7e-485b-a0a8-31c84a59b9d8 name-label="TecmintVM Disk 0 VDI"
xe vm-disk-list vm=TecmintVM

これを設定するのは簡単なことのように思えるかもしれませんが、経験上、これにより、ある XenServer からストレージ リポジトリをデタッチし、別の XenServer にアタッチしようとするときに深刻な問題が発生するのを防ぐことができました。この特定のシナリオでは、すべてのゲスト情報のメタデータ バックアップが新しい XenServer で復元できませんでしたが、ありがたいことに各ゲストの VDI に名前を付けることで、ゲストとその VDI の適切なマッピングを簡単に行うことができました。ネームラベル。

この記事の次の管理ステップは、この特定のゲストにさらに多くのリソースを提供することです。プロビジョニングされた状態では、このゲストには約 256 MiB (メビバイト) 相当のメモリしかありません。ほとんどのゲストはこれでは十分ではないため、ゲストの使用可能なメモリを増やす方法を知っておくと有益です。 XenServer の他のものと同様、これは「xe」 コマンドで実現できます。


xe vm-param-list uuid=6eab5bdd-c277-e55d-0363-dcfd186c8e8e | grep -i memory

上の緑色のボックスは、この特定のゲストが保持できる最大メモリが約 256 MiB であることを示しています。テスト目的であればこれで問題ありませんが、頻繁に使用するシステムではこれでは不十分であることがわかります。

この値を変更してゲストがより多くの RAM にアクセスできるようにするには、ゲストの電源をオフにした状態で簡単な「xe」 コマンドを発行します。この例では、このマシンに与えられる RAM の量はバイト単位で表されますが、 これは2 ギビバイト相当の RAM に相当します。


xe vm-memory-limits-set dynamic-max=2147483648 dynamic-min=2147483648 static-max=2147483648 static-min=2147483648 name-label=TecmintVM

これにより、このゲスト用に 2 GiB の RAM が常に予約されることに注意します。

これで、この特定のゲストにオペレーティング システムをインストールする準備が整いました。ストレージ リポジトリに関する前回の記事から、ISO インストーラー ファイルを保存するために Samba 共有がこの XenServer に追加されました。これは、次の「xe」 コマンドで確認できます。


xe sr-list name-label=Remote\ ISO\ Library\ on:\ //<servername>/ISO

<servername> を、この構成が行われている環境に適した Samba サーバーの名前に必ず置き換えてください。 XenServer が ISO ストレージ リポジトリを参照していることを確認したら、ISO ファイルをブートするために仮想 CD-ROM をゲストに追加する必要があります。このガイドでは、Debian Net Installer ISO が ISO ストレージ リポジトリに存在することを前提としています。


xe cd-list | grep debian


xe vm-cd-add vm=TecmintVM cd-name=debian-8-netinst.iso device=3
xe vbd-list vm-name-label=TecmintVM userdevice=3

上記のコマンドは、まずDebian ISO の名前をリストします。次のコマンドは、仮想CD-ROM デバイスを TecmintVM ゲストに追加し、デバイス ID 3 を割り当てます。

3 番目のコマンドは、Debian ISO を起動するためのデバイスのセットアップを続行するために、新しく追加された CD-ROM のUUID を特定するために使用されます。

次の手順では、CD-ROM をブート可能にし、ゲストに CD-ROM からオペレーティング システムをインストールするように指示します。


xe vbd-param-set uuid=3836851f-928e-599f-dc3b-3d8d8879dd18 bootable=true
xe vm-param-set uuid=6eab5bdd-c277-e55d-0363-dcfd186c8e8e other-config:install-repository=cdrom

上記の最初のコマンドは、上記のスクリーンショットで緑色で強調表示されている UUID を使用してCD-ROM を起動可能に設定します。 2 番目のコマンドは、オペレーティング システムのインストール方法として CD-ROM を使用するようにゲストに指示します。 Tecmint ゲストの UUID は、上のスクリーンショットで黄色で強調表示されています。

ゲスト設定の最後のステップは仮想ネットワーク インターフェイス (VIF) を接続することです。 Debian ネットワーク インストーラーが使用されており、Debian リポジトリからパッケージをプルする必要があるため、このインストール方法ではこれが特に重要です。

XenServer ネットワークの記事を振り返ると、このゲスト用に特別なVLANがすでに作成されており、 それはVLAN 10でした。 「xe」 を使用すると、必要なネットワーク インターフェイスを作成し、このゲストに割り当てることができます。


xe network-list name-description="Tecmint test VLAN 10"
xe vif-create vm-uuid=6eab5bdd-c277-e55d-0363-dcfd186c8e8e network-uuid=cfe987f0-b37c-dbd7-39be-36e7bfd94cef device=0

最初のコマンドは、このゲスト用に作成されたネットワークのUUIDを取得するために使用されます。次のコマンドは、ゲスト用のネットワーク アダプターを作成し、そのネットワーク アダプターを適切なネットワークに接続するために使用されます。

おめでとうございます! この時点で、仮想マシンを起動してインストールする準備が整いました。ゲストを起動するには、次の「xe」 コマンドを発行します。


xe vm-start name-label=TecmintVM

ターミナルでエラーが発生しなければ、ゲストは正常に起動しました。ゲストが適切に起動したかどうかは、次の「xe」 コマンドで確認できます。


xe vm-list name-label=TecmintVM

さて、大きな質問です。インストーラーにアクセスするにはどうすればよいですか?これは有効な質問です。 Citrix が承認した方法は、XenCenter を使用することです。ここでの問題は、XenCenter が Linux 上で実行できないことです。したがって、ユーザーが実行中のゲストのコンソールにアクセスするためだけに特別な Windows ステーションを作成する必要がないようにするための回避策が存在します。

このプロセスには、Linux コンピューターから XenServer ホストへのSSH トンネルの作成と、そのトンネルを介したVNC 接続のポート転送が含まれます。これは非常に賢く、素晴らしく機能しますが、この方法はユーザーが SSH 経由で XenServer にアクセスできることを前提としています。

最初のステップは、XenServer 上のゲストのドメイン番号を確認することです。これは、いくつかの異なるコマンドを使用して実行されます。


xe vm-list params=dom-id name-label=TecmintVM
xenstore-read /local/domain/1/console/vnc-port

これらのコマンドの順序は重要です。最初のコマンドは、2 番目のコマンドに必要な数値を返します。

両方のコマンドの出力は重要です。最初の出力には、ゲストが実行されているドメイン ID が示されます。この場合は 1 です。次のコマンドでは、ゲスト コンソール セッションのVNC ポートを決定するためにその番号が必要です。このコマンドからの出力は、この特定のゲストからのビデオに接続するために使用できる VNC ポートを提供します。

上記の情報を取得したら、Linux ステーションに切り替えて XenServer に接続し、このゲストのコンソール セッションを表示します。これを行うには、SSH トンネルが作成され、SSH トンネル経由でローカル VNC 接続を送信するようにポート転送が設定されます。この接続はLinux Mint 17.2 ワークステーションから行われますが、他のディストリビューションでも同様であるはずです。

最初のステップは、OpenSSH クライアントxtightnvcviewerが Linux ホストにインストールされていることを確認することです。 Linux Mint では、これは次のコマンドで実行できます。


sudo apt-get install openssh-client xtightvncviewer

このコマンドは必要なユーティリティをインストールします。次の手順では、XenServer ホストへの SSH トンネルを作成し、XenServer ホスト(5902)で前に決定した VNC ポートへのポート転送をセットアップします。


ssh -L <any_port>:localhost:<VM_Port_Above> root@<server> -N
ssh -L 5902:localhost:5902 root@<servername> -N

「-L」 オプションは、ssh にポートフォワードを指示します。最初のポートは、Linux Mint マシンで使用されていない 1024 以降の任意のポートにすることができます。 'localhost:5902' は、トラフィックがリモートのローカルホスト ポート 5902 に転送されることを示します。この場合は、TecmintVM の XenServer VNC ポートです。強い>。

「root@ は、XenServer ホストに SSH で接続するためのログイン資格情報です。最後に、「-N」 は SSH にポート転送接続を開くように指示します。 「lsof」コマンドを使用すると、出力でトンネルを確認できます。


sudo lsof -i | grep 5902

ここでは、トンネルがセットアップされ、接続をリッスンしています。次に、XenServer 上のゲストへの VNC 接続を開きます。インストールされているユーティリティは 「xvncviewer」 で、トラフィックを XenServer に転送するための SSH 接続は 「localhost:5902」 でリッスンしているため、適切なコマンドを構築できます。


xvncviewer localhost:5902

出来上がり! Debian ネットワーク インストーラー を実行している TecmintVM コンソール セッションが、インストール プロセスの開始を待機しています。この時点で、インストールは他の Debian インストールと同様に進行します。

ここまで、XenServer のすべての作業はコマンド ライン インターフェイス (CLI) 経由で行われてきました。多くの Linux ユーザーは CLI を楽しんでいますが、XenServer ホストとプールの管理プロセスを簡素化するユーティリティが存在します。このシリーズの次の記事では、CLI ではなくグラフィカル システムを使用したいユーザー向けのこれらのツールのインストールについて説明します。