はじめに
今回はXenServer SDK for Windows PowerShellを使用することで、Citrix XenServer環境で動作する仮想マシンのバックアップを、より安価で、データに一貫性のある手法で実現する方法を紹介します。
サンプルとして、XenServer SDK for Windows PowerShellに同梱されている「PSSnapIn中のXENAPIクラスライブラリ」を使用し、フロントエンドのXenServer SDK for Windows PowerShellから、XenServerの「Quiescenceスナップショット機能」を呼び出します。
対象読者
次のような方を対象としています。
- Citrix XenServer 5.6をインストールしてホスト構築できる方
- 管理ツールXenCenterを使ったGUIベースの基本操作を知っている方
- Microsoft Windows PowerShellの構文について基本的な知識を持っている方
記事のために準備した環境
- XenServer ホストマシン
- XenServer 5.6 RTM
- CPU: AMD64 AthlongX2
- Memory: DDR2 4GB
- HDD: SATA-2 320GB x 2
- WindowsゲストOSのインストーラ(ISOバイナリ)
- Windows 2003 x86 R2 / Windows 2008 sp2 x86
- Windows PowerShellホストマシン
- Windows XP1.0 SP3 / Windows 2008 R2 Hyper-V
- Microsoft .NET Framework 2.0
- Windows PowerShell 1.0
- XenServer SDK for Windows PowerShellをインストールした環境
XenServer 5.6のスナップショット機能
XenServer 5.6では通常のスナップショット機能に加えて、ある特定の時点でのVolumeスナップショットを取得できるようになっています。
本機能は、XenServer上のWindows仮想マシンのVSS(Volume Shadow copy Service)を利用して実装されており、Windows仮想マシンに最新のXenToolsをインストールした後に、別途XenServer VSS Providerプラグインを登録することで動作します。
WindowsのVSSの概要
初めに、Windows Server 2003以降のサーバーOSにバンドルされているVSSの特長を簡単に説明します。
VSSとは、特定時点でのファイルシステムの状態(シャドウコピー/スナップショット)を記録するサービスで、バックアップ中にもとのデータが改変されても、バックアップ時点でのデータの一貫性が保証することができます。
VSSは以下のコンポーネントより構成されています。
- リクエスタ
- Volume Shadow copy Service
- VSS Provider
- ライタ
シャドウコピーVolumeの作成依頼をVSSに通知するコンポーネント。
リクエスタからの通知を受け、オリジナルのHard Disk Volumeに対して、I/Oを発行するライタへシャドウコピーVolumeの作成を開始することを通知するコンポーネント。
スナップショットを実際に作成するVolSnap.sys(カーネルドライバ)へ、シャドウコピーVolumeの作成を依頼する。
VolSnap.sysではデータの一貫性を保護する目的のため、オリジナルのHardDisk Volumeに対して発行中のI/Oを監視します。シャドウコピーVolume作成中の場合、I/Oを自身のキューで管理し、シャドウVolume作成完了後にキューに保持しているI/OをオリジナルのVolumeに対してフラッシュします。
Microsoft SQL Serverなど、VSSに対応したアプリケーション。VSSからの通知により、シャドウコピーVolumeの作成中に発行されたI/OはVolSnap.sysでキューイングされます。