NetAppでファイルコピー(ndmpcopy)をやってみた

2014/12/29

NetApp

t f B! P L
NetAppをファイルサーバ(CIFS)として使っている時に気になるのが
ファイルのコピー。
あるフォルダのファイルをアクセス権を引き継いだままファイルコピーするときに
よく使うのはWindowsのrobocopyだよね。
でも、robocopyってそんなに速くないイメージ。
確実なんだけど・・・w

そもそもNetAppならSnapMirrorやFlexCloneを使えよって話なんだけど、
SnapMirrorは高いし、FlexCloneだと筐体内でのボリュームコピーだから
ディスクに空き容量がなかったら使えないよね(´・ω・`)

そこでNetAppでもファイル単位でコピーできるコマンドとしてndmpcopyがあるのだ。
実際に使う機会が出てきたので、
忘備録として残す。



参考
NetApp自体参考になる日本語サイトがあまりないんだけど、
同じようなことを考えている人はやはりいるわけで。


コマンド詳細
詳しくは「man ndmpcopy」を叩いてね。
ndmpcopy [-l 0|1|2] [-exclude <除外パス、ファイル等>] <SourcePath> <DestinationPath>

上記のオプションを説明すると、
-l 0:フルバックアップ
-l 1:フルからの増分(2は1からの増分)

-exclude:指定したパス(ディレクトリ)やファイル等を除外

<SourcePath>:コピー元パス
<DestinationPath>:コピー先パス
※リモートホスト名を指定することで筐体間コピーも可能

実際にやってみた
NetApp FAS2240の環境で試してみた。
※"/vol/vol1"配下のファイルを"/vol/vol1/dir_A"配下へ丸ごとコピー。
 ただし、/vol/vol1直下のdir_Aはコピー先なのでコピー対象から除外。
HostA> ndmpcopy -exclude dir_A -l 0 /vol/vol1 /vol/vol1/dir_A
Ndmpcopy: Starting copy [ 1 ] ...<br /> Ndmpcopy: HostA: Notify: Connection established
Ndmpcopy: HostA: Notify: Connection established
Ndmpcopy: HostA: Connect: Authentication successful
Ndmpcopy: HostA: Connect: Authentication successful
Ndmpcopy: HostA: Log: DUMP: creating "/vol/vol1/../snapshot_for_backup.20" snapshot.
Ndmpcopy: HostA: Log: DUMP: Using Partial Volume Dump with Exclude Lists
Ndmpcopy: HostA: Log: DUMP: Date of this level 0 dump: Thu Dec 25 15:43:46 2014.
Ndmpcopy: HostA: Log: DUMP: Date of last level 0 dump: the epoch.
Ndmpcopy: HostA: Log: DUMP: Dumping /vol/vol1 to NDMP connection
Ndmpcopy: HostA: Log: DUMP: mapping (Pass I)[regular files]
Ndmpcopy: HostA: Log: DUMP: mapping (Pass II)[directories]
Ndmpcopy: HostA: Log: DUMP: estimated 33032786 KB.
Ndmpcopy: HostA: Log: DUMP: dumping (Pass III) [directories]
Ndmpcopy: HostA: Log: RESTORE: Thu Dec 25 15:44:01 2014: Begin level 0 restore
Ndmpcopy: HostA: Log: RESTORE: Thu Dec 25 15:44:02 2014: Reading directories from the backup
Ndmpcopy: HostA: Log: DUMP: dumping (Pass IV) [regular files]
Ndmpcopy: HostA: Log: RESTORE: Thu Dec 25 15:44:07 2014: Creating files and directories.
Ndmpcopy: HostA: Log: RESTORE: Thu Dec 25 15:44:21 2014: Writing data to files.
Ndmpcopy: HostA: Log: DUMP: Thu Dec 25 15:49:01 2014 : We have written 5423143 KB.
Ndmpcopy: HostA: Log: RESTORE: Thu Dec 25 15:49:01 2014 : We have read 5423143 KB from the backup.
Ndmpcopy: HostA: Log: DUMP: Thu Dec 25 15:54:01 2014 : We have written 11546572 KB.
Ndmpcopy: HostA: Log: RESTORE: Thu Dec 25 15:54:01 2014 : We have read 11546572 KB from the backup.
Ndmpcopy: HostA: Log: DUMP: Thu Dec 25 15:59:01 2014 : We have written 18301372 KB.
Ndmpcopy: HostA: Log: RESTORE: Thu Dec 25 15:59:01 2014 : We have read 18301372 KB from the backup.
Ndmpcopy: HostA: Log: DUMP: Thu Dec 25 16:04:01 2014 : We have written 24281714 KB.
Ndmpcopy: HostA: Log: RESTORE: Thu Dec 25 16:04:01 2014 : We have read 24280876 KB from the backup.
Ndmpcopy: HostA: Log: DUMP: Thu Dec 25 16:09:01 2014 : We have written 30860442 KB.
Ndmpcopy: HostA: Log: RESTORE: Thu Dec 25 16:09:01 2014 : We have read 30860442 KB from the backup.
Ndmpcopy: HostA: Log: ACL_START is '33808408576'
Ndmpcopy: HostA: Log: DUMP: dumping (Pass V) [ACLs]
Ndmpcopy: HostA: Log: DUMP: 33016047 KB
Ndmpcopy: HostA: Log: RESTORE: RESTORE IS DONE
Ndmpcopy: HostA: Log: DUMP: DUMP IS DONE
Ndmpcopy: HostA: Notify: restore successful
Ndmpcopy: HostA: Log: DUMP: Deleting "/vol/vol1/../snapshot_for_backup.20" snapshot.
Ndmpcopy: HostA: Log: DUMP_DATE is '5714457122'
Ndmpcopy: HostA: Notify: dump successful
Ndmpcopy: Transfer successful [ 0 hours, 27 minutes, 1 seconds ]
Ndmpcopy: Done
HostA>

約33GBのファイルコピーに27分かかっているので、
どんなに長くても1GB/分の処理時間と見積もれる。

robocopyなら約2時間近くかかっていたのに・・・w

2回目。
ちょっとだけ更新して増分コピー。
HostA> ndmpcopy -exclude dir_A -l 1 /vol/vol1 /vol/vol1/dir_A
Ndmpcopy: Starting copy [ 2 ] ...
Ndmpcopy: HostA: Notify: Connection established
Ndmpcopy: HostA: Notify: Connection established
Ndmpcopy: HostA: Connect: Authentication successful
Ndmpcopy: HostA: Connect: Authentication successful
Ndmpcopy: HostA: Log: DUMP: creating "/vol/vol1/../snapshot_for_backup.22" snapshot.
Ndmpcopy: HostA: Log: DUMP: Using Partial Volume Dump with Exclude Lists
Ndmpcopy: HostA: Log: DUMP: Date of this level 1 dump: Thu Dec 25 16:15:03 2014.
Ndmpcopy: HostA: Log: DUMP: Date of last level 0 dump: Thu Dec 25 15:43:46 2014.
Ndmpcopy: HostA: Log: DUMP: Dumping /vol/vol1 to NDMP connection
Ndmpcopy: HostA: Log: DUMP: mapping (Pass I)[regular files]
Ndmpcopy: HostA: Log: DUMP: mapping (Pass II)[directories]
Ndmpcopy: HostA: Log: DUMP: estimated 313 KB.
Ndmpcopy: HostA: Log: DUMP: dumping (Pass III) [directories]
Ndmpcopy: HostA: Log: DUMP: dumping (Pass IV) [regular files]
Ndmpcopy: HostA: Log: ACL_START is '359424'
Ndmpcopy: HostA: Log: DUMP: dumping (Pass V) [ACLs]
Ndmpcopy: HostA: Log: RESTORE: Thu Dec 25 16:15:21 2014: Begin incremental restore
Ndmpcopy: HostA: Log: RESTORE: Thu Dec 25 16:15:22 2014: Reading directories from the backup
Ndmpcopy: HostA: Log: RESTORE: Thu Dec 25 16:15:22 2014: Creating new files and directories.
Ndmpcopy: HostA: Log: RESTORE: Thu Dec 25 16:15:22 2014: Writing data to files.
Ndmpcopy: HostA: Log: DUMP: 374 KB
Ndmpcopy: HostA: Log: RESTORE: RESTORE IS DONE
Ndmpcopy: HostA: Log: DUMP: DUMP IS DONE
Ndmpcopy: HostA: Notify: restore successful
Ndmpcopy: HostA: Log: DUMP: Deleting "/vol/vol1/../snapshot_for_backup.22" snapshot.
Ndmpcopy: HostA: Log: DUMP_DATE is '10009426295'
Ndmpcopy: HostA: Notify: dump successful
Ndmpcopy: Transfer successful [ 0 hours, 0 minutes, 27 seconds ]
Ndmpcopy: Done
HostA>

やはり速い。


まとめ
アクセス権(ACL)も問題なく全て継承されるので、
NetApp内のファイルコピーならrobocopyではなくndmpcopyが十分使える。
ndmpcopyは標準のツールなのでタダで使えるしね。

思いのほか非常に有用なツールだなぁ。(小並感)


検索

Blog Archive

Popular Posts

About Me

自分の写真
性別:男
年齢:ついに40over
趣味:Snowboard、パソコン、iPhone、子育て

仕事:ユー子の社内SEとしてサーバ、NW等のインフラ全般をやってます

日々生活していく中で思ったことなどをつらつらと書いていきます。

どうぞよろしく!

ブログランキング

ブログランキング・にほんブログ村へ

QooQ