[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:28203] rsync sleeps forever



加藤と申します.

cronで, スクリプトから rsync を使って定期的に特定のパーティションを
ローカルの別 HDD にバックアップしてるのですが,
最近時々 rsync が途中でsleep状態のままになってしまう現象に悩まされています.


ps で見てみると
-------------
zsh$ ps -efl|egrep 'BACK|PID'
  F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
100 S root      3085  3084  0  69   0 -   532 wait4  06:43 ?        00:00:00 /bin/sh -e /usr/local/sbin/BACKUP-mount-rotate
000 S root      3098  3085  0  69   0 -   531 wait4  06:43 ?        00:00:00 /bin/sh /usr/local/sbin/BACKUP-mirror-system
100 S root      3108  3098  0  69   0 -   921 select 06:43 ?        00:00:26 rsync -Cav --delete --delete-excluded --exclude-from=/usr/local/etc/BACKUP-mirror-system.exclude /home/ /MNT/MIRROR/ROOT/home
140 S root      3109  3108  0  69   0 -  1316 select 06:43 ?        00:00:03 rsync -Cav --delete --delete-excluded --exclude-from=/usr/local/etc/BACKUP-mirror-system.exclude /home/ /MNT/MIRROR/ROOT/home
140 S root      3110  3109  0  69   0 -  1316 select 06:43 ?        00:00:05 rsync -Cav --delete --delete-excluded --exclude-from=/usr/local/etc/BACKUP-mirror-system.exclude /home/ /MNT/MIRROR/ROOT/home
000 S rook      3300  4701  0  70   0 -   547 pipe_w 10:49 pts/7    00:00:00 egrep BACK|PID
-------------
こんな感じで, 一旦止まるとずっとsleep状態のままです.
(最高10時間程度まで待った事があります.)
kill すると(SIGTERMで)素直に終わってくれます.


[症状]
 *上記の様に rync が途中で止まる.
 * rsyncは自作のバックアップ用スクリプトから呼びだされている.
 * この自作スクリプトは /home, /etc, /usr/local, /boot (いづれも reiserfs, 同一HDD)
   を /MNT/ROOT 以下に rsync -Cav --delete 同期させる.
 * スクリプトは2つあり,
      BACKUP-mount-rotate:  日変わりで受け側のパーティションをマウントしてから
                            BACKUP-mirror-systemを呼びだす
      BACKUP-mirror-system: 実際に rsync を呼び出す
 * /MNT/ROOT 以下には, 日変わり,週変わりで4つのパーティションがマウントされる.
   (メインのシステムとは別にある 2台のHDD上の, いづれもext2fs)
 * この自作スクリプトは cron から朝夕の6時43分, 1日2回スクリプトは呼び出される.
 * 現象は毎回ではなく, 2回に1回位の割合で不定期に起きる.


[症状が起きる条件]
 * 直接の原因かどうかは判らないが, カーネルを 2.2.19 から 2.4.3 に
   上げた後から起きるようになった.
 * 必ず /home を同期させている時に発生する.
 * しかし, rsyncの出力(cronからmailされる)を見ると,
   特定のファイルを同期してる時に止まってる, というわけではない.
 * 今までの所, 現象は 朝(6:43)実行された時に集中している.
   (でも, その時間に特に負荷が高い, とか cron でジョブが実行されてる
     という事はありません.)
 * /MNT/ROOT にどのパーティションがマウントされてるかは関係無い(らしい).
 * ファイルシステムには特に異常は無さそう(に見える).
 * cronを通さず, 端末から直接スクリプトを実行した時に問題が起きた事はない.


[環境]
 * Debian GNU/Linux, i386, sid
 * RAM: 256MB    CPU: PentiumIII 800MHz  SWAP: 956MB
 * kernel 2.4.3 (kernel-source-2.4.3, Version: 2.4.3-2)
 * rsync --version: rsync version 2.4.6  protocol version 24
 * 送り側 HDD: ARAID99-300(ハードウェア RAID1), 30GB, reiserfs(using 3.5.x disk format)
 * ディスク使用状況:
--------------
zsh$ df
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda1             954M   71M  883M   8% /
/dev/hda5             4.7G  1.5G  3.2G  31% /var
/dev/hda6             7.9G  2.2G  5.7G  28% /usr
/dev/hda7             5.6G  795M  4.8G  14% /usr/local
/dev/hda8             9.5G  4.0G  5.5G  42% /home
--------------



今の所は特に実害は無いものの, 非常に気味が悪いです.
何かアドバイスを頂ければ幸いです.


長くなりましたが, どうぞ宜しくお願いします.

-- 
 mmm |  =======  Ryoichi Kato =======
 - - |  Dept. of  Infomation  Science,
  ~  |  Tokyo Institute of Technology