Windowsのrobocopyコマンドを使ってデータ移行してみた

記事タイトルとURLをコピーする

技術2課の山﨑です。今回はWindowsのrobocopyコマンドを使ってデータ移行してみました!

robocopyコマンドについては私とは別の山﨑のブログを御覧ください

blog.serverworks.co.jp

移行イメージ

今回はオンプレミス環境にあるファイルサーバーからAWS上にあるファイルサーバーにデータ移行する、というシチュエーションを想定して検証してみました

f:id:swx-yamasaki:20210214131035p:plain

検証環境

個人検証ではさすがにDirect Connectは利用できないため、以下のようにTransitGatewayで代用して類似的な環境を用意しました。

f:id:swx-yamasaki:20210214131315p:plain

robocopyコマンド実行までの事前準備

実際にrobocopyコマンドを実行するために以下の事前準備をしました。

  • ①VPC間で通信できる状態にする(移行イメージではオンプレミス - AWS間の通信ができる状態にする)
  • ②移行先サーバーをActive Directoryのユーザー/グループとして登録する
  • ③移行元サーバの共有フォルダ設定の後、移行元サーバーの共有フォルダをNetworkDriveとして移行先サーバーにマウントする

②のActive Directoryについては弊社の孔が分かりやすく解説しているブログ記事がありますので参考までに御覧ください

blog.serverworks.co.jp

今回は③移行元サーバの共有フォルダ設定の後、移行元サーバーの共有フォルダをNetworkDriveとして移行先サーバーにマウントするから実際にやったことをご紹介していきます。

いざ検証

移行元サーバーの共有フォルダ設定

コントロールパネル -> ネットワークとインターネット -> ネットワークと共有設定 -> 高度な共有設定 を開いて、「プライベート(現在のプロファイル)」のタブで「ネットワークの探索」と「ファイルとプリンターの共有」を有効にする

f:id:swx-yamasaki:20210214133413p:plain

「すべてのネットワーク」のタブで「パブリックフォルダーの共有」を有効にする

f:id:swx-yamasaki:20210214134506p:plain

共有したいフォルダに共有設定をする。今回は移行先サーバーを共有先として指定しました。

f:id:swx-yamasaki:20210214134746p:plain f:id:swx-yamasaki:20210214134826p:plain

移行元サーバーの共有フォルダをNetworkDriveとしてマウント

移行元サーバーで共有設定をしただけでは移行先サーバー上で共有フォルダを見ることができません。そのため移行先サーバーで共有フォルダを見ることができるようにマウントします。移行先サーバーにログイン後、以下のコマンドを実行します

net use Z: \\EC2AMAZ-SK58QUC.robocopy.local(移行元)\share /user:robocopy.local\data-source password
※ net use ドライブ名 \\コンピュータ名\共有名 /user:ドメイン名\ユーザID パスワード

net useコマンドについては以下のMicrosoftのドキュメントをご覧ください

Net use | Microsoft Docs

これで移行先サーバーで共有フォルダを見ることができます。

f:id:swx-yamasaki:20210214135818p:plain

robocopyコマンドを実行

ここまで準備が整ったら念願のrobocopyコマンドを打つことができます。今回は移行先サーバーのDドライブにデータを移行します。その前にrobocopyコマンド実行前のDドライブが空っぽであることを確認します。

f:id:swx-yamasaki:20210214140415p:plain

また、共有フォルダにはいくつかのファイルとディレクトリがあります。これらがDドライブに移行されていれば移行成功です。

f:id:swx-yamasaki:20210214140536p:plain

早速、移行先サーバーで管理者権限でPowerShellを開いて以下のrobocopyコマンドを実行します。

robocopy Z:\ D:\share /MIR /R:3 /W:15 /NP /NFL /b

f:id:swx-yamasaki:20210214141323p:plain

Dドライブを確認すると無事にデータが移行されていました!

f:id:swx-yamasaki:20210214141507p:plain

まとめ

今回はrobocopyコマンドを実行するまでの事前準備の方が大変でしたが、おかげでrobocopyだけでなくTransitGatewayやActive Directoryについても学習することができて一石三鳥でした!こういった検証環境を手軽に準備できることもクラウドならではのメリットだなと改めて感じた検証でした。