Clustering
Clustering lets several web servers serve one Exponential site. The files under var/ (uploaded images and files, and the content caches) are kept on a shared NFS mount, and their metadata in a database table, so every server sees the same files at the same moment. A single server does not need clustering, whatever its size.
File handlers in Exponential 6
file.ini [ClusteringSettings] FileHandler decides how Exponential reads and writes the files of var/:
- eZFSFileHandler (shipped default): What it does: plain files on the local disk; Use it for: one web server
- eZDFSFileHandler: What it does: files on a shared NFS mount, their metadata in the ezdfsfile table, caches copied to each server's own disk; Use it for: several web servers
The database file handler eZDBFileHandler (files stored as BLOBs in the database) and the experimental eZFS2FileHandler were removed before Exponential 6; their pages here are kept as history.
Metadata backends of the DFS handler
- eZDFSFileHandlerMySQLiBackend: Database: MySQL, MariaDB; Provided by: the kernel (default)
- eZDFSFileHandlerPostgresqlBackend: Database: PostgreSQL; Provided by: the package se7enxweb/ezpostgresqlcluster (Composer suggests it)
- eZDFSFileHandlerOracleBackend: Database: Oracle; Provided by: the ezoracle extension
SQLite cannot hold the metadata of a cluster, and it cannot be the site database of several web servers either.
What is clustered
- Clustered: images and their aliases, binary and media files, and the content-related caches (view cache, template-block cache, the expiry and other caches the kernel writes through the cluster handler).
- Not clustered: the code, templates, designs, settings, the compiled templates and the INI cache. Each server keeps its own var/ directory and its own copy of the code; only the mount is shared.
The pages of this section
- Setting it up for an eZDFSFileHandler: the steps, from the table to the rewrite rules
- Cluster configuration settings: every key of file.ini and config.php
- Cluster file handlers: the handlers and their history
- Maintenance: purging, consistency checks, cronjobs
- Reverting a cluster setup and Uninstalling an eZDFS cluster
- Historical: Setting it up for an eZDBFileHandler, Uninstalling an eZDB cluster
Related pages
- Clustering and shared storage (operations guide with a checklist)
- Clustering and high availability
- file.ini
In this section
- Cluster File Handlers The cluster file handlers of Exponential 6 (eZFSFileHandler, eZDFSFileHandler) and the removed eZDB and eZFS2 handlers.
- Setting it up for an eZDBFileHandler Historical: the eZDB database file handler was removed; what to use in Exponential 6 and how to move an old eZDB site.
- Setting it up for an eZDFSFileHandler Set up a DFS cluster for Exponential 6 step by step: mount, tables, file.ini, clusterize, index_cluster.php and checks.
- Reverting a cluster setup Go back from a DFS cluster to plain files on one server in Exponential 6: copy the files back and switch the handler.
- Maintenance Maintaining a DFS cluster in Exponential 6: purging expired files, the cluster_maintenance cronjob part and consistency checks.
- Cluster Configuration Settings Every setting of a DFS cluster in Exponential 6: file.ini groups and the CLUSTER constants of config.php for index_cluster.php.
- Uninstalling an eZDB cluster Historical: leave an eZDB cluster on an old installation before moving the site to Exponential 6.
- Uninstalling an eZDFS cluster Remove the tables and files of a DFS cluster that Exponential 6 no longer uses.
Contributors
- Svitlana Shatokhina
- Ricardo Correia Maintainer
- Geir Arne Waaler Maintainer
- Andrea Melo Maintainer
- Bertrand Dunogier Maintainer
- Graham Brookins Updated Maintainer
Comments
Add a comment