前回、RHELサーバのrsyncによるデータ移行について記載しましたので、今回は、Windowsサーバ環境でrobocopyを使用したデータ移行について、特に権限の保持に焦点を当てながら解説します。基本的な使い方から大規模データ移行の効率的な方法まで説明していきます。
robocopyとは?
robocopy(Robust File Copy)は、Windowsに標準搭載されている高機能なファイルコピーツールです。通常のコピーコマンドと比べて、ネットワーク接続が途切れた場合の再開機能や、ファイルの属性・タイムスタンプの保持など、多くの優れた機能を持っています。
基本的な使い方
robocopyの基本的な構文は以下の通りです:
robocopy [コピー元] [コピー先] [オプション]
例えば、E:\SourceフォルダからF:\Destinationフォルダにファイルをコピーする場合、以下のようになります:
robocopy E:\Source F:\Destination
権限を保持する方法
データ移行において最も重要な点の一つが、ファイルやフォルダの権限を正確に保持することです。robocopyでは、以下のオプションを使用することで、権限を含むさまざまな属性を保持できます。
1. /COPY:オプション
/COPY:オプションを使用すると、ファイルのどの属性をコピーするかを指定できます。権限を保持するには、以下のように使用します:
robocopy E:\Source F:\Destination /COPY:DATSOU
ここで、DATSOUは以下を意味します:
– D: データ
– A: 属性
– T: タイムスタンプ
– S: セキュリティ(NTFS権限)
– O: 所有者情報
– U: 監査情報
2. /SEC オプション
/SECオプションは、ファイルのセキュリティ属性(NTFS権限)をコピーします。/COPYオプションと併用することで、より確実に権限を保持できます:
robocopy E:\Source F:\Destination /COPY:DAT /SEC
3. /DCOPY:T オプション
ディレクトリのタイムスタンプを保持したい場合は、このオプションを使用します:
robocopy E:\Source F:\Destination /COPY:DATSOU /DCOPY:T
大規模データ移行のための効率的な方法
大規模なデータ移行を行う際は、以下のオプションを組み合わせることで、効率的かつ確実な移行が可能になります。
1. /MIR オプション
/MIRオプションは、コピー先をコピー元のミラーにします。つまり、コピー元にないファイルやフォルダは、コピー先から削除されます:
robocopy E:\Source F:\Destination /MIR /COPY:DATSOU /DCOPY:T
2. /MT オプション
/MTオプションを使用すると、マルチスレッドコピーが可能になり、パフォーマンスが向上します:
robocopy E:\Source F:\Destination /MIR /COPY:DATSOU /DCOPY:T /MT:8
この例では、8つのスレッドを使用しています。使用するスレッド数は、サーバーのCPU性能に応じて調整してください。
3. /Z オプション
ネットワーク経由でのコピーで途中で接続が切れた場合、/Zオプションを使用することで、中断したポイントから再開できます:
robocopy E:\Source F:\Destination /MIR /COPY:DATSOU /DCOPY:T /MT:8 /Z
4. /LOG オプション
大規模なデータ移行では、ログを取ることが重要です。/LOGオプションを使用することで、詳細なログファイルを生成できます:
robocopy E:\Source F:\Destination /MIR /COPY:DATSOU /DCOPY:T /MT:8 /Z /LOG:C:\temp\migration_log.txt
実践的なシナリオ:ファイルサーバの移行
ここでは、使用中のファイルサーバを差分なく新しいサーバに移行する手順を説明します。
1. 初回コピー
まず、初回の完全コピーを行います。この際、ユーザーのアクセスを制限する必要はありません:
robocopy \\OldServer\Share \\NewServer\Share /MIR /COPY:DATSOU /DCOPY:T /MT:16 /Z /LOG:C:\temp\initial_copy_log.txt
2. 差分コピー
初回コピー完了後、実際の移行直前に差分コピーを行います。この際、ユーザーアクセスを制限することをお勧めします:
robocopy \\OldServer\Share \\NewServer\Share /MIR /COPY:DATSOU /DCOPY:T /MT:16 /Z /LOG:C:\temp\diff_copy_log.txt
3. 検証
移行後、以下のコマンドを使用して、ファイル数と総サイズを比較することで、移行が正しく行われたかを検証できます:
robocopy \\OldServer\Share \\NewServer\Share /E /L /NS /NC /NDL /NJH /NJS
robocopyを選択する理由
1. 効率性:マルチスレッドコピーや再開機能により、大規模データの移行を効率的に行えます。
2. 柔軟性:多様なオプションにより、様々なシナリオに対応できます。
3. 信頼性:権限やタイムスタンプなどの重要な属性を確実に保持できます。
4. コスト:Windowsに標準搭載されているため、追加コストがかかりません。
他のデータ移行方法(例:手動コピー、サードパーティツール)と比較して、robocopyは特に大規模なファイルサーバ移行において優れた選択肢となります。
まとめ
robocopyを使用したデータ移行は、効率的かつ信頼性の高い方法です。本記事で紹介した基本的な使い方や、権限を保持するためのオプション、大規模データ移行のためのテクニックを活用することで、スムーズなデータ移行が可能になります。
ここに記載された内容を参考にデータ移行計画を立てて頂けたなら幸いです。
コメント