Data Storage Solutions

From Server rent store
Jump to navigation Jump to search
  1. Data Storage Solutions

This article details the various data storage solutions employed by our MediaWiki installation, providing a comprehensive overview for server administrators and those interested in understanding the underlying infrastructure. Proper data storage is critical for the performance, reliability, and scalability of our wiki.

Overview

Our MediaWiki instance relies on a robust data storage system to manage all content, including page revisions, user data, and configuration files. We primarily utilize a relational database management system (RDBMS) for structured data and a file system for media files. Understanding the interaction between these components is vital for effective maintenance and troubleshooting. We will cover the specifics of our database configuration, file storage options, and backup strategies. See also Manual:Configuration settings for general configuration information.

Database Configuration

The core of our MediaWiki data storage lies in the database. We currently use MySQL/MariaDB as our RDBMS. The database stores all wiki content, user information, watchlists, categories, and other essential data. Proper database configuration is paramount to ensure optimal performance.

Database Server Specifications

The following table details the specifications of our primary database server:

Specification Value
Server OS Ubuntu Server 22.04 LTS
RDBMS MariaDB 10.11
CPU Intel Xeon Gold 6248R @ 3.00GHz (24 cores)
RAM 128 GB DDR4 ECC
Storage 2 x 1 TB NVMe SSD (RAID 1)

Database Configuration Parameters

Key database configuration parameters are outlined below. These settings are crucial for performance tuning. Refer to the Manual:Database page for more detailed explanations.

Parameter Value Description
`innodb_buffer_pool_size` 64G Allocates memory for caching table and index data.
`query_cache_size` 256M Caches the results of SELECT queries. (Note: deprecated in newer MariaDB versions, consider Performance Schema)
`max_connections` 500 Maximum number of concurrent connections to the database.
`wait_timeout` 600 Number of seconds the server waits for activity on a non-interactive connection before closing it.

Database Maintenance

Regular database maintenance is essential. This includes:

  • Daily backups (see Manual:Backups for details).
  • Weekly optimization of tables using `OPTIMIZE TABLE`.
  • Monitoring database performance using tools like `mysqladmin` or phpMyAdmin.
  • Regularly reviewing and analyzing slow query logs.

File Storage

MediaWiki stores uploaded files (images, documents, etc.) in the file system. This storage is separate from the database. We utilize a dedicated file server to handle this data. See Manual:Images for information about image handling in MediaWiki.

File Server Specifications

The following table outlines the specifications of our file server:

Specification Value
Server OS CentOS Stream 9
File System XFS
CPU AMD EPYC 7302P (16 cores)
RAM 64 GB DDR4 ECC
Storage 8 x 4 TB SATA HDD (RAID 6)

Storage Location

Uploaded files are stored in the `$wgUploadDirectory` path, which is configured in `LocalSettings.php`. By default, this is typically `/var/www/html/images`. Access permissions must be carefully managed to ensure security.

File System Considerations

  • **RAID Configuration:** We employ RAID 6 for data redundancy, allowing for the failure of two disks without data loss.
  • **File System Choice:** XFS is chosen for its scalability and performance with large files.
  • **Permissions:** The web server user (typically `www-data` or `apache`) requires read and write access to the upload directory. See Manual:Permissions for details.

Backup Strategy

A comprehensive backup strategy is crucial for disaster recovery. We employ a multi-layered approach:

  • **Database Backups:** Daily full database backups are performed using `mysqldump`. These backups are stored offsite.
  • **File System Backups:** Weekly full file system backups of the upload directory are performed using `rsync`. These backups are also stored offsite. Incremental backups are performed daily.
  • **Configuration File Backups:** `LocalSettings.php` and other critical configuration files are version controlled using Git and backed up regularly.
  • **Regular Testing:** Backup restoration procedures are tested regularly to ensure their effectiveness. See Manual:Backups for more detailed information.

Future Considerations

We are continuously evaluating new storage technologies to improve performance and scalability. Potential future considerations include:

  • **Solid-State Drives (SSDs):** Replacing HDDs in the file server with SSDs for faster access times.
  • **Cloud Storage:** Utilizing cloud storage solutions for offsite backups and potentially for serving media files.
  • **Database Clustering:** Implementing database clustering for increased availability and scalability.



Manual:Configuration settings Manual:Database Manual:Images Manual:Permissions Manual:Backups MySQL/MariaDB phpMyAdmin LocalSettings.php Git Help:Contents Special:Statistics Special:Search Help:Editing Help:Formatting MediaWiki Server administration Database administration


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?

⚠️ *Note: All benchmark scores are approximate and may vary based on configuration. Server availability subject to stock.* ⚠️