ThatDude Posted February 26, 2015 Share Posted February 26, 2015 Hi I have an existing unRAID 5 server with 14TB of data in various users shares. I've just built a new unRAID 6 server and would like to copy the data across by the fastest means possible. So far as I can see my options are either to use rsync or to mount the new server as a share on the old server and use CP to copy the data accross from usershare to usershare. Is that correct or is the there a better/faster way to achieve this? Many thanks, Dan Quote Link to comment
BRiT Posted February 26, 2015 Share Posted February 26, 2015 The only faster way is to move the actual data drives over, so its more of a motherboard/case/ram upgrade. Quote Link to comment
ThatDude Posted February 26, 2015 Author Share Posted February 26, 2015 Thanks Brit, that's not really an option as I need to keep the old server running until the migration is complete. I'll give rsync a try for a large usershare and then try NFS and CP. I'll report back with the speed of each, hopefully it'll help someone else out in the future. Quote Link to comment
sureguy Posted February 26, 2015 Share Posted February 26, 2015 If you have checksums for your files you could do the transfer before assigning the parity disk. I don't know if that will be faster as you then have to calculate parity and check your check sums. Quote Link to comment
WeeboTech Posted February 27, 2015 Share Posted February 27, 2015 In your rsync server add these options before any path definitions. ...<snip>... socket options = SO_SNDBUF=524288,SO_RCVBUF=524288 [mnt] path = /mnt comment = /mnt files read only = FALSE list = yes ...<snip>... You can use the same options on the rsync client using rsync to rsync (do not use rsync over ssh if you can avoid it). root@unRAIDb:/# rsync --help | grep sockopts --sockopts=OPTIONS specify custom TCP options So an example command might be. cd /mnt/disk1 rsync -avXP --sockopts=SO_SNDBUF=524288,SO_RCVBUF=524288 . rsync://destinationhost/mnt/disk1 If you can disable the parity while the disks are mirrored (at least for the initial population) parity will not slow it down. I get near line speed when doing it this way. If you use the bunker or bitrot script to attach hashes to each file the -X will transfer those hashes to the destination. You can then use the respective scripts to verify them. Quote Link to comment
ThatDude Posted February 27, 2015 Author Share Posted February 27, 2015 Thank you WeeboTech, that's incredibly helpful. One question, does rsync work in the same way on user shares? My shares are large and span multiple drives. Quote Link to comment
Fireball3 Posted February 27, 2015 Share Posted February 27, 2015 WeeboTech, can you elaborate on the figures you advise? Are they valid for every configuration? (RAM, NIC) Quote Link to comment
ThatDude Posted February 27, 2015 Author Share Posted February 27, 2015 This is the rsync command line that I'm using on my unRAID5 server to copy data to my unRAID6b14b server: rsync -avhP --stats --progress --sockopts=SO_SNDBUF=524288,SO_RCVBUF=524288 /mnt/user/public/ rsync://tower/mnt/user/public I'm achieving transfer speeds of around 75MB/s, is that good? I was expecting higher speeds (copying large ISO's / managed GB switch etc). NB: Those sockopts that Weebo suggested made a HUGE difference, literally doubling the transfer speeds. Quote Link to comment
Fireball3 Posted February 27, 2015 Share Posted February 27, 2015 NB: Those sockopts that Weebo suggested made a HUGE difference, literally doubling the transfer speeds. I'm sure it has an effect. As always with such tweaks, the question is: what is the best value? Is it already optimal? Quote Link to comment
ThatDude Posted February 27, 2015 Author Share Posted February 27, 2015 NB: Those sockopts that Weebo suggested made a HUGE difference, literally doubling the transfer speeds. I'm sure it has an effect. As always with such tweaks, the question is: what is the best value? Is it already optimal? No I don't think it's optimal. Just working on the basis that I can transfer a file from either of my unRAID servers to my Mac via NFS at >100MB/s, I would expect a server to server rsync to be faster. Quote Link to comment
Fireball3 Posted February 27, 2015 Share Posted February 27, 2015 Are you bypassing the parity calculation on the receiving machine? 75MB/s is not too bad. Quote Link to comment
ThatDude Posted February 27, 2015 Author Share Posted February 27, 2015 Yes I've disabled the parity drive, it was ~35MB/s with it enabled. If I stop and start the sync the first ~30 seconds run at around 119MB/s before dropping to 75MB/s, I'm guessing this is the buffers filling up. I can see the destination server's drive light is idling every 4 seconds or so for around 3 seconds. I'm sure there's a way to optimise this further. Quote Link to comment
ThatDude Posted February 27, 2015 Author Share Posted February 27, 2015 Small update: When I execute rsync on the new server and pull data from the old server I get a speed boost to just over 100MB/s. I think that running rsync on the old server to push the data was creating some kind of CPU or RAM bottleneck (it's an old AMD x2 CPU with 2GB RAM). The new server is an Intel QuadCore with 16GB RAM, this is the command line I'm executing to pull the datat: rsync -avh --stats --progress --sockopts=SO_SNDBUF=524288,SO_RCVBUF=524288 rsync://oldnas/mnt/user/iso/ /mnt/user/iso I'm sure that there is still room for improvement but breaking the 100MB/s barrier is good enough for my needs. Quote Link to comment
WeeboTech Posted February 27, 2015 Share Posted February 27, 2015 I'm sure that there is still room for improvement but breaking the 100MB/s barrier is good enough for my needs. That's about the top end unless you were to add compression, which may or may not help. You could try disabling compression with the --skip-compress=LIST skip compressing files with suffix in LIST option. compression is highly CPU dependent. The closer you get to 90MB/s the better you are, 90-100MB/s is going to be the top end speed. Frankly, I would avoid the user share if possible. That's going to slow things down and disorganize the primary and backup servers if you have the same disks configuration. You can schedule it overnight in cron very simply without interfering with day to day usage. That's just me and my preference when doing these type of backups. I like to have data compartmentalized and managed well. Quote Link to comment
ThatDude Posted February 27, 2015 Author Share Posted February 27, 2015 Thanks Weebo User Shares are essential to my workflow, I can't imagine not using them. I'm a commercial photographer IRL and I use unraid as my storage server for photo and video projects, I generate about 2TB of data per year so I just add drives as necessary. I then have a Windows box with CrashPlan installed which automagically takes all of that data and saves it in the cloud. I'm only switching to a new server because I've run out of sata ports and space to put drives in my original server (9x2TB). I'm making the leap to unRAID6, a 4U rack server and 7x4TB drives, I think 24TB should keep me in storage for another couple of years :-) Quote Link to comment
WeeboTech Posted February 27, 2015 Share Posted February 27, 2015 Do what works best for you. If the two machines do not have duplicate configurations for disk layout, then by all means, use the usershare luke! Quote Link to comment
darkside40 Posted March 30, 2015 Share Posted March 30, 2015 Could someone point me into the right direction how to temporary enable the rsync daemon on the receiving site? Quote Link to comment
trurl Posted March 30, 2015 Share Posted March 30, 2015 As for rsync daemon, here is the guide I used. Weebotech put this up several years ago and it is still working for me on v6. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.