rsync 3

On 2010年5月29日, in CentOS, by タカ

ちょっと色々と試してみたので、公開。

うちのシステムは、RedHat4系とCentOS5系を使ってます。
なので、rsyncのバージョンは2系です。

rsyncの2系の挙動を見てると、差分チェックの為に、まず全ファイルをリストアップします。
その後、ファイル転送が始まります。
リストはメモリに保持されてるようです。
1000万以上のファイルがあったので、1GBくらいメモリを掴んでしまう。
ファイル転送中もこれはつかみっぱなし。

まぁ、1000万以上のファイルがあるって時点で当たり前だけどw

そこで、rsync3の登場!
こいつは、リストアップしながら転送してくれる。
なので、メモリ使用率は圧倒的に少ない。(topで見てたんだけど使用率は0%のまま)
その代わり、瞬間的にCPU使用率は上がってた気がする。
でも、これはマルチコアCPUなら問題ない。

で、まずは全ファイル転送を計測してみたら、rsync3系の実行時間がrsync2系に比べて、14%程少なかった。

そして、少し差分が出た状態で再びrsync。(30万ファイルくらいの差分)
この差分転送にかかる時間は凄い差が出た。

rsync3系の実行時間がrsync2系に比べて50%!

というわけで、rsync3の導入決定!

でも、多分サービス止めてパーティションをddでごっそりコピーした方が早いと思う。
HDDならランダムアクセスよりシーケンシャルアクセスに限るよね。
でも、その手段が取れない場合は、rsync3を導入すると幸せになれますよ。

Tagged with:  

大量のデータ移行

On 2010年5月25日, in CentOS, by タカ

1000万ファイルのデータ移行について検討中。

今までは、rsync使ってました。

これで、データ移行しようとすると、
40時間くらいかかってしまうのですよ…。
(サービス停止せずにやっているので)

サービス停止しても、4時間くらいかかるんだろうなぁと思ってます。

なんかいい方法ないかな?

はてなのデータセンターお引越しとかは、パーティション毎ddしたって書いてあったけど、
ちょっと面倒な構成なので、ディスク外して新サーバに直結とかはできない…。
外付けHDDとかにddでコピーすればいいのかな?

tarは、サービス停止させても3時間くらいかかりそうであまり大差ない感じ。

妙案求ム!!

Tagged with: