問題 §
AzureのBlobにあるVHDファイルをAzure Storage Managerでダウンロードしたいがダウンロードが失敗する。
原因 §
Azure Storage ManagerのダウンロードはMD5ハッシュでダウンロード結果を判定してハッシュ値が異なっているとダウンロードしたファイルを削除してしまう。
解決 §
azcopyをコマンドラインで実行する。その際、コマンラインのオプションでMD5の判定をさせない。
具体的には以下の手順で行う。(Power Shellの操作はできるとする)
- Azure Storage ManagerでVHDファイルのスナップショットを作成する
- 対象VHDファイルを右クリックして、【履歴の管理】→【スナップショットの管理】を選んで、スナップショットもリストさせる
- スナップショットのVHDファイルのダウンロードを開始させる
- すると、【AzCopyコマンドをクリップボードにコピーする】のリンクがアクティビティに出現するので、これをクリックしてコマンドをコピーし、どこかに張り付けて保管しておく
- その隣のキャンセルをクリックして転送を中断させる
- Power Shellを開く
- 保存したコマンドラインを1行ずつ実行する。その際、2行目のazcopyコマンドは、--check-md5 FailIfDifferentを、--check-md5 NoCheckに修正する
以上で、AzureのBlobのVHDファイルはローカルに保存できる。
注意点 §
- 古いazcopyではオプションを理解しない可能性がある。ちゃんと最新版をダウンロードして使う
- ダウンロード結果が複数パーティションの場合、explorerのマウントでは開けない。ImDiskを使用したら開くことができた
- スナップショット作成の手順は条件によっては省くことができるかもしれない
- ダウンロードが終わったらスナップショットは忘れずに削除しておこう
雑感 §
AzureのBlobに、もう使用していない仮想マシンの仮想ディスクが残っている場合があり、これも課金対象になってしまうので削除しておくべき。