VM Role のイメージのアップロードで使用する csupload はResume の機能を持っているのでアップロードを途中で中断しても再開できるというのは聞いていたのですが実際に使ったことはありませんでした。
今日、アップロードの速度が遅いな~と思って一度終了して、この機能を使うことがあってひそかに感動したのでメモとして残しておきたいと思います。
■アップロード中の VM Images の状態
アップロードをしている最中の VM Images (VM Role の VHD を格納しておく場所) の対象の VHD ですがステータスが [Pending] となっています。
このステータスの有無でアップロード中の VHD が存在するかを確認することができます。
■アップロードを再開
アップロード中に Ctrl + C やネットワーク障害が発生してアップロードが途中終了した場合、以下の状態になると思います。
- Management Portal の VM Images で対象の VHD のステータスが Pending
- .digest ファイルが存在している (デフォルトでは アップロードする VHD と同じディレクトリ内)
- .preped ファイルが存在している (デフォルトでは アップロードする VHD と同じディレクトリ内)
Add-VMImage で [-TempLocation] を設定していない場合、[.digest] [.preped] ファイルはアップロードする VHD と同一のディレクトリ内に存在しています。
[.digest] ファイルは以下の情報が定義されている XML ファイルになります。
- アップロードのソース VHD のフルパス (SourceFilePath)
- 圧縮後のファイル (.preped) のフルパス (CompresedFilePath)
- 圧縮前のファイルサイズ (UncompressedSizeInBytes)
- 圧縮後のファイルサイズ (CompressedSizeInBytes)
- VHD のサイズ (VirtualSizeInBytes)
- VHD の UUID (Uuid)
- VHD の最終更新日時 (LastModifiedTimeUtc)
[.preped] ファイルは元の VHD を圧縮したファイルですね。
再アップロード時にはこれらのファイルを使ってアップロードを途中から再開しているようです。
最初のアップロード時と同じコマンドを実行すると、[Found existing page blob. Resuming upload…] となりアップロードが途中から再開されます。
この場合、すでに圧縮されたファイル (.preped) がありますので圧縮処理もスキップされます。
Resume の機能使うかな~と思っていたのですが、やはりあると便利ですね。
アップロードの速度がいまいちでなかったので一度で中断したときに、途中から再開できて地味に感動しました。