High-performance computing on Microsoft Azure: GlusterFS

Similar documents
Deploy Agisoft PhotoScan on Azure

OnCommand Cloud Manager 3.2 Deploying and Managing ONTAP Cloud Systems

USING NGC WITH AZURE. DU _v01 September Setup Guide

MarkLogic Server. MarkLogic Server on Microsoft Azure Guide. MarkLogic 9 January, 2018

High performance computing on Azure. Migration guide for A8 to A11 virtual machines. By KR Kandavel AzureCAT

Precursor Steps & Storage Node

Tanium IaaS Cloud Solution Deployment Guide for Microsoft Azure

Cloud Operations Using Microsoft Azure. Nikhil Shampur

Ansible Tower Quick Setup Guide

Deploying enterprise applications on Dell Hybrid Cloud System for Microsoft Cloud Platform System Standard

Course AZ-100T01-A: Manage Subscriptions and Resources

Using PCF Ops Manager to Deploy Hyperledger Fabric

Cloudera s Enterprise Data Hub on the Amazon Web Services Cloud: Quick Start Reference Deployment October 2014

If you had a freshly generated image from an LCI instructor, make sure to set the hostnames again:

OpenNebula on VMware: Cloud Reference Architecture

Developing Microsoft Azure Solutions (70-532) Syllabus

Geant4 on Azure using Docker containers

Hyperledger Fabric Single Member Blockchain in Azure Marketplace Christine Avanessians Senior Program Manager

NexentaStor VVOL

Course 20533B: Implementing Microsoft Azure Infrastructure Solutions

Zadara Enterprise Storage in

AltaVault Cloud Integrated Storage Installation and Service Guide for Cloud Appliances

HDI+Talena Resources Deployment Guide. J u n e

Vertica on Microsoft Azure HPE Vertica Analytic Database. Software Version: 7.2.x

Xcalar Installation Guide

Quick Start Guide for Intel FPGA Development Tools on the Microsoft* Azure* Platform

Microsoft Azure Architect Technologies (beta)

Installing and Configuring Oracle VM on Oracle Cloud Infrastructure ORACLE WHITE PAPER NOVEMBER 2017

Example Azure Implementation for Government Agencies. Indirect tax-filing system. By Alok Jain Azure Customer Advisory Team (AzureCAT)

Course Outline. Module 1: Microsoft Azure for AWS Experts Course Overview

EDB Postgres Enterprise Manager EDB Ark Management Features Guide

Parallel Virtual File Systems on Microsoft Azure

How-to Guide: Tenable Nessus for Microsoft Azure. Last Updated: April 03, 2018

GlusterFS and RHS for SysAdmins

Configuring EMC Isilon

Introduction To Gluster. Thomas Cameron RHCA, RHCSS, RHCDS, RHCVA, RHCX Chief Architect, Central US Red

SPLUNK ENTERPRISE AND ECS TECHNICAL SOLUTION GUIDE

AZURE CONTAINER INSTANCES

Hedvig as backup target for Veeam

Azure Development Course

HPC File Systems and Storage. Irena Johnson University of Notre Dame Center for Research Computing

We are ready to serve Latest IT Trends, Are you ready to learn? New Batches Info

Zenoss Resource Manager Upgrade Guide

Copyright 2015 EMC Corporation. All rights reserved. Published in the USA.

Installing and Configuring Oracle VM on Oracle Cloud Infrastructure O R A C L E W H I T E P A P E R D E C E M B E R

SERVERS TO SERVICES HOW MICROSOFT AZURE CAN MODERNISE YOUR IT INFRASTRUCTURE. Joey Lau 9 November 2017

Microsoft Azure for AWS Experts

Data Movement & Tiering with DMF 7

Exam : Implementing Microsoft Azure Infrastructure Solutions

Surveillance Dell EMC Isilon Storage with Video Management Systems

Discover CephFS TECHNICAL REPORT SPONSORED BY. image vlastas, 123RF.com

Azure Marketplace Getting Started Tutorial. Community Edition

Create and Configure a VM in the Azure Step by Step Basic Lab (V2.0)

FORTINET DOCUMENT LIBRARY FORTINET VIDEO GUIDE FORTINET BLOG CUSTOMER SERVICE & SUPPORT FORTIGATE COOKBOOK FORTINET TRAINING SERVICES

OBTAINING AN ACCOUNT:

Deploying and Provisioning the Barracuda Web Application Firewall in the New Microsoft Azure Management Portal

Advanced Architectures for Oracle Database on Amazon EC2

Administrator s Guide. StorageX 8.0

Deploying and Using ArcGIS Enterprise in the Cloud. Bill Major

70-532: Developing Microsoft Azure Solutions

Deploying Actifio Sky in the Microsoft Azure Cloud

Azure Learning Circles

Dell EMC Avamar Virtual Edition for Azure

EASYLAMP UBUNTU V1.0 DOCUMENT OWNER: OUDHUIS, JONATHAN INGRAM MICRO CLOUD EUROPE

USING NGC WITH GOOGLE CLOUD PLATFORM

Get your own Galaxy within minutes

EASYLAMP REDHAT V1.0 DOCUMENT OWNER: OUDHUIS, JONATHAN INGRAM MICRO CLOUD EUROPE

Zenoss Resource Manager Upgrade Guide

20532D: Developing Microsoft Azure Solutions

LoadMaster for Azure Resource Manager. Feature Description

Building a Modular and Scalable Virtual Network Architecture with Amazon VPC

KubeNow Documentation

Swift Web Applications on the AWS Cloud

Lenovo SAN Manager. Rapid Tier and Read Cache. David Vestal, WW Product Marketing. June Lenovo.com/systems

How-to Guide: Tenable.io for Microsoft Azure. Last Updated: November 16, 2018

Techno Expert Solutions

Testbed-12 TEAM Engine Virtualization User Guide

Cloudera s Enterprise Data Hub on the AWS Cloud

OpenNebula 4.4 Quickstart Ubuntu and KVM. OpenNebula Project

Mesh and hub-and-spoke networks on Azure

CloudMan cloud clusters for everyone

Control Center Planning Guide

Implementing Microsoft Azure Infrastructure Solutions (20533)

The Why and How of HPC-Cloud Hybrids with OpenStack

Oracle Linux 7: System Administration Ed 1

Puppet on the AWS Cloud

Deploying Apache Cassandra on Oracle Cloud Infrastructure Quick Start White Paper October 2016 Version 1.0

SUG Breakout Session: OSC OnDemand App Development

Setting Up the Dell DR Series System on Veeam

Developing Microsoft Azure Solutions (70-532) Syllabus

Veeam Cloud Connect. Version 8.0. Administrator Guide

EMC Solution for VIEVU Body Worn Cameras

Data Management. Parallel Filesystems. Dr David Henty HPC Training and Support

NEW ARCHITECTURES FOR APACHE SPARK TM AND BIG DATA WHITE PAPER NOVEMBER 2017

The Future of Storage

40390: Microsoft Azure for AWS Experts

EDB Postgres Enterprise Manager EDB Ark Management Features Guide

OpenNebula 4.12 Quickstart Ubuntu and KVM

SAP NetWeaver on IBM Cloud Infrastructure Quick Reference Guide Microsoft Windows. December 2017 V2.0

How to Deploy the Barracuda Security Gateway in the New Microsoft Azure Management Portal

Transcription:

High-performance computing on Microsoft Azure: GlusterFS Introduction to creating an Azure HPC cluster and HPC storage Azure Customer Advisory Team (AzureCAT) April 2018

Contents Introduction... 3 Quick start... 4 Deployment process... 5 Tools in the repo... 6 Storage deployment... 7 Compute deployment... 8 Credential configuration... 9 Installation... 9 Learn more... 10 2018 Microsoft Corporation. This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY. The names of actual companies and products mentioned herein may be the trademarks of their respective owners. 2

Introduction With large datasets, you need a simple and flexible storage solution. Getting started with highperformance computing (HPC) doesn t have to be confusing. A cloud-based HPC environment offers advantages that traditional HPC setups can t match, including the ability to create and destroy the environment on demand quickly, completely, and easily. This article and the resources in the accompanying GitHub repository remove the guesswork, so you can implement HPC on Microsoft Azure infrastructure as a service (IaaS) with four types of storage and the GlusterFS file system (GFS). The scripts and templates in the GitHub repository are designed to be a first step in exploring a cloud-based HPC storage and compute architecture. Figure 1 shows the deployed architecture. Although many different configurations are possible, this deployment creates an RDMAconnected compute cluster to which the GlusterFS file system is attached. Figure 1. HPC architecture on Azure with GlusterFS Our test setup was designed for simplicity and performance, but consider the following: You might be able to get the required performance from shared storage GlusterFS using Premium disks. If the performance is not adequate, you can also use local storage on each compute node as a burst buffer. For long-term storage, you can also use the multi-tiering feature of GlusterFS with a Standard disk pool using 4 TB-capacity disks. GlusterFS supports both the Windows and Linux clients if needed that is, Network File System (NFS) and Common Internet File System (CIFS). To get a cost estimate for this architecture, use the Azure pricing calculator. 3

Quick start To get started quickly, here are all the steps you need to deploy an InfiniBand-enabled compute cluster with a GlusterFS file server attached and mounted. The rest of this article describes these steps in more detail. 1. Make sure you have sufficient quota for H-series (compute cluster) and F-series (jumpbox and storage cluster) virtual machines. 2. Open the cloud shell from the Azure portal. 3. Clone the repository: git clone https://github.com/az-cat/hpc-az-gfs 4. Update credentials.yaml with the credentials needed by Batch Shipyard Remote Filesystem to access Azure resources. 5. From inside the cloned repository folder, run:./create_cluster [Resource Group name] [Compute nodes] For example:./create_cluster.sh my-test-rg01 3 6. When the deployment finishes, note the SSH string. You need this to access your cluster. 7. Change directories to the folder that was created for your resource group name, and then run the SSH string. For example: ssh -i id_rsa_batchshipyardkey azureuser@23.45.67.89 8. To see the storage available on the jumpbox, log on to the jumpbox, and then run: df -h 9. To see the compute node IP addresses, run: cat bin/hostips 10. Connect via SSH to the first IP address listed; for example: ssh 10.0.0.6 Where 10.0.0.6 represents the first IP address in the output list from the previous command. The compute nodes are Azure H16R-size virtual machines that are connected via InfiniBand for low-latency communication. 4

Deployment process The deployed architecture includes GlusterFS, a free, scalable, open source distributed file system specifically optimized for cloud storage. You can create large, distributed storage solutions for media streaming, data analysis, and other data-rich and bandwidth-intensive tasks. The GlusterFS architecture includes a server node and a client node in a cluster. GlusterFS stores and locates data using an elastic hash algorithm. Servers can be added or removed whenever required. This deployment uses four different types of storage: Physically attached storage is used as a burst buffer and is located at /mnt/resource on each node. A NFS shared from the jumpbox and located at /mnt/scratch is created by the /scripts/hnsetup_gfs.sh script: sudo mount -t cifs //mystorageaccount.file.core.windows.net/mystorageshare /mnt/mymountdirectory -o vers=3.0,username=mystorageaccount,password=mystorageaccountkey,dir_mode=0777,fi le_mode=0777 #Setup the NFS server, mount the gluster, get Long Term Storage Keys echo "/mnt/scratch $localip.*(rw,sync,no_root_squash,no_all_squash)" tee -a /etc/exports echo "$GFSIP:/gv0 /mnt/gfs glusterfs defaults,_netdev 0 0" tee -a /etc/fstab systemctl enable rpcbind systemctl enable nfs-server systemctl enable nfs-lock systemctl enable nfs-idmap systemctl start rpcbind systemctl start nfs-server systemctl start nfs-lock systemctl start nfs-idmap systemctl restart nfs-server mount -a GlusterFS is shared from the storage cluster mounted at /mnt/gfs, created using Batch Shipyard in the create_cluster.sh script: #BATCH SHIPYARD COMMANDS echo ------------------------- `date +%F" "%T` Adding disks SHIPYARD_CONFIGDIR=. shipyard fs disks add az group update -n $RG --set tags.type=compute_with_gfs tags.launchtime=`date +%F_%T` echo ------------------------- `date +%F" "%T` Creating servers SHIPYARD_CONFIGDIR=. shipyard fs cluster add -y mystoragecluster Three 5 TB Azure Files shares are mounted on the jumpbox at /mnt/lts1, /mnt/lts2, and /mnt/lts3. This Common Internet File System (CIFS) share can be mounted to both the Windows and Linux operating systems. These Azure Files shares are subject to the 5

performance limits. The size can be altered by increasing the quota in the following line of the create_cluster.sh script: az storage share create --name longtermstoragetwo --quota 5000 --account-name $ltsname --account-key $ltskey Different types of storage are deployed because a workload typically needs multiple storage structures, as Figure 2 demonstrates. In the data life cycle, active high-performance data resides in a hot storage tier like the scratch space with premium solid-state drives (SSDs). Over time, as data is accessed less often like the temporary workload, it can be stored in a warm tier with lower performance, physically attached storage Network File System (NFS) shares or standard hard disk drives (HDDs). Later in the life cycle when data is rarely accessed by the user but must be retained, it can be archived in a cold tier. Using this life-cycle model, this deployment uses GlusterFS for the equivalent of the campaign workload. The Azure Files share supports long-term data retention. Figure 2. This sample workload data is stored in various shares. GlusterFS is used for campaign data. Tools in the repo The GitHub repository includes the scripts, templates, and tools you need to create the HPC cluster on Azure with a GlusterFS file system. This deployment uses Azure Resource Manager templates (Table 1). Batch Shipyard is also used to configure the standalone remote file system because it supports automatic provisioning of a GlusterFS storage cluster for both scale-up and scale-out scenarios. 6

Table 1. Resource Manager templates used in this deployment Template Description azuredeploy.json Parameters.json Primary deployment script. It creates all the resources needed for this example. This template does not affect the file server its deployment is completely managed by Batch Shipyard. Specifies the parameters for the azuredeploy.json template. Unlike many Resource Manager templates, azuredeploy.json is not meant to be run independently. It is designed to be deployed in connection with features called by the create_cluster.sh master script (Table 2). The azuredeploy.json template also calls two other scripts that configure the head node and the compute nodes. These scripts are designed to be used when GlusterFS is deployed in the virtual network where the template is deployed. Table 2. Scripts in this deployment Script Description Location create_cluster.sh hn-setup_gfs.sh cn-setup_gfs.sh The master script that downloads Batch Shipyard, deploys a storage file server and a compute cluster, and then mounts Azure Files. Head node setup. Performs a number of basic node configuration commands, installs needed packages, and starts the NFS server. Compute node setup. Installs a few packages, installs Ganglia, and configures the environment for MPI execution of applications. /HPC-az-gfs /HPC-az-gfs/scripts /HPC-az-gfs /scripts In addition, downloading data transfer tools is recommended for this deployment. You can use the following tools to transfer data to the file server, the compute cluster, or the storage blob: Blobxfer is an advanced data movement tool and library for Azure Storage Blob and Azure Files. It includes a command-line interface (CLI) you can use to copy your files into or out of Azure Storage or to integrate the blobxfer data movement library into your own Python scripts. Install binaries for blobxfer. Secure copy protocol (scp) is a Linux protocol based on SSH (Secure Shell) that provides quick, secure command-line file transfers between two computers. Command-line functionality can be used in your own batch files and scripts to automate file transfers. Storage deployment During deployment, the GLUSTERFS file server is created first using Batch Shipyard. The deployment scripts download the latest Batch Shipyard binary and create the file server based on the credentials in the credentials.yaml file and the configuration definitions in the fs.yaml and configuration.yaml files. 7

NOTE: Before deploying, make sure to add the required credentials to the credentials.yaml file. You need these to get artifacts from Azure. See the Credentials configuration section later in this article. To deploy the file server, a resource group is created, and then the managed disks defined in fs.yaml are created. Next, the deployment scripts create a virtual network, a subnet, and the nodes used for the file server. Managed disks are then attached to the file server nodes. An F8-size virtual machine is used as the file server with 12 P30 managed disks for 12 TB of storage using a distributed, RAID 0 configuration. You can modify this setup by editing the fs.yaml file. For information about how many disks can be attached to different virtual machine sizes, see Compute optimized virtual machine sizes. Compute deployment When you deploy the HPC cluster using the default configuration, more than 29 TB is available for the compute cluster. The Azure architecture is simple. For the compute cluster, an H16r/H16mr Virtual Machine Scale Set is specified in azuredeploy.json (lines 298 to 350). The nodes are automatically deployed in a single placement group and connected via InfiniBand hardware. Scale sets do not have external or public-ip addresses, so when the new virtual network is created along with the HPC cluster, a jumpbox must be added for management access. (See azuredeploy.json.) This virtual machine is not the cluster headnode or rank 0 it is simply a way to access your scale sets and can be a small size. In addition, azuredeploy.json runs a custom script on the jumpbox that downloads and calls hnsetup_gfs.sh. This script configures the head node and installs and starts the NFS server. It also sets up passwordless authentication to allow a separate home directory on each node: for name in `cat /home/$user/bin/hostips`; do sshpass -p "$PASS" ssh $USER@$name "mkdir -p.ssh" cat /home/$user/.ssh/config sshpass -p "$PASS" ssh $USER@$name "cat >>.ssh/config" cat /home/$user/.ssh/id_rsa sshpass -p "$PASS" ssh $USER@$name "cat >>.ssh/id_rsa" cat /home/$user/.ssh/id_rsa.pub sshpass -p "$PASS" ssh $USER@$name "cat >>.ssh/authorized_keys" sshpass -p "$PASS" ssh $USER@$name "chmod 700.ssh; chmod 640.ssh/authorized_keys; chmod 400.ssh/config; chmod 400.ssh/id_rsa" cat /home/$user/bin/hostips sshpass -p "$PASS" ssh $USER@$name "cat >> /home/$user/hostips" cat /home/$user/bin/hosts sshpass -p "$PASS" ssh $USER@$name "cat >> /home/$user/hosts" cat /home/$user/bin/cn-setup_gfs.sh sshpass -p "$PASS" ssh $USER@$name "cat >> /home/$user/cn-setup_gfs.sh" sshpass -p $PASS ssh -t -t -o ConnectTimeout=2 $USER@$name 'echo "'$PASS'" sudo -S sh /home/'$user'/cn-setup_gfs.sh '$IP $USER $myhost $GFSIP & > /dev/null 2>&1 done This step protects connectivity from being lost if the NFS server locks up. Also, the jumpbox is not necessarily the same type of virtual machine as the compute nodes. The host list is populated using nmap (network mapper) commands instead of relying on a response from the Azure CLI. 8

For monitoring, Ganglia is installed on the jumpbox and all the compute nodes: chmod +x install_ganglia.sh./install_ganglia.sh $myhost azure 8649 The hn-setup_gfs.sh script also launches the cn-setup_gfs.sh script, which mounts the GlusterFS and NFS file server on all the compute nodes. The compute cluster is created in a separate subnet. Finally, the script installs the selected application (the solver parameter) on the share based on the first node in the host list. The azuredeploy.json template also creates an Azure Files storage account, which is used for long-term storage. After the Resource Manager template has been fully deployed, the create_cluster.sh script gets the storage account keys, and then mounts the storage account to the jumpbox. Credential configuration For Batch Shipyard to complete its deployment without security prompts, you must configure an Azure service principal and an authentication key. These credentials are required for Batch Shipyard to operate using Azure resources. If you are a user of a directory that does not allow you to register an application, contact your Azure subscription owner to create a service principal. After the service principal is created, you must get the Azure AD directory ID, then register the application to use with Azure AD. Copy the application ID that is generated. Next, generate the authentication key and copy its value. You can use Azure portal to get or create a directory ID, register the application, and generate the key. For detailed steps, see Create an Azure Active Directory application. The values of the directory ID, application ID, and key are specified as the environment variables in the credentials.yaml file during step 4 of the installation in the next section. Installation To deploy an InfiniBand-enabled compute cluster with GlusterFS attached and mounted, follow these steps: 1. Make sure your Azure subscription has sufficient quota for the H-series (compute cluster) and F-series (jumpbox and storage cluster) virtual machines used in this deployment. 2. Open the cloud shell from the Azure portal. 3. Clone the repository: git clone https://github.com/az-cat/hpc-az-gfs 4. In the credentials.yaml file, update the Batch Shipyard RemoteFS credentials file with the required Azure service principal entries. 5. From inside the cloned repository folder, run:./create_cluster [Resource Group name] [Compute nodes] For example:./create_cluster.sh my-test-rg01 3 6. When the deployment finishes, note the SSH string. You need this to access your cluster. 9

7. Change directories to the folder that was created for your resource group name, and then run the SSH string. For example: ssh -i id_rsa_batchshipyardkey azureuser@23.45.67.89 8. Log on to the jumpbox, then check the available storage by running: df -h 9. To see the compute node IP addresses, run: cat bin/hostips 10. Use SSH to go to the first IP address listed. ssh [address] For example, run: ssh 10.0.0.6 Where 10.0.0.6 is the first IP address listed from the output of step 9. The compute nodes are Azure H16r-size virtual machines that are connected via InfiniBand for low-latency communication. Learn more For more information, see the following resources: Availability of H-series VMs in Microsoft Azure. Azure blog. September 26, 2016. Cray supercomputers are coming to Azure. Azure blog. October 23, 2017. The long rise of HPC in the Cloud. Inside HPC, March 1, 2017. The cloud is great for HPC: Discuss. The Register. June 16, 2017. 10