Prerequisites
When installing simplyblock control planes and storage planes, a number of prerequisites are important to understand.
Simplyblock uses Docker Swarm for the control plane cluster. In case of a bare metal or virtualized installation, it will also use Docker Swarm for the storage plane. Hence, Docker has to be installed.
Furthermore, simplyblock requires installing the sbctl
command line tool. This tool is written in
Python. Therefore, Python (3.5 or later) has to be installed. Likewise, pip, the Python package manager, has to be
installed with version 20 or later.
To install sbctl
run:
sudo pip install sbctl --upgrade
Node Sizing
Simplyblock has certain requirements in terms of CPU, RAM, and storage. See the specific Node Sizing documentation to learn more.
Node Instance Type
Simplyblock recommends pre-tested and verified instance types. Those instance types are:
- i3en.6xlarge
- i4i.8xlarge
Network Configuration
Simplyblock requires a number of network ports to be available from different networks. The configuration of the required network ports are provided in the installation documentation.
Additionally, IPv6 must be disabled on all nodes running simplyblock.
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
Google Compute Engine Networks
Specifically for GCP, simplyblock strongly advises using individual networks for the control plane and storage plane.
For access to the Cluster Management API, simplyblock recommends using an GCP load balancer as a front instead of making the API available directly.
Network Ports for Control Plane
Service | Direction | Source / Target Network | Port | Protocol(s) |
---|---|---|---|---|
ICMP | ingress | control | - | ICMP |
Cluster API | ingress | storage, control, admin | 80 | TCP |
SSH | ingress | storage, control, admin | 22 | TCP |
Greylog | ingress | storage, control | 12201 | TCP / UDP |
Greylog | ingress | storage, control | 12202 | TCP |
Greylog | ingress | storage, control | 13201 | TCP |
Greylog | ingress | storage, control | 13202 | TCP |
Docker Daemon Remote Access | ingress | storage, control | 2375 | TCP |
Docker Swarm Remote Access | ingress | storage, control | 2377 | TCP |
Docker Overlay Network | ingress | storage, control | 4789 | UDP |
Docker Network Discovery | ingress | storage, control | 7946 | TCP / UDP |
FoundationDB | ingress | storage, control | 4500 | TCP |
Prometheus | ingress | storage, control | 9100 | TCP |
Cluster Control | egress | storage, control | 8080-8890 | TCP |
spdk-http-proxy | egress | storage, control | 5000 | TCP |
Docker Daemon Remote Access | egress | storage, control | 2375 | TCP |
Docker Swarm Remote Access | egress | storage, control | 2377 | TCP |
Docker Overlay Network | egress | storage, control | 4789 | UDP |
Docker Network Discovery | egress | storage, control | 7946 | TCP / UDP |
Network Ports for Storage Plane
Service | Direction | Source / Target Network | Port(s) | Protocol(s) |
---|---|---|---|---|
ICMP | ingress | control | - | ICMP |
Storage node API | ingress | storage | 5000 | TCP |
spdk-http-proxy | ingress | storage, control | 8080-8180 | TCP |
hublvol-nvmf-subsys-port | ingress | storage, control | 9030-9059 | TCP |
internal-nvmf-subsys-port | ingress | storage, control | 9060-9099 | TCP |
lvol-nvmf-subsys-port | ingress | storage, control | 9100-9200 | TCP |
SSH | ingress | storage, control, admin | 22 | TCP |
Docker Daemon Remote Access | ingress | storage, control | 2375 | TCP |
Docker Swarm Remote Access | ingress | storage, control | 2377 | TCP |
FoundationDB | ingress | control | 4500 | TCP |
Docker Overlay Network | ingress | storage, control | 4789 | UDP |
Docker Network Discovery | ingress | storage, control | 7946 | TCP / UDP |
Greylog | ingress | control | 12202 | TCP |
FoundationDB | egress | storage | 4500 | TCP |
Docker Daemon Remote Access | egress | storage, control | 2375 | TCP |
Docker Swarm Remote Access | egress | storage, control | 2377 | TCP |
Docker Overlay Network | egress | storage, control | 4789 | UDP |
Docker Network Discovery | egress | storage, control | 7946 | TCP / UDP |
Greylog | egress | control | 12202 | TCP |
Storage Configuration
Simplyblock has certain requirements in terms of storage. While the most important facts are provided in the installation section, here are things to consider.
Root Volume
The volume mounted as the root directory has to provide at least 35GiB of free capacity. More free space is recommended, especially for control plane nodes, which collect logs and the cluster state.