EMC Elastic Cloud Storage (ECS) is a new EMC product to provide object storage (Amazon S3 and OpenStack Swift APIs).
EMC has just released ECS Community Edition installer on Github that allows customers to try and use it on standard X86 hardware with Centos 7.
The goal of this post is to install and configure ECS on Gandi Cloud VMs :
- EMC ECS is Java based software
- ECS image will run into Docker container on Centos 7
- ECS image is available in EMCCorp docker registry
- GitHub repository is storing ECS installer (python), I don't know if docker image is open-source too.
So, let's go installing EMC ECS on Gandi VMs ;)
Gandi VMs setup
EMC recommandation is to have at least 4 VMs with :
- 4 vCPU and 32GB of ram
- 100GB of disk for object data storage
Nevertheless, I can't have this kind of powerful VM with Gandi (and not the budget) so I'm going to install ECS software on 4 VMs with :
- 2 vCPU and 8GB of ram (tried with 6GB with several memory issues during setup),
- 6GB of system disk (for docker image) and 2 x 20GB disks for object data storage
To create 4 VMs we're using Gandi Cli (http://cli.gandi.net) :
gandi vm create --datacenter US --hostname srvusecs01 --cores 2 --memory 8192 --size 6144 --image "CentOS 7 64 bits (HVM)" --ip-version 4 --bg gandi vm create --datacenter US --hostname srvusecs02 --cores 2 --memory 8192 --size 6144 --image "CentOS 7 64 bits (HVM)" --ip-version 4 --bg gandi vm create --datacenter US --hostname srvusecs03 --cores 2 --memory 8192 --size 6144 --image "CentOS 7 64 bits (HVM)" --ip-version 4 --bg gandi vm create --datacenter US --hostname srvusecs04 --cores 2 --memory 8192 --size 6144 --image "CentOS 7 64 bits (HVM)" --ip-version 4 --bg
Have a look on Gandi Mng GUI, VMs are up & running :
Meanwhile, we need to create 8 x 20GB Gandi disk to give feeding to ECS software (2 per node) :
gandi disk create --size 20G --datacenter US --bg --name ecsdata01 --vm srvusecs01 gandi disk create --size 20G --datacenter US --bg --name ecsdata02 --vm srvusecs01 gandi disk create --size 20G --datacenter US --bg --name ecsdata03 --vm srvusecs02 gandi disk create --size 20G --datacenter US --bg --name ecsdata04 --vm srvusecs02 gandi disk create --size 20G --datacenter US --bg --name ecsdata05 --vm srvusecs03 gandi disk create --size 20G --datacenter US --bg --name ecsdata06 --vm srvusecs03 gandi disk create --size 20G --datacenter US --bg --name ecsdata07 --vm srvusecs04 gandi disk create --size 20G --datacenter US --bg --name ecsdata08 --vm srvusecs04
Install EMC Elastic Cloud Storage
You have to proceed with below steps on each Gandi VM.
We need to update system, install git and umount ECS Gandi disks (sdc sdd) :
sudo yum -y update sudo yum -y install git sudo umount /dev/sdc /dev/sdd
Ok, let's clone ECS installer Github repository on servers :
git clone https://github.com/EMCECS/ECS-CommunityEdition
And install, on each server, ECS docker image (replace IPx with IPs of your ECS nodes):
cd /root/ECS-CommunityEdition/ecs-multi-node/ sudo python step1_ecs_multinode_install.py --ips IP1 IP2 IP3 IP4 --hostnames srvusecs01 srvusecs02 srvusecs03 srvusecs04 --disks sdc sdd
Python step1 multinode install will do below steps :
- Updating SELinux to Permissive mode (setenforce 0)
- Install wget and tar packages
- Install docker package
- Format to XFS ECS data disks and fallocate 10GB x files
- Pull docker image emccorp/ecs-software form Docker registry
- Create network.json and seed.json (IPs of other ECS nodes)
- Update /etc/hosts with IPs of other ECS nodes
- Mount ECS disks with specific uuid
- Create /host/data /host/files /ecs /data and adapt rights on directories (uid 444)
- Start ECS docker container
We have to wait 8/10 minutes before contacting management website, ECS is in the way of configuring through Java processes :
It's the time to have a look on Docker container :
[root@srvusecs01 ecs-multi-node]# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE emccorp/ecs-software latest 0cc1de6f549f 4 weeks ago 1.402 GB [root@srvusecs01 ecs-multi-node]# sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 09ce3dfdca03 emccorp/ecs-software:latest "/opt/vipr/boot/boot 9 seconds ago Up 8 seconds ecsmultinode
In case of Docker crash (or server restart ?), you can restart ECS container with below command :
docker run -d -e SS_GENCONFIG=1 -v /ecs:/disks -v /host:/host -v /var/log/vipr/emcvipr-object:/opt/storageos/logs -v /data:/data:rw --net=host emccorp/ecs-software --name=ecsmultinode
Management website ECS is now up & running on the nodes through URL https://srvusecs01.flox-arts.net :)
Default username is root and password is ChangeMe
Configure license with upload of file that you have within Github repository (license.xml) :
Over... Next topic : configure ECS for object access ;)
Bye !
- EMC Elastic Cloud Storage appliance emc.com/storage/ecs-appliance
- EMC ECS Community Edition installer github.com/EMCECS
- EMC ECS Community Edition docker image registry.hub.docker.com/u/emccorp
- Gandi VPS Cloud Hosting gandi.net/hebergement
- Docker container docker.com
thanks