This article describes mandatory steps to be taken for a system setup prior to Fabric/TDM installation; such steps are:
Follow the below instructions to prepare Linux environment for Fabric/TDM installation.
Minimum hardware for each Linux execution server is as follows:
Modern Xeon Processor
16 Physical Cores
RAM:
For servers that run all components (Fabric, Cassandra & Kafka) - 64GB RAM.
For servers that run a single component (preferred method) - 32GB RAM.
Network: Minimum 1G per sec between the nodes and source databases.
Storage: The preferred storage is an attached local SSD's in a non-RAID configuration.
Note: If you must use a SAN, it must be flash disc based and in RAID-0. NAS are not certified.
Operating System: Red Hat/CentOS/Amazon Linux latest operating system and above, with the latest patches.
The following file server volumes must be made available:
Volume of 50G /opt/apps/fabric/ will also be used as the home directory for a Fabric user (owned by the Fabric user)
Volume of 100G* /opt/apps/fabric/storage (owned by the Fabric user)
Volume of 50G /opt/apps/cassandra/ (owned by the Cassandra user)
Volume of 2T* /opt/apps/cassandra/storage/data (owned by the Cassandra user)
Volume of 10% of data volume - /opt/apps/cassandra/storage/hints (owned by the Cassandra user)
Volume of 25% of data volume - /opt/apps/cassandra/storage/commitlog (owned by the Cassandra user)
Volume of 100G* /opt/apps/kafka/ (owned by the Kafka user)
Note: The file server must provide IOPS of at least 30K read & 10K write. The number of servers should be increased based on project scope and data retention requirements.
Create mandatory system users via the following commands:
On all servers
mkdir -p /opt/apps
chmod 755 /opt/apps
On each server, depending on the service you wish to install, run the appropriate useradd command. (on a single host setup, run all commands on the same server)
useradd -m -d /opt/apps/fabric -s /bin/bash fabric
useradd -m -d /opt/apps/cassandra -s /bin/bash cassandra
useradd -m -d /opt/apps/kafka -s /bin/bash kafka
Update the OS limits as follows:
echo "root soft nproc unlimited" >> /etc/security/limits.conf
echo "cassandra - nofile 100000" >> /etc/security/limits.conf
echo "cassandra - nproc 50000" >> /etc/security/limits.conf
echo "fabric - nofile 100000" >> /etc/security/limits.conf
echo "fabric - nproc 50000" >> /etc/security/limits.conf
echo "kafka hard nofile 100000" >> /etc/security/limits.conf
echo "kafka soft nofile 100000" >> /etc/security/limits.conf
echo "kafka - nproc 50000" >> /etc/security/limits.conf
echo "kafka soft nofile 100000" >> /etc/security/limits.conf
echo "kafka - nproc 50000" >> /etc/security/limits.conf
Update /etc/sysctl.conf:
echo "## Added by K2view" >> /etc/sysctl.conf
echo "vm.max_map_count = 1048575" >> /etc/sysctl.conf
echo "fs.file-max = 1000000" >> /etc/sysctl.conf
echo "net.ipv4.tcp_keepalive_time = 60" >> /etc/sysctl.conf
echo "net.ipv4.tcp_keepalive_probes = 3" >> /etc/sysctl.conf
echo "net.ipv4.tcp_keepalive_intvl = 10" >> /etc/sysctl.conf
sysctl -p
If the system is planned to work over SSL/TLS and need to be hardend,
OPENSSL is also required to be installed
On RHEL/CentOs 8 server only - add the following packages:
dnf install -y compat-openssl10 readline* python2 glibc-locale-source glibc-langpack-en
ln -s /usr/lib64/libreadline.so /usr/lib64/libreadline.so.6
Note: Running one of the following commands would indicate your Linux flavour:
rpm -E %{rhel}
hostnamectl
cat /etc/os-release
For a successful operation, the following ports should be open in the internal server firewall, and if required, also in the external firewall:
This article describes mandatory steps to be taken for a system setup prior to Fabric/TDM installation; such steps are:
Follow the below instructions to prepare Linux environment for Fabric/TDM installation.
Minimum hardware for each Linux execution server is as follows:
Modern Xeon Processor
16 Physical Cores
RAM:
For servers that run all components (Fabric, Cassandra & Kafka) - 64GB RAM.
For servers that run a single component (preferred method) - 32GB RAM.
Network: Minimum 1G per sec between the nodes and source databases.
Storage: The preferred storage is an attached local SSD's in a non-RAID configuration.
Note: If you must use a SAN, it must be flash disc based and in RAID-0. NAS are not certified.
Operating System: Red Hat/CentOS/Amazon Linux latest operating system and above, with the latest patches.
The following file server volumes must be made available:
Volume of 50G /opt/apps/fabric/ will also be used as the home directory for a Fabric user (owned by the Fabric user)
Volume of 100G* /opt/apps/fabric/storage (owned by the Fabric user)
Volume of 50G /opt/apps/cassandra/ (owned by the Cassandra user)
Volume of 2T* /opt/apps/cassandra/storage/data (owned by the Cassandra user)
Volume of 10% of data volume - /opt/apps/cassandra/storage/hints (owned by the Cassandra user)
Volume of 25% of data volume - /opt/apps/cassandra/storage/commitlog (owned by the Cassandra user)
Volume of 100G* /opt/apps/kafka/ (owned by the Kafka user)
Note: The file server must provide IOPS of at least 30K read & 10K write. The number of servers should be increased based on project scope and data retention requirements.
Create mandatory system users via the following commands:
On all servers
mkdir -p /opt/apps
chmod 755 /opt/apps
On each server, depending on the service you wish to install, run the appropriate useradd command. (on a single host setup, run all commands on the same server)
useradd -m -d /opt/apps/fabric -s /bin/bash fabric
useradd -m -d /opt/apps/cassandra -s /bin/bash cassandra
useradd -m -d /opt/apps/kafka -s /bin/bash kafka
Update the OS limits as follows:
echo "root soft nproc unlimited" >> /etc/security/limits.conf
echo "cassandra - nofile 100000" >> /etc/security/limits.conf
echo "cassandra - nproc 50000" >> /etc/security/limits.conf
echo "fabric - nofile 100000" >> /etc/security/limits.conf
echo "fabric - nproc 50000" >> /etc/security/limits.conf
echo "kafka hard nofile 100000" >> /etc/security/limits.conf
echo "kafka soft nofile 100000" >> /etc/security/limits.conf
echo "kafka - nproc 50000" >> /etc/security/limits.conf
echo "kafka soft nofile 100000" >> /etc/security/limits.conf
echo "kafka - nproc 50000" >> /etc/security/limits.conf
Update /etc/sysctl.conf:
echo "## Added by K2view" >> /etc/sysctl.conf
echo "vm.max_map_count = 1048575" >> /etc/sysctl.conf
echo "fs.file-max = 1000000" >> /etc/sysctl.conf
echo "net.ipv4.tcp_keepalive_time = 60" >> /etc/sysctl.conf
echo "net.ipv4.tcp_keepalive_probes = 3" >> /etc/sysctl.conf
echo "net.ipv4.tcp_keepalive_intvl = 10" >> /etc/sysctl.conf
sysctl -p
If the system is planned to work over SSL/TLS and need to be hardend,
OPENSSL is also required to be installed
On RHEL/CentOs 8 server only - add the following packages:
dnf install -y compat-openssl10 readline* python2 glibc-locale-source glibc-langpack-en
ln -s /usr/lib64/libreadline.so /usr/lib64/libreadline.so.6
Note: Running one of the following commands would indicate your Linux flavour:
rpm -E %{rhel}
hostnamectl
cat /etc/os-release
For a successful operation, the following ports should be open in the internal server firewall, and if required, also in the external firewall: