Disaster Recovery Planning
- Disaster Recovery Planning
This article details disaster recovery (DR) planning for a MediaWiki 1.40 installation. A robust DR plan is crucial for minimizing downtime and data loss in the event of a server failure, natural disaster, or security breach. This guide is aimed at system administrators and server engineers responsible for maintaining a MediaWiki deployment.
== Understanding Disaster Recovery
Disaster recovery is the process of restoring critical infrastructure and operations after a disruptive event. For MediaWiki, this involves restoring the wiki software, database, and uploaded files. A well-defined DR plan includes preventative measures, backup strategies, and restoration procedures. It is distinct from Business Continuity Planning, which focuses on maintaining essential business functions during a disruption, whereas DR focuses on *restoring* those functions.
== Identifying Critical Components
Before developing a DR plan, identify the crucial components of your MediaWiki installation. These typically include:
- Wiki Software: The MediaWiki core files and extensions.
- Database: Containing all wiki content (pages, revisions, user data, etc.). Typically MySQL, MariaDB, or PostgreSQL.
- Uploaded Files: Images, documents, and other media stored in the `images` directory.
- Configuration Files: `LocalSettings.php` and other configuration files essential for wiki operation.
- Virtual Machine/Server Images: If using virtualized environments like VMware or VirtualBox.
- Operating System: The underlying OS (e.g., Linux, Windows Server) upon which MediaWiki runs.
== Backup Strategies
Regular backups are the cornerstone of any DR plan. Several backup strategies can be employed:
- **Full Backups:** Copies of all data. Time-consuming but simplest to restore from.
- **Incremental Backups:** Copies only the data that has changed since the last full or incremental backup. Faster than full backups, but restoration requires all incremental backups *and* the last full backup.
- **Differential Backups:** Copies all data that has changed since the last *full* backup. Faster than full backups, but restoration requires only the last full backup and the latest differential backup.
- **Database Dumps:** Using tools like `mysqldump` (for MySQL/MariaDB) or `pg_dump` (for PostgreSQL) to create logical backups of the database.
- **File System Snapshots:** Creating point-in-time copies of the entire file system. Fast and efficient, but requires sufficient storage space.
Here's a sample backup schedule:
Backup Type | Frequency | Retention Period |
---|---|---|
Full Backup | Weekly | 4 Weeks |
Differential Backup | Daily | 7 Days |
Database Dump | Hourly | 24 Hours |
== Restoration Procedures
Detailed restoration procedures are essential. These procedures should cover:
1. **Server Rebuild:** Recreating the server environment (OS, web server, PHP, etc.). 2. **Database Restoration:** Restoring the database from the latest backup. 3. **Wiki Software Restoration:** Copying the MediaWiki files to the web server directory. 4. **Configuration Restoration:** Restoring `LocalSettings.php` and other configuration files. 5. **Uploaded Files Restoration:** Restoring the `images` directory. 6. **Verification:** Confirming that the wiki is functioning correctly after restoration.
== Hardware Considerations for DR
Having redundant hardware is a key element of a comprehensive DR plan.
Component | Primary Configuration | Secondary/DR Configuration |
---|---|---|
Web Server | Dual Xeon Gold 6248R, 128GB RAM, RAID 10 SSD | Single Xeon Silver 4210, 64GB RAM, RAID 1 SSD |
Database Server | Dual Intel Xeon Platinum 8280, 256GB RAM, NVMe SSD RAID 1 | Single Intel Xeon Gold 6248R, 128GB RAM, NVMe SSD RAID 1 |
Storage | 10TB RAID 6 NAS | 5TB RAID 5 NAS (Replicated Data) |
== Geographic Redundancy
For maximum protection, consider geographically separating your primary and DR environments. This protects against regional disasters. This often involves utilizing a Cloud provider like Amazon Web Services, Google Cloud Platform, or Microsoft Azure.
== Testing and Documentation
Regularly test your DR plan to ensure its effectiveness. Document all procedures meticulously. Here's a checklist for testing:
Test Item | Frequency | Pass/Fail |
---|---|---|
Full System Restore | Annually | |
Database Restore | Quarterly | |
Backup Verification | Weekly | |
Failover to DR Site | Semi-Annually |
== Advanced Considerations
- **Replication:** Implementing database replication to a secondary server for near-real-time data synchronization. Consider Semi-synchronous replication for increased data safety.
- **Automated Failover:** Using tools to automatically switch to the DR site in the event of a primary site failure.
- **Version Control:** Using a version control system (e.g., Git) for `LocalSettings.php` and extension configurations.
- **Monitoring:** Implementing monitoring tools to detect server failures and trigger DR procedures. Nagios and Zabbix are popular options.
- **Security:** Ensuring the DR environment is as secure as the primary environment.
== Resources
- [MediaWiki Documentation](https://www.mediawiki.org/wiki/Manual:Configuration_settings)
- [MySQL Documentation](https://dev.mysql.com/doc/)
- [PostgreSQL Documentation](https://www.postgresql.org/docs/)
Help:Contents
Manual:Configuration_settings
Manual:Database_setup
Manual:Extensions
Help:Images
Help:Linking
Help:Templates
Special:AllPages
Manual:Upgrading
Manual:Command_line
Manual:Security_best_practices
Manual:Configuration_form
Manual:Admin_tasks
Manual:API
Manual:Shortcuts
Special:Search
Help:Editing
Intel-Based Server Configurations
Configuration | Specifications | Benchmark |
---|---|---|
Core i7-6700K/7700 Server | 64 GB DDR4, NVMe SSD 2 x 512 GB | CPU Benchmark: 8046 |
Core i7-8700 Server | 64 GB DDR4, NVMe SSD 2x1 TB | CPU Benchmark: 13124 |
Core i9-9900K Server | 128 GB DDR4, NVMe SSD 2 x 1 TB | CPU Benchmark: 49969 |
Core i9-13900 Server (64GB) | 64 GB RAM, 2x2 TB NVMe SSD | |
Core i9-13900 Server (128GB) | 128 GB RAM, 2x2 TB NVMe SSD | |
Core i5-13500 Server (64GB) | 64 GB RAM, 2x500 GB NVMe SSD | |
Core i5-13500 Server (128GB) | 128 GB RAM, 2x500 GB NVMe SSD | |
Core i5-13500 Workstation | 64 GB DDR5 RAM, 2 NVMe SSD, NVIDIA RTX 4000 |
AMD-Based Server Configurations
Configuration | Specifications | Benchmark |
---|---|---|
Ryzen 5 3600 Server | 64 GB RAM, 2x480 GB NVMe | CPU Benchmark: 17849 |
Ryzen 7 7700 Server | 64 GB DDR5 RAM, 2x1 TB NVMe | CPU Benchmark: 35224 |
Ryzen 9 5950X Server | 128 GB RAM, 2x4 TB NVMe | CPU Benchmark: 46045 |
Ryzen 9 7950X Server | 128 GB DDR5 ECC, 2x2 TB NVMe | CPU Benchmark: 63561 |
EPYC 7502P Server (128GB/1TB) | 128 GB RAM, 1 TB NVMe | CPU Benchmark: 48021 |
EPYC 7502P Server (128GB/2TB) | 128 GB RAM, 2 TB NVMe | CPU Benchmark: 48021 |
EPYC 7502P Server (128GB/4TB) | 128 GB RAM, 2x2 TB NVMe | CPU Benchmark: 48021 |
EPYC 7502P Server (256GB/1TB) | 256 GB RAM, 1 TB NVMe | CPU Benchmark: 48021 |
EPYC 7502P Server (256GB/4TB) | 256 GB RAM, 2x2 TB NVMe | CPU Benchmark: 48021 |
EPYC 9454P Server | 256 GB RAM, 2x2 TB NVMe |
Order Your Dedicated Server
Configure and order your ideal server configuration
Need Assistance?
- Telegram: @powervps Servers at a discounted price
⚠️ *Note: All benchmark scores are approximate and may vary based on configuration. Server availability subject to stock.* ⚠️