Amazon AWS Cloud Platform provides rich set of resources for building true enterprise-class NAS server readily. Please note that the network bandwidth is tied to the number of cpu cores of the compute instance. The storage IOPS is based on capacity of provisioned storage. Please refer to AWS cloud documentation for detailed configuration steps.
Purpose | Machine | Cores | Memory | Network | Storage |
---|---|---|---|---|---|
Shared block storage for IP-SAN or NVMeoF | Storage Optimized i3-series | 4 | 30.5GB | ~10Gbps | EBS Ephemeral direct NVMe or SSD |
Capacity Optimized NFS server LVM + VDO + XFS + NFS Server | General Family t3-series m5a-series | 4 | 16GB | ~5Gbps | Bcache(writeback) on io1 or gp2 Data on st1 (Throughput optimized) ssd:standard ratio 1:4 |
High Performance NFS Server | General Family c5-series c4-series | 8 | 30GB | ~16Gbps | Bcache uses Io optimized io1 Data on st1(Throughput optimized) |
All Flash NFS server ZFS Storage Appliance | c5.9xlarge | 36 | 72GB | ~10Gbps | Data & Log uses SSD Persistent Disk (io1) |
High-Availability | High Availability Set | Secondary Private IP address | EBS shared storage |
Here is the sequence of steps involved in deploying High-Availability (HA) MayaNAS on AWS cloud platform. The next steps assume you’ve already deployed at two MayaNAS instances from AWS marketplace, with desired Availability Set. In this tutorial we will assume we are planing on deploying All Flash NFS Server configuration
- 2 compute instances
mayanas-ha1, mayans-ha2
- 1TB Premium io1 persistent storage
- Default network for the internal 172.31.26.4 (mayanas-ha1), 172.31.29.231(mayanas-ha2)
- Virtual IP: 172.31.30.30 (Any private IP address matching CIDR of VPC)
Connect to mayanas instances using SSH to setup IAM Service Principal account. MayaNAS requires a IAM user account with sufficient permissions to manipulate disk attachments for proper sharing and fencing, and also storage read-write access to object storage. It also needs sufficient permission to float the virtual IP across multiple instances. By having separate IAM account for all MayaNAS deployments you can enforce proper security measures as the assigned roles are limited to this project instance only.
Please take a note of the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY for the newly created IAM user account.
Run aws configure from root shell to provide necessary authentication information. This has to be completed on both the instances for proper High-Availability operation
# sudo aws configure AWS Access Key ID [None]: AKIAJ66FNQUXMW6T3YCQ AWS Secret Access Key [None]: I+6DmswWVF5839ylxuyj/+9+76jk3LvdaDIR Default region name [None]: us-west-2 Default output format [None]:
Please make sure login to service principal is done as root user.
Secure the Web console GUI access by changing the default password to something random by running
# /opt/mayastor/web/genrandpass.sh
Or to set your own password
# /opt/mayastor/web/changepass.sh Login name (default admin): Login password: Password again:
And then restart the web server for password changes to take effect
# /opt/mayastor/web/stop # /opt/mayastor/web/start
Now you can proceed with High-Availability setup using the wizard from Administration Web console available on http://<mayanas-ip>:2020