Line 1: |
Line 1: |
− | == Summary == | + | == Background == |
| | | |
− | This page is intended to describe the process of offline synchronization between Sugar Network servers. The synchronization process means making data changes, happened on servers, common for all of them. | + | This page is intended to describe the process of offline synchronization between school servers in [[#Targeting_environment|targeting]], or, similar environments. Using [[#Recipes|predefined recipes]], it should be possible to synchronize the complete set of [[#Synchronization_content|content]] to let school servers, and clients they serve, behave in regular mode. |
| + | |
| + | === Targeting environment === |
| + | |
| + | The standard targeting environment, final environment might be similar, assumes: |
| + | |
| + | * Particular deployment, e.g., a school, without Internet access. |
| + | * Lack of technical personal when in most cases only not IT skilled teachers have access to school servers. |
| + | * Lack of dedicated hardware for school servers, server side software will be launched on teacher's XO laptop (XO-1.5 is preferred). |
| + | * School server's client connected to school server XO using Ad-hoc wireless connection. |
| + | * The only way to synchronize school servers with each other and with the master one, is a [[wikipedia:Sneakernet|sneakernet]]. |
| + | |
| + | === Synchronization content === |
| + | |
| + | The synchronization content includes all data that needs to be accessible from a school server to support complete life cycle of served clients. These are: |
| + | |
| + | * Base software updates to proceed unattended updates on client side. |
| + | * Optional upload of [[Platform_Team/Usage_Statistics|usage statistics]]. |
| + | * [[Sugar Network]] content, intended t cover all other needs. |
| + | |
| + | === Objects === |
| + | |
| + | What kind of objects involved to the process: |
| + | |
| + | * '''Master server'''<br>Main Sugar Network server accessible via the Internet. Each Master server has public API url. This tutorial is using http://api-testing.network.sugarlabs.org to refer to testing Sugar Network Master launched on Sugar Labs server. |
| + | |
| + | * '''Node servers'''<br>Local Sugar Network servers that are intended to be distributed versions of the Master. This tutorial assumes that Nodes don't have direct connection to the Master, and the only one way to synchronize data is the [[wikipedia:Sneakernet|Sneakernet]]. |
| + | |
| + | * '''Database media'''<br>Node servers might store database on removable devices (makes sense if Nodes are XO laptops), in that case, such devices should have a magic file, named {{Code|.sugar-network}}, in the root directory on removable device. Having this magic file will let Node's software auto detect recently plugged removable device as a Database media to start behaving correspondingly. |
| + | |
| + | * '''Synchronization media'''<br>Removable media device, e.g., USB stick or SD card that will be used to transfer Packets between servers. Synchronization media should have a magic file, named {{Code|.sugar-network-sync}}, in the root directory. Having this file will let Node's software start synchronization process automatically after plugging media. |
| + | |
| + | * '''Synchronization packets'''<br>Regular files that contain synchronization data placed to Synchronization media. Packet files are [[wikipedia:Tar_(file_format)|tarballs]] with {{Code|.packet}} file name suffix. |
| | | |
| == Recipes == | | == Recipes == |