NetApp StorageGRID Webscale: Automated Deployment

By | 2018-10-02

A few months after our first NetApp StorageGRID Webscale PoC we came back for another PoC. This time: Virtual Appliances on VMware vSphere. A perfect solution for small environments and if you already have a virtual environment. After modifying some scripts, the deployment was really easy and fast: a 5-Node cluster including Gateway- and Admin-Node in about one hour.

First of all, you need to modify the deployment scripts for your needs. Here is a working example for virtual Cluster with 5 Storage Nodes and one Gateway Node and one Admin Node. All nodes are in the same subnet for testing:

deploy.ini:

OVFTOOL_ARGUMENTS = --powerOffTarget --overwrite --powerOn --noSSLVerify --diskMode=thin --datastore='datastore01'
SOURCE = /root/StorageGRID-Webscale-11.0.1/vsphere
TARGET = vi://vcenter.example.com/Datacenter/host/Cluster-A
USERNAME= user@vsphere.local
PASSWORD= xxxxx
GRID_NETWORK_TARGET   = Network_1
GRID_NETWORK_MASK     = 255.255.255.0
GRID_NETWORK_GATEWAY  = 10.10.10.1
ADMIN_NETWORK_TARGET    = Network_1
ADMIN_NETWORK_CONFIG    = DISABLED
ADMIN_NETWORK_MASK      = 255.255.255.0
ADMIN_NETWORK_ESL       = 10.10.10.0/24, 10.10.20.0/24
CLIENT_NETWORK_TARGET   = Network_1
CLIENT_NETWORK_MASK     = 255.255.255.0
CLIENT_NETWORK_GATEWAY  = 10.1.2.1

[sgws-admin01]
  GRID_NETWORK_IP       = 10.10.10.10
  CLIENT_NETWORK_CONFIG = DISABLED
  NODE_TYPE             = VM_Admin_Node
  ADMIN_ROLE            = Primary

[sgws-gateway01]
  GRID_NETWORK_IP       = 10.10.10.14
  CLIENT_NETWORK_CONFIG = DISABLED
  NODE_TYPE             = VM_API_Gateway
  CORES                 = 4
  MEMORY_GB             = 8

[sgws-node01]
  GRID_NETWORK_IP       = 10.10.10.11
  NODE_TYPE             = VM_Storage_Node

[sgws-node02]
  GRID_NETWORK_IP       = 10.10.10.12
  NODE_TYPE             = VM_Storage_Node

[sgws-node03]
  GRID_NETWORK_IP       = 10.10.10.13
  NODE_TYPE             = VM_Storage_Node

[sgws-node04]   
  GRID_NETWORK_IP       = 10.10.10.14   
  NODE_TYPE             = VM_Storage_Node

[sgws-node05]   
  GRID_NETWORK_IP       = 10.10.10.15   
  NODE_TYPE             = VM_Storage_Node

storagegrid.json:

{
  "primary-admin-api-address": "10.10.10.10",
  "grid-details": {
    "name": "StorageGRID Webscale Deployment",
    "license": "xxxxx"
  },
  "passwords": {
    "management": "xxxxx",
    "provision": "xxxxx",
    "useRandom": true
  },

  "ntp-servers": [
    "10.10.10.4"
  ],

  "dns-servers": [
    "8.8.8.8"
  ],

  "grid-networks": [
    "10.10.10.0/24"
  ],
  "sites": [
    {
      "name": "Data Center 1"
    }
  ],

  "nodes": {
    "10.10.10.10": {
      "nodeData": {
        "name": "sgws-admin01",
        "ntpRole": "primary"
      },
      "siteName": "Data Center 1"
    },

    "10.10.10.19": {
      "nodeData": {
        "name": "sgws-gateway01"
      },
      "siteName": "Data Center 1"
    },

    "10.10.10.11": {
      "nodeData": {
        "name": "sgws-node01"
      },
      "siteName": "Data Center 1"
    },

    "10.10.10.12": {
      "nodeData": {
        "name": "sgws-node02"
      },
      "siteName": "Data Center 1"
    },

    "10.10.10.13": {
      "nodeData": {
        "name": "sgws-node03"
      },
      "siteName": "Data Center 1"
    },

    "10.10.10.14": {
      "nodeData": {
        "name": "sgws-node04"
      },
      "siteName": "Data Center 1"
    },

    "10.10.10.15": {
      "nodeData": {
        "name": "sgws-node05"
      },
      "siteName": "Data Center 1"
    },
  }
}

Now you can start your virtual appliance deployment:

mgt:/root/StorageGRID-Webscale-11.0.1/vsphere # ./deploy-vsphere-ovftool.sh deploy.ini

A working deployment should result in running VMs and a summary like this:

After all virtual appliances are up and running, you can start configuration:

mgt:/root/StorageGRID-Webscale-11.0.1/vsphere # ./configure-storagegrid.py storagegrid.json

After configuration has been successfully, you can access your newly deployed StorageGRID Webscale cluster:

With additional 2-3 minutes we are going to have tenants and working S3 storage 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.