BunBackup の特徴として、高速でバックアップができるというものがあります。
Robocopy を利用してバックアップ(ミラーリング)を行うように設定したのですが、これがかなり時間がかかってしまう。そこで、BanBackup を利用してコピーしてみた。
ACLまでコピーしたいなら、コマンドラインでコピーする必要がある
"C:\Program Files\Nagatsuki\BunBackup\BunBackup.exe" /AUTO:"C:\Program Files\Nagatsuki\BunBackup\ini_file\旧サーバからミラー.lbk" /ACLCOPY
/AUTO BunBackup起動後、前回開いたBunBackup設定ファイル(*.lbk)からバックアップを実行し、BunBackupを終了します。
/ACLCOPY ファイルコピー時にACL情報もコピーします。ファイルシステムがNTFSの時のみACLCOPYは機能します。
/AUTO オプションを利用するとバックアップ中の動作やバックアップ結果を表示しません。
これが難点で、動いているのかどうかが分からないんです。稼働しているかどうかを調べるためには、タスクマネージャを確認します。
BunBackup がちゃんと動いている事が分かります。
十分メモリを積んでいる環境なら、特にこの状態で気にする事はないです。大量のファイルコピーが発生する私の環境ではメモリ利用料が1GBを超える状況でした。コピーの規模は3TBほど、ファイル数としては、2,557,280ほどです。
日中にもミラーリングを行いたい場合、時間はかかってもいいから、メモリ使用量を抑えたいという要件があります。
/SILENTMEMSAVE
大量のファイルをバックアップしても省メモリでバックアップできる機能です。
このオプションをつけたところ、CPUスレッドは1,メモリ使用量は30M程度で一定で推移します。その代わりバックアップにかなりの時間がかかりました。
コマンドラインから動作させると問題なく動くのですが、Windowsタスクに登録すると
「バックアップ元フォルダが存在しません」
と表示され、ミラーリングされていません。
結論的に、ネットワーク上にあるサーバの共有フォルダからミラーリング(バックアップ)したい場合、
うまくいかないです。
ネットワークドライブの割り当てが原因のようです。バックアップ元に、ネットワークドライブとして割り当てたドライブを指定していました。コマンドラインでバックアップしたり、Bunbackup GUI から起動させてバックアップをとっても特に問題はおきませんでした。
ところが、Windows タスクに登録した場合
うまくネットワークドライブを認識できないのか、バックアップ元が見つからないとの事でうまくミラーリングが進みませんでした。
バックアップ元を \\サーバ名\ドライブ文字$\フォルダ名 という形式で指定します。
ドライブ文字$は隠しドライブを指定するための指定方法です。これはドライブの共有設定をしていなくてもアクセス権があればその中を見る事が可能になります。
バックアップ元をこのように、ネットワークサーバ\共有フォルダを指定すると、Windowsタスクに登録してもうまく動作しました。
WindowsServer環境で、NTFSでフォーマットされているディスクをネットワーク越しにミラーリングを行った時に、ACLがコピーされているフォルダと、ちゃんとコピーされないフォルダがある。
正常にコピーされない場合→親フォルダの権限が継承されている
正常にコピーされる場合→親フォルダの権限が継承されていない
セキュリティの詳細設定を開き
「継承の無効化」ボタンが表示されている場合は継承されている状態
「継承の有効化」ボタンが表示されている場合は継承されていない状態
さすがWindowsServer の標準のミラーリングツールはちゃんとACLをコピーしてくれます。
robocopy /mir /copyall オプションをつけると、ACLまですべてコピーできます。
192.168.11.5\o$
サーバ192.168.11.5 の隠しドライブ O$からコピーします。
robocopy \192.168.11.5\o$\Data D:\Data /R:1 /mir /copyall >> copylog.txt
/R:1 はエラーがあった場合1回しか試さない
/mir ミラーリング
/copyall ACLまで含めてコピーする