{"id":2877,"date":"2013-09-10T16:09:58","date_gmt":"2013-09-10T23:09:58","guid":{"rendered":"http:\/\/bittorrent.gyre.wpengine.com\/?p=2877"},"modified":"2022-10-06T12:05:39","modified_gmt":"2022-10-06T19:05:39","slug":"sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage","status":"publish","type":"post","link":"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage","title":{"rendered":"Sync Hacks: How to Use BitTorrent Sync as Geo-Replication for Storage"},"content":{"rendered":"<p><a href=\"http:\/\/labs.bittorrent.com\/experiments\/sync.html\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-2885\" src=\"https:\/\/blog.resilio.com\/wp-content\/uploads\/2013\/09\/SyncHacksGeoLocation.png\" alt=\"SyncHacksGeoLocation\" width=\"1680\" height=\"1212\" \/><\/a><br \/>\n<em>In Sync Hacks, we spotlight cool uses of Sync from the creative minds of our users. Sync is our free, unlimited, and secure file-syncing application. If you have an interesting use or how-to, shoot us an email at sync[at]bittorrent.com. Can\u2019t wait to hear what you guys cook up.<br \/>\n<\/em><\/p>\n<p>In this week&#8217;s Sync Hacks, Theron Conrey (<a href=\"http:\/\/twitter.com\/theronconrey\" target=\"_blank\" rel=\"noopener\">@theronconrey<\/a>) shows us how to use BitTorrent Sync as Geo-Replication for storage. We talked to Theron about why he chose Sync for this awesome project. His answer? &#8220;I like the flexibility of Sync and the encrypted transmission offering. This is more important today than ever, and if you&#8217;re moving customer data between sites you want to know it&#8217;s taken care of in flight. Sync offers a file system \/ storage system independent replication offering allowing for not only like array replication, but also replication to different array types.&#8221; We&#8217;re sold. Read on for his how-to.<\/p>\n<div class=\"content-item\">\n<div class=\"content-dets\"><\/div>\n<div class=\"content-body\">\n<div class=\"entry\">\n<h2>Excerpted from Theron&#8217;s original blog, found <a href=\"http:\/\/conrey.org\/2013\/05\/21\/bittorrent-sync-as-geo-replication-for-storage\/\">here<\/a>.<\/h2>\n<p>A friend pointed me at a new bittorrent lab project, <a href=\"http:\/\/labs.bittorrent.com\/experiments\/sync.html\">Sync<\/a>. While it took me a few minutes to wrap my head around what was going on and how this is being used, I\u2019d have to say I\u2019m impressed.<\/p>\n<h3>What is BitTorrent Sync?<\/h3>\n<p>The concept is simple, using a local client on your desktop or laptop Sync will synchronize the contents of the selected folder to other remote Sync clients sharing the same key. Synchronization is done securely via an encrypted (AES) bittorrent session. This ends up being effective for moving a lot of data across multiple devices and while I think it was initially designed for secure private dropbox style replication, I\u2019ve been testing this as an alternative method of geo-replication between <a href=\"http:\/\/www.gluster.org\">glusterfs<\/a> clusters on <a href=\"http:\/\/fedoraproject.org\">Fedora<\/a>.<\/p>\n<p>Right off the bat there were a few things that got my gears turning:<\/p>\n<p>a known and proven P2P protocol (monthly BitTorrent users are estimated at something insane like a quarter of a billion users)<br \/>\nencrypted transfers<br \/>\nmulti platform<br \/>\nKISS oriented configuration<\/p>\n<h3>What is GlusterFS?<\/h3>\n<p>GlusterFS is an open source project leveraging commodity hardware and the network to create scale-out, fault tolerant, distributed and replicated NAS solutions that are flexible and highly available. It supports native clients, NFS, CIFS, HTTP, FTP, WebDAV and other protocols. (<a href=\"http:\/\/gluster.org\/community\/documentation\/index.php\/GlusterFS_General_FAQ\">more info here<\/a>)<\/p>\n<h3>GlusterFS has native Geo Replication. Why not use it?<\/h3>\n<p>Leveraging the native GlusterFS georeplication for a single volume is a one way street today. I\u2019m not sure if this is something that will change moving forward but today, a volume replicated is configured in a traditional Master\/Slave configuration.<br \/>\n<a href=\"https:\/\/blog.resilio.com\/wp-content\/uploads\/2013\/09\/glustergeo1-300x118-1.png\" data-rel=\"lightbox-gallery-gNLJvq2L\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2888\" src=\"https:\/\/blog.resilio.com\/wp-content\/uploads\/2013\/09\/glustergeo1-300x118-1.png\" alt=\"glustergeo1-300x118-1\" width=\"300\" height=\"118\" \/><\/a><br \/>\nIn addition to simple failover configurations, it can also be configured for cascading configurations that allow for more interesting archival type configurations.<br \/>\n<a href=\"https:\/\/blog.resilio.com\/wp-content\/uploads\/2013\/09\/glustergeo2-300x81-2.png\" data-rel=\"lightbox-gallery-gNLJvq2L\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2887\" src=\"https:\/\/blog.resilio.com\/wp-content\/uploads\/2013\/09\/glustergeo2-300x81-2.png\" alt=\"glustergeo2-300x81-2\" width=\"300\" height=\"81\" \/><\/a><br \/>\nor even:<br \/>\n<a href=\"https:\/\/blog.resilio.com\/wp-content\/uploads\/2013\/09\/glustergeo3-279x300-3.png\" data-rel=\"lightbox-gallery-gNLJvq2L\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2886\" src=\"https:\/\/blog.resilio.com\/wp-content\/uploads\/2013\/09\/glustergeo3-279x300-3.png\" alt=\"glustergeo3-279x300-3\" width=\"279\" height=\"300\" \/><\/a><br \/>\nWhile I\u2019m sure this works for replication and certain disaster recovery scenarios, I\u2019m looking at multi master configurations, or with multiple datacenter configurations that are all \u201chot\u201d, possibly removing the need for a centralized repository. I\u2019d also like a scenario that allows for all sites to serve as DR locations for any other participant while leveraging the closest cluster as a data end point for writing. Something that looks a bit more like this\u2026<br \/>\n<a href=\"https:\/\/blog.resilio.com\/wp-content\/uploads\/2013\/09\/bittorrent1-300x101-4.png\" data-rel=\"lightbox-gallery-gNLJvq2L\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2889\" src=\"https:\/\/blog.resilio.com\/wp-content\/uploads\/2013\/09\/bittorrent1-300x101-4.png\" alt=\"bittorrent1-300x101-4\" width=\"300\" height=\"101\" \/><\/a><\/p>\n<p>This type of configuration also allows for a more easily grown environment and a quick way to bring another site online.<br \/>\n<a href=\"https:\/\/blog.resilio.com\/wp-content\/uploads\/2013\/09\/Drawing2-300x224-5.png\" data-rel=\"lightbox-gallery-gNLJvq2L\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2890\" src=\"https:\/\/blog.resilio.com\/wp-content\/uploads\/2013\/09\/Drawing2-300x224-5.png\" alt=\"Drawing2-300x224-5\" width=\"300\" height=\"224\" \/><\/a><\/p>\n<p>Leveraging bittorrent, one of the more interesting features is the optional use of a tracker service. This helps with peer discovery, letting the tracker announce SHA2(secret):IP:port to help peers connect directly. They tracker service also serves acts as a STUN server, helping with NAT traversal for peers that can\u2019t directly see each other behind firewalls. This is interesting for environments where you don\u2019t want to have to deal with reconfiguration of firewalls. It\u2019s important to note thought that even leveraging the tracker service all transmission of data is encrypted in flight.<\/p>\n<h3>Getting Started<\/h3>\n<p>For quick testing, find a couple of boxes that you want to get replication moving between. These could be minimal install linux boxes, SAMBA servers for your SMB, webservers (backup replication?), or in my case, a single node of a gluster cluster. If you\u2019re interested in getting started with gluster, <a href=\"http:\/\/www.gluster.org\/community\/documentation\/index.php\/Getting_started_overview\">here\u2019s a good place to get started<\/a>.<\/p>\n<p><strong>a quick note if you\u2019re using gluster:<\/strong> On one of the nodes, make sure the glusterfs client is installed. Create a directory and using the glusterfs client mount the volume you want to have replicated. There are more complicated ways to do this, but for testing, this will work fine.<\/p>\n<h3>Download the client<\/h3>\n<p>Identify the directory you want to replicate, and go <a href=\"http:\/\/labs.bittorrent.com\/experiments\/sync\/technology.html#downloadpop\">download the client<\/a> from bittorrent labs for your installation. For me it was the <a href=\"http:\/\/btsync.s3-website-us-east-1.amazonaws.com\/btsync_x64.tar.gz\">x64 Linux client<\/a>.<\/p>\n<h3>Configuration<\/h3>\n<p>First we\u2019ll need to untar the download and get some config files ready to go. Additionally, we\u2019ll want to build an init.d script to ensure the client is running on startup. You don\u2019t have to do all of this, but I wanted to have it available to manage as a service.<\/p>\n<p><code>$ tar -xf btsync.tar.gz<\/code><\/p>\n<p>We\u2019ll want to move the binary to a better location<br \/>\n<code>$ sudo mv btsync \/usr\/bin<\/code><\/p>\n<p>Next, create a directory for the configuration and generated storage files<br \/>\n<code>$ sudo mkdir \/etc\/btsync<\/code><\/p>\n<p>We should identify or create the directory we want to use as a replication target as well. As an example I\u2019ll create a new directory\u2026.<br \/>\n<code>$ sudo mkdir \/replication<\/code><\/p>\n<p>With our directories created and in place it\u2019s time to generate the initial config file and edit it appropriately.<br \/>\n<code>$ sudo btsync --dump-sample-config &gt; \/etc\/btsync\/btsync.conf<\/code><\/p>\n<p>Using your favorite text editor, edit the following lines\u2026<\/p>\n<p><code>\"device name\": \"My Sync Device\",<\/code><br \/>\nto<br \/>\n<code>\"device name\": \"whateveryourhostnameis\",<\/code><\/p>\n<p><code>\"storage path\" : \"\/home\/user\/.sync\",<\/code><br \/>\nto<br \/>\n<code>\"storage path\" : \"\/etc\/btsync\",<\/code><\/p>\n<p><code>\/\/ \"pid_file\" : \"\/var\/run\/syncapp\/syncapppid.pid\",<\/code><br \/>\nto<br \/>\n<code>\"pid_file\" : \"\/var\/run\/btsync.pid\",<\/code><\/p>\n<p>As we\u2019re going to identify the replicated folders via the conf file it\u2019s important to note that the webui that is normally available for the linux client will be disabled. First thing you\u2019ll need to do is generate a \u201csecret\u201d that you\u2019re going to use for your share. from the command line:<br \/>\n<code>$ sudo btsync --generate-secret<\/code><br \/>\nwill give you a secret you can use,but I find it easier to just go ahead and dump the secret at the bottom of the conf file I\u2019m going to use and just move it around from there.<br \/>\n<code>$ sudo btsync --generate-secret &gt;&gt; \/etc\/btsync.conf<\/code><br \/>\nIn the shared folder section look for the following line:<br \/>\n<code>\"secret\" : \"MY_SECRET_1\", \/\/ * required field<\/code><br \/>\nand replace MY_SECRET_1 with the secret you generated. As an example:<br \/>\n<code>\"secret\" : \"GYX6MWA67INIBN5XRHBQZRTGYX6MWA67XRHPJOO6ZINIBN5OQA\", \/\/ * required field<\/code><\/p>\n<p>you\u2019ll want to change the directory line as well\u2026<\/p>\n<p><code>\"dir\" : \"\/home\/user\/bittorrent\/sync_test\", \/\/ * required field<\/code><br \/>\nto<br \/>\n<code>\"dir\" : \"\/replication\", \/\/ * required field<\/code><\/p>\n<p>In the shared folders section either edit or comment out the known host section. The easiest thing is to comment out the examples provided. Change\u2026<br \/>\n<code> \"192.168.1.2:44444\", <\/code><br \/>\n<code> \"myhost.com:6881\"<\/code><\/p>\n<p>to<br \/>\n<code>\/\/ \"192.168.1.2:44444\",<\/code><br \/>\n<code>\/\/ \"myhost.com:6881\"<\/code><\/p>\n<p><strong>IMPORTANT:<\/strong> You\u2019ll need to remove the leading \/* and trailing *\/ of the shared folders section.<\/p>\n<p>With the config file set start bittorrent sync using the config set.<\/p>\n<p><code>btsync --config \/etc\/btsync.conf<\/code><\/p>\n<h3>BTsync init script<\/h3>\n<p>I\u2019m by no means claiming this is a work of art. It gets the job done though. you\u2019ll want to create a file \/etc\/init.d\/btsync with the following content:<br \/>\n<code><br \/>\n[theron@blackbox ~]$ cat \/etc\/init.d\/btsync<br \/>\n#!\/bin\/sh<br \/>\n#<br \/>\n# chkconfig: - 27 73<br \/>\n# description: Starts and stops the btsync Bittorrent sync client<br \/>\n# #<br \/>\n# pidfile: \/var\/run\/bysync.pif<br \/>\n# config: \/etc\/btsync.conf<\/code><\/p>\n<p># Source function library.<br \/>\n. \/etc\/rc.d\/init.d\/functions<\/p>\n<p># Avoid using root&#8217;s TMPDIR<br \/>\nunset TMPDIR<\/p>\n<p># Source networking configuration.<br \/>\n. \/etc\/sysconfig\/network<\/p>\n<p># Check that networking is up.<br \/>\n[ ${NETWORKING} = &#8220;no&#8221; ] &amp;&amp; exit 1<\/p>\n<p># Check that smb.conf exists.<br \/>\n[ -f \/etc\/btsync.conf ] || exit 6<\/p>\n<p>RETVAL=0<\/p>\n<p>BTSYNCOPTIONS=&#8221;&#8211;config \/etc\/btsync.conf&#8221;<\/p>\n<p>start() {<br \/>\nKIND=&#8221;Bittorrentsync&#8221;<br \/>\necho -n $&#8221;Starting $KIND services: &#8221;<br \/>\ndaemon btsync &#8220;$BTSYNCOPTIONS&#8221;<br \/>\nRETVAL=$?<br \/>\necho<br \/>\n[ $RETVAL -eq 0 ] &amp;&amp; touch \/var\/lock\/subsys\/btsync || RETVAL=1<br \/>\nreturn $RETVAL<br \/>\n}<\/p>\n<p>stop() {<br \/>\necho<br \/>\nKIND=&#8221;Bittorrentsync&#8221;<br \/>\necho -n $&#8221;Shutting down $KIND services: &#8221;<br \/>\nkillproc btsync<br \/>\nRETVAL=$?<br \/>\n[ $RETVAL -eq 0 ] &amp;&amp; rm -f \/var\/lock\/subsys\/btsync<br \/>\necho &#8220;&#8221;<br \/>\nreturn $RETVAL<br \/>\n}<\/p>\n<p>restart() {<br \/>\nstop<br \/>\nstart<br \/>\n}<\/p>\n<p>rhstatus() {<br \/>\nstatus btsync<br \/>\nreturn $?<br \/>\n}<\/p>\n<p># Allow status as non-root.<br \/>\nif [ &#8220;$1&#8221; = status ]; then<br \/>\nrhstatus<br \/>\nexit $?<br \/>\nfi<\/p>\n<p>case &#8220;$1&#8243; in<br \/>\nstart)<br \/>\nstart<br \/>\n;;<br \/>\nstop)<br \/>\nstop<br \/>\n;;<br \/>\nrestart)<br \/>\nrestart<br \/>\n;;<br \/>\nreload)<br \/>\nreload<br \/>\n;;<br \/>\nstatus)<br \/>\nrhstatus<br \/>\n;;<br \/>\ncondrestart)<br \/>\n[ -f \/var\/lock\/subsys\/btsync ] &amp;&amp; restart || :<br \/>\n;;<br \/>\n*)<br \/>\necho $&#8221;Usage: $0 {start|stop|restart|reload|status|condrestart}&#8221;<br \/>\nexit 2<br \/>\nesac<\/p>\n<p>exit $?<\/p>\n<p>With that done you\u2019ll want to change the mode of that file to 755. This will allow it to be run as a service.<br \/>\n<code>chmod 755 \/etc\/init.d\/btsync<\/code><br \/>\nand ensure it\u2019s run at startup:<br \/>\n<code>chkconfig --add btsync<br \/>\nchkconfig btsync on<\/code><\/p>\n<h3>testing the btsync service out<\/h3>\n<p>With that done you should be ready to start the btsync service.<br \/>\n<code>[theron@blackbox ~]$ sudo service btsync start<br \/>\nStarting Bittorrentsync services: BitTorrent Sync forked to background. pid = 4198<br \/>\n[ OK ]<br \/>\n<\/code><\/p>\n<h3>Other nodes and additional thoughts<\/h3>\n<p>With the above in place you\u2019ll want to configure additional btsync clients on gluster nodes (or whatever test system you\u2019re using) at your remote locations using the same secret you used above. The mount point \/ local folder can be different, but the secret <strong>must<\/strong> be the same. This will allow for replication to start amongst the identified folders. Thanks for reading and check out other <a href=\"https:\/\/forum.resilio.com\/topic\/18320-the-types-of-things-people-are-using-sync-for\/\">cool usescases for bittorrent sync on the bittorent sync forums.<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>&#8230;<\/p>\n<p>Theron Conrey <a href=\"http:\/\/twitter.com\/theronconrey\" target=\"_blank\" rel=\"noopener\">@theronconrey<\/a> turns wrenches on public facing cloud infrastructures and blogs infrequently about virtualization, enterprise storage and fermentation at <a href=\"http:\/\/conrey.org\" target=\"_blank\" rel=\"noopener\">conrey.org<\/a>. An active speaker at open source conferences as well as an active (and vocal) member of the vmware community, Theron is the founder of VMunderground, a community driven virtualization event.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Sync Hacks, we spotlight cool uses of Sync from the creative minds of our users. Sync is our free, unlimited, and secure file-syncing application. If you have an interesting use or how-to, shoot us an email at sync[at]bittorrent.com. Can\u2019t wait to hear what you guys cook up. In this week&#8217;s Sync Hacks, Theron Conrey [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[65,58,97,261,73,98,83],"class_list":["post-2877","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-bittorrent","tag-bittorrent-sync","tag-geo-replication","tag-hide-in-search-results","tag-how-to","tag-storage","tag-sync-hacks"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Sync Hacks: How to Use BitTorrent Sync as Geo-Replication for Storage | Resilio Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Sync Hacks: How to Use BitTorrent Sync as Geo-Replication for Storage | Resilio Blog\" \/>\n<meta property=\"og:description\" content=\"In Sync Hacks, we spotlight cool uses of Sync from the creative minds of our users. Sync is our free, unlimited, and secure file-syncing application. If you have an interesting use or how-to, shoot us an email at sync[at]bittorrent.com. Can\u2019t wait to hear what you guys cook up. In this week&#8217;s Sync Hacks, Theron Conrey [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage\" \/>\n<meta property=\"og:site_name\" content=\"Resilio Blog\" \/>\n<meta property=\"article:published_time\" content=\"2013-09-10T23:09:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-10-06T19:05:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.resilio.com\/wp-content\/uploads\/2013\/09\/SyncHacksGeoLocation.png\" \/>\n<meta name=\"author\" content=\"wpengine\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"wpengine\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage\"},\"author\":{\"name\":\"wpengine\",\"@id\":\"https:\/\/blog.resilio.com\/blog\/#\/schema\/person\/e44f4c858e4528965ead5df70e0ae2a4\"},\"headline\":\"Sync Hacks: How to Use BitTorrent Sync as Geo-Replication for Storage\",\"datePublished\":\"2013-09-10T23:09:58+00:00\",\"dateModified\":\"2022-10-06T19:05:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage\"},\"wordCount\":1483,\"publisher\":{\"@id\":\"https:\/\/blog.resilio.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.resilio.com\/wp-content\/uploads\/2013\/09\/SyncHacksGeoLocation.png\",\"keywords\":[\"bittorrent\",\"bittorrent sync\",\"geo-replication\",\"hide in search results\",\"How To\",\"storage\",\"sync hacks\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage\",\"url\":\"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage\",\"name\":\"Sync Hacks: How to Use BitTorrent Sync as Geo-Replication for Storage | Resilio Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blog.resilio.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.resilio.com\/wp-content\/uploads\/2013\/09\/SyncHacksGeoLocation.png\",\"datePublished\":\"2013-09-10T23:09:58+00:00\",\"dateModified\":\"2022-10-06T19:05:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage#primaryimage\",\"url\":\"https:\/\/blog.resilio.com\/wp-content\/uploads\/2013\/09\/SyncHacksGeoLocation.png\",\"contentUrl\":\"https:\/\/blog.resilio.com\/wp-content\/uploads\/2013\/09\/SyncHacksGeoLocation.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.resilio.com\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sync Hacks: How to Use BitTorrent Sync as Geo-Replication for Storage\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.resilio.com\/blog\/#website\",\"url\":\"https:\/\/blog.resilio.com\/blog\/\",\"name\":\"Resilio Blog\",\"description\":\"Explore Common Use cases, How to&#039;s, Comparisons &amp; More\",\"publisher\":{\"@id\":\"https:\/\/blog.resilio.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.resilio.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/blog.resilio.com\/blog\/#organization\",\"name\":\"Resilio\",\"url\":\"https:\/\/blog.resilio.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.resilio.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.resilio.com\/wp-content\/uploads\/2024\/05\/cropped-resilio-icon-digital-navy-background.png\",\"contentUrl\":\"https:\/\/blog.resilio.com\/wp-content\/uploads\/2024\/05\/cropped-resilio-icon-digital-navy-background.png\",\"width\":512,\"height\":512,\"caption\":\"Resilio\"},\"image\":{\"@id\":\"https:\/\/blog.resilio.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/company\/resilio-inc.\",\"https:\/\/youtube.com\/resilio\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.resilio.com\/blog\/#\/schema\/person\/e44f4c858e4528965ead5df70e0ae2a4\",\"name\":\"wpengine\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.resilio.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d8770fe9625ca7c4601f13d9d0ab86565a6dac8cd6a77bfe2ada6d83c6837870?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d8770fe9625ca7c4601f13d9d0ab86565a6dac8cd6a77bfe2ada6d83c6837870?s=96&d=mm&r=g\",\"caption\":\"wpengine\"},\"description\":\"This is the \\\"wpengine\\\" admin user that our staff uses to gain access to your admin area to provide support and troubleshooting. It can only be accessed by a button in our secure log that auto generates a password and dumps that password after the staff member has logged in. We have taken extreme measures to ensure that our own user is not going to be misused to harm any of our clients sites.\",\"sameAs\":[\"http:\/\/wpengine.com\"],\"url\":\"https:\/\/blog.resilio.com\/blog\/author\/wpengine\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Sync Hacks: How to Use BitTorrent Sync as Geo-Replication for Storage | Resilio Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage","og_locale":"en_US","og_type":"article","og_title":"Sync Hacks: How to Use BitTorrent Sync as Geo-Replication for Storage | Resilio Blog","og_description":"In Sync Hacks, we spotlight cool uses of Sync from the creative minds of our users. Sync is our free, unlimited, and secure file-syncing application. If you have an interesting use or how-to, shoot us an email at sync[at]bittorrent.com. Can\u2019t wait to hear what you guys cook up. In this week&#8217;s Sync Hacks, Theron Conrey [&hellip;]","og_url":"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage","og_site_name":"Resilio Blog","article_published_time":"2013-09-10T23:09:58+00:00","article_modified_time":"2022-10-06T19:05:39+00:00","og_image":[{"url":"https:\/\/blog.resilio.com\/wp-content\/uploads\/2013\/09\/SyncHacksGeoLocation.png","type":"","width":"","height":""}],"author":"wpengine","twitter_card":"summary_large_image","twitter_misc":{"Written by":"wpengine","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage#article","isPartOf":{"@id":"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage"},"author":{"name":"wpengine","@id":"https:\/\/blog.resilio.com\/blog\/#\/schema\/person\/e44f4c858e4528965ead5df70e0ae2a4"},"headline":"Sync Hacks: How to Use BitTorrent Sync as Geo-Replication for Storage","datePublished":"2013-09-10T23:09:58+00:00","dateModified":"2022-10-06T19:05:39+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage"},"wordCount":1483,"publisher":{"@id":"https:\/\/blog.resilio.com\/blog\/#organization"},"image":{"@id":"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage#primaryimage"},"thumbnailUrl":"https:\/\/blog.resilio.com\/wp-content\/uploads\/2013\/09\/SyncHacksGeoLocation.png","keywords":["bittorrent","bittorrent sync","geo-replication","hide in search results","How To","storage","sync hacks"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage","url":"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage","name":"Sync Hacks: How to Use BitTorrent Sync as Geo-Replication for Storage | Resilio Blog","isPartOf":{"@id":"https:\/\/blog.resilio.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage#primaryimage"},"image":{"@id":"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage#primaryimage"},"thumbnailUrl":"https:\/\/blog.resilio.com\/wp-content\/uploads\/2013\/09\/SyncHacksGeoLocation.png","datePublished":"2013-09-10T23:09:58+00:00","dateModified":"2022-10-06T19:05:39+00:00","breadcrumb":{"@id":"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage#primaryimage","url":"https:\/\/blog.resilio.com\/wp-content\/uploads\/2013\/09\/SyncHacksGeoLocation.png","contentUrl":"https:\/\/blog.resilio.com\/wp-content\/uploads\/2013\/09\/SyncHacksGeoLocation.png"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.resilio.com\/blog\/sync-hacks-how-to-use-bittorrent-sync-as-geo-replication-for-storage#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.resilio.com\/blog"},{"@type":"ListItem","position":2,"name":"Sync Hacks: How to Use BitTorrent Sync as Geo-Replication for Storage"}]},{"@type":"WebSite","@id":"https:\/\/blog.resilio.com\/blog\/#website","url":"https:\/\/blog.resilio.com\/blog\/","name":"Resilio Blog","description":"Explore Common Use cases, How to&#039;s, Comparisons &amp; More","publisher":{"@id":"https:\/\/blog.resilio.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.resilio.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/blog.resilio.com\/blog\/#organization","name":"Resilio","url":"https:\/\/blog.resilio.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.resilio.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/blog.resilio.com\/wp-content\/uploads\/2024\/05\/cropped-resilio-icon-digital-navy-background.png","contentUrl":"https:\/\/blog.resilio.com\/wp-content\/uploads\/2024\/05\/cropped-resilio-icon-digital-navy-background.png","width":512,"height":512,"caption":"Resilio"},"image":{"@id":"https:\/\/blog.resilio.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/resilio-inc.","https:\/\/youtube.com\/resilio"]},{"@type":"Person","@id":"https:\/\/blog.resilio.com\/blog\/#\/schema\/person\/e44f4c858e4528965ead5df70e0ae2a4","name":"wpengine","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.resilio.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d8770fe9625ca7c4601f13d9d0ab86565a6dac8cd6a77bfe2ada6d83c6837870?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d8770fe9625ca7c4601f13d9d0ab86565a6dac8cd6a77bfe2ada6d83c6837870?s=96&d=mm&r=g","caption":"wpengine"},"description":"This is the \"wpengine\" admin user that our staff uses to gain access to your admin area to provide support and troubleshooting. It can only be accessed by a button in our secure log that auto generates a password and dumps that password after the staff member has logged in. We have taken extreme measures to ensure that our own user is not going to be misused to harm any of our clients sites.","sameAs":["http:\/\/wpengine.com"],"url":"https:\/\/blog.resilio.com\/blog\/author\/wpengine"}]}},"_links":{"self":[{"href":"https:\/\/blog.resilio.com\/blog\/wp-json\/wp\/v2\/posts\/2877","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.resilio.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.resilio.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.resilio.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.resilio.com\/blog\/wp-json\/wp\/v2\/comments?post=2877"}],"version-history":[{"count":0,"href":"https:\/\/blog.resilio.com\/blog\/wp-json\/wp\/v2\/posts\/2877\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.resilio.com\/blog\/wp-json\/wp\/v2\/media?parent=2877"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.resilio.com\/blog\/wp-json\/wp\/v2\/categories?post=2877"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.resilio.com\/blog\/wp-json\/wp\/v2\/tags?post=2877"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}