SCVMM 2008/2008R2 でライブラリ共有名の制約について

こんにちは、日本マイクロソフト System Center Support Team の益戸です。

今回は SCVMM 2008/2008R2 のライブラリ共有名に関連して、SCVMM が正常に動作しなくなる事象をご紹介します。

SCVMM では、ライブラリサーバーのライブラリ共有時に、Windows のファイル共有を利用しています。
既定では、「MSSCVMMLibrary」というライブラリ共有が SCVMM サーバー上に作成されます。
しかし、場合によっては、ライブラリ サーバーを別サーバーにしたり、「MSSCVMMLibrary」以外を設定するケースもあると思います。
Windows のファイル共有の制限で、特殊文字( * や >、| など)はもちろん使えないのですが、その他にもライブラリ サーバー名に使用されている文字をライブラリ共有名に使用すると、一部の機能が使えなくなる場合があります。

[事象]
ライブラリ サーバー名に使用されている文字のライブラリ共有名のライブラリに対して仮想マシンを作成できない。

[原因]
ライブラリ サーバーに仮想マシンを保管する処理の中で、UNC パス名から実際のパスへ変換して仮想ディスクを保管します。
この、UNC パス名から実際のパスへ変換する処理に問題があり、当該ライブラリ内に仮想マシンを作成できないという現象が発生します。

例えば、"\\SCVMM\V" の実際のパスを "N:\Share" とした場合、"\\SCVMM\V\TEST.vhd" から共有名 “\\SCVMM\V” をライブラリサーバー上の実際のパス “N:\Share” に変換して、保管ファイルのフルパスとして “N:\Share\TEST.vhd” という文字列を生成しようとします。
しかし、実際の処理の中では、ファイル共有名の ”V” を区切り文字として使ってしまい、"\\SCVMM" と "\V\TEST.vhd" に分けられてしまいます。
その結果、保存先のファイルとして、誤った保管先のファイル名を "N:\Share\V\TEST.vhd" 生成してしまい、結果としてジョブが失敗します。

[対応方法]
ライブラリ サーバー名に使用している文字列をライブラリ共有名として使わない事で、本事象は回避できます。

上記の例では、以下のパターンとなります。

ライブラリ サーバー名 : SCVMM
ご利用いただけないライブラリ共有名 : S、V、M、VM、VMM など。
ご利用いただけるライブラリ共有名 : Library、VMMLibrary、O、Share など。
製品のリリースにあたり十分な検証を実施してはおりますが、場合によっては、今回のように想定外の動作が起きることがあります。
このような情報については、KB や TechNet の他にも、本ブログなどでも逐次ご紹介していきたいと思います。

なお、今回の事象について、最新版の SCVMM 2012R2 環境においては発生しません。