4.1. Hardware Requirements¶
MGM Node¶
MGM run heavily multithreaded code. It can be run on a single CPU core, we recommend at least 6-8 CPU cores for a production system. The memory consumption is tunable via thread pool settings and the number of cached namespace entries. The absolute minimum is 8 GB, we recommend at least 32 GB. The disk requirements for an MGM node are to store log files and file access reports. The required size depends essentially on the usage pattern of your EOS instance. HDDs are ok, however we experienced in production systems, that it is better to use SSDs since they don’t lead to hick-ups and D state processes during log-rotation.
Type | CPU | MEMORY | DISK |
---|---|---|---|
Minimum | 1 core | 8 GB | 8 GB HDD |
Recommended | 6-8 core | 32 GB | 128 GB HDD |
Performance | 32 core | 128 GB | 512 GB SSD |
Example configurations from large CERN deployments:
QDB Node¶
QDB nodes run RocksDB as a KV store. A QDB node requires IOPS for a cold start, so it should be deployed using SSDs/NVMEs. A rule of thumb is to calculate 0.1-0.2 GB of space per 1M namespace entries e.g. a namespace with up to 1 Billion entries should have 100-200GB of disk space. To run backups there is not much extra space needed. The memory footprint of the QDB daemon is tiny. RAM on a QDB node is useful to cache RocksDB files (RAFT journals) in the buffer cache. Ideally you have as much memory as the maximum expected volume of QDB.
CPU | MEMORY | DISK | |
---|---|---|---|
Minimum | 1 core | 8 GB | 0.1-0.2 GB/Million |
Performance | 4 core | DB size | 0.1-0.2 GB/Million |
To save resources you can run MGM and QDB nodes co-located (both daemons on one node) taking into account the disk and memory requirements of both daemons.
Example configurations from large CERN deployments:
FST Node¶
Diskspace in EOS is provided via mounted filesystems on FST nodes. The requirements to the mounted filesystem is to have extended attribute support! atime can be disabled.
### Supported Back-end Filesystems Examples of filesystems suitable as storage volumes:
- XFS on JBOD HDD (physical drive)
- XFS on RAID array (hardware or software RAID)
- XFS on RBD (virtual drive)
- CephFS, Lustre, GPFS
ZFS is possible, but not recommended due to worse random IO performance.
For installations with very few physical nodes, we recommend to use a conventional RAID6 configuration.
If there is a sufficient number of nodes available (8), we recommend to use EOS erasure coding to provide high-availability and durability of data.
If you run EOS in an OpenStack environment, you might use virtual drives or a distributed filesystem underneath. Be aware, that virtualized setups might show unexpected intrinsic IO bottlenecks (IOPS,Bandwidth).
Hardware¶
For JBOD storage we recommend 1GB of RAM per disk. The memory serves mainly to improve performance using the LINUX buffer cache.
The CPU usage on FST nodes is low, if replication is used. For erasure coding a modern CPU with SIMD extension should be available.
Example configuration of a small FST with replication and JBODs:
Example configuration of a large FST for erasure-coding and JBODs:
4.2. Installation¶
EOS is usually installed from package repositories. For installation from sources, follow Developing EOS.
Supported Platforms¶
EOS for Client+Server¶
The following platforms are supported to run EOS client and server: * CentOS 7 * Alma 8 * Alma 9 * Fedora Core 38
RPM Repository Configuration¶
You have to configure a dependency repository and either the tag or commit repository (master branch).
Dependency Repository for Tag and Commit Releases
Platform | Setup |
---|---|
CentOS7 | yum-config-manager --add-repo "https://storage-ci.web.cern.ch/storage-ci/eos/diopside-depend/el-7/x86_64/" |
Alma 8 | yum-config-manager --add-repo "https://storage-ci.web.cern.ch/storage-ci/eos/diopside-depend/el-8/x86_64/" |
Alma 9 | yum-config-manager --add-repo "https://storage-ci.web.cern.ch/storage-ci/eos/diopside-depend/el-9/x86_64/" |
Fedora 38 | https://storage-ci.web.cern.ch/storage-ci/eos/diopside-depend/fc-38/ |
Tag Releases
Platform | Setup |
---|---|
CentOS7 | yum-config-manager --add-repo "https://storage-ci.web.cern.ch/storage-ci/eos/diopside/tag/testing/el-7/x86_64/" |
Alma 8 | yum-config-manager --add-repo "https://storage-ci.web.cern.ch/storage-ci/eos/diopside/tag/testing/el-8/x86_64/" |
Alma 9 | yum-config-manager --add-repo "https://storage-ci.web.cern.ch/storage-ci/eos/diopside/tag/testing/el-9/x86_64/" |
Fedora 38 | https://storage-ci.web.cern.ch/storage-ci/eos/diopside/tag/testing/fc-38/x86_64/ |
Commit Releases
Platform | Setup |
---|---|
CentOS7 | yum-config-manager --add-repo "https://storage-ci.web.cern.ch/storage-ci/eos/diopside/commit/el-7/x86_64/" |
Alma 8 | yum-config-manager --add-repo "https://storage-ci.web.cern.ch/storage-ci/eos/diopside/commit/el-8/x86_64/" |
Alma 9 | yum-config-manager --add-repo "https://storage-ci.web.cern.ch/storage-ci/eos/diopside/commit/el-9/x86_64/" |
Fedora 38 | https://storage-ci.web.cern.ch/storage-ci/eos/diopside/tag/testing/fc-38/x86_64/ |
Client+FUSE RPM Installation¶
yum install eos-client eos-fusex
Server RPM Installation¶
yum install eos-server