初めまして、シトリックス ・ システムズ ・ ジャパンのコンサルタントの黒田です。

今回初めて、Citrix Blogに投稿を行う上で、何をトピックに取り上げようか考えた時に、以下の2点が思い浮かんできました。

  1. 基本設計で活かせる内容
  2. 今、現場で重視されている内容

1に関して、今まで私の経験、他のコンサルタント達の経験、お客様からのフィードバックを総括すると、プロジェクトを成功させる上で最も重要なフェーズは、基本設計であると考えられます(さらに言うなら基本設計のインプットになる要件定義も)。漏れなく定義された要件に対し、適切な判断のもと正確な基本設計を行うことで、後続の詳細設計、パラメーターシート作成、構築/テストがブレなく、後戻りが少なく進んで行きます。

次に2に関して、定量的なデータとして、Citrixコンサルタントがアセスメント時に評価したリスク項目を集計し、トップ10をまとめたBlog記事 があります。非常に興味深い結果ですので、リンクから詳細を是非確認して頂きたいのですが、このリスクというのは、すなわち、設計で最も重視して対応しなければいけない項目と言えます。そのリスク項目のNo.1は、”Single Point of Failure”になっております。設計で重視する点に当てはめると、”Single Point of Failure”の排除、つまり高可用性設計となります。

前置きが長くなりましたが、上記の1,2より、今回は基本設計フェーズで実施する高可用性設計のポイントに関して、記述させていただきます。

可用性の考え方

一般的に、可用性とはシステムが継続して稼動できる能力のことと定義 されており、「システムの稼働」=「システムが提供している業務が利用出来ること」を意味していますが、仮想デスクトップ環境においては、「システムの稼働」=「ユーザーが仮想デスクトップを利用出来ること」を意味しております。

すなわち、仮想デスクトップ環境の可用性は、ユーザーに対して仮想デスクトップを継続して提供する能力だと定義出来ます。別の視点から述べると、ユーザーに対して仮想デスクトップを継続して提供する能力に関係がないコンポーネントは、可用性に影響を与えないということがわかります。

例えば、ライセンスサーバーは可用性には影響を与えないコンポーネントとなります。

仮想デスクトップ環境を構成するコンポーネント、冗長化方法とユーザー影響

仮想デスクトップ環境の可用性を考える上で、仮想デスクトップ環境がどのようなコンポーネントから構成され、どのような通信を行っているか把握する必要があります。コンポーネント間の通信に関しては、こちらのKnowledge Baseに情報が記載されております。

各レイヤーごとに、仮想デスクトップ環境の各コンポーネントの冗長化方法、障害時のユーザーへの影響を見ていきます。レイヤーについては、Citrix Virtual Desktop Handbookに説明が載っているので、そちらをご参照ください。

<アクセスレイヤー>

NetScaler Gateway障害時のICA Proxy接続のケース

  • 仮想デスクトップへの接続に、NetScaler GatewayのICA Proxy接続を用いている場合は、仮想デスクトップに接続中のユーザーに影響が出ます
    → ICAセッションが切れ、仮想デスクトップが切断状態になるだけなので、作業中のデータはロストしません

上記以外のケース

  • 新規ログオンユーザーのみに影響を与え、仮想デスクトップに接続中のユーザーには影響を与えません
  • 新規ログオンが失敗し、再度ログオンを試みた時に、障害が回復、またはコンポーネントの切替えが成功していれば、ログオンに成功します
    → 可用性としては、障害検知と切替えの早さが重要になります

<デスクトップレイヤー>

個別の仮想デスクトップとプールの仮想デスクトップを比較すると、プールの仮想デスクトップはログオフ/ログオンで仮想デスクトップがリフレッシュされるため、障害に対して柔軟な対応が取ることができ、また復旧も早くなります。

コントロールレイヤー

コントロールレイヤーのコンポーネント障害の冗長化方法は複数あり、ユーザーへの影響、システムの規模、運用、コストの観点から適切な方法を選択する必要があります。(”推奨”は何も制約が無い場合の推奨方法を示しています)

推奨トレーニングコース

今回は可用性設計のポイントを述べただけで、冗長化方法の具体的な内容について記述いたしませんでしたが、これらは、下記のCitrixトレーニングコースで学ぶことが出来ます。

特に、NetScalerは多くのコンポーネントの冗長化に用いられているため、まだ、触られたことが無い方や触ったことはあるが設計は実施したことがない方は、トレーニングでNetScalerを学んでいただくことを推奨します。

具体的には、XenDesktop 7の構築コース(CXD-300)に、NetScaler の内容が含まれており、基本的な知識(ICA proxy、負荷分散)を学習できるだけではなく、ラボ環境で今回述べた冗長化方法を一通り演習することが出来ますので、お奨めのコースとなります。