Originally Posted by amadvance
The sync speed is always the same, it only depends on the amount of data. Also, the check and fix commands will likely take the same amount of time of the first sync.
But to speedup the recovering process, you can use the -f option and specify only the files or directory/ to restore. It can be used to undelete, or undo unwanted changes for example.
Anyway, I think it's a pretty slower in scanning the disks. 16 minutes to do nothing is too much
Maybe, are you running out of memory and it starts to swap ? How much RAM do you have ?
Yes, I've started fix yesterday (removed single ~40 Gb folder), 10 hours passed already and ETA is 16 more
Btw, why fix is so slow? Is it because it verifying each file to prevent silent corruption? You may wish to have some kind of quick fix which compare saved state with actual state and then restore (if needed) by computing the difference. You also would be required (uh, I mean advised to
) to create something like validate in flexraid, e.g. the quick check option. One absolutely not required to read ALL data from ALL drives with every check, it may be done quarterly while validating may be run weekly/monthly.
So, such quick check/fix would be great options to consider.
Regarding the speed, yes, server is 2Gb RAM and it looks like it is not enough:
total used free shared buffers cached
Mem: 2010 1958 51 0 1 28
-/+ buffers/cache: 1928 82
Swap: 8197 1368 6828
snapraid is in top with:
9647 root 20 0 2616m 1.6g 224 D 41 82.1 442:11.33 snapraid
So it consumed 1.6 Gb of real memory. Mine block size is 256kb, 5% of files are hundreds times huge than remaining (movies in BDMV format with some big m2ts files and tens/hundreds of smaller files of playlists, etc.)
The current read from drives is ~300-312 Mb/sec so it is very close to SATA II limit (on other hand half of them on different controller). I'm using deadline scheduler as cfq is too slow on massive reads.
P.S. I also having hard time using your filtering syntax. I've drives as /home/drive1, /home/drive2, ..., /home/drive8 with parity as /home/drive9. I'm trying to recover directory from /home/drive7/movies/new/DELETED/ by using this syntax:
time /opt/snapraid/bin/snapraid -c snapraid.conf.test -f "/home/drive7/movies/new/" fix
Unfortunately it doesn't work while man says if I use trailing slash it filter whole directory. Could you guide me to test this kind of restore? I'll try to remove /home, then /home/drive7 from beginning, perhaps paths are not absolute.