Difference between pages "Package:Rsync" and "Package:Bind"

From Funtoo
(Difference between pages)
Jump to navigation Jump to search
 
m
 
Line 1: Line 1:
{{Ebuild
{{Ebuild
|Summary=Rsync is a very fast file copying tool that has been optimized to synchronize files efficiently over a network connection.
|Summary=BIND - Berkeley Internet Name Domain - Name Server
|CatPkg=net-misc/rsync
|CatPkg=net-dns/bind
|Homepage=https://rsync.samba.org/
|Homepage=http://www.isc.org/software/bind
}}
}}
{{console|body=###i## emerge net-misc/rsync}}


=== Rsync Usage ===
BIND is a DNS server.
'''rsync''' is like an advanced cp that it can track if it's already copied the file.  Rsync is useful for generating backups.


{{console|body=###i## rsync -p source.file.txt destination.file.txt}}
=== Installation ===
{{console|body=###i## emerge net-dns/bind}}


=== Rsync Tips ===
=== Local Caching Only Server ===
{{console|body=###i## echo "dns_servers="127.0.0.1" >> /etc/conf.d/net}}


==== Enable Timestamp Updates ====
{{file|name=/etc/bind/named.conf|lang=|desc=ensure local listening|body=
listen-on-v6 { ::1; };
listen-on { 127.0.0.1; };
}}


Here's an important tip for maximizing rsync performance over a network connection.
{{file|name=/etc/bind/named.conf|lang=|desc=remove /* comments */ disabling this block, optionally add your upstream DNS servers|body=
forward first;
forwarders {
// 123.123.123.123; // Your ISP NS
// 124.124.124.124; // Your ISP NS
// 4.2.2.1; // Level3 Public DNS
// 4.2.2.2; // Level3 Public DNS
8.8.8.8; // Google Open DNS
8.8.4.4; // Google Open DNS
};
}}


When using rsync to synchronize files over a network connection, keep in mind that rsync, by default, uses the file's ''modification time and size'' to determine if a file at the destination needs to be updated. This is important to note because by default, rsync does not update file modification times on the destination system. This has important implications for performance when rsync is run again to synchronize the same files.
{{file|name=/etc/resolv.conf|lang=|desc=set the local system to listen to BIND|body=
nameserver 127.0.0.1
}}


Without the {{c|-a}} or {{c|-t}} option specified, rsync will check the file size (which will match) and modification time (which will not,) and thus assume the file is different. This will cause rsync to use its delta-transfer algorithm to attempt to update the file over the network. The delta-transfer algorithm has been optimized to minimize network utilization, but it still causes both the local and the remote system to load the entire file from disk in order to calculate checksums. This means that a 50GB file, when synchronized this way, will cause about 50GB of disk IO locally, and about 50GB of disk IO on the remote system. This can slow things down significantly, especially when transmitting large quantities of data, or when the systems are already experiencing heavy IO load.
{{console|body=###i## rc-update add named default
 
###i## rc
The solution to this problem is to use the {{c|-t}} option (enabled as part of {{c|-a}} as well) to enable modification time updates. When you do this, the modification time of the remote file will be updated to match that of the local file. Then, on a successive rsync invocation, rsync will compare the local and remote size and modification time, find that they both match, and will not invoke the delta-transfer algorithm. Congratulations -- if the files you were rsyncing were 50GB, then you just saved about 100GB of disk IO.
}}


{{Note|If rsync has difficulty setting remote modification times on remote symlinks or directories, use the {{c|-j}} and {{c|-O}} options to disable setting of times on symlinks and directories respectively. This can sometimes be an issue depending on ACLs and other permission differences on the remote host.}}
{{PageNeedsUpdates}}
{{EbuildFooter}}
{{EbuildFooter}}

Revision as of 13:42, February 5, 2015

Bind

   Tip

We welcome improvements to this page. To edit this page, Create a Funtoo account. Then log in and then click here to edit this page. See our editing guidelines to becoming a wiki-editing pro.


BIND is a DNS server.

Installation

root # emerge net-dns/bind

Local Caching Only Server

root # echo "dns_servers="127.0.0.1" >> /etc/conf.d/net
   /etc/bind/named.conf - ensure local listening
listen-on-v6 { ::1; };
	listen-on { 127.0.0.1; };
   /etc/bind/named.conf - remove /* comments */ disabling this block, optionally add your upstream DNS servers
forward first;
	forwarders {
	//	123.123.123.123;	// Your ISP NS
	//	124.124.124.124;	// Your ISP NS
	//	4.2.2.1;		// Level3 Public DNS
	//	4.2.2.2;		// Level3 Public DNS
		8.8.8.8;		// Google Open DNS
		8.8.4.4;		// Google Open DNS
	};
   /etc/resolv.conf - set the local system to listen to BIND
nameserver 127.0.0.1
root # rc-update add named default
root # rc