rsyncは同一マシン上では差分転送をしないらしい。
という組み合わせでバックアップをしようとしている。
送信側と受信側のファイルの内容が多くの部分で一致する場合、同期のために転送が必要となるデータ量は少なくなる。
wikipedia:rsync
となるはずだが、試したところ、手元のすべてのファイルで転送バイト数がファイルサイズより大きかった。ファイルをまるまる転送しているように思える。
[root@everest ~]# ls -l /var/lib/vmware/Virtual\ Machines/master/master_data-s020.vmdk -rw------- 1 root root 2146762752 Oct 13 19:19 /var/lib/vmware/Virtual Machines/master/master_data-s020.vmdk
[root@everest ~]# time rsync -rtv --modify-window=1 /var/lib/vmware/Virtual\ Machines/master/master_data-s020.vmdk /mnt/usbhdd/backup/vm/master master_data-s020.vmdk sent 2147024906 bytes received 42 bytes 22962833.67 bytes/sec total size is 2146762752 speedup is 1.00 real 1m32.380s user 0m24.292s sys 0m17.893s
送信側と受信側が同じマシンの場合、rsyncは差分転送をしないのではないだろうか。そこで上記の受信側ディレクトリの前に「localhost:」をつけ、ネットワークを介した別マシンへの転送の形にしてみた。
[root@everest ~]# time rsync -rtv --modify-window=1 /var/lib/vmware/Virtual\ Machines/master/master_data-s020.vmdk localhost:/mnt/usbhdd/backup/vm/master root@localhost's password: master_data-s020.vmdk sent 278118 bytes received 324415 bytes 1704.48 bytes/sec total size is 2146762752 speedup is 3562.90 real 5m52.915s user 0m17.411s sys 0m7.114s
転送量が大幅に減った! このことから、rsyncは別マシン間では差分転送をするが、同一マシン上では差分転送をしないことがわかった。ちなみに転送量は大幅に減ったが、所要時間は大幅に増えている。