Hadoop clusters are designed to store and analyze extremely large amounts of unstructured data in distributed computing environments. Sahara enables you to boot Hadoop clusters in both virtual and bare metal environments. When Booting Hadoop clusters with Sahara on bare metal servers, you benefit from the bare metal performance with self-service resource provisioning.
$ qemu-img convert -O raw image-converted.qcow image-converted-from-qcow2.raw
- Mount the raw image to the system.
- chroot to the mounted directory and remove the installed grub.
- Build grub2 from sources and install to /usr/sbin.
- In /etc/sysconfig/selinux, disable selinux SELINUX=disabled
- In the configuration file, set onboot=yes and BOOTPROTO=dhcp for every interface.
- Add the configuration files for all interfaces in the /etc/sysconfig/network-scripts directory.
$ ironic node-create -d pxe_ipmitool \
$ -i ipmi_address=$IP_ADDRESS \
$ -i ipmi_username=$USERNAME \
$ -i ipmi_password=$PASSWORD \
$ -i pxe_deploy_kernel=$deploy.kernel.id \
$ -i pxe_deploy_ramdisk=$deploy.ramfs.id
$ ironic port-create -n $NODE_ID -a "$MAC_eth1"
- Add the hardware information:
$ ironic node-update $NODE_ID add properties/cpus=$CPU \
$ properties/memory_mb=$RAM properties/local_gb=$ROOT_GB \
$ properties/cpu_arch='x86_64'
$ nova flavor-create baremetal auto $RAM $DISK_GB $CPU
$ nova flavor-key baremetal set cpu_arch=x86_64
The vCPU ad vRAM parameters (x86_64 in the example) will not be applied because the operating system has access to the real CPU cores and RAM. Only the root disk parameter is applied, and Ironic will resize the root disk partition. Ironic supports only a flat network topology for the bare metal provisioning, you must use Neutron to configure it.
Launch your Sahara cluster on Ironic from the cluster template:
Log in to Horizon.
Go to Data Processing > Cluster Templates.
Click Launch Cluster.
The cluster provisioning time is slower compared to the cluster provisioning of the same size that runs on VMs. Ironic does real hardware reports which is time consuming, and the whole root disk is filled from /dev/zero for security reasons.