XenServer

ホストを管理する

この記事では、個々のXenServer®ホストを管理するために実行できるいくつかのアクションについて説明します。

リソースプールに関連するアクションを管理するには、「プールを管理する」を参照してください。

SSHアクセスを構成する

XenServerホストへのSSHアクセスは、デフォルトで有効になっています。XenServerホストへのSSHアクセスを無効にする場合は、次のコマンドを実行します。

xe host-disable-ssh host=<host_uuid_or_name_label>
<!--NeedCopy-->

このコマンドはSSHを無効にします。ホストは新しいSSH接続を拒否しますが、既存のセッションを切断することはありません。

XenServerホストへのSSHアクセスを有効にするには、次のコマンドを実行します。

xe host-enable-ssh host=<host_uuid_or_name_label>
<!--NeedCopy-->

現在のホストのSSH一時有効タイムアウト(秒)を設定するには:

xe host-param-set uuid=<host-uuid> ssh-enabled-timeout=<seconds>
<!--NeedCopy-->

タイムアウトパラメータは、SSHサービスの期間を決定します。0に設定すると、SSHは無期限にアクティブなままになります。正の整数(秒)に設定すると、指定された期間後にSSHは自動的に無効になります。構成の変更は、その後のアクティブなSSHセッションにすぐに適用され、ユーザーがCLI/APIからSSHを有効にするたびに適用されます。

現在のホストのSSHコンソールアイドルタイムアウト(秒)を設定するには

xe host-param-set uuid=<host-uuid> console-idle-timeout=<seconds>
<!--NeedCopy-->

VNCおよびSSHコンソール接続のアイドルセッションタイムアウトを、秒単位の非負の整数値で構成します。0はタイムアウトを無効にし(セッションは期限切れになりません)、正の値(例:3600)は指定された期間後にアイドルセッションを自動的に終了します。設定は、構成後に新しく作成されたコンソールセッションに適用されます。

現在のホストのSSH自動モードを設定するには

xe host-param-set uuid=<host-uuid>  ssh-auto-mode=true
<!--NeedCopy-->

注:

デフォルトでは、攻撃対象領域を減らすために、新規インストールではSSHサービスが無効になっています。

XAPIサービスの健全性ステータスに基づいて、自動SSH管理を構成します。自動モードが有効な場合、SSHのアクティベーションはXAPIステータスに従います。XAPIが正常な場合はSSHは無効になり、XAPIが異常な場合は有効になります。

オートモードが有効 + ssh_enabled_timeout = 0: host.enable_ssh を介した手動SSHアクティベーションは、オートモードを永続的に無効にします。

オートモードが有効 + ssh_enabled_timeout > 0: 手動SSHアクティベーションはオートモードを一時的に無効にします。タイムアウト期間が終了すると、オートモードは元の設定に戻ります。(アクティブなSSHタイムアウト期間中にシステムが再起動すると、元のオートモード設定は失われ、タイムアウト/回復時に有効にリセットされます。)

これらのコマンドのいずれかでホストパラメータの値として、ホストセレクターを使用できます。詳細については、「ホストセレクター」を参照してください。

XenServerプール内のすべてのホストのSSHアクセスを同時に管理できます。詳細については、「プールのSSHアクセスを無効にする」を参照してください。

アンサーファイルを使用したSSHオートモード

デフォルトのSSHおよびオートモード設定を制御するために、新しいアンサーファイル構成 <ssh-mode>on|off|auto</ssh-mode> を追加します。

  • 「auto」に設定すると、オートモードが有効になり、XAPIが起動するとSSHサービスを自動的に停止します。
  • 「on」または「off」に設定すると、オートモードはデフォルトで無効になり、SSHサービスはそれに応じて有効または無効になります。

新しいSSH管理制御の定義

ホストレベルで新しいXAPI API host.set_ssh_auto_mode を設定してSSHを構成します。

set_ssh_auto_mode: SSHオートモードを有効または無効にするように構成します。オートモードが有効な場合、SSHステータスはXAPIステータスに依存します。XAPIが正常な場合はSSHは無効になり、XAPIが異常な場合はSSHは有効になります。

ユーザーがオートモードを有効に設定し、現在のssh_enabled_timeoutが0の場合、host.enable_ssh でSSHを有効にすると、オートモードは永続的に無効になります。

ユーザーが host.set_auto_mode を有効または無効としてオートモードを構成すると、これは「元のオートモード設定」と呼ばれます。現在の ssh_enabled_timeout が正の数(例: 1800秒)に設定されている場合、host.enable_ssh でSSHを有効にすると、オートモードは一時的に無効になります。タイムアウト期間が終了すると、SSHは自動的に無効になり、オートモードは元の設定に戻ります。

ユーザーが ssh_enabled_timeout を正の数(例: 3600秒)に設定し、タイムアウト期間が終了する前にホストを再起動(またはXAPIを再起動)すると、タイムアウト期間が終了した時点で、SSHは自動的に無効になり、再起動によって元のオートモード設定が失われるため、オートモードはtrueに戻ります。

ssh_enabled_timeout を正の数(例: 180秒)に設定し、その後XAPIが失敗した場合、タイムアウト期間が終了したときにXAPIが失敗状態のままであると、XAPIが再起動するまでSSHは有効のままになります。XAPIの再起動時に、システム再起動によって元のオートモード設定が失われるため、SSHは自動的に無効になり、オートモードはtrueに戻ります。

ホストにTLS証明書をインストールする

XenServerホストには、デフォルトのTLS証明書がインストールされています。ただし、XenServerとCitrix Virtual Apps and Desktops™間の通信をHTTPSで保護するには、信頼できる認証局が提供する証明書をインストールしてください。

このセクションでは、xe CLIを使用して証明書をインストールする方法について説明します。XenCenterを使用して証明書を操作する方法については、XenCenterのドキュメントを参照してください。

TLS証明書とそのキーが以下の要件を満たしていることを確認してください。

  • 証明書とキーのペアはRSAキーであること。
  • キーが証明書と一致していること。
  • キーは証明書とは別のファイルで提供されていること。
  • 証明書は、中間証明書とは別のファイルで提供されていること。
  • キーファイルは、次のいずれかのタイプである必要があります: .pem または .key
  • すべての証明書ファイルは、次のいずれかのタイプである必要があります: .pem.cer、または .crt
  • キーの長さは2048ビット以上4096ビット以下であること。
  • キーは暗号化されていないPKCS #8キーであり、パスキーがないこと。
  • キーと証明書は、base-64エンコードされた「PEM」形式であること。
  • 証明書が有効であり、期限切れでないこと。
  • 署名アルゴリズムはSHA-256またはSHA-512であること。

選択した証明書とキーがこれらの要件を満たしていない場合、xe CLIは警告します。

TLS証明書はどこで入手できますか?

  • XenServerホストにインストールしたい信頼された証明書をすでにお持ちかもしれません。
  • あるいは、サーバー上で証明書を作成し、署名のために希望する認証局に送信することもできます。この方法は、秘密鍵がXenServerホスト上に残り、システム間でコピーされないため、より安全です。

    TLS証明書の作成には、以下の手順があります。

    1. 証明書署名要求を生成する(#1-generate-a-certificate-signing-request)
    2. 証明書署名要求を認証局に送信する(#2-send-the-certificate-signing-request-to-a-certificate-authority)
    3. 署名済み証明書をXenServerホストにインストールする(#3-install-the-signed-certificate-on-your-xenserver-host)

1. 証明書署名要求を生成する

まず、秘密鍵と証明書署名要求を生成します。XenServerホストで、以下の手順を完了します。

  1. 秘密鍵ファイルを作成するには、次のコマンドを実行します。

    openssl genrsa -des3 -out privatekey.pem 2048
    <!--NeedCopy-->
    

    パスフレーズの入力を求められます。このパスフレーズは、次のステップで削除されます。

  2. キーからパスフレーズを削除します。

    openssl rsa -in privatekey.pem -out privatekey.nop.pem
    <!--NeedCopy-->
    
  3. 秘密鍵を使用して証明書署名要求を作成します。

    openssl req -new -key privatekey.nop.pem -out csr
    <!--NeedCopy-->
    
  4. プロンプトに従って、証明書署名要求の生成に必要な情報を提供します。

    • 国名。お住まいの国のTLS証明書国コードを入力します。たとえば、カナダの場合はCA、ジャマイカの場合はJMです。TLS証明書国コードのリストはWebで確認できます。
    • 都道府県名(正式名称)。プールが所在する都道府県を入力します。たとえば、マサチューセッツ州やアルバータ州です。
    • 市区町村名。プールが所在する都市の名前です。
    • 組織名。会社または組織の名前です。
    • 部署名。部署名を入力します。このフィールドはオプションです。
    • コモンネーム。XenServerホストのFQDNを入力します。FQDNまたは有効期限のないIPアドレスのいずれかを指定することをお勧めします。
    • メールアドレス。このメールアドレスは、証明書を生成する際に証明書に含まれます。

    証明書署名要求は現在のディレクトリに保存され、csrという名前が付けられます。

  5. 次のコマンドを実行して、コンソールウィンドウに証明書署名要求を表示します。

    cat csr
    <!--NeedCopy-->
    
  6. 証明書署名要求全体をコピーし、この情報を使用して証明機関に証明書を要求します。

    証明書署名要求の例:

    -----BEGIN CERTIFICATE REQUEST-----
    MIIDBDCCAewCAQAwgYsxCzAJBgNVBAYTAlVLMRcwFQYDVQQIDA5DYW1icmlkZ2Vz
    aGlyZTESMBAGA1UEBwwJQ2FtYnJpZGdlMRIwEAYDVQQKDAlYZW5TZXJ2ZXIxFTAT
    ...
    SdYCkFdo+85z8hBULFzSH6jgSP0UGQU0PcfIy7KPKyI4jnFQqeCDvLdWyhtAx9gq
    Fu40qMSm1dNCFfnACRwYQkQgqCt/RHeUtl8srxyZC+odbunnV+ZyQdmLwLuQySUk
    ZL8naumG3yU=
    -----END CERTIFICATE REQUEST-----
    <!--NeedCopy-->
    

2. 証明書署名要求を証明機関に送信する

証明書署名要求を生成したら、組織が推奨する証明機関に要求を提出できます。

証明機関(CA)はデジタル証明書を提供するサービスであり、組織内にCAがある場合もあれば、信頼できる第三者を使用することもできます。一部の証明機関では、インターネットからアクセスできるシステムで証明書をホストする必要があります。この要件を持つ証明機関の使用はお勧めしません。

証明機関は署名要求に応答し、次のファイルを提供します。

  • 署名済み証明書
  • 該当する場合、中間証明書

これで、これらのファイルをすべてXenServerホストにインストールできます。

3. 署名済み証明書をXenServerホストにインストールする

証明機関が証明書署名要求に応答した後、XenServerホストに証明書をインストールするには、次の手順を実行します。

  1. 署名済み証明書と、証明機関が持っている場合は中間証明書を証明機関から取得します。
  2. キーと証明書をXenServerホストにコピーします。
  3. ホストで次のコマンドを実行します。

    xe host-server-certificate-install certificate=<path_to_certificate_file> private-key=<path_to_private_key> certificate-chain=<path_to_chain_file>
    

    certificate-chain パラメーターはオプションです。

セキュリティを強化するために、証明書のインストール後に秘密鍵ファイルを削除できます。

管理者パスワードの管理

XenServerホストを初めてインストールするときに、管理者パスワードまたはrootパスワードを設定します。このパスワードを使用して、XenCenterをホストに接続したり、(ユーザー名rootで)システム構成コンソールであるxsconsoleにログインしたりします。

ホストをプールに参加させると、そのホストの管理者パスワードは、プールコーディネーターの管理者パスワードと一致するように自動的に変更されます。

注:

XenServerの管理者パスワードには、印刷可能なASCII文字のみを含める必要があります。

パスワードを変更する

管理者パスワードを変更するには、XenCenter®、xe CLI、または xsconsole を使用できます。

XenCenter

XenCenter を使用してプールまたはスタンドアロンホストの管理者パスワードを変更するには、次の手順を実行します。

  1. リソースペインで、プールまたはプール内の任意のホストを選択します。
  2. プールメニューまたはサーバーメニューで、サーバーパスワードの変更を選択します。

スタンドアロンホストのルートパスワードを変更するには、リソースペインでホストを選択し、サーバーメニューからパスワードをクリックして変更をクリックします。

XenCenter がセッション間でホストのログイン資格情報を保存するように構成されている場合、新しいパスワードは記憶されます。詳細については、ホスト接続状態の保存を参照してください。

管理者パスワードを変更した後、プールシークレットをローテーションします。詳細については、プールシークレットのローテーションを参照してください。

xe CLI

xe CLI を使用して管理者パスワードを変更するには、プール内のホストで次のコマンドを実行します。

  xe user-password-change new=<new_password>
<!--NeedCopy-->

注:

コマンド履歴に平文のパスワードが保存されないように、コマンドの前にスペースを付けてください。

管理者パスワードを変更した後、プールシークレットをローテーションします。詳細については、プールシークレットのローテーションを参照してください。

エックスエスコンソール

プールまたはスタンドアロンホストの管理者パスワードをxsconsoleを使用して変更するには、次の手順を実行します。

  1. プールコーディネーターで、コンソールに移動します。
  2. rootとしてログインします。
  3. xsconsoleと入力します。Enterキーを押します。xsconsoleが表示されます。
  4. xsconsoleで、矢印キーを使用してAuthenticationオプションに移動します。Enterキーを押します。
  5. Change Passwordに移動します。Enterキーを押します。
  6. 管理者パスワードで認証します。
  7. Change Passwordダイアログで:
    1. 現在のパスワードを入力します。
    2. 新しいパスワードを入力します。
    3. 確認のため、新しいパスワードをもう一度入力します。

    Password Change Successful画面が表示されます。Enterキーを押して閉じます。

ホストがプールコーディネーターの場合、この更新されたパスワードはプールの他のホストに伝播されます。

管理者パスワードを変更した後、プールシークレットをローテーションします。詳細については、「プールシークレットのローテーション」を参照してください。

紛失したrootパスワードをリセットする

XenServerホストの管理者(root)パスワードを紛失した場合、ホストに直接アクセスしてパスワードをリセットできます。

  1. XenServerホストを再起動します。

  2. GRUBメニューが表示されたら、eキーを押してブートメニューエントリを編集します。

  3. module2で始まる行にinit=/sysroot/bin/shを追加します。

  4. Ctrl-Xを押して、rootシェルで起動します。

  5. コマンドシェルで、次のコマンドを実行します。

    chroot /sysroot
    passwd
    
    (type the new password twice)
    
    sync
    /sbin/reboot -f
    <!--NeedCopy-->
    

ホストがプールコーディネーターである場合、この更新されたパスワードはプールの他のホストに伝播されます。

管理者パスワードを変更した後、プールシークレットをローテーションします。詳細については、「プールシークレットのローテーション」を参照してください。

サーバーのNTP構成を変更する

xsconsoleからサーバーのNTP構成を更新できます。

  1. ホストコンソールで、xsconsoleと入力します。
  2. xsconsoleで、ネットワークと管理インターフェース > ネットワーク時刻 (NTP)に移動します。
  3. 続行するにはパスワードを入力してください。
  4. Configure Network Timeメニューから、設定したいオプションを選択します。

XenAPIを使用してNTPを構成することもできます。

これにより、SSH経由でdom0に直接アクセスすることなく、NTP構成を自動化できます。

Python SDKの使用例: session.xenapi.host.set_ntp_mode(host_ref, 'Factory')

NTPモード:

  • ファクトリー - 組み込みのXenServer NTPプールサーバーを使用します
  • DHCP - DHCPによって割り当てられたNTPサーバーを使用します
  • カスタム - ユーザーが構成したNTPサーバーを使用します
  • 無効 - NTPを無効にします(非推奨)

NTP同期ステータスを確認するには:

  • session.xenapi.host.get_ntp_synchronized(host_ref)
  • session.xenapi.host.get_ntp_servers_status(host_ref)

注:

NTPがXenAPIを介さずにdom0に直接構成されている場合、値がXenAPIフィールドと矛盾する可能性があります。

XAPIと値を再同期するには、ツールスタックを再起動します: xe-toolstack-restart

サーバーのタイムゾーンを変更する

XenAPIを使用してホストのタイムゾーンを構成できます。

Python SDK を使用した例: session.xenapi.host.set_timezone(host_ref, 'UTC')

タイムゾーンの値は、IANA タイムゾーン名を使用する必要があります。例:

  • UTC
  • Europe/Paris
  • Asia/Kolkata

現在のタイムゾーンを読み取るには:

session.xenapi.host.get_timezone(host_ref)

サポートされているタイムゾーンを一覧表示するには:

session.xenapi.host.list_timezones(host_ref)

注:

タイムゾーンが XenAPI を介さずに dom0 に直接構成されている場合、値が XenAPI フィールドと矛盾する可能性があります。

XAPI と値を再同期するには、ツールスタックを再起動します: xe-toolstack-restart

サーバーの max-cstate を変更する

max-cstate 設定は、許可される最も深い CPU アイドル電源状態を制御します。

サポートされている値:

  • ”” - 無制限 (デフォルト)
  • 0 - C0に制限
  • 1 - C1に制限

Python SDKを使用した例:

session.xenapi.host.set_max_cstate(host_ref, '1')

現在の値を読み取るには:

session.xenapi.host.get_max_cstate(host_ref)

注:

max-cstateがXenAPIを介さずにdom0に直接構成されている場合、値がXenAPIフィールドと矛盾する可能性があります。

XAPIと値を再同期するには、ツールスタックを再起動します: xe-toolstack-restart

メンテナンスのためにXenServerホストのプールを準備する

リソースプールの一部であるホストでメンテナンス操作を実行する前に、そのホストを無効にする必要があります。ホストを無効にすると、そのホスト上でVMが起動されなくなります。その後、そのVMをプール内の別のXenServerホストに移行する必要があります。これは、XenCenterを使用してXenServerホストをメンテナンスモードにすることで実行できます。詳細については、XenCenterドキュメントのメンテナンスモードで実行を参照してください。

バックアップの同期は24時間ごとに実行されます。プールコーディネーターをメンテナンスモードにすると、オフラインVMの過去24時間分のRRD更新が失われます。

警告:

アップデートをインストールする前にすべてのXenServerホストを再起動し、その構成を確認することを強くお勧めします。一部の構成変更はXenServerホストが再起動されたときにのみ有効になるため、再起動によってアップデートの失敗につながる可能性のある構成の問題が明らかになることがあります。

CLIを使用してプール内のホストをメンテナンス操作のために準備するには

  1. 次のコマンドを実行します。

    xe host-disable uuid=XenServer_host_uuid
    xe host-evacuate uuid=XenServer_host_uuid
    <!--NeedCopy-->
    

    このコマンドはXenServerホストを無効にし、実行中のVMをプール内の他のXenServerホストに移行します。

  2. 必要なメンテナンス操作を実行します。

  3. メンテナンス操作が完了したら、XenServerホストを有効にします。

    xe host-enable
    <!--NeedCopy-->
    
  4. 停止しているVMを再起動し、中断しているVMを再開します。

XenServerホストをシャットダウンまたは再起動する

XenServerホストをシャットダウンまたは再起動するには、常にxe CLIまたはXenCenterを使用することをお勧めします。通常の操作中に、他の方法(ハードウェアベースのリセットやオペレーティングシステムコマンドなど)を使用してホストをシャットダウンまたは再起動しないでください。これにより、ホストとプールで予期しない動作が発生する可能性があります。

xe CLIを使用してホストをシャットダウンまたは再起動するには、次のコマンドを使用します。

  1. 指定されたホストで新しいVMが起動したり、移行されたりするのを防ぎます。

    xe host-disable host=<host name>
    <!--NeedCopy-->
    
  2. 必要に応じて、実行中のVMをホストから移行します。

    xe host-evacuate uuid=<host uuid>
    <!--NeedCopy-->
    
  3. 次のxe CLIコマンドのいずれかを使用して、ホストをシャットダウンまたは再起動します。

    • ホストを正常にシャットダウンするには:

      ``` xe host-shutdown host=

    • ホストを正常に再起動するには:

       xe host-reboot host=<host name>
      

XenCenterを使用してサーバーをシャットダウンする方法については、XenCenterドキュメントを参照してください。

ホストの電源オンを設定する

ホストをリモートで電源オンにする

XenCenterまたはCLIを使用して、XenServerホストの電源オン機能により、ホストをリモートでオン/オフできます。

ホストの電源を有効にするには、ホストが以下のいずれかの電源制御ソリューションを備えている必要があります。

  • Wake on LAN対応ネットワークカード

  • インテリジェントプラットフォーム管理インターフェース (IPMI)

  • 管理APIに基づいたカスタムスクリプトで、XenServerを介して電源をオン/オフできます。詳細については、次のセクションの「ホストの電源オン機能のカスタムスクリプトを構成する」を参照してください。

ホストの電源オン機能を使用するには、次の2つのタスクが必要です。

  1. プール内のホストがリモートでの電源制御をサポートしていることを確認します。たとえば、Wake on LAN機能があるか、IPMIをサポートしているか、またはカスタムスクリプトを作成しているか、などです。

  2. CLIまたはXenCenterを使用して、ホストの電源オン機能を有効にします。

CLIを使用してホストの電源オンを管理する

ホストの電源オン機能は、CLIまたはXenCenterのいずれかを使用して管理できます。このセクションでは、CLIを使用した管理について説明します。

ホストの電源オンは、ホストレベル(つまり、各XenServer上)で有効になります。

ホストの電源オンを有効にすると、CLIまたはXenCenterのいずれかを使用してホストをオンにできます。

CLIを使用してホストの電源オンを有効にするには

コマンドを実行します。

xe host-set-power-on-mode host=<host uuid> \
    power-on-mode=("" , "wake-on-lan", "IPMI","custom") \
    power-on-config=key:value

CLI を使用してホストをリモートで起動するには

コマンドを実行します。

xe host-power-on host=<host uuid>

```