Building NUC Cluster
Automating private bare-metal NUC cluster setup with Cobbler
Abstract
Aside from the supercomputing centers, a small private cluster up to about 10-50 cores provides sufficient amount of resources for the majority of tasks for startup-sized enterprises. A 50-core cluster can occupy about 0.5 square meters of the desk space, consuming less than 500 watts under the load. This is comparable to the resources needed by a single desktop-sized workstation.
As a buiding block we will use Intel NUC, a 10x10x3-5 cm box equipped with 4 CPU cores, fast SSD drive up to 2TB, and up to 32 GB RAM. See Next Unit of Computing for more information.
Cobbler is a piece of software which will be used to push life into NUC’s bare-bones!
This material is intended to serve as guidelines for deployment, including network configuration, but omitting some software installation details. For the latter we will refer the reader to appropriate online tutorials.
Materials and equipment
The main equipment for setup is the following:
- NUCs, nuc7i3bnk
- Netgear switch, GS108Tv2
- MacBook with Internet enabled to make the initial kick-off (or equivalent)
Apart from the above hardware equipment, we also need some software, connectors, Ethernet wires, and most importantly patience and persistence.
Cobbler helps to automate OS installation (PXE-install) on either bare-metal or virtual host, providing possibility to configure each host according to it’s role in the future cluster. Cobbler is a mature product used by supercomputer centers (i.e. UPPMAX) and currently has the best support for CentOS.
Its key features are:
-
integration with DNSmasq, which is easy to configure and targeted for small networks. DNSmasq includes TFTP-server for delivering files during PXE booting, DHCP server for leasing IP addresses to the nodes, DNS-caching server for resolving names.
-
mirror a full Linux repo from the Internet repository and serve the packages with package manager (
yum
,apt
), not only speeding up the deployment and installation process, but also making things work in Internet-restricted places, like banks. -
More fine-grained provisioning to tune up the host to it’s role could be achieved by integrating with Ansible, pulling and applying playbooks (
ansible-pull
) from the GitHub, as exampled here
The full list of capabilities could be found at the official page:
Five Main Steps
Building a NUC cluster has the following five steps: