ZODB Replication Services
Replicating Mission Critical Data
The ZODB Replication Service (ZRS) family of products allows system administrators to replicate their ZODB databases to two or more secondary storage servers.
Doing so, ZRS reduces downtime from planned and unplanned outages by allowing administrators to:
- replicate mission critical data across two or more database servers,
- distribute storage clusters across a wide area network,
- quickly failover from a primary to a secondary storage server,
- manage and monitor the primary and secondary standby servers.
Back-up and Maintenance
If a primary storage server fails, a secondary storage can take its place. Applications transparently reconnect to the new ZRS server. Secondary servers can be taken off-line at any time to undergo repairs, backups, or system upgrades. When a secondary returns to service, it automatically resynchronizes with the primary server.
ZRS greatly simplifies routine maintenance. Primary service can be shifted to a secondary while the primary machine is being upgraded. ZRS also improves scalability since secondary servers provide additional read-only ZEO connections while maintaining their replication functions. ZEO client storages can thus be configured to connect to any available secondary, or load-balance among the available secondary ZRS servers. ZRS makes scheduled maintenance manageable, because primary service can be shifted to a secondary while the primary machine is being upgraded. ZRS also improves scalability since secondary servers can optionally provide additional read-only ZEO connections while maintaining their replication functions. ZEO client storages can thus be configured to connect to any available secondary, or load-balance among the available secondary ZRS servers.
Adding new secondary ZRS Servers to the system is a simple process of adding the machine description to a configuration file, and starting the secondary software on the new host. A recovery process is initiated on the newly commissioned secondary storage, ensuring that it is current with respect to the primary storage.
Technical Theory of Operation
In a typical ZRS installation, the normal ZEO storage server is augmented with software that replicates transaction information at the storage API layer. (Note: ZRS does not require the use of ZEO.) A ZRS system contains a single read-write primary server and any number of read-only secondary servers. When a transaction is committed at the primary server, the transaction is replicated to all available secondary servers. If a secondary server is taken off-line, it will perform an automatic recovery process when brought back on-line. New secondaries can be added to the system at any time to improve availability.
ZRS secondary servers provide read-only access to databases. For sites that do not update content frequently, ZEO secondary servers can handle all Zope traffic. For more dynamic sites, a secondary server can provide read-only service if a failure occurs. In either case, a secondary server can be switched to primary service if the primary were to fail. Only one primary server may operate at a time.
A ZRS storage, like a ZEO server, is a wrapper which does not actually store objects on disk directly. Instead, it delegates that work to a concrete storage such as FileStorage.