Hyper-Vの互換性とシステム運用の課題
2015年 仮想化プラットフォームの新事情
VMware vSphere 6.0、Microsoft Hyper-V、RHEV 3.5の仮想化プラットフォームについて、新機能と機能拡張を中心にその最新動向を探る。 この特集のまとめPDFを無料でダウンロードできるようになりました!第3回では、過去のバージョンアップの履歴と筆者の経験から、Hyper-Vの下位互換性や運用上の課題について解説します。なお、Windows Serverを参照する名称として、本稿では次のような略称を使用します。
- vNext:Windows Server Technical Preview
- WIN2012R2:Windows Server 2012 R2
- WIN2012:Windows Server 2012
Hyper-Vの互換性とシステム運用の課題
これまで紹介したvNextのHyper-Vの新機能と変更点を踏まえて、ここではHyper-Vの互換性とシステム開発や運用についての課題について、個人的な苦い経験を元に考えてみます。
新しい製品が登場したときには、本当にわくわくして早く使ってみたい、どんな新しいことが出るのかなど、期待感が膨らみます。基本的には新しいWindows、新しい機能がリリースされたら、いち早くこれらを盛り込んでサービスのアップグレードや、新しいサービスをリリースするというのが、サービス開発の現場では慣例となっています。ユーザーへの最大のアピールポイントでもあり、期待もされているところなので、サービス開発者としては腕の見せ所、武者震いものです。それと同時に、サービスを開発して運用している立場としては、浮かれてばかりもいられないのも現実です。一番の心配ごとは、やはりこれまでのHyper-Vとの互換性です。
GMOインターネットで提供している「お名前.com デスクトップクラウド」というサービスは、もともと、「お名前.com Windowsデスクトップ」というサービス名で、Windows Server 2008R2 をプラットフォームとして開発したサービスでした。Hyper-Vを使ってサービスとして提供するには、ユーザーのリクエストに応じて自動的に仮想マシンを作成したり、メモリやハードディスクなどの仕様を変更したりすることのできる、プロビジョニングと呼ばれるシステムを開発する必要があります。
Hyper-Vに対してプログラマチックに操作処理を行うための開発用の窓口として、あらかじめApplication Programming Interface(API)が用意されています。これは、Windows Management Instrumentation(WMI)と呼ばれるもので、Hyper-Vだけではなく、Windows自体をプログラマチックに操作したり、情報を取得したりできるようになっています。このWMIとMicrosoftの開発ツールVisualStudioを使って、Hyper-Vのプロビジョニングシステムは開発されました。VisualStudioはWMIを使ったシステム開発には最適なツールで、デバッグ処理やコード作成の自動化などが充実しており、ワインにチーズ、カステラに牛乳、するめにマヨネーズくらい相性のよい組み合わせで、開発者にとっては、なくてはならないツールとなっています。
Windows Server 2008 R2のHyper-VのWMIは、「root\virtualization」という名前空間(API)が実装されており、プロビジョニングシステム開発はこちらを利用しています。WMIを利用したHyper-Vの開発は、サンプルコードなどが少ない中、苦労しつつもなんとかリリースまでこぎつけ、利用者も順調に増えていきました。そして、サービス開始から1年半ほど経過したところで、最初の互換性の検証に立ち向かうことになります。新しいHyper-Vを実装したWIN2012の登場です。
幸運だったWIN2012のリリース
WIN2012のHyper-Vは、クラスター環境不要のライブマイグレーションが可能となり、仮想ハードディスクファイルが.vhdxになるなど、革新的な新機能が満載されていました。もちろん、この大幅なバージョンアップは歓迎すべきものだったのですが、Windows Server 2008 R2のHyper-Vでサービスをリリースしたばかりだったので、このサービスにWIN2012のHyper-Vはどう共存できるのか、どうアップグレードできるのか、また最大の懸念事項は、はたしてプロビジョニングシステムはWIN2012のHyper-Vでもうまく動くのか、そればかりを検証していました。しかし幸いにも、WIN2012のHyper-VはWindows Server 2008 R2のHyper-Vと互換性があり、最大の懸念事項のプロビジョニングシステムも、ほぼそのまま使えることが分かりました。
WIN2012の新機能は新しい「root\virtualization\v2」という名前空間(API)が提供しており、Windows Server 2008 R2のHyper-V相当の機能は、従来の名前空間「root\virtualization」が提供することで共存しており、「さすがMicrosoft製品!」と拍手を送ったものです。大幅な変更もなく、WIN2012のHyper-Vを導入してのサービスのバージョンアップができるので、Hyper-Vの新機能を考慮したサービスのバージョンアップができそうだと喜んだことを記憶しています。