SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

XenServer自動化スクリプティング集

XenServer SDK for PowerShellを使った仮想マシンのバックアップ自動化

XenServerスクリプティング(2)

  • X ポスト
  • このエントリーをはてなブックマークに追加

XenServer VSS Providerの登録手順

 以下に、XenServer 5.6を使用した場合の「XenServer VSS Providerのインストール手順」について説明します。

  1. コマンドプロンプトを起動します。
  2. %ProgramFiles%\Citrix\XenTools\install-XenProvider.cmdを起動します。
  3. サービスアプレットで、以下のサービスが開始されていることを確認します。
    • 「Volume Shadow Copy」サービス
    • 「Virtual Disk Service」サービス
    • 「XenVssProvider」サービス
    • 「Citrix Tools for Virtual Machines Services」サービス

XenServer Windows GuestにおけるVSSコンポーネント

 以下に、XenServer 5.6を使用した場合の「スナップショットの仕組み」について説明します。

  • リクエスタ
  • 前項の手順で起動された「Citrix Tools for Virtual Machines Services」サービスが本役割を担います。実行モジュールは"%ProgramFiles%\Citrix\XenTools\XenServices.exeです。

  • Volume Shadow copy Service
  • Windows OSにバンドルされている「Volume Shadow copy Service」を使用します。実行モジュールは「%SystemRoot%\System32\vssvc.exe」です。

  • VSS Provider
  • 「XenVssProvider」サービスが本役割を担います。COM+サービスアプリケーションとして実装されており、実行モジュールはdllhost.exe のコンテキストにてロードされる「%ProgramFiles%\Citrix\XenTools\XenVssProvider.dll」です。

  • ライタ
  • Microsoft SQL Serverなど、VSSに対応したアプリケーション。VSSからの通知により、シャドウコピーVolumeの作成中に発行されたI/OはVolSnap.sysでキューイングされます。

XenServerのスナップショット作成の仕組み
XenServerのスナップショット作成の仕組み

デバッガから見たVSSドライバスタック

 ここではVolumeスナップショット後に作成されたShadow Copy Volumeを確認してみます。

  1. VolSnap.sysで関連情報を確認します。
  2. VolSnap.sysが作成したデバイスオブジェクトが4つあることが確認できます。オリジナルのDisk Volumeが2つと作成済みのShadow Copy Volumeが2つ存在します。
  3. VolSnap.sysのドライバ初期化時に登録されているDispatchルーチンを確認します。
  4.  IRP_MJ_CREATEによりvolsnap!VolSnapCreate()関数が呼ばれ、この関数にてLive Volumeに対するShadow Copyが作成されるであろうことが想像できます。

    kd> !drvobj volsnap 7
    Driver object (853aeda8) is for:
     \Driver\VolSnap
    Driver Extension List: (id , addr)
    (f73ad058 853ae990)
    Device Object list:
    851a4030  851a5368  852b0b28  852af220
    
    DriverEntry:   f73c266b    volsnap!GsDriverEntry
    DriverStartIo: 00000000
    DriverUnload:  00000000
    AddDevice:     f73ad058    volsnap!VolSnapAddDevice
    
    Dispatch routines:
    [00] IRP_MJ_CREATE                      f73a8896    volsnap!VolSnapCreate
    [01] IRP_MJ_CREATE_NAMED_PIPE           f73a7070    volsnap!VolSnapDefaultDispatch
    [02] IRP_MJ_CLOSE                       f73a7070    volsnap!VolSnapDefaultDispatch
    [03] IRP_MJ_READ                        f73a086a    volsnap!VolSnapRead
    [04] IRP_MJ_WRITE                       f73a10c8    volsnap!VolSnapWrite
    [05] IRP_MJ_QUERY_INFORMATION           f73a7070    volsnap!VolSnapDefaultDispatch
    [06] IRP_MJ_SET_INFORMATION             f73a7070    volsnap!VolSnapDefaultDispatch
    [07] IRP_MJ_QUERY_EA                    f73a7070    volsnap!VolSnapDefaultDispatch
    [08] IRP_MJ_SET_EA                      f73a7070    volsnap!VolSnapDefaultDispatch
    [09] IRP_MJ_FLUSH_BUFFERS               f73a7070    volsnap!VolSnapDefaultDispatch
    [0a] IRP_MJ_QUERY_VOLUME_INFORMATION    f73a7070    volsnap!VolSnapDefaultDispatch
    [0b] IRP_MJ_SET_VOLUME_INFORMATION      f73a7070    volsnap!VolSnapDefaultDispatch
    [0c] IRP_MJ_DIRECTORY_CONTROL           f73a7070    volsnap!VolSnapDefaultDispatch
    [0d] IRP_MJ_FILE_SYSTEM_CONTROL         f73a7070    volsnap!VolSnapDefaultDispatch
    [0e] IRP_MJ_DEVICE_CONTROL              f73c0b72    volsnap!VolSnapDeviceControl
    [0f] IRP_MJ_INTERNAL_DEVICE_CONTROL     f73a7070    volsnap!VolSnapDefaultDispatch
    [10] IRP_MJ_SHUTDOWN                    f73a7070    volsnap!VolSnapDefaultDispatch
    [11] IRP_MJ_LOCK_CONTROL                f73a7070    volsnap!VolSnapDefaultDispatch
    [12] IRP_MJ_CLEANUP                     f73a09e4    volsnap!VolSnapCleanup
    [13] IRP_MJ_CREATE_MAILSLOT             f73a7070    volsnap!VolSnapDefaultDispatch
    [14] IRP_MJ_QUERY_SECURITY              f73a7070    volsnap!VolSnapDefaultDispatch
    [15] IRP_MJ_SET_SECURITY                f73a7070    volsnap!VolSnapDefaultDispatch
    [16] IRP_MJ_POWER                       f73a0f70    volsnap!VolSnapPower
    [17] IRP_MJ_SYSTEM_CONTROL              f73a7070    volsnap!VolSnapDefaultDispatch
    [18] IRP_MJ_DEVICE_CHANGE               f73a7070    volsnap!VolSnapDefaultDispatch
    [19] IRP_MJ_QUERY_QUOTA                 f73a7070    volsnap!VolSnapDefaultDispatch
    [1a] IRP_MJ_SET_QUOTA                   f73a7070    volsnap!VolSnapDefaultDispatch
    [1b] IRP_MJ_PNP                         f73c0518    volsnap!VolSnapPnp
    
    kd> !devobj 851a4030
    Device object (851a4030) is for:
     HarddiskVolumeShadowCopy3 \Driver\VolSnap DriverObject 853aeda8
    Current Irp 00000000 RefCount 10 Type 00000024 Flags 00001050
    Vpb 851a5228 Dacl e137faa4 DevExt 851a40e8 DevObjExt 851a43a8 Dope 851a51d0 DevNode 8519f340
    ExtensionFlags (0000000000)
    Device queue is not busy.
    kd> !devstack 851a4030
      !DevObj   !DrvObj            !DevExt   ObjectName
    > 851a4030  \Driver\VolSnap    851a40e8  HarddiskVolumeShadowCopy3
    !DevNode 8519f340 :
      DeviceInst is "STORAGE\VolumeSnapshot\HarddiskVolumeSnapshot3"
    kd> !devstack 851a5368
      !DevObj   !DrvObj            !DevExt   ObjectName
    > 851a5368  \Driver\VolSnap    851a5420  HarddiskVolumeShadowCopy2
    !DevNode 8519f468 :
      DeviceInst is "STORAGE\VolumeSnapshot\HarddiskVolumeSnapshot2"
    kd> !devstack 852af220
      !DevObj   !DrvObj            !DevExt   ObjectName
    > 852af220  \Driver\VolSnap    852af2d8
      852af8a0  \Driver\Ftdisk     852af958  HarddiskVolume1
    !DevNode 852af5e8 :
      DeviceInst is "STORAGE\Volume\1&30a96598&0&Signature39CB39CAOffset7E00Length1FF582800"
      ServiceName is "volsnap"
    kd> !devstack 852af220
      !DevObj   !DrvObj            !DevExt   ObjectName
    > 852af220  \Driver\VolSnap    852af2d8
      852af8a0  \Driver\Ftdisk     852af958  HarddiskVolume1
    !DevNode 852af5e8 :
      DeviceInst is "STORAGE\Volume\1&30a96598&0&Signature39CB39CAOffset7E00Length1FF582800"
      ServiceName is "volsnap"
    

次のページ
XenServer SDK for Windows PowerShellによるスナップショット取得

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
XenServer自動化スクリプティング集連載記事一覧
この記事の著者

シトリックス・システムズ・ジャパン株式会社(シトリックス・システムズ・ジャパン カブシキガイシャ)

シトリックス・システムズ・ジャパン株式会社

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5287 2010/07/19 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング