4.1. Hardware Requirements

../_images/cerncc.jpg

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).

../_images/yum.jpg

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