【お題1】 rsyncによる増分バックアップ その1のつづき
1.ddコマンドで連続書き込みされているファイルに対する挙動
2.cpコマンドで連続書き込みされているファイルに対する挙動
1.ddコマンドで連続書き込みされているファイルに対する挙動
# mount | grep test
/dev/mapper/src-testlv on /testlv type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
/dev/mapper/dst-testlv_bk on /testlv_bk type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
# ll /testlv
合計 4
drwxr-xr-x. 25 root root 4096 9月 7 04:59 1
# ll /testlv_bk
合計 4
drwxr-xr-x. 25 root root 4096 9月 14 20:41 1
・試し打ち
# time dd if=/dev/zero of=/testlv/hoge count=10000 bs=1024k
10000+0 レコード入力
10000+0 レコード出力
10485760000 バイト (10 GB) コピーされました、 40.2597 秒、 260 MB/秒
real 0m40.262s ←約40秒くらいかかる
user 0m0.006s
sys 0m5.857s
※ちなみに/dev/src/testlv(リニア論理ボリューム)にスナップショットがあると5分40秒だった
・上記で作成した10GBのhogeを一旦削除
# rm -f /testlv/hoge
・rsyncする
# time rsync -auvh /testlv/ /testlv_bk/ > /dev/null
sent 5.30M bytes received 106.45K bytes 166.22K bytes/sec
total size is 44.74G speedup is 8,281.26
real 0m32.020s
user 0m1.509s
sys 0m5.475s
※/testlv_bkは/testlvのバックアップなので差分はない
もういっかい
# time rsync -auvh /testlv/ /testlv_bk/ > /dev/null
real 0m1.080s
user 0m0.574s
sys 0m0.616s
・src上にddで10GBコピーを開始して3秒後にrsyncを実行する
# dd if=/dev/zero of=/testlv/hoge count=10000 bs=1024k & { sleep 3;time rsync -auvh /testlv/ /testlv_bk/ > /dev/null; }
[1] 4485
10000+0 レコード入力
10000+0 レコード出力
10485760000 バイト (10 GB) コピーされました、 42.1591 秒、 249 MB/秒
[1]+ 終了 dd if=/dev/zero of=/testlv/hoge count=10000 bs=1024k
real 0m54.714s
user 0m15.342s
sys 0m8.298s
# ll /testlv
合計 10240004
drwxr-xr-x. 25 root root 4096 9月 7 04:59 1
-rw-r--r--. 1 root root 10485760000 9月 16 07:59 hoge
# ll /testlv_bk
合計 2800644
drwxr-xr-x. 25 root root 4096 9月 7 04:59 1
-rw-r--r--. 1 root root 2867855360 9月 16 07:59 hoge
→rsyncは静止点とってくれない
・おかわりでrsyncする
# time rsync -auvh /testlv/ /testlv_bk/ > /dev/null
real 1m5.256s
user 0m42.979s
sys 0m12.760s
# ll /testlv
合計 10240004
drwxr-xr-x. 25 root root 4096 9月 7 04:59 1
-rw-r--r--. 1 root root 10485760000 9月 16 07:59 hoge
2.cpコマンドで連続書き込みされているファイルに対する挙動
・いったん消す
# rm -f /testlv/hoge2 /testlv_bk/hoge2
・src上に10GBのファイルコピーを開始して3秒後にrsyncを実行する
# { time cp /testlv/hoge /testlv/hoge2; } & { sleep 3;time rsync -auvh /testlv/ /testlv_bk/ > /dev/null;echo $?; }
[1] 4538
real 0m48.119s ←rsyncが先に終わった
user 0m12.611s
sys 0m4.538s
0 ←正常終了
#
real 2m7.616s ←こっちはcpコマンド
user 0m0.061s
sys 0m9.873s
# ll /testlv
合計 28350912
drwxr-xr-x. 25 root root 4096 9月 7 04:59 1
-rw-r--r--. 1 root root 10485760000 9月 16 07:59 hoge
-rw-r--r--. 1 root root 10485760000 9月 16 08:20 hoge2
# ll /testlv_bk/
合計 12907780
drwxr-xr-x. 25 root root 4096 9月 7 04:59 1
-rw-r--r--. 1 root root 10485760000 9月 16 07:59 hoge
-rw-r--r--. 1 root root 2731802624 9月 16 08:18 hoge2
→rsyncは静止点とってくれない
・おかわりでrsyncする
# time rsync -auvh /testlv/ /testlv_bk/ > /dev/null
real 1m41.749s
user 0m43.572s
sys 0m15.621s
# echo 3 > /proc/sys/vm/drop_caches
# time md5sum /{testlv,testlv_bk}/hoge2
26f56024ac39cdc54b228820107f040d /testlv/hoge2
26f56024ac39cdc54b228820107f040d /testlv_bk/hoge2
real 2m17.827s
user 1m1.285s
sys 0m7.487s
→10GBのファイル2個のmd5sum所要時間は2分18秒だった。
※ちなみにマシンスペックは物理コア2論理コア2の4コア、 Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz