2011/10/17

接続元の回線状況に応じて最適化されたプールに振り分ける方法

PCoIPのチューニングは、GPOで、ActiveDirectoryのOU単位に行う。これは、事実上、VMware Viewでいうところのプール単位、ということになる。
※レジストリ設定で、個々の仮想デスクトップOS単位で設定することもできるが、ここではその方式以外を検討してみた。

GPOの設定、ということなので、アクセス端末から仮想デスクトップOSに接続した後に動的に変更することはムズカシイ。

・・・となると「おいらは仮想デスクトップを、3G回線を使ったiPadからも使いたいし、Bフレッツ引いている自宅のMacからも使いたいんだけど」という要望があった場合、どうすりゃいいのか。

まず、いずれの方式も仮想デスクトップを「流動割り当て」にする。こうすれば、どのプールを使ってもユーザプロファイルを引っ張ってこれるからだ。

■経済的な方式
Connection Server group1の中に、
プールA: 3G用
プールB: emobile用
プールC: ブロードバンド用
とか、複数のプールを作っておいて、ユーザが自分が今アクセスに使っている回線状況に応じて手動でプールを選ぶ。

■自動化方式
Connection Server group1 プールA: 3G用
Connection Server group2 プールB: emobile用
Connection Server group3 プールC: ブロードバンド用
とかにしておいて、そのセッションを、どのConnection Server groupに行かせるか、をロードバランサ(Load Balancer)に振り分けさせる。

たとえばF5であれば・・・
GEO Location IP による、アクセス回線の判定ができる。BIG-IP LTM に標準搭載されている機能で、QUOVA社のOEMとのこと。通信キャリアに割り当てられたすべてのIPアドレスがカバーされているという保証はないが、ほとんど網羅されているっぽい。

GEO Location IPを使って、
・回線種別
・国単位や都道府県単位
・etc
の判別ができる。

で、GEO Location IPの判定に漏れてしまった場合(JPNICとかに割り当てられたばかりのIPアドレス群とか??)RTTをiRuleで計測して回線状況を判別。これだと1発目のシーケンスのRTTのみで決めるので、回線品質の振れ幅が大きい場合に、適切な判定がしづらいだろう。が、ほとんどはGEO Location IPで判別できるからRTTは例外処理に過ぎない、と考えられるのであれば、これでイケると思われ。