Story #1759
Updated by dkliban@redhat.com over 8 years ago
Pulp users often want to make content available from multiple web servers. This is beneficial in situations where content needs to be highly available or the same content needs to be available in different geographic locations. +*Summary*+ The rsync distributor enables the user to publish a portion or all of the content units associated with a repository to a remote server. Each plugin has its own implementation of the rsync distributor. The RPM Even though the rsync distributor has to can be used by itself, it is most useful when used in conjunction with yum_distributor as its predistributor. other distributors. When used in conjunction with other distributors, rsync can be both a predistributor or postdistributor. The predistributor is used to perform the initial publish of a repository. The postdistributor performs the second phase of the publish. *+How rsync postdistributor works for RPM plugin+* The rsync publish consists of 4 steps: content units query, content units publish, symlinks to content units publish, extra data publish. The only predistributor supported by the RPM rsync postdistributor is the yum_distributor. When performing a publish with the rsync postdistributor, only content that has already been published by the yum_distributor is published. +Units selected for publish+ By default, rsync distributor publishes in fast-forward mode. In this mode, only content units that were associated with the repository after the last rsync publish and before the last yum_distributor publish are selected for publishing. If the yum_distributor performed a non-fastforward publish, the rsync distributor selects all units associated with the repository before the yum_distributor publish. If the previous publish with the rsync distributor failed, the rsync distributor selects all units ssociated with the repository before the yum_distributor's last publish date. +Symlinks are created+ Once units are selected for transfer to the remote server, a relative symlink is created for each unit inside the worker's working directory. E.g. /var/cache/pulp/worker1/taskuuid/.relative +Content is rsynced to the remote server+ Files from /var/lib/content backing content units selected earlier are transferred to the remote server. Each type of unit is transferred to /<remote_root>/content/origin/<type>/ directory on the remote server. +Symlinks rsynced to the remote server+ All the symlinks from previous step are transferred to the remote server. +Repo metadata rsynced to the remote server+ The content of repodata directory is transferred to the remote server. *+How rsync postdistributor works for Docker plugin+*