How to deploy an EXAScaler Cloud Application

EXAScaler Cloud application can be launched on Microsofts Azure Portal by navigating to the link below and and clicking the Create button.

Step by step deployment video

Step by step deployment guide

The steps below will show how to create a EXAScaler Cloud Cluster on Microsoft Azure platform. 

You will need an Azure account. Sign in.

Login to your account and go to the dashboard.

You can get to the dashboard from anywhere by clicking on the blue "Microsoft Azure" in the upper left corner of the GUI. 

To get started click on "Create a resource" to get ready to start deployments of a new instance of EXAScaler Cloud.

In the search box that appears, type "EXAScaler Cloud" and hit return. For some reason the completions that start to show up do not work as expected.

Click "Create" button.

EXAScaler Cloud environment can be deployed as a standard Azure application using the Azure Marketplace. And the installation wizard is used to deploy it. Installation wizard contains few configuration steps.

➊ Basics step contains

Project details section

and Instance details section:

 Deployment step contains

Deployment details section


EXAScaler Cloud pricing is based on the number of CPU cores configured to meet the defined performance requirements. And DDN Premium Support is recommended for Custom configuration profile.

Availability options section

Azure offers a range of options for managing availability and resiliency. And we can choose:

 Security step required to select user name and authentication parameters to remote access to the management server. And Microsoft Azure provides two options for
authentication:

password based authentication

and SSH public key-based authentication

➍ Network step to configure Azure Virtual Network which enables resources to securely communicate with each other. And the subnet inside the virtual network where EXAScaler Cloud environment will be deployed to.

We can use an existing network or create a new virtual network and specify address range

Also we can assign external IP addresses:

And configure remote access for SSH and HTTP protocols

 

 Management step to configure EXAScaler Cloud management server.

For the Custom configuration profile we can configure:

And all selected configurations are checked for compliance

For predefined Small and Medium configuration profiles all configuration options are read-only.

 Metadata step to configure EXAScaler Cloud management server. For the Custom configuration profile we can change:

For predefined Small and Medium configuration profiles all configuration options are read-only.

 Storage step to configure EXAScaler Cloud storage servers. For the Custom configuration profile we can change:

For predefined Small and Medium configuration profiles all configuration options are read-only.

 Client step: optionally we can deploy compute client instances and by default the size and number of compute client instances matches the size and number of object storage servers. As an option we can create and attach local disks to each EXAScaler Cloud compute client. We can change:

And all compute client options can be changed for any type of the configuration profile.

 Review + create step: at this stage Microsoft Azure checks all selected options against the subscription quota. And we can review and check all the parameters we have chosen before starting the deployment:

And we can press a "Create" button and send the selected configuration for deployment.

Next we will see the dashboard notification with "Deployment is in progress":

Once the status changes to "Your deployment is complete", click on "Outputs" to view the deployment output:

In the "Outputs" screen:

Copy and paste the "" URL on a new browser tab to display detailed deployment statistics:

Some additional information is available on the Azure shared dashboard: Azure portal → Home → Resource groups → EXAScaler-Cloud:

Click the dashboard name and open the "Go to dashboard" link:


And you can customize the dashboard according to your requirements.

How to access the EXAScaler Cloud environment

To remote access the EXAScaler Cloud environment (management, metadata, storage servers and compute clients), we must go through the management server public IP address, using the  command.

And then using the management server console as a jump host we can open a SSH sessions to all other servers.

localhost$ eval $(ssh-agent)
Agent pid 5095

localhost$ ssh-add 
Identity added: /Users/deiter/.ssh/id_rsa (/Users/deiter/.ssh/id_rsa)

localhost$ ssh -A stack@20.62.171.73
Last login: Tue Aug 24 19:11:18 2021 from 181.241.16.227

[stack@exascaler-cloud-65f1-mgs0 ~]$ loci hosts
10.0.0.7	exascaler-cloud-65f1-cls0
10.0.0.5	exascaler-cloud-65f1-cls1
10.0.0.8	exascaler-cloud-65f1-cls2
10.0.0.13	exascaler-cloud-65f1-cls3
10.0.0.12	exascaler-cloud-65f1-mds0
10.0.0.11	exascaler-cloud-65f1-mgs0
10.0.0.10	exascaler-cloud-65f1-oss0
10.0.0.4	exascaler-cloud-65f1-oss1
10.0.0.6	exascaler-cloud-65f1-oss2
10.0.0.9	exascaler-cloud-65f1-oss3

[stack@exascaler-cloud-65f1-mgs0 ~]$ ssh exascaler-cloud-65f1-cls0

[stack@exascaler-cloud-65f1-cls0 ~]$ lfs df
UUID                   1K-blocks        Used   Available Use% Mounted on
exacloud-MDT0000_UUID   315302464        5744   309928012   1% /mnt/exacloud[MDT:0]
exacloud-OST0000_UUID  3181466888   570662088  2578541648  19% /mnt/exacloud[OST:0]
exacloud-OST0001_UUID  3181466888   590910696  2558305972  19% /mnt/exacloud[OST:1]
exacloud-OST0002_UUID  3181466888   580374740  2568825852  19% /mnt/exacloud[OST:2]
exacloud-OST0003_UUID  3181466888   570645704  2578552816  19% /mnt/exacloud[OST:3]

filesystem_summary:  12725867552  2312593228 10284226288  19% /mnt/exacloud

How to stop and start the EXAScaler Cloud environment

If you want to stop and start the servers in your EXAScaler Cloud environment (for example, to save cost on weekends) - please use the esc-ctl script.

Prerequisites

Before use the Microsoft Azure CLI for Microsoft Azure, you will need to authenticate under the Microsoft account you used to log into the Microsoft Azure Portal. You will use a Microsoft account and its credentials to allow the shell script to start/stop the EXAScaler Cloud servers.

Steps to authenticate via Microsoft account

Obtains access credentials for your user account via a web-based authorization flow. When this command completes successfully, it sets the active account in the current configuration to the account specified. Learn more.

$ az login

To view the current Azure subscription ID, please use az account show command.

$ az account show
{
  "environmentName": "AzureCloud",
  "homeTenantId": "00000000-0000-0000-0000-000000000000",
  "id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "isDefault": true,
  "managedByTenants": [],
  "name": "Pay-As-You-Go",
  "state": "Enabled",
  "tenantId": "00000000-0000-0000-0000-000000000000",
  "user": {
    "name": "user@domain.com",
    "type": "user"
  }
}

if you have more than one subscriptions - please set the default subscription. Learn more.

$ az account set --subscription XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

List of existing resource groups

$ ./esc-ctl list
Name              Location    Status
----------------  ----------  ---------
EXAScaler-Cloud   eastus      Succeeded  

List of existing deployments for the given resource group

$ ./esc-ctl EXAScaler-Cloud list
Name                            Created                    Status
------------------------------  -------------------------  ---------
exascaler-cloud-65f1            2021-08-24T18:56:27+00:00  Succeeded  

List of EXAScaler Cloud servers for the given deployment

$ ./esc-ctl EXAScaler-Cloud exascaler-cloud-65f1 list
Name                       Size              Role    Version    PrivateIP    PublicIP      Status
-------------------------  ----------------  ------  ---------  -----------  ------------  ----------
exascaler-cloud-65f1-cls0  Standard_D16s_v3  clt     5.2.3      10.0.0.7                   VM running
exascaler-cloud-65f1-cls1  Standard_D16s_v3  clt     5.2.3      10.0.0.5                   VM running
exascaler-cloud-65f1-cls2  Standard_D16s_v3  clt     5.2.3      10.0.0.8                   VM running
exascaler-cloud-65f1-cls3  Standard_D16s_v3  clt     5.2.3      10.0.0.13                  VM running
exascaler-cloud-65f1-mds0  Standard_E8s_v3   mdt     5.2.3      10.0.0.12                  VM running
exascaler-cloud-65f1-mgs0  Standard_F4s      mgt     5.2.3      10.0.0.11    20.62.171.73  VM running
exascaler-cloud-65f1-oss0  Standard_D16s_v3  ost     5.2.3      10.0.0.10                  VM running
exascaler-cloud-65f1-oss1  Standard_D16s_v3  ost     5.2.3      10.0.0.4                   VM running
exascaler-cloud-65f1-oss2  Standard_D16s_v3  ost     5.2.3      10.0.0.6                   VM running
exascaler-cloud-65f1-oss3  Standard_D16s_v3  ost     5.2.3      10.0.0.9                   VM running  

Stop the EXAScaler Cloud servers

$ ./esc-ctl EXAScaler-Cloud exascaler-cloud-65f1 stop
Stop compute client exascaler-cloud-65f1-cls0
Stop compute client exascaler-cloud-65f1-cls1
Stop compute client exascaler-cloud-65f1-cls2
Stop compute client exascaler-cloud-65f1-cls3
Stop storage server exascaler-cloud-65f1-oss0
Stop storage server exascaler-cloud-65f1-oss1
Stop storage server exascaler-cloud-65f1-oss2
Stop storage server exascaler-cloud-65f1-oss3
Stop metadata server exascaler-cloud-65f1-mds0
Stop management server exascaler-cloud-65f1-mgs0

Start the EXAScaler Cloud servers

$ ./esc-ctl EXAScaler-Cloud exascaler-cloud-65f1 start
Start management server exascaler-cloud-65f1-mgs0
Start metadata server exascaler-cloud-65f1-mds0
Start storage server exascaler-cloud-65f1-oss0
Start storage server exascaler-cloud-65f1-oss1
Start storage server exascaler-cloud-65f1-oss2
Start storage server exascaler-cloud-65f1-oss3
Start compute client exascaler-cloud-65f1-cls0
Start compute client exascaler-cloud-65f1-cls1
Start compute client exascaler-cloud-65f1-cls2
Start compute client exascaler-cloud-65f1-cls3

All required services will automatically start and the filesystem will be mounted and available on all compute clients.

How to upgrade an existing EXAScaler Cloud environment

A software upgrade for an existing EXAScaler Cloud environment is possible by creating a new deployment using a copy of the existing file system.

To upgrade the existing EXAScaler Cloud environment you can use the standard EXAScaler Cloud Azure application by selecting the "Upgrade" value for the "Deployment type" option.

All running instances must be shut down for the existing EXAScaler Cloud environment before performing the upgrade, this is required to ensure data consistency while creating a copy of existing data:

$ ./esc-ctl list                                                 
Name              Location    Status                                                                                              
----------------  ----------  ---------                                                                                           
EXAScaler-Cloud   eastus      Succeeded

$ ./esc-ctl EXAScaler-Cloud list
Name                            Created                    Status
------------------------------  -------------------------  ---------
exascaler-cloud-65f1            2021-08-24T18:56:27+00:00  Succeeded

$ ./esc-ctl EXAScaler-Cloud exascaler-cloud-65f1 stop
Stop compute client exascaler-cloud-65f1-cls0
Stop compute client exascaler-cloud-65f1-cls1
Stop compute client exascaler-cloud-65f1-cls2
Stop compute client exascaler-cloud-65f1-cls3
Stop storage server exascaler-cloud-65f1-oss0
Stop storage server exascaler-cloud-65f1-oss1
Stop storage server exascaler-cloud-65f1-oss2
Stop storage server exascaler-cloud-65f1-oss3
Stop metadata server exascaler-cloud-65f1-mds0
Stop management server exascaler-cloud-65f1-mgs0

Then launch the standard EXAScaler Cloud Azure application using the Azure Marketplace

➊ Basics step:

 Deployment step: select an existing EXAScaler Cloud deployment:

Base OS image (you can upgrade Red Hat Enterprise Linux to CentOS Linux and vice versa) and availability options:

 Security step: specify user name and authentication parameters (you can use user name and authentication parameters other than the existing environment):

➍ Network step: specify network and subnet (you can create a new one) and public IP addresses options:

 Management step: you can change the type of management server and the type of management and monitoring targets, but the size of the targets must be the same as in the existing environment:

 Metadata step: you can change the type of metadata server and the type of metadata target, but the size of the target must be the same as in the existing environment:

 Storage step: you can change the type of storage servers and the type of storage targets, but the number of the storage servers and the number and size of the storage targets must be the same as in the existing environment:

 Client step: you can change the type of compute clients and the type of compute targets, but the number and size of the compute targets must be the same as in the existing environment:

 Review + create step: at this stage Microsoft Azure checks all selected options against the subscription quota. And we can review and check all the parameters we have chosen before starting the deployment:

And then press a "Create" button to upgrade the existing environment. A new EXAScaler Cloud environment will be created in accordance with the selected parameters, and all new targets will be created as copies of targets in the existing EXAScaler Cloud environment.