Linux仮想マシンの作成

ここでは、オペレーティングシステムをインストールしたり既存の仮想マシンを複製したりして、Linux仮想マシンを作成する方法について説明します。また、ベンダー固有のインストール手順についても説明します。

仮想マシンを作成するときは、その仮想マシン上で実行するオペレーティングシステムに応じて適切なテンプレートを使用する必要があります。オペレーティングシステムに提供されるシトリックスのテンプレートだけでなく、独自に作成したものも使用できます。仮想マシンを作成するには、XenCenterまたはCLIを使用します。ここでは、CLIの使用方法を中心に説明します。

XenServerのインストールでサポートされているRed Hat Enterprise Linux(RHEL)リリースより新しいマイナーアップデートの仮想マシンを作成する場合は、サポートされている最新のメディアからインストールし、yum updateを使用して仮想マシンを最新の状態にする必要があります。この作業は、CentOSやOracle LinuxなどのRHEL派生版にも適用されます。

たとえば、XenServer 7.1でRHEL 5.10がサポートされており、RHEL v5.11を使用する場合、最初にRHEL v5.10をインストールしてから、yum updateを使用してRHEL 5.11にアップデートします。

仮想マシンにオペレーティングシステムをインストールしたら、すぐにXenServer PV Toolsをインストールすることをお勧めします。一部のオペレーティングシステムでは、XenServer PV Toolsに含まれているXenServer独自のカーネルで、ベンダから提供されるカーネルを置き換える必要があります。また、Red Hat Enterprise Linux 5.xなど、ベンダから提供される特別なバージョンのカーネルをインストールしなければならないものもあります。

Linux仮想マシンを作成するには、以下の作業を行います。

  1. XenCenterまたはCLIを使用して、適切なオペレーティングシステム用の仮想マシンを作成します。

  2. ベンダのインストールメディアからオペレーティングシステムをインストールします。

  3. XenServer PV Toolsをインストールします(推奨)。

  4. 通常のLinuxのインストール時と同様に、仮想マシンとVNCで時間およびタイムゾーンを設定します。

XenServerは、多くのLinuxディストリビューションの仮想マシンへのインストールをサポートしています。次の3種類のインストール方法があります。

  1. インターネット上のリポジトリからのインストール

  2. 物理CDからのインストール

  3. ISOライブラリからのインストール

警告

[他のインストールメディア]テンプレートは、サポートされていないオペレーティングシステムの仮想マシンをインストールする上級ユーザーのために用意されています。XenServerは、サポートしているディストリビューションと、付属している標準テンプレートが対応している特定のバージョンでのみその運用性がテストされており[他のインストールメディア]テンプレートでインストールした仮想マシンはサポートされません

[他のインストールメディア]テンプレートから作成した仮想マシンは、HVMゲストになります。つまり、一部のLinux仮想マシンでは、高性能ドライバー(I/Oドライバー)ではなく、エミュレートされた低速のデバイスが使用される場合があります。

特定のLinuxディストリビューションでの手順については、「リリースノート」を参照してください。

PV Linuxディストリビューション

サポートされているPV Linuxディストリビューションは次のとおりです。

ディストリビューション CDからのインストール ネットワークからのインストール
Debian Squeeze 6.0(32ビット/64ビット)  
Debian Wheezy 7(32ビット/64ビット)  
Red Hat Enterprise Linux 4.5~4.8(32ビット) Citrix RHEL 4.8カーネルを適用するためにXenServer Toolsをインストールする必要があります。
Red Hat Enterprise Linux 5.0~5.11(32ビット/64ビット) 5.4以降のカーネルを使用する場合のみサポートされます。
Red Hat Enterprise Linux 6.0~6.8(32ビット/64ビット)  
CentOS 4.5~4.8(32ビット)  
CentOS 5.0~5.11(32ビット/64ビット)  
CentOS 6.0~6.8(32ビット/64ビット)  
Oracle Linux 5.0~5.11(32ビット/64ビット)  
Oracle Linux 6.0~6.8(32ビット/64ビット)  
Scientific Linux 5.11(32ビット/64ビット) 5.4以降のカーネルを使用する場合のみサポートされます。
Scientific Linux 6.6~6.8(32ビット/64ビット)  
SUSE Linux Enterprise Server 10 SP1、10 SP2、10 SP4(32ビット/64ビット)  
SUSE Linux Enterprise Server 10 SP3(32ビット)     SLES 10 SP2からのアップグレードのみサポートされます。
SUSE Linux Enterprise Server 10 SP3(64ビット)  
SUSE Linux Enterprise Server 11、11 SP1、11 SP2、11 SP3、11 SP4(32ビット/64ビット)  
SUSE Linux Enterprise Server 12、12 SP1、12 SP2(64ビット)  
SUSE Linux Enterprise Desktop 11 SP3(64ビット)  
SUSE Linux Enterprise Desktop 12、12 SP1、12 SP2(64ビット)  
Ubuntu 10.04(32ビット/64ビット)    
Ubuntu 12.04(32ビット/64ビット)  
NeoKylin Linux Advanced Server 6.5(64ビット)  

その他のPV Linuxディストリビューションはサポートされていません。not ただし、Red Hat Enterprise Linuxと同じインストールメカニズムを用いるディストリビューション(Fedora Coreなど)は、同じテンプレートを使用してインストールできます。

  • 128GBを超えるメモリを搭載したホストで32ビットのPV Linux仮想マシンを実行することはサポートされません。

  • XenServerでハードウェアセキュリティ機能を使用すると、32ビットPV仮想マシンの全体的なパフォーマンスが低下することがあります。この問題が発生した場合は、次のいずれかを実行できます:

    • PV Linux仮想マシンの64ビットバージョンを実行する。

    • no-smep no-smapオプションを付加してXenをブートする。

    ホストのセキュリティ深度が浅くなることがあるため、このオプションはお勧めしません。

HVM Linuxディストリビューション

HVM Linux仮想マシンでは、最新プロセッサのx86仮想コンテナ技術により良好なパフォーマンスが得られます。ただし、これらのゲストでのネットワークアクセスおよびストレージアクセスは、カーネルに組み込まれたドライバによりPVモードで行われます。

サポートされているHVM Linuxディストリビューションは次のとおりです。

ディストリビューション CDからのインストール ネットワークからのインストール
Debian Jessie 8.0(32ビット/64ビット)
Debian Stretch 9.0(32ビット/64ビット)
Red Hat Enterprise Linux 7.x(64ビット)
CentOS 7.x(64ビット)
Oracle Linux 7.x(64ビット)
Scientific Linux 7.x(64ビット)
SUSE Linux Enterprise Server 12 SP3(64ビット)
SUSE Linux Enterprise Desktop 12 SP3(64ビット)
Ubuntu 14.04(64ビット)
Ubuntu 16.04(64ビット)
CoreOS Stable(64ビット)
Linx Linux V6.0(64ビット)
Linx Linux V8.0(64ビット)
Yinhe Kylin(64ビット)

インターネット上のリポジトリを使用したLinux仮想マシンの作成

ここでは、インターネット上のリポジトリを使用したLinux仮想マシンの作成方法について、Debian Squeezeを例にして説明します。

ネットワークリポジトリからDebian Squeeze仮想マシンをインストールする(CLIの使用)

  1. 次のコマンドを実行して、Debian Squeezeテンプレートから仮想マシンを作成します。新しい仮想マシンのUUIDが返されます。

    xe vm-install template=template-name new-name-label=squeeze-vm
    
  2. ネットワークリポジトリを指定して、次のコマンドを実行します。このリポジトリは、基本システムのインストールに必要なパッケージおよびDebianインストーラー内で指定する追加パッケージが格納されたDebianミラーである必要があります:

    xe vm-param-set uuid=UUID other-config:install-repository=path_to_repository
    

    ネットワークリポジトリのパス()は、`http://ftp.xx.debian.org/debian`などの形式で指定します。ここで、xxは「jp」などの国コードです(Debianミラーの一覧を確認してください)。複数のインストールを行う場合は、過度のネットワークトラフィックや中央リポジトリの負荷を避けるため、ローカルミラーサイトやapt-proxyを使用することをお勧めします。

    Debianインストーラでは、HTTPおよびFTPのaptリポジトリのみがサポートされ、NFSはサポートされません。

  3. 接続先ネットワークのUUIDを検索します。たとえば、xenbr0に関連付けられているネットワークのUUIDを取得するには、次のコマンドを実行します。

    xe network-list bridge=xenbr0 --minimal
    
  4. 次のコマンドを実行して、このネットワークに仮想マシンを接続するためのVIFを作成します。

    xe vif-create vm-uuid=vm_uuid network-uuid=network_uuid mac=random device=0
    
  5. 仮想マシンを起動します。次のコマンドを実行して、Debianインストーラを起動します。

    xe vm-start uuid=UUID
    
  6. Debianインストーラの指示に従って必要な設定を行い、仮想マシンをインストールします。

  7. ゲストユーティリティをインストールしたりグラフィカルコンソールの設定については、以降の説明を参照してください。

物理CD/DVDを使用したLinux仮想マシンの作成

ここでは、物理CD/DVDを使用したLinux仮想マシンの作成方法について、Debian Squeezeを例にして説明します。

例:DVDからDebian Squeeze仮想マシンをインストールする(CLIの使用)

  1. 次のコマンドを実行して、Debian Squeezeテンプレートから仮想マシンを作成します。新しい仮想マシンのUUIDが返されます。

    xe vm-install template=template-name new-name-label=vm-name
    
  2. 次のコマンドを実行して、新しい仮想マシンのルートディスクのUUIDを取得します。

    xe vbd-list vm-uuid=vm_uuid userdevice=0 params=uuid --minimal
    
  3. 取得したUUIDを次のコマンドで指定して、ルートディスクを起動不可に設定します。

    xe vbd-param-set uuid=root_disk_uuid bootable=false
    
  4. 次のコマンドを実行して、XenServerホストの物理CDドライブの名前を取得します:

    xe cd-list
    

    これにより、「SCSI 0:0:0:0」などのドライブ名がname-labelフィールドに表示されます。

  5. 取得したXenServerホストのCDドライブname-labelのパラメーターを次のコマンドのcd-nameパラメーターに指定して、新しい仮想マシンに仮想CDドライブを追加します:

    xe vm-cd-add vm=vm_name cd-name="host_cd_drive_name_label" device=3
    
  6. 次のコマンドを実行して、仮想CDドライブに対応する仮想ブロックデバイス(VBD)のUUIDを取得します。

    xe vbd-list vm-uuid=vm_uuid type=CD params=uuid --minimal
    
  7. 次のコマンドを実行して、仮想CDのVBDを起動可能に設定します。

    xe vbd-param-set uuid=cd_drive_uuid bootable=true
    
  8. 次のコマンドを実行して、仮想マシンのインストールリポジトリをCDドライブに設定します。

    xe vm-param-set uuid=vm_uuid other-config:install-repository=cdrom
    
  9. Debian SqueezeのインストールCDを、XenServerホストのCDドライブに挿入します。

  10. XenCenterまたはSSHターミナルで仮想マシンのコンソールを開き、オペレーティングシステムのインストール手順に従って操作します。

  11. 仮想マシンを起動します。次のコマンドを実行して、Debianインストーラを起動します。

    xe vm-start uuid=UUID
    

ゲストユーティリティのインストールやグラフィカルコンソールの設定については、以降の説明を参照してください。

ISOイメージを使用したLinux仮想マシンの作成

ここでは、ネットワーク上のISOイメージを使用したLinux仮想マシンの作成方法について説明します。

例:ネットワーク上のISOイメージからLinux仮想マシンをインストールする(CLIの使用)

  1. エラーが発生したコンピューター上で

    xe vm-install template=template new-name-label=name_for_vm  sr-uuid=storage_repository_uuid
    

    これにより、新しい仮想マシンのUUIDが返されます。

  2. 接続先ネットワークのUUIDを検索します。たとえば、xenbr0に関連付けられているネットワークのUUIDを取得するには、次のコマンドを実行します。

    xe network-list bridge=xenbr0 --minimal
    
  3. 次のコマンドを実行して、このネットワークに仮想マシンを接続するためのVIFを作成します。

    xe vif-create vm-uuid=vm_uuid network-uuid=network_uuid mac=random device=0
    
  4. other-configパラメーターのinstall-repositoryキーを、ネットワークリポジトリのパスに設定します。たとえば、ベンダーメディアのURLがhttp://mirror.centos.org/centos/6/os/x86_64の場合は、次のコマンドを実行します:

    xe vm-param-set uuid=vm_uuid other-config:install-repository=http://mirror.centos.org/centos/6/os/x86_64
    
  5. 次のコマンドを実行して、仮想マシンを起動します。

    xe vm-start uuid=vm_uuid
    
  6. XenCenterまたはVNCを使用して仮想マシンのコンソールに接続し、オペレーティングシステムをインストールします。

ネットワークインストールの考慮事項

XenServerのゲストインストーラを使用すると、ネットワーク上のISOイメージから仮想マシンにオペレーティングシステムをインストールできます。ISOイメージからのインストールの準備として、ホストの管理インターフェイスからNFS、HTTP、またはFTPでアクセス可能なネットワークリポジトリを作成し、そこに(ISOイメージではなく)メディアの内容をエクスポートしておきます。

ネットワークリポジトリは、XenServerホストのコントロールドメインから、通常は管理インターフェイス経由でアクセス可能でなければなりません。ネットワークサーバー上のCD/DVDイメージのURLは、次の形式である必要があります。

  • HTTP

    http://*<server>*/*<path>*
    
  • FTP

    ftp://*<server>*/*<path>*
    
  • NFS

    nfs://*<server>*/*<path>*
    
  • NFS

    nfs:*<server>*:/*<path>*
    

ISOイメージをどこに展開するかなど、ネットワークからのインストールの準備について詳しくは、ベンダのドキュメントを参照してください。

XenCenterからNFSを使ったインストールを行う場合は、パスを「nfs://」形式で指定する必要があります。

XenCenterの新規VMウィザードで仮想マシンを作成する場合は、ネットワークリポジトリのURLを入力するページが表示されます。CLIを使用する場合は、通常のようにvm-installコマンドでテンプレートをインストールし、次にother-config:install-repositoryパラメータにネットワークリポジトリのURLを指定します。続いて仮想マシンを起動すると、ネットワークインストールが開始されます。

警告

Linuxベースの仮想マシンを新たにインストールするときは、インストール処理を最後まで完了し、仮想マシンを再起動してから使用を開始してください。Windowsのインストールを中断すると問題が生じるように、Linuxの場合も中断すると仮想マシンが正しく機能しなくなります。

オペレーティングシステムの起動パラメータの指定

XenCenterまたはxe CLIを使って仮想マシンを作成するときに、オペレーティングシステムの起動パラメーターを指定できます。これらの起動パラメーターは、準仮想化されたゲストオペレーティングシステムの自動インストールを設定する場合などに、必要に応じて指定します。ここでは、Debian preseedファイルとRHELキックスタートファイルを使用する場合を例にして説明します。

preseedファイルを使用してDebianをインストールするには

  1. preseedファイルを作成します。preseedファイルの作成方法については、Debianのドキュメントを参照してください。

  2. 仮想マシンを起動する前に、カーネルコマンドラインを正しく設定しておきます。このコマンドラインは、XenCenterの新規VMウィザードや、次のようなxe CLIコマンドで設定できます:

    xe vm-param-set uuid=uuid PV-args=preseed_arguments
    

キックスタートファイルを使用してRHELをインストールするには

Red Hatキックスタートファイルを使用すると、回答ファイルを使用する場合と同じように、指定したインストールオプションによる自動インストールが行われます。キックスタートファイルを作成するには、まずRed Hat Enterprise Linuxを手作業でインストールします。このファイルは/root/anaconda-ks.cfgに生成されます。

  1. XenCenterで、適切なRed Hat Enterprise Linuxテンプレートを選択します。

  2. XenCenterの新規VMウィザードで、カーネルコマンドライン引数としてキックスタートファイルを指定します。キックスタートファイルは、次のように、PXE構成ファイルと同じ形式で指定します:

    ks=http://server/path ksdevice=eth0
    
  3. コマンドラインでは、vm-param-setコマンドのPV-argsパラメーターで、使用するキックスタートファイルを指定します。

    xe vm-param-set uuid=vm_uuid PV-args="ks=http://server/path ksdevice=eth0"
    
  4. 次のコマンドを実行して、インストーラー起動用のカーネルおよびinitrdのリポジトリをXenServerに認識させます:

    xe vm-param-set uuid=vm_uuid other-config:install-repository=http://server/path
    

    新規VMウィザードを使用せず、キックスタートファイルを使用してインストールするには、[高度なOS起動パラメーター]テキストボックスに適切な引数を追加します。

Linuxゲストエージェントのインストール

サポートされるすべてのLinuxディストリビューションはネイティブに準仮想化されており、完全なパフォーマンスを得るために特別なドライバーは不要です。ただし、XenServerに含まれているゲストエージェントをインストールすると、仮想マシンに関する追加情報をホストに提供できるようになります。動的メモリ制御(DMC:Dynamic Memory Control)を有効にするには、Linux仮想マシンごとにゲストエージェントをインストールする必要があります。

XenServerホストをアップグレードする場合、Linuxゲストエージェントも最新状態にしてください(仮想マシンのアップデートを参照)。

ゲストエージェントをインストールするには

  1. 必要なファイルは、組み込みのguest-tools.iso CDイメージ上にあります。また、XenCenterで[VM]>[Install XenServer PV Toolsのインストール]オプションを選択することもできます。

  2. 次のコマンドを実行して、イメージをゲストにマウントします。

    mount -o ro,exec /dev/disk/by-label/XenServerincloudsphere\x20Tools /mnt
    

    イメージのマウントに失敗した場合は、次のコマンドでイメージを特定できます:

    blkid -t LABEL="XenServer PV Tools"
    
  3. ルートユーザーとして次のインストールスクリプトを実行します。

    /mnt/Linux/install.sh
    
  4. 次のコマンドを実行して、イメージをゲストからアンマウントします。

    umount /mnt
    
  5. カーネルまたは仮想マシンをアップグレードした場合は、ここで仮想マシンを再起動します。

Linux仮想マシンにマウントするCD-ROMドライブやISOイメージは、/dev/cdromではなく/dev/xvdd(Ubuntu 10.10以降では/dev/sdd)のようにデバイスとして表示されます。これは、真のCD-ROMデバイスではなく、通常のデバイスであるためです。XenCenterやCLIでCDを取り出すと、このデバイスは仮想マシンからホットアンプラグされ、表示されなくなります。一方、Windows仮想マシンではLinuxの場合と異なり、取り出したCDは空の状態で仮想マシン内に残ります。

Linuxディストリビューションのインストールに関するそのほかの考慮事項

次の表は、指定したLinux仮想マシンの作成時に考慮すべき、ベンダー特有の追加設定情報を示しています。

重要

すべてのディストリビューションに関する詳細なリリースノートについては、「リリースノート」を参照してください。

CentOS 5.x(32ビット/64ビット)

CentOS 5.xの仮想マシンの場合は、CentOS 5.4カーネルまたはそれ以降を使用する必要があります。このカーネルは、ディストリビューションベンダから入手できます。Version 5.4よりも古いEnterprise Linuxカーネルを使用すると、XenServer仮想マシンが正しく動作しません。ベンダ固有の手順に従って、カーネルをアップグレードしてください。

Red Hat Enterprise Linux 5.x(32ビット/64ビット)

RHEL 5.xの仮想マシンの場合は、RHEL 5.4カーネル(2.6.18-164.el5)またはそれ以降を使用する必要があります。このカーネルは、ディストリビューションベンダから入手できます。Version 5.4よりも古いEnterprise Linuxカーネルを使用すると、XenServer仮想マシンが正しく動作しません。ベンダ固有の手順に従って、カーネルをアップグレードしてください。

Red Hat Enterprise Linux7.x(32ビット/64ビット)

この情報は、Red HatとRed Hat派生版の両方に適用されます。

これらのゲスト用の新しいテンプレートは、2GBのRAMを指定します。このサイズは、バージョン7.4以降を正しくインストールするための要件です。バージョン7.0~7.3の場合、テンプレートは2GBのRAMを指定しますが、以前のバージョンのXenServerでは、1GBのRAMで十分です。

Oracle Linux 5.x(32ビット/64ビット)

OEL 5.xの仮想マシンの場合は、OEL 5.4カーネルまたはそれ以降を使用する必要があります。このカーネルは、ディストリビューションベンダから入手できます。Version 5.4よりも古いEnterprise Linuxカーネルを使用すると、XenServer仮想マシンが正しく動作しません。

ベンダ固有の手順に従って、カーネルをアップグレードしてください。

OEL 5.6(64ビット)では、Unbreakable Enterprise Kernel(UEK)はXenプラットフォームをサポートしていません。このオペレーティングシステムでUEKを使用すると、カーネルが正しく起動しません。

Oracle Linux 6.9(64ビット)

メモリが2GBを超えるOEL 6.9仮想マシンの場合、起動パラメーターを<crashkernel=no>に設定してクラッシュカーネルを無効にします。このパラメーターが設定されているときのみ、仮想マシンが正常に再起動します。OEL 6.x以前のバージョンを使用する場合、OEL 6.9にアップデートする前にこの起動パラメーターを設定してください。XenCenterを使用してパラメーターを設定するには、新規VMウィザードで[インストールメディア]ページの [高度なOS起動パラメーター] フィールドに追加します。XenCenterを使用して既存の仮想マシンを変更するには、仮想マシン上で右クリックし、[プロパティ]>[起動オプション]>[OS起動パラメーター] の順に選択します。

Debian 6.0(Squeeze)(32ビット/64ビット)

XenCenterでプライベートミラーを指定する場合、インストーラカーネルの取得のみに使用されます。インストーラが起動したら、パッケージの取得に使用するミラーのアドレスを再指定する必要があります。

Debian 7(Wheezy)(32ビット/64ビット)

XenCenterでプライベートミラーを指定する場合、インストーラカーネルの取得のみに使用されます。インストーラが起動したら、パッケージの取得に使用するミラーのアドレスを再指定する必要があります。

Ubuntu 10.04(32ビット/64ビット)

Ubuntu 10.04の仮想マシンで複数の仮想CPUを割り当てる場合、ゲストカーネルを2.6.32-32 #64にアップデートすることを強くお勧めします。この問題について詳しくは、Knowledge BaseのCTX12947「Ubuntu 10.04 Kernel Bug Affects SMP Operation」を参照してください。

Asianux Server 4.5

インストールには、グラフィカルインストーラーを使用する必要があります。[インストールメディア] タブの、[高度なOS起動パラメーター] フィールドで「VNC」を追加します。

Linx Linux v6.0

最大6つのvCPUをサポートします。Linx Linux V6.0仮想マシンにディスクを追加するには、次の手順でデバイスIDを4以上の値に 設定します:

  1. 使用可能なデバイスIDを取得します。

    xe vm-param-get param-name=allowed-VBD-devices uuid=VM-uuid
    
  2. 一覧で4以上のIDを使用します:

    xe vbd-param-set userdevice=Device-UD uuid=VM-uuid>
    

Yinhe Kylin 4.0

ゲストツールのインストールで、grubメニューでルートユーザーを有効にし、ルートユーザーとしてゲストツールをインストールします。

NeoKylin Linux Security OS V5.0(64ビット)

NeoKylin Linux Security OS 5(64ビット)は、/etc/init/controlalt-delete.confの設定をデフォルトで無効にします。つまり、xeコマンドまたはXenCenterで再起動することはできません。この問題を解決するには、次のいずれかのタスクを実行します。

  • xeを実行するして仮想マシンを再起動する場合、force=1オプションを指定します:

    xe vm-reboot force=1 uuid=<vm uuid>
    

    または、XenCenterで[再起動]をクリックした後、[強制再起動]をクリックします。

  • ゲストOSの/etc/init/control-alt-delete.confファイルで、次の2行が有効になっていることを確認します:

    start on control-alt-delete
    exec /sbin/shutdown -r now "Control-Alt-Delete pressed"
    

デフォルトでは、OSでSelinuxが有効になっています。したがってユーザーは、XenCenterで仮想マシンにログインすることができません。この問題を解決するには、次のいずれかのタスクを実行します:

  1. XenCenterでselinux=0をBoot Optionsに追加して、Selinuxを無効にします:
  2. 仮想マシンにアクセス後、仮想マシンのIPアドレスをメモします。
  3. 上記の手順でIPアドレスを取得後、サードパーティソフトウェア(Xshellなど)を使用して、仮想マシンに接続し、selinux=0を削除します。

    注:

    SELinuxを無効にした場合のみ、XenCenterを使用して仮想マシンにアクセスできます。

  4. XenCenterを使用して仮想マシンにアクセスする必要がない場合、以前に追加したオプションを削除することでSelinuxを再度有効にします。

Debian Aptリポジトリ

Linuxのインストールが1回だけである場合は、Debianミラーサイトから直接行うことも可能ですが、いくつかの仮想マシンをインストールする場合は、キャッシングプロキシやローカルミラーの使用をお勧めします。Apt-cacherは、パッケージのローカルキャッシュを保持するプロキシサーバーの実装です。debmirrorは、Debianリポジトリの一部ミラーまたは完全ミラーを作成するためのツールです。これらのツールを仮想マシン上にインストールできます。

Linux仮想マシンを複製する前に

仮想マシンの複製 通常、仮想マシンやコンピュータを複製すると、IPアドレス、SID、MACアドレスなど、固有であるべき属性が環境内で重複してしまします。

Linux仮想マシンの複製により属性の重複が発生する場合は、XenServerにより一部の仮想ハードウェアパラメータが自動的に変更されます。XenCenterを使って仮想マシンを複製すると、XenCenterでMACアドレスとIPアドレスが自動的に変更されます。これらのインターフェイスが動的に設定される環境では、複製後の仮想マシン上でこれらの設定を変更する必要はありません。ただし、これらのインターフェイスが静的に設定されている環境では、重複が生じないようにネットワーク設定を変更する必要があります。

ここでは、カスタマイズすべき設定について説明します。

マシン名

複製された仮想マシンは別のコンピュータであるため、ネットワークに新しいコンピュータを追加するときと同様に、そのネットワークドメイン内で固有の名前を持つ必要があります。

IPアドレス

複製された仮想マシンは、所属するネットワークドメイン内で固有のIPアドレスを持つ必要があります。一般的に、DHCPが使用されるネットワークでは、DHCPサーバーにより固有のIPアドレスが割り当てられるため仮想マシンをカスタマイズする必要はありません。複製した仮想マシンが静的なIPアドレスを持つ場合は、仮想マシンの起動前に、ネットワーク上で使用されていないIPアドレスを割り当てる必要があります。

MACアドレス

以下の状況では、MACアドレスルールを無効にしておくことをお勧めします:

  1. Linuxディストリビューションによっては、複製した仮想マシンの仮想ネットワークインターフェイスのMACアドレスが、ネットワーク設定ファイルに記録されている場合があります。このような場合でも、XenCenterで仮想マシンを複製すると、新しい仮想マシンに別のMACアドレスが割り当てられます。このため、ネットワーク設定ファイルに記録されているMACアドレスを更新しないと、この仮想マシンの初回起動時にネットワークに接続できません。

  2. 一部のLinuxディストリビューションでは、各ネットワークインターフェイスのMACアドレスがudevルールで記憶され、インターフェイスの名前が保持されます。これは、同じ物理NICが常に同じethnインターフェイスにマップされるようにするためであり、リムーバブルNICを使用する場合(ノートブックなど)に有用です。ただし、この方式を仮想マシンに適用すると、問題が生じる場合があります。たとえば、仮想マシンのインストール時に2つの仮想NICを設定し、次にそれをシャットダウンして1つ目のNICを取り外した場合、再起動後のXenCenterには1つのNIC「eth0」が表示されます。一方、仮想マシンではこのNICがudevルールによりeth1としてマップされます。この結果、仮想マシンがネットワークに接続できなくなります。

仮想マシンで永続的なインターフェイス名を使用する場合は、これらのルールを無効にしてから仮想マシンを複製することをお勧めします。永続的なインターフェイス名を使用しなければならない場合は、仮想マシン内で通常の手順に従ってネットワークを再設定する必要があります。この場合、XenCenterに表示される情報が実際のインターフェイス名と異なることに注意してください。

Linux仮想マシンのリリースノート

リリースノートLinux仮想マシン 最近のほとんどのLinuxディストリビューションはXen準仮想化を直接サポートしていますが、インストールメカニズムや一部のカーネルの制限が異なります。

Red Hat Enterprise Linux 4.5~4.8

下記の問題はRed Hat社に報告されており、XenServerのRHEL 4.8カーネルでは既に修正されています。このカーネルは、組み込みのguest-tools.iso CDイメージ内のスクリプト/mnt/Linux/install.shを使用してインストールできます:

  • Red Hat Enterprise Linux 4.8で、RCU(Read-Copy Update)が保留状態のときにカーネルがティックレスモードに切り替わることがあります。この場合、通常synchronize_kernel()でトリガされ、外部イベント(SysRQなど)がリリースするまで、ゲストは基本的にハング状態になります(Red Hat Bugzilla 427998)。

  • メモリが不足している場合、ライブマイグレーションによりカーネルがクラッシュすることがあります(Red Hat Bugzilla 249867)。

  • ほかのXenStoreアクティビティにより、ゲストカーネルがハングすることがあります(Red Hat Bugzilla 250381)。

  • Red Hat Enterprise Linux 4.7に含まれるバグにより、64GBを超える RAMを持つホストでの起動に失敗します(Red Hat Bugzilla 311431)。このため、XenServerのRed Hat Enterprise Linux 4.7ゲストでは、デフォルトで64GB未満のRAMアドレスが割り当てられます。これにより、RAMが使用可能に見えてもRed Hat Enterprise Linux 4.7ゲストを起動できないことがあります。その場合、他のゲストを再起動またはシャットダウンすると、十分なRAMが使用可能になる可能性があります。それでもうまくいかない場合は、Red Hat Enterprise Linux 4.7仮想マシンが起動するまで他のゲストを一時的にシャットダウンします。

    Red Hat Enterprise Linux 4.7仮想マシンの起動に成功したら、XenServer PV Toolsをインストールしてから次のコマンドを実行します:

    xe vm-param-remove uuid=vm_uuid param-name=other-config \
    param-key=machine-address-size
    

    これにより、メモリ制限を解除します。

  • 一部のハードウェア(通常新しいシステム)では、CPUで重大なページフォールトが発生し、これをオペレーティングシステムは無視する必要があります。Red Hat Enterprise Linux Version 4.5~4.7ではこのページフォールトを無視できず、クラッシュが発生します(Red Hat Bugzilla 465914)。

    これはシトリックスのカーネルで修正されました。Red Hat Enterprise Linux 4仮想マシンのテンプレートには、suppress-spurious-page-faultsパラメーターが設定されています。これにより、標準カーネルがシトリックスのカーネルを置き換える段階まで正しくインストールが続行されます。

    このパラメーターセットによるパフォーマンスへの影響があるため、仮想のインストールが完了したら、仮想マシンのコマンドプロンプトで次のコマンドを実行します:

    xe vm-param-remove uuid=vm_uuid other-config: \
    param-key=suppress-spurious-page-faults
    
  • Red Hat Enterprise Linux 4.5~4.7で、xenbusトランザクションの停止コマンドに失敗すると、suspend_mutexがロックされたままになり、それ以降のxenbusトラフィックが停止することがあります。シトリックスのRHEL 4.8カーネルでは、この問題が解決されています。[EXT-5]

  • Red Hat Enterprise Linux 4.5~4.8でXFSファイルシステムを使用すると、例外状況によりカーネルパニックが発生することがあります。シトリックスのRHEL 4.8カーネルでは、この問題が解決されています。[EXT-16]

  • Red Hat Enterprise Linux 4.5~4.8でRCU(Read-Copy Update)が保留状態のときにカーネルがティックレスモードに切り替わり、ゲストオペレーティングシステムが応答不能になることがあります。シトリックスのRHEL 4.8カーネルでは、この問題が解決されています。[EXT-21]

  • 64GiB以上のRAMが搭載されたホスト上でRed Hat Enterprise Linux 4.7および4.8の仮想マシンがクラッシュすることがあります。シトリックスのRHEL 4.8カーネルでは、この問題が解決されています。[EXT-30]

  • Red Hat Enterprise Linux 4.5~4.8で、ネットワークドライバの問題により、まれにカーネルデッドロックが発生することがあります。シトリックスのRHEL 4.8カーネルでは、この問題が解決されています。[EXT-45]

その他の注意事項:

  • Red Hat Enterprise Linux 4.7、4.8のマシンで、多くのデバイスが接続されているとタイムアウトが発生し、起動に失敗することがあります。[EXT-17]

  • (Red Hat Enterprise Linux 4.xでサポートされていない)3つ以上の仮想CPUを持つ仮想マシンにRed Hat Enterprise Linux 4.xをインストールしようとすると、エラーメッセージでCPUの数が正しく報告されません。

Red Hat Enterprise Linux 4.5~4.8仮想マシンを複製する前に

Red Hat Enterprise Linux 4.5~4.8ゲストを複製できるようにするには(「Linux仮想マシンの複製の準備」を参照)、仮想マシンをテンプレートに変換する前に/etc/sysconfig/network-scripts/ifcfg-eth0HWADDR行を削除します。

Red Hatは、自動インストールを実行するためには、直接ディスクイメージを複製する代わりに、キックスタートファイルの使用を推奨しています(Red Hat KB Article 1308を参照)。

Red Hat Enterprise Linuxグラフィカルインストールのサポート

グラフィカルインストールを実行するには、XenCenterで、新規VMウィザードの指示に従います。[インストールメディア]ページの [高度なOS起動パラメーター] セクションで、パラメーターの一覧にvncを追加します:

graphical utf8 vnc

ここで、新しい仮想マシン用のネットワーク構成を指定して、VNC通信を有効にする必要があります。新規VMウィザードの残りのページの処理を進めます。ウィザードが完了したら、[インフラストラクチャ] ビューで、仮想マシンを選択して、[コンソール]をクリックして仮想マシンのコンソールセッションを表示します。この時点では標準のインストーラーが使用されます。仮想マシンのインストールは、最初はテキストモードで開始されます。また、ネットワーク構成が要求される場合があります。指定したら、[グラフィックコンソールに切り替える] がXenCenterウィンドウの右上隅に表示されます。

Red Hat Enterprise Linux 5

XenServer上の仮想マシンでRed Hat Enterprise Linux 5を実行する場合は、RHEL 5.4カーネルまたはそれ以降を使用する必要があります。以前のカーネルには、以下の既知の問題があります。

  • RHEL 5.0(64ビット)ゲストオペレーティングシステムの本来のカーネルでは、XenServer 7.1上での仮想マシンの起動に失敗します。これらの仮想マシンを運用している場合は、カーネルをVersion 5.4(2.6.18-164.el5xen)以降にアップデートしてからホストをXenServer 7.1にアップグレードする必要があります。XenServer 7.1にアップグレード済みの場合は、Knowledge BaseのCTX134845を参照して仮想マシンのカーネルをアップデートしてください。

  • サスペンド状態の仮想マシンを再開するときに、スワップ処理のデッドロックが発生することがあります。この問題は、スワップディスクの再接続が完了する前に割り当てが行われると発生します。ただし、発生頻度はまれです(Red Hat Bugzilla 429102)。

  • RHEL 5.3または5.4(32ビット/64ビット)の仮想マシンで動的メモリ制御(DMC)を使用すると、仮想マシンがクラッシュします。DMCを使用する場合は、最新バージョンのRHELまたはCentOSを使用してください。[EXT-54]

  • Red Hat Enterprise Linux 5.3の仮想マシンで、多くのデバイスが接続されているとタイムアウトが発生し、起動に失敗することがあります。[EXT-17]

  • Red Hat Enterprise Linux 5.0~5.3でXFSファイルシステムを使用すると、例外状況によりカーネルパニックが発生することがあります。Red Hat RHEL 5.4カーネルまたはそれ以降を適用することで、この問題を解決できます。[EXT-16]

  • 64GiB以上のRAMが搭載されたホスト上でRed Hat Enterprise Linux 5.2および5.3の仮想マシンがクラッシュすることがあります。Red Hat RHEL 5.4カーネルまたはそれ以降を適用することで、この問題を解決できます。[EXT-30]

  • Red Hat Enterprise Linux 5.0~5.3で、ネットワークドライバの問題により、まれにカーネルデッドロックが発生することがあります。Red Hat RHEL 5.4カーネルまたはそれ以降を適用することで、この問題を解決できます。[EXT-45]

以前のXenServerリリースでは、仮想マシン上でRHEL 5を使用する場合の重大な問題を修正した、Citrix独自のRHEL 5カーネルを提供していました。これらの問題は、Red Hat社のRHEL 5.4カーネル以降で解決されています。このため、XenServerではRHEL 5に固有のカーネルは付属していません。

RHEL 5.xゲストを複製する前に

Red Hat Enterprise Linux 5.xゲストを複製できるようにするには(「Linux仮想マシンの複製の準備」を参照)、仮想マシンをテンプレートに変換する前に/etc/sysconfig/network-scripts/ifcfg-eth0HWADDR行を削除します。

Red Hatは、自動インストールを実行するためには、直接ディスクイメージを複製する代わりに、キックスタートファイルの使用を推奨しています(Red Hat KB Article 1308を参照)。

Red Hat Enterprise Linux 6

Red Hat Enterprise Linux 6.xには、Red Hat Enterprise Linux Workstation 6.6(64ビット)およびRed Hat Enterprise Linux Client 6.6(64ビット)も含まれます。

  • RHEL 6.0カーネルのバグにより、さまざまな仮想化プラットフォームでディスクI/Oの問題が発生することが確認されています。この問題により、RHEL 6.0仮想マシンでインタラプトが失われることがあります。詳しくは、Red Hat Bugzilla 681439603938652262を参照してください。

  • RHEL 6.1または6.2(32ビット/64ビット)の仮想マシンでVDIの接続解除に失敗し、「NULL pointer dereference at <xyz>」エラーによるカーネルクラッシュが発生することがあります。この問題を回避するには、カーネルをVersion 6.3(2.6.32-238.el6)以降にアップデートしてください。詳しくは、「Red Hat Bugzilla 773219」を参照してください。

Red Hat Enterprise Linux 7

移行または一時停止した後、RHEL 7.xゲストは再開時にフリーズすることがあります。詳しくは、Red Hat Bugzilla 1141249を参照してください。

CentOS 4

CentOS 4のリリースノートの一覧については、「Red Hat Enterprise Linux 4の制限」を参照してください。

CentOS 5

CentOS 5.xのリリースノートの一覧については、「Red Hat Enterprise Linux 5の制限」を参照してください。

CentOS 6

CentOS 6のリリースノートの一覧については、「Red Hat Enterprise Linux 6の制限」を参照してください。

CentOS 7

CentOS 7.xのリリースノートの一覧については、「Red Hat Enterprise Linux 7の制限」を参照してください。

Oracle Linux 5

Oracle Linux 5.xのリリースノートの一覧については、「Red Hat Enterprise Linux 5の制限」を参照してください。

Oracle Linux 6

Oracle Linux 6.xゲストが、v6.5より前のバージョンを実行中のXenServerホストにインストールされている場合は、v6.5へのアップグレード後に引き続きRed Hatカーネルが実行されます。UEKカーネル(新規インストール時のデフォルト)に切り替えるには、dom0の/etc/pygrub/rules.d/oracle-5.6ファイルを削除します。仮想マシンごとに使用するカーネルを選択するには、仮想マシン内のブートローダー設定を編集します。

OEL 6.xのリリースノートの一覧については、「Red Hat Enterprise Linux 6の制限」を参照してください。

Oracle Linux 7

Oracle Linux 7.xのリリースノートの一覧については、「Red Hat Enterprise Linux 7の制限」を参照してください。

Scientific Linux 5

Scientific Linux 5.xのリリースノートの一覧については、「Red Hat Enterprise Linux 5の制限」を参照してください。

Scientific Linux 6

Scientific Linux 6.xのリリースノートの一覧については、「Red Hat Enterprise Linux 6の制限」を参照してください。

Scientific Linux 7

Scientific Linux 7.xのリリースノートの一覧については、「Red Hat Enterprise Linux 7の制限」を参照してください。

SUSE Linux Enterprise 10 Service Pack 1

XenServerは、ゲストカーネルとしてSLES10 SP2に付属する標準のNovellカーネルを使用しています。このカーネルで確認されたバグはNovell社に報告されており、それを以下に示します。

  • 最大3つの仮想ネットワークインタフェイスがサポートされています。

  • 起動時にディスクが正しく接続されないことがあります。(Novell Bugzilla 290346

SUSE Enterprise Linux 10 Service Pack 3

Novell SUSE Linux Enterprise Server 10 SP3(32ビット)エディションのパッケージの欠陥により、このエディションの仮想マシンを作成できない場合があります。この問題を回避するには、まずSLES 10 SP2をインストールして、その仮想マシンをyastを使用するなどしてSLES SP3にアップグレードしてください。詳しくは、Novell社のドキュメント7005079を参照してください。

SUSE Enterprise Linux 11

XenServerはゲストカーネルとしてSLES 11に付属する標準のNovellカーネルを使用しています。このカーネルで確認されたバグはNovell社に報告されており、それを以下に示します。

  • 高負荷状態のSLES 11仮想マシンのライブマイグレーションに失敗し、「An error occurred during the migration process」というメッセージが表示されることがあります。これはSLES 11カーネルの既知の問題により発生し、Novell社に報告済みです。この問題は、Novell社によるカーネルアップデート2.6.27.23-0.1.1以降で解決される予定です。

SUSE Linux Enterprise 11 Service Pack 2

SLES 11 SP2(32ビット)の仮想マシンを作成する場合、SLES 11 SP2カーネルの問題によりSLESのインストーラまたは仮想マシンがクラッシュすることがあります。この問題を回避するには、仮想マシンに1GB以上のメモリを割り当ててください。アップデートをインストールした後で、仮想マシンに割り当てられたメモリを減らすことができます。詳しくは、Novell Bugzilla 809166を参照してください。

SLESゲストを複製する前に

SLESゲストの複製を準備するには、次のようにネットワークデバイスの構成をクリアしてください:

cat< /dev/null > /etc/udev/rules.d/30-net_persistent_names.rules

SLESゲストを複製できるようにするには、以下の手順に従います(「Linux仮想マシンの複製の準備」参照):

  1. ファイル/etc/sysconfig/network/configを開きます。

  2. 次の行を変更します:

    FORCE_PERSISTENT_NAMES=yes
    

    コピー先

    FORCE_PERSISTENT_NAMES=no
    
  3. ファイルを保存して、仮想マシンを再起動します。

Ubuntu 10.04

Ubuntu 10.04(64ビット)が動作する仮想マシンでは、割り当て可能なVCPUの最大数(VCPUs-max)に起動時に使用可能なVCPU数(VCPUs-at-startup)よりも大きな値を設定すると、起動時に仮想マシンがクラッシュします。詳しくは、Ubuntu Launchpadの1007002を参照してください。

Ubuntu 12.04

本来のカーネルを使用したUbuntu 12.04仮想マシンは、起動時にクラッシュする場合があります。この問題を回避するには、ベンダーによってサポートされる最新のインストールメディアを使用してUbuntu 12.04仮想マシンを作成するか、ゲスト内アップデートメカニズムを使用して既存の仮想マシンを最新のバージョンにアップデートする必要があります。

Ubuntu 14.04

PVゲストを起動しようとすると、次のエラーが発生してクラッシュすることがあります:kernel BUG at /build/buildd/linux-3.13.0/arch/x86/kernel/paravirt.c:239! このエラーが発生するのは、中断した状態から非アトミック関数が不適切に呼び出されたためです。この問題を修復するには、LinuxイメージのパッケージをVersion 3.13.0-35.62にアップデートする必要があります。詳しくは、Ubuntu Launchpadの1350373を参照してください。