The terraform templates provided in this repository offer following features;
- Supports provisioning Spectrum Scale resources within a single availability zone.
- Allows different compute and storage subnet.
- Allows different compute and storage Image's.
- Allows packer/custom image vs. non-packer (stock) image.
- Allows single/combined, separate compute only, separate storage only and separate compute and storage cluster (remote mount configuration) configuration (Spectrum Scale filesystem will be configured such that only one copy of data is stored and two copies of metadata will be stored).
- Allows managed disk (Standard_LRS, StandardSSD_LRS and Premium_LRS) types.
- Supports provisioning Spectrum Scale resources within a multi (3) availability zones.
- Allows different compute and storage subnet.
- Allows different compute and storage Image's.
- Allows packer/custom image vs. non-packer (stock) image.
- Allows single/combined, separate compute only, separate storage only and separate compute and storage cluster (remote mount configuration) configuration (Spectrum Scale filesystem will be configured such that data and metadata will be replicated across 2 availability zones (Synchronous Replication). AZ-3, will be used as tiebreaker site.).
- Allows EBS (Standard_LRS, StandardSSD_LRS and Premium_LRS) types.
NOTE: In order to create a Custom VM Image, refer to Packer Azure Image Creation for detailed steps, options.
-
Ensure that the following requirements are met on the local/cloud VM where this repository is cloned.
-
Create Azure credentials
Terraform templates authenticates with Azure using a service principal.
- Create a service principal with az ad sp create-for-rbac and output the credentials that Packer needs:
az ad sp create-for-rbac --query "{ client_id: appId, client_secret: password, tenant_id: tenant }"
An example of the output from the preceding commands is as follows:
{ "client_id": "f5b6a5cf-fbdf-4a9f-b3b8-3c2cd00225a4", "client_secret": "0e760437-bf34-4aad-9f8d-870be799c55d", "tenant_id": "72f988bf-86f1-41af-91ab-2d7cd011db47" }
To authenticate to Azure, you also need to obtain your Azure subscription ID with az account show:
az account show --query "{ subscription_id: id }"
An example of the output from the preceding commands is as follows:
{ "subscription_id": "e652d8de-aea2-4177-a0f1-7117adc604ee" }
Keep the outputs from these two commands handy, they are needed to configure both deployment options in the next steps.
-
Download the IBM Spectrum Scale Data Management Edition install package (from Fix Central) and perform below steps;
# mkdir -p /opt/IBM/gpfs_cloud_rpms # ls -lrth Spectrum_Scale_Data_Management-<package_code_version>-x86_64-Linux-install -rwxr-xr-x 1 root root 1.6G Jul 6 14:02 Spectrum_Scale_Data_Management-<package_code_version>-x86_64-Linux-install # ./Spectrum_Scale_Data_Management-<package_code_version>-x86_64-Linux-install --silent # ls /usr/lpp/mmfs/package_code_version/ Public_Keys ganesha_debs gpfs_debs hdfs_debs license object_rpms smb_rpms zimon_debs ansible-toolkit ganesha_rpms gpfs_rpms hdfs_rpms manifest smb_debs tools zimon_rpms # cd /usr/lpp/mmfs/<package_code_version>/gpfs_rpms # cp gpfs.adv* gpfs.base* gpfs.crypto* gpfs.docs* gpfs.gpl* gpfs.gskit* gpfs.gui* gpfs.java* gpfs.license.dm* gpfs.msg.en_US* /opt/IBM/gpfs_cloud_rpms/ # cd /usr/lpp/mmfs/<package_code_version>/zimon_rpms/rhel7 # cp gpfs.gss.pmcollector* gpfs.gss.pmsensors* /opt/IBM/gpfs_cloud_rpms # cd /usr/lpp/mmfs/<package_code_version>/zimon_rpms/rhel8 # cp gpfs.gss.pmcollector* gpfs.gss.pmsensors* /opt/IBM/gpfs_cloud_rpms # cd /usr/lpp/mmfs/<package_code_version>/Public_Keys # cp SpectrumScale_public_key.pgp /opt/IBM/gpfs_cloud_rpms/
The terraform templates provided in this repository offer following deployment options;
NOTE: By default below options use terraform local backend. In order to configure below options to use terraform S3 backend, use
./tools/enable_azure_s3_backend.sh
.
This option provisions a new Azure VNet environment consisting of the subnets, security groups, bastion, ansible jump host, compute (instances with NO managed data disks attached) and storage (instances with managed data disks attached) instances, and then deploys IBM Spectrum Scale into this new VNet with a single or multi availability zone(s).
Refer to New VNet Based Configuration for detailed steps, options.
This option deploys IBM Spectrum Scale in to an existing VNet (which can have subnets with multiple availability zones).
Refer Existing VNet Based Configuration for detailed steps, options.
This mode provides flexibility to bypass bastion/jump host, incase local/cloud VM has direct connectivity to VNet.