LoginSignup
1
1

Azcopy で SAS を使って Azure VM を別テナントに複製する

Last updated at Posted at 2023-12-27

こんにちは、アーキテクトのやまぱんです。
補足コメントや質問は是非お願いします🥺!
間違ってたら優しく教えてください!

以前 Azure Compute Galleryを使って別テナントにAzure VM を複製する方法を書きました。

今回は Azcopy を使って別テナントに Azure VM を複製する方法を紹介します。
*一部 SAS (Shared Access Signature) の情報やSubscription IDなどはモザイクかけたり、文字を"X"に置き換えて記載しています。

2024/03/06(水) : 追記
本記事の内容だと、8TiB 以上のマネージドディスクのコピーはできないのでその場合に方法を下記記事に記載しています。
https://qiita.com/aktsmm/items/ad416cbeab3be6adb5cc

おおまかな流れ

おおまかな流れとしては下記の 1 ~ 5 です。
本記事では 2 ~ 4 の部分にフォーカスして紹介します。

1.ソーステナントの対象 VM のディスクのスナップショットを取る
フルスナップショットで取得してください。
手順は下記の記事を参考にしてください。

2.ソーステナントにある 1.で作ったスナップショットからエクスポート / SAS を発行する

3.ターゲットテナントのストレージ アカウント(コンテナー) のSAS を発行する

4.Azcopy でソーステナントからターゲットテナントスナップショットをコピー(VHD化)する

5.コピーされた VHD から Azure VM を作成
具体的な手順は下記の記事をご覧ください

具体的な手順

■環境ざっくり情報■
ソーステナント側
Azure VM があって、そのディスクのフルスナップショットがあります。
フルスナップショットの名前は Snapshot-VM-origin-full

ターゲットテナント側
ストレージ アカウントがあってその中に movedvhd というコンテナーがあります。

1. ソーステナントの対象 VM のディスクのスナップショットを取る

フルスナップショットで取得してください。
(追記:増分スナップショットでも可能だという声も聞きましたが、未検証です)
手順は下記の記事を参考にしてください。

2. ソーステナントにある 1.で作ったスナップショットからエクスポート / SASを発行する

SAS URL の有効な期間は適宜環境に合わせて設定してください。

image.png

2023-12-27_15h51_49.png

ソース SAS をメモしておきます。

ソースSAS:https://md-n01chXXXXXXt.z14.blob.storage.azure.net/ltmj2bpl4m0m/abcd?sv=20XX-03-28&sr=b&si=f2bb0XXe-0XXX-43c5-99f1-e7XXXXXXXd1e&sig=NmDHMPGtCT6XXXXXjHBEzdnFAXXXXXXXXXXXXXXXXXXiw%3D

3. ターゲットテナントのストレージ アカウント(コンテナー) のSAS を発行する

ストレージ アカウントがない場合はストレージ アカウントを作成し、コンテナーの作成をしてください。
ここではすでにストレージ アカウントとコンテナーを作成している前提です。
今回はコンテナー名は movedvhd で作成しています。

対象のストレージ アカウント → コンテナー → 対象のコンテナー(今回は movedvhd) → 左ペインの「共有アクセストークン」から下記のように SAS を発行します。
権限は「読み取り」「追加」「作成」「書き込み」 を設定して発行します。
有効時間は適宜適切に設定してください。

2023-12-27_15h53_48.png

[BLOB SAS URL] から ターゲット SASの元 をメモしておきます。

ターゲットSASの元[BLOB SAS URL] :https://rXXXXsXXXg.blob.core.windows.net/movedvhd?sp=racw&st=2023-XX-27T05:21:48Z&XX=XXXX-01-30T13:21:48Z&spr=htXXX&sv=XXXX-11-02&sr=c&sig=EUzXXXXXXXXXXXXXXXXivkHdvFvWpNukArUklcOLJls%3D

今回 movedvhd コンテナー → の下にfull.vhdという名前で VHDをコピーします。
そのため、"ターゲットSASの元" の "movedvhd" を "movedvhd/fulltest.vhd" に置き換えます。
そうしてできたターゲット SAS が以下です。

ターゲットSAS:https://rXXXXsXXXg.blob.core.windows.net/movedvhd/fulltest.vhd?sp=racw&st=2023-XX-27T05:21:48Z&XX=XXXX-01-30T13:21:48Z&spr=htXXX&sv=XXXX-11-02&sr=c&sig=EUzXXXXXXXXXXXXXXXXivkHdvFvWpNukArUklcOLJls%3D

4. Azcopy でソーステナントからターゲットテナントスナップショットをコピー(VHD化)する

下記のコマンドで実行します。
なお、Azcopy はあらかじめインストールしパスを通しています。

2024/01/11(木) 追記:
コマンドの実行環境として Azure Portal (Azure Portal から実施できるコマンドライン機能)で Azcopy の場合に失敗する例を聞いております。

  • Cloud Shell で試してエラーがでてダメだった場合、一度クライアントPCにインストールした最新の Azcopy を使ってみてください。
  • また逆にクライアント OS にインストールした Azcopy でうまくいかない場合は、Cloud Shell で実施して改善するかご確認ください。
azcopy copy ‘<ソース SAS>’ ‘<ターゲットSAS>’

今回の例に倣えば下記のようになります。

azcopy copy ‘https://md-n01chXXXXXXt.z14.blob.storage.azure.net/ltmj2bpl4m0m/abcd?sv=20XX-03-28&sr=b&si=f2bb0XXe-0XXX-43c5-99f1-e7XXXXXXXd1e&sig=NmDHMPGtCT6XXXXXjHBEzdnFAXXXXXXXXXXXXXXXXXXiw%3D’ ‘https://rXXXXsXXXg.blob.core.windows.net/movedvhd/fulltest.vhd?sp=racw&st=2023-XX-27T05:21:48Z&XX=XXXX-01-30T13:21:48Z&spr=htXXX&sv=XXXX-11-02&sr=c&sig=EUzXXXXXXXXXXXXXXXXivkHdvFvWpNukArUklcOLJls%3D’

実行中のイメージ
2023-12-27_16h26_21.png

実行完了

2023-12-27_16h29_04.png

ターゲットテナントのストレージ アカウント内に想定した VHD ができている事を確認
2023-12-27_16h29_48.png

5. コピーされた VHD から Azure VM を作成

具体的な手順は下記の記事をご覧ください.

無事テナントをまたいだ Azure VM の複製ができました!✨

もちろんテナントを跨がない場合でも使えますが、同一テナントの場合や同一Subscriptionの場合はもっと簡単な方法があるかと思います。

他のテナントをまたいだAzure VM の複製方法

その他の方法としては以前下記の記事を書きました。

Azure Compute Gallery を使う場合に対するメリット

今回の方法では SAS さえ発行してしまえば Azure 権限が不要、 Azure にログインする必要がないことです。別途 Azcopy をインストールする必要はあります。

Azcopy について(補足)

Azcopy のダウンロード先

また、今回はパスを通していましたが、パスを通していない場合はazcopy の exe ファイルがある場所に移動して azcopy を実行してください
参考までに、こちらの記事はパスを通さないで実行されてます。

また、パスを通しの例。
パスを通すことでどの場所からでも今回のようなコマンドで Azcopy を実行できます。
image.png

参考

  • ストレージ アカウント のページ BLOB の制限について

Azure でサポートされている最大ページ BLOB サイズは、8 TB (8,191 GiB) です。
image.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1