XenServer

xe CLIを使用してアップデートを適用

xe CLIを使用して、XenServer 8ホストおよびプールにアップデートを適用します。

アップデートを受信するには、XenServerホストにインターネットアクセスが必要です。ホストがファイアウォールの内側にある場合は、ホストがops.xenserver.comのサブドメインにアクセスできることを確認してください。詳しくは、「接続要件」を参照してください。

XenServerプールをアップデートできるようにするには、次の手順を実行します:

  1. XenServer 8をインストールまたはアップグレードします

  2. プールのアップデートを構成します

  3. プールの新しいアップデートを同期します

  4. ガイダンスのカテゴリとアップデートタスクについて理解します

  5. プールで利用可能なアップデートを表示します

  6. プールにアップデートを適用します

プールのアップデートを構成する

XenServerのホストおよびプールにアップデートを適用するには、プールまたはホストを更新チャネルにサブスクライブすることで、サーバーのアップデートを構成する必要があります。これらのチャネルは、コンテンツ配信ネットワーク(CDN)で利用可能になったアップデートにアクセスできるまでの時間をコントロールします。

2つの更新チャネルは次のとおりです:

プールを更新チャネルの1つにサブスクライブすると、プールは定期的に自動的に更新チャネルと同期します。または、プールを更新チャネルと手動で同期します。この同期アクションは、利用可能なすべてのアップデートをプールコーディネーターにダウンロードします。その後、xe CLIを使用してダウンロードしたアップデートを適用できます。

  1. プールの早期アクセス更新チャネルを作成して有効にします:

    pool_uuid=$(xe pool-list --minimal)
        
    base_binary_url="https://repo.ops.xenserver.com/xs8/base"
    base_source_url="https://repo-src.ops.xenserver.com/xs8/base"
    base_repo_uuid=$(xe repository-introduce name-label=base_repo name-description=Base binary-url=<base_binary_url> source-url=<base_source_url> update=false)
        
    update_binary_url="https://repo.ops.xenserver.com/xs8/earlyaccess"
    update_source_url="https://repo-src.ops.xenserver.com/xs8/earlyaccess"
    update_repo_uuid=$(xe repository-introduce name-label=early_access_repo name-description="Early Access" binary-url=<update_binary_url> source-url=<update_source_url> update=true)
        
    xe pool-param-set uuid=<pool_uuid> repositories=<base_repo_uuid>,<update_repo_uuid>
    <!--NeedCopy-->
    

    または、プールの通常更新チャネルを作成して有効にします:

    pool_uuid=$(xe pool-list --minimal)
        
    base_binary_url="https://repo.ops.xenserver.com/xs8/base"
    base_source_url="https://repo-src.ops.xenserver.com/xs8/base"
    base_repo_uuid=$(xe repository-introduce name-label=base_repo name-description=Base binary-url=<base_binary_url> source-url=<base_source_url> update=false)
        
    update_binary_url="https://repo.ops.xenserver.com/xs8/normal"
    update_source_url="https://repo-src.ops.xenserver.com/xs8/normal"
    update_repo_uuid=$(xe repository-introduce name-label=normal name-description="Normal" binary-url=<update_binary_url> source-url=<update_source_url> update=true)
        
    xe pool-param-set uuid=<pool_uuid> repositories=<base_repo_uuid>,<update_repo_uuid>
    <!--NeedCopy-->
    
  2. 現在有効になっているリポジトリUUIDの一覧を取得します:

    pool_uuid=$(xe pool-list --minimal)
    xe pool-param-get uuid=<pool_uuid> param-name=repositories
    <!--NeedCopy-->
    
  3. リポジトリUUIDを使用して、特定のリポジトリの詳細を表示します:

    xe repository-param-list uuid=<UUID>
    <!--NeedCopy-->
    
  4. (オプション)ホストとリポジトリをホストするパブリックCDN間の通信に使用されるHTTP接続プロキシサーバーを構成して有効にします:

    xe pool-configure-repository-proxy proxy-url=<http://proxy.example.com> proxy-username=<proxy-user> proxy-password=<proxy-password>
    <!--NeedCopy-->
    

    プロキシサーバーの構成を無効にします:

    xe pool-disable-repository-proxy
    <!--NeedCopy-->
    

    プロキシサーバーの構成を表示します:

    pool_uuid=$(xe pool-list --minimal)
    xe pool-param-get uuid=<pool_uuid> param-name=repository-proxy-url
    xe pool-param-get uuid=<pool_uuid> param-name=repository-proxy-username
    <!--NeedCopy-->
    

プールの新しいアップデートを同期する

同期スケジュールを構成することで、プールが更新チャネルと自動的に同期できるようにします。同期を毎日または毎週、特定の曜日に実行するようにスケジュールできます。プールを更新チャネルと同期すると、利用可能なすべてのアップデートがプールコーディネーターにダウンロードされ、ダウンロードしたすべてのアップデートをプールに適用できるようになります。

  1. プールを毎日同期するように設定します:

    xe pool-configure-update-sync update-sync-frequency=daily update-sync-day=0
    xe pool-set-update-sync-enabled value=true
    <!--NeedCopy-->
    

    または、プールを毎週同期するように設定します:

    xe pool-configure-update-sync update-sync-frequency=weekly update-sync-day=1 (# 0 is Sunday, 1 is Monday, etc)
    xe pool-set-update-sync-enabled value=true
    <!--NeedCopy-->
    
  2. 同期の構成を表示します:

    pool_uuid=$(xe pool-list --minimal)
    xe pool-param-get uuid=<pool_uuid> param-name=update-sync-frequency
    xe pool-param-get uuid=<pool_uuid> param-name=update-sync-day
    xe pool-param-get uuid=<pool_uuid> param-name=update-sync-enabled
    <!--NeedCopy-->
    
  3. プールと更新チャネルとの最後の正常な同期のタイムスタンプを取得します:

    pool_uuid=$(xe pool-list --minimal)
    xe pool-param-get param-name=last-update-sync uuid=<pool_uuid>
    <!--NeedCopy-->
    

または、XenServerプールを更新チャネルと手動で同期できます:

pool_uuid=$(xe pool-list --minimal)
update_checksum=$(xe pool-sync-updates uuid=<pool_uuid> --minimal)
<!--NeedCopy-->

update_checksumは、インストールされたアップデートのレベルを示す一意の識別子です。これは、パブリックCDNで新しいアップデートが利用可能になるたびに変更され、後でプールにアップデートを適用するときに使用され、常に最新の利用可能なアップデートが適用されるようにするために使用されます。update_checksumは、テクニカルサポートに連絡する必要がある場合にも役立つ情報を提供します。

注:

最新のアップデートのメリットを活用するためには、同期後、できるだけ早くアップデートをプールに適用します。

同期後、プール内のホストにアップデートを適用する前に新しいプールコーディネーターを指定した場合は、プールをアップデートする前に、新しいプールコーディネーターと再度同期する必要があります。

プールのアップデート中は、XenServerプールを同期しないでください。

ガイダンスのカテゴリとアップデートタスクを理解する

プールにアップデートを適用する前と適用した後に、何らかのタスク(ホストの退避や再起動など)が必要になる場合があります。場合によっては、アップデートタスクは必要ありません。

ガイダンスカテゴリ

XenServerは、タスクをMandatory(必須)、Recommended(推奨)、Full-effectiveness(完全な有効性)、およびLive patch(ライブパッチ)に分類することで、これらのタスクによって発生する可能性のある仮想マシンの中断を最小限に抑えようとします。これらの分類により、ホストまたは仮想マシンにダウンタイムや軽微な中断を引き起こす可能性のあるアップデートタスクが、使用している環境とリスクプロファイルに対して必要かどうかを判断できます。

アップデートには、これらの複数カテゴリに分類されるタスクが含まれる場合があります。たとえば、アップデートの効果を最大限に得るにはホストを再起動する必要がありますが、プールの中断を最小限に抑えながらアップデートのメリットを最大限に得るにはツールスタックを再起動することをお勧めします。

アップデートプロセス中に、次の3つのレベルのタスクのいずれかを実行することを選択できます:

  1. Mandatory(必須)
  2. Mandatory + Recommended(推奨)
  3. Mandatory + Recommended + Full-effectiveness(完全な有効性)

Mandatory(必須)

アップデート後に必須タスクを実行する_必要があります_。そうしないと、実行時にシステムが失敗する可能性があります。これらのアクションは、重要な修正プログラムを有効にし、環境の安全性と安定性を確保するために必要です。必須タスクを実行しない選択肢はありません。

Recommended(推奨)

推奨タスクは、アップデートプログラムで提供される機能や修正プログラムの大部分のメリットを活用するために実行をお勧めするタスクです。これらのタスクを今すぐ実行しないことを選択した場合、それらのタスクは該当するプール、ホスト、または仮想マシンの保留中のアップデートタスクに一覧表示されます。

推奨タスクを実行する理由:

  • これらのタスクは、安全で安定したXenServer環境を確保するためのものです。

推奨タスクを実行しない理由:

  • アップデートの詳細情報を確認した後、これらのアップデートを今すぐ完全に適用しないことのリスクを許容できると判断した場合。
  • 推奨タスクを選択した時点で、仮想マシンで不要な中断が発生します。

Full-effectiveness(完全な有効性)

関連アップデートのメリットを活用するためには、完全な有効性タスクが必要です。完全な有効性タスクが関連付けられているアップデートは、通常、特定のハードウェアを使用しているユーザーや特定の機能を使用しているユーザーにのみ関係があります。

アップデート情報を確認して、これらのタスクがご使用の環境に必要かどうかを把握してください。これらのタスクを今すぐ実行しないことを選択した場合、それらのタスクは該当するプール、ホスト、または仮想マシンの保留中のタスクに一覧表示されます。

完全な有効性タスクを実行する理由:

  • 完全な有効性タスクのアップデートは、ハードウェア、環境、または構成に関連しています。

完全な有効性タスクを実行しない理由:

  • 完全な有効性に関するガイダンスがあるアップデートは、ハードウェア、環境、または構成とは関係ありません。
  • 完全な有効性タスクを選択した時点で、仮想マシンで不要な中断が発生します。
  • 現時点では、これらのアップデートのメリットは必要のないものです。

完全な有効性タスクが環境に適用可能でも、延期することを選択した場合は、環境の安定性を維持するために、適切なメンテナンス期間中にこれらのタスクを完了するように計画します。

Live patch(ライブパッチ)

特定のコンポーネントの更新にはライブパッチが含まれる場合があります。ライブパッチをホストに適用できるかどうかは、ホストが最後に再起動されたときにインストールされたコンポーネントのバージョンによって異なります。アップデートをライブパッチとしてホストに適用できる場合は、推奨ガイダンスに代わってライブパッチガイダンスが適用されます。

例:

プールが2つあります。プールAは最新レベルにアップデートされています。プールBはしばらくアップデートされていません。推奨アップデートタスク「ホストの再起動」とライブパッチアップデートタスク「ツールスタックの再起動」を含む新しいアップデートがリリースされました。

プールAでは、ライブパッチをこれらのより最新のホストに適用できます。推奨ガイダンスには「ツールスタックの再起動」と表示されます。ライブパッチガイダンスからの中断の少ないタスクは、推奨ガイダンスよりも優先されます。

プールBでは、ホストのレベルが古いため、ライブパッチをホストに適用できません。推奨ガイダンスには、「ホストの再起動」と表示されます。推奨ガイダンスは引き続き適用されます。この場合、ライブパッチガイダンスは無関係です。

アップデートがライブパッチとして適用されると、アップデート内の修正プログラムの一部のみが有効になる場合があります。アップデートの詳細を確認して、アップデート内のすべての修正プログラムが必要なのか、ライブパッチによって有効になった修正だけが必要なのかを判断します。この情報を使用して、推奨されたタスクを実行するかどうかを選択できます。詳しくは、「プールで利用可能なアップデートを表示する」を参照してください。

タスクのアップデート

アップデートを適用する場合、次のタスクの1つ以上が必要になる場合があります。あらゆる種類のアップデートタスクを、任意のガイダンスカテゴリに表示できます。

ホストのタスクをアップデートする

このタスクは、アップデートを適用する_前_にのみ実行し、場合によっては「ホストの再起動」タスクの一部として実行します:

アップデートタスク タスクを実行するためのxe CLIコマンド 説明
ホストの退避 xe host-evacuate すべてのVMをXenServerホストから移行するか、シャットダウンします。このタスクの進行中は、1つのホストが一時的に仮想マシンの実行に使用できなくなるため、XenServerプールは低い容量で動作します。

次のタスクでは、アップデートされたホスト上での操作が必要です:

アップデートタスク タスクを実行するためのxe CLIコマンド 説明
ホストの再起動 xe host-reboot XenServerホストを再起動する必要があります。すべてのVMがホストから移行され、ホストが再起動されます。このタスクの進行中は、1つのホストが一時的に仮想マシンの実行に使用できなくなるため、XenServerプールは低い容量で動作します。
Xenライブパッチの失敗時にホストを再起動 xe host-reboot Xenライブパッチの適用に失敗しました。アップデートを有効にするには、XenServerホストを再起動する必要があります。すべてのVMがホストから移行され、ホストが再起動されます。このタスクの進行中は、1つのホストが一時的に仮想マシンの実行に使用できなくなるため、XenServerプールは低い容量で動作します。
カーネルライブパッチの失敗時にホストを再起動 xe host-reboot dom0カーネルライブ パッチの適用に失敗しました。アップデートを有効にするには、XenServerホストを再起動する必要があります。すべてのVMがホストから移行され、ホストが再起動されます。このタスクの進行中は、1つのホストが一時的に仮想マシンの実行に使用できなくなるため、XenServerプールは低い容量で動作します。
ツールスタックの再起動 xe-toolstack-restart ホスト上のツールスタックを再起動する必要があります。プールコーディネーターの代わりに、アップデートされたホストでツールスタックを再起動します。プールコーディネーター上でツールスタックが再起動されると、プールへの接続は失われますが、他のプールメンバー上でツールスタックが再起動されても、目に見える効果はありません。
ホストに必要なアップデートタスクを表示する

次のコマンドを使用して、アップデートを適用する前と適用した後にホストに必要なタスクを表示します。

ホストの必須タスクの一覧を取得します:

xe host-param-get param-name=pending-guidances uuid=<host UUID>
<!--NeedCopy-->

ホストに推奨タスクの一覧を取得します:

xe host-param-get param-name=pending-guidances-recommended uuid=<host UUID>
<!--NeedCopy-->

ホストの完全な有効性タスクの一覧を取得します:

xe host-param-get param-name=pending-guidances-full uuid=<host UUID>
<!--NeedCopy-->

仮想マシンのタスクのアップデート

一部のアップデートでは、仮想マシン向けの新しい機能が用意されています。これらのアップデートでは、仮想マシン上で次のタスクが必要になる場合があります:

アップデートタスク タスクを実行するためのxe CLIコマンド 説明
仮想マシンの再起動 xe vm-reboot 仮想マシンを再起動する必要があります。仮想マシンが再起動している間、エンドユーザーは仮想マシンを使用できません。
デバイスモデルを再起動する xe vm-restart-device-models アップデートされたホスト上の仮想マシンのデバイスモデルを再起動する必要があります。デバイスモデルの再起動中は、VMを停止、起動、または移行することはできません。仮想マシンのエンドユーザーは、セッションがわずかに一時停止して再開されることに気づく場合があります。Windows仮想マシンでデバイスモデルの再起動操作をサポートするには、仮想マシンにWindows向けXenServer VM Toolsがインストールされている必要があります。
仮想マシンに必要なアップデートタスクを表示する

仮想マシンの必須タスクの一覧を取得します:

xe vm-param-get param-name=pending-guidances uuid=<VM UUID>
<!--NeedCopy-->

仮想マシンの推奨タスクの一覧を取得します:

xe vm-param-get param-name=pending-guidances-recommended uuid=<VM UUID>
<!--NeedCopy-->

仮想マシンの完全な有効性タスクの一覧を取得します:

xe vm-param-get param-name=pending-guidances-full uuid=<VM UUID>
<!--NeedCopy-->

プールで利用可能なアップデートを表示する

アップデートをインストールする前に、プールで利用可能なアップデートを表示し、必要なアップデートタスクを確認してください。アップデートに必要な可能性のあるさまざまなアップデートタスクについて詳しくは、「ガイダンスのカテゴリとアップデートタスクを理解する」を参照してください。

特定のホストで利用可能なアップデートを確認する

特定のホストに利用可能なアップデートがあるかどうかを確認します:

xe host-param-get param-name=latest-synced-updates-applied uuid=<host UUID>
<!--NeedCopy-->

このコマンドは、特定のホストに利用可能なアップデートがある場合はyesを返し、利用可能なアップデートがない場合はnoを返します。

すべてのホストで利用可能なアップデートを確認する

HTTPエンドポイント/updatesでGETリクエストを実行して、すべてのホストで利用可能なアップデートを確認します。

wgetユーティリティを使用してすべてのホストのアップデートを取得します:

wget -O - --no-check-certificate https://<user name>:<password>@<coordinator IP address>/updates
<!--NeedCopy-->

または、HTTPクライアントライブラリを使用することもできます:

HTTP GET
session_id: <XAPI session ID returned from login>
host_refs: <host XAPI reference>
<!--NeedCopy-->

返される出力はJSON形式で、次のオブジェクトが含まれます:

  • hosts:個々のホストで利用可能なアップデートを一覧表示します。

  • updates:利用可能なアップデートの詳細を一覧表示します。

  • hashupdate_checksum(利用可能な最新のアップデートを常に適用できるようにするために使用されます)。

hostsおよびupdatesオブジェクトには、次のキーで構成されるguidanceオブジェクトも含まれています:

  • mandatory
  • recommended
  • full
  • livepatch

これらのキーは、アップデートタスクのさまざまなガイダンスカテゴリを参照します。ホストと仮想マシンに必要なアップデートタスクが一覧表示されます。アップデートに必要な可能性のあるさまざまなタスクについて詳しくは、「ガイダンスのカテゴリとアップデートタスクを理解する」を参照してください。

プールにアップデートを適用する

はじめに

  • プールのアップデートを実行する前に、プール内のすべてのホストがオンラインであることを確認してください。

  • どのホストまたは仮想マシンにも保留中の必須アップデートタスクがないことを確認してください。以前のアップデートから保留中の必須アップデートタスクは、新しいプールのアップデートを開始する前に実行する必要があります。詳しくは、「ホストに必要なアップデートタスクを表示する 」および「仮想マシンに必要なアップデートタスクを表示する」を参照してください。

  • 高可用性(HA)が有効になっている場合は無効にします:

     pool_uuid=$(xe pool-list --minimal)
     xe pool-ha-disable uuid=<pool_uuid>
     <!--NeedCopy-->
    
  • ワークロードバランス(WLB)が有効になっている場合は無効にします:

     pool_uuid=$(xe pool-list --minimal)
     xe pool-param-set wlb-enabled=false uuid=<pool_uuid>
     <!--NeedCopy-->
    

アップデートのインストール

プールのアップデートを実行するには、まずプールコーディネーターから始めて、プール内のすべてのホストにアップデートを適用する必要があります。プールコーディネーターから始めて、次の手順を実行します:

  1. ホストを無効にします:

    xe host-disable uuid=<host UUID>
    <!--NeedCopy-->
    
  2. アップデートに必要なアップデートタスクの1つが「ホストの退避」または「ホストの再起動」である場合は、ホストを退避します:

    xe host-evacuate uuid=<host UUID>
    <!--NeedCopy-->
    

    ホストの退避中に仮想マシンを他のホストに移行できない場合は、仮想マシンをシャットダウンまたは一時停止します。

  3. ホストにアップデートを適用します:

    xe host-apply-updates uuid=<host UUID> hash=<update_checksum>
    <!--NeedCopy-->
    
  4. 必要なホストのアップデートタスクの一覧を取得します。詳しくは、「ホストのアップデートタスク」を参照してください。

    一覧内のホストのアップデートタスクを次の順番で実行します:

    1. ツールスタックの再起動(「ホストの再起動」を実行する必要がある場合はスキップできます)
    2. ホストの再起動
  5. ホスト上で実行中のすべての仮想マシンについて、必要な仮想マシンのアップデートタスクの一覧を取得します。詳しくは、「仮想マシンのアップデートタスク」を参照してください。

    一覧内の仮想マシンのアップデートタスクを次の順番で実行します:

    1. デバイスモデルの再起動(「仮想マシンの再起動」を実行する必要がある場合はスキップできます)
    2. 仮想マシンの再起動
  6. ホストがまだ無効状態の場合は有効にします:

    xe host-enable uuid=<host UUID>
    <!--NeedCopy-->
    
  7. ホストのアップデート前にhost-evacuateを使用して、別のホストに移行したすべての仮想マシンのアップデートタスクの一覧を取得します。詳しくは、「仮想マシンのアップデートタスク」を参照してください。

    アップデートタスクの一覧に「仮想マシンの再起動」がある場合は、仮想マシンをシャットダウンし、現在アップデートされているホストで起動します。それ以外の場合は、仮想マシンを現在のアップデートされたホストに移行します。

  8. アップデートを適用する前に、シャットダウンまたは一時停止した仮想マシンを再開または起動します。

  9. ホストのアップデート状態を表示します:

    xe host-param-get param-name=last-software-update uuid=<host UUID>
    xe host-param-get param-name=latest-synced-updates-applied uuid=<host UUID>
    xe host-param-get param-name=last-update-hash uuid=<host UUID>
    <!--NeedCopy-->
    

上記の手順を繰り返して、プール内のすべてのホストをアップデートします。

ホストのアップデート後

プール内の各ホストをアップデートした後、残りのアップデートタスクを実行します。

  1. プール内のすべての仮想マシンについて、アップデートタスクの一覧を取得します。詳しくは、「仮想マシンのアップデートタスク」を参照してください。

    アップデートタスクの一覧に「仮想マシンの再起動」がある場合は、それを実行します。

  2. アップデートを適用する前にHAを無効にした場合は、有効にします:

    pool_uuid=$(xe pool-list --minimal)
    xe pool-ha-disable uuid=<pool_uuid>
    <!--NeedCopy-->
    
  3. アップデートを適用する前にWLBを無効にした場合は、有効にします:

    pool_uuid=$(xe pool-list --minimal)
    xe pool-param-set wlb-enabled=true uuid=<pool_uuid>
    <!--NeedCopy-->
    
  4. プールのアップデートに必要な必須のアップデートタスクのみを実行することを選択した場合、実行されていないアップデートタスクは、ホストに必要な保留中の’アップデートタスクの一覧に追加されます。この一覧を表示してこれらのタスクを実行する場合、「ホストのタスク」を参照してください。

xe CLIを使用してアップデートを適用