Sample Ansible® playbooks to deploy a minimal IBM Spectrum Scale™ demo environment (single-node cluster, including file system). The playbooks are tailored to work with virtual machine images hosted on the IBM Solutions Cloud for Enablement and Co-Creation (CECC), but can be adjusted for other environments — see Scope for details. The project uses the official Spectrum Scale deployment repository.
-
Clone the repository, including submodules:
git clone --recurse-submodules https://github.com/IBM/ansible-scale-demo.git
Note that this project repository uses Git submodules, hence you'll need to add the
--recurse-submodules
option. -
Change your working directory to the cloned repository:
cd ansible-scale-demo/
-
Adjust the configuration:
vi config
-
Enter the IP address of your target host (top of the file):
... node1 ansible_host=<your IP address> ...
-
Verify that the path to the Spectrum Scale installation package is correct:
... scale_install_localpkg_path=/path/to/Spectrum_Scale_Data_Management-5.1.2.0-ppc64LE-Linux-install ...
-
Optionally, enter the desired username and password for logging in to the Graphical User Interface (GUI) (bottom of the file):
... scale_gui_admin_user=<your username> scale_gui_admin_password=<your password> ...
Note that this is not the SSH user / password you use to log in to your target host. Instead, this is a new account that will be created in the Spectrum Scale GUI, only.
-
-
Generate a new SSH key pair to be used to log in to your target host:
ssh-keygen
Simply press ENTER on all prompts to accept default values.
-
Authorize the SSH key with your target host:
ssh-copy-id cecuser@<your IP address>
You will be prompted to enter the password for your target host.
-
Verify that you can now log in to your target host without being prompted for a password:
ssh cecuser@<your IP address> date
-
If the previous command succeeds — without prompting you for a password — then you can run the Ansible playbook to deploy the Spectrum Scale demo environment onto your target host:
ansible-playbook -i config playbook.yml
The playbook will run for approximately 10-15 Minutes.
-
After the Ansible playbook has completed successfully, you can log in to the Graphical User Interface (GUI) of your Spectrum Scale demo environment by opening the following URL in a web browser:
https://<your IP address>/
Use the username and password you had entered into the
config
file (default: admin / password): -
Optionally run the
gpfsperf.yml
playbook to generate load on the demo environment:ansible-playbook -i config gpfsperf.yml
The playbook will run for approximately 1 hour.
While the playbook is running, switch back to your web browser and navigate to 'Monitoring' → 'Statistics'. Click on 'Customize chart' → 'Edit' (three dots in the top right corner) and select the following performance metrics:
- Resource type: IBM Spectrum Scale client
- Aggregation level: File System
- Name: gpfs01
- Metrics: Bytes Read, Bytes Written
Finally, click 'Apply' to update the chart and click '5 minutes' (bottom right) to visualize performance in real-time. You should see output similar to this:
Other noteworthy panels to explore:
- Monitoring → Dashboard
- Nodes → select node → View Details
- Files → File Systems → gpfs01 → View Details
The file playbook.yml
is used to bootstrap a minimal IBM Spectrum Scale™ demo environment:
- Install required packages and their dependencies
- Create single-node cluster
- Create and mount file system
- Initialize Graphical User Interface (GUI)
The file gpfsperf.yml
is used to create test data for generating synthetic load on the demo environment.
Playbooks are tailored to work with Red Hat® Enterprise Linux® images hosted on IBM Solutions Cloud for Enablement and Co-Creation (CECC). This includes the following characteristics:
- Non-root account for logging in (
ansible_user
), sudo usage for gaining root privileges (ansible_become
) - Permit local root logins to avoid sudo-wrapper configuration (
PermitRootLogin without-password
for local connections) - Workarounds for dynamic hostnames (
node1
IP alias, additional invocation ofmmchnode --perfmon
)
The configuration can be adjusted to support other platforms as well, including a virtual machine on your laptop...
The sample playbooks contained within this project can be adjusted to support different platforms, and they can be extended to provision larger, more complex Spectrum Scale clusters. Refer to the Spectrum Scale FAQ for details on supported combinations. You may need to change variable definitions in the config
file, add roles to playbook.yml
, and/or define additional variables. Refer to the Spectrum Scale deployment project for details.
Following is a (non-exhaustive) listing of adjustments to consider:
-
Support for other platforms, e.g. Intel vs. Power
The Spectrum Scale deployment project supports numerous operating systems and platforms (see OS support for details). In fact, the same playbook can be used to install Spectrum Scale on both, x86_64 and ppc64LE. The Spectrum Scale installation packages, however, are platform dependent — you will need to provide the appropriate installation package for the platform you're deploying to. See Prerequisites for details.
-
More cluster nodes
All hosts listed in the inventory (
config
file) will be provisioned as members of the same Spectrum Scale cluster. Expanding the demo environment to multiple nodes (e.g. for high-availability testing) is as simple as adding more managed hosts.One important aspect to consider with multi-node clusters is the assignment of node roles. Here is an exemplary configuration for a three-node cluster:
[scale] node1 scale_cluster_quorum=true scale_cluster_manager=true node2 scale_cluster_quorum=true scale_cluster_manager=true node3 scale_cluster_quorum=true scale_cluster_manager=false scale_gui_collector=true
-
Additional functionality
The Spectrum Scale deployment project allows for configuring various optional components, such as Cluster Export Services (CES), Active File Management (AFM), File Audit Logging, and Call Home. Additional roles, as well as additional variables need to be defined to enable these functions. There is a comprehensive set of examples available in the
samples/
directory of the project's Git repository.
Ansible® version 2.9 is required to run this project. It can be installed with the following command (see documentation for details):
pip install ansible==2.9
IBM Spectrum Scale™ installation packages are required by this project — they need to be downloaded separately. Location of the self-extracting archive is specified with the scale_install_localpkg_path
variable.
There are different options for obtaining installation packages:
-
A free trial version is available for non-production use. Visit https://www.ibm.com/products/spectrum-scale and click 'Try free developer edition'.
-
Customers who have previously purchased Spectrum Scale can obtain entitled versions. Visit https://www.ibm.com/support/fixcentral and search for 'IBM Spectrum Scale (Software defined storage)'.
Copyright IBM Corporation 2021, released under the terms of the Apache License 2.0.