To continue our setup of ScaleIO, we’ll need to go through the full installation using the files and scripts you’ve already copied over to the ScaleIO VMs in the previous part of this how to. There are two common ways of installing ScaleIO, either manually or using the install script, and we’ll use the latter for this how to.
First off, create a new VMDK on each ScaleIO VM that will be used as your ECS storage. The VMDK needs to be bigger than 30GB, and for a production workload needs to be on local storage. Also, make sure the VMDK is created using Eager Zero, not Lazy Zero or Thin Provisioned. Then reboot/startup the ScaleIO VM.
Start the install script by running the following command in the /opt/scaleio/siinstall/ECS folder:
install.py --make_config --vm
After you’ve given a password and acknowledged that you want to create a site.cfg configuration file, you’ll be presented with the following picture.
As you remember from the earlier post, you will need to create two Meta-Data Managers, one Tie-Breaker and one Virtual IP. So let’s get to it!
Go through the configuration of Primary and Secondary MDM like this:
Then continue with the Tie-Breaker:
And finally create a virtual IP, which will be used for things like management functionality and dashboards later. Yes, dashboards. Awesome, beautiful dashboard which will be covered in the next part of this how to.
A Protection domain is a logical construct where you can divide your environment up into different failure domains. Let’s say you have 20 servers where you’ll store a certain type of data, and another 10 servers where you’ll store other type of data, you could create one Protection domain for each type of data, like Exchange and VMware for instance. That way you’ll separate the data and create smaller failure domains which are easier to manage. Here’s an example of what it might look like in a larger environment:
So, let’s create a Protection domain for our VMware environment:
Continue with adding a Protection domain, edit it (it might say Edit Initiator, but it’s still editing the Protection domain) and add a Storage Pool to that domain. I’m creating a pool called pool1:
And done! Yup, it’s that easy. We’ll use this Protection domain later on in our configuration, so remember the name you’ve given it and the pool you defined.
Now let’s create our Storage-Device Servers (SDS). For a VMware environment, it’s recommended that there’s one ScaleIO VM on each host with local data, installed as both an SDS and a Storage-Device Client (SDC). The SDS will manage the underlying storage, while we will connect our VMware environment through an iSCSI target to the SDC. Essentially, the data will flow like this:
VMware iSCSI initiator <-> ScaleIO iSCSI target <-> SDC <-> SDS
Start by defining an SDS for each VMware host (essentially it’ll be every ScaleIO VM you’ve deployed):
Once you’ve defined all the SDSs, continue to the configuration of each (we’re using /dev/sdb as our storage device here as that’s the new VMDK you created at the top of the blog post, change that if you’re seeing something else). The password that’s given here is the root password, so we can actually login to SDS and install the packages.
Next up, define your iSCSI initiators. You can find the iSCSI initiator information here in your VMware environment:
Now go ahead and add all the iSCSI initiators that will access this ScaleIO environment.
Ok, so far so good. Let’s continue with the SDCs, which will be the bridge between our iSCSI environment and the SDS. Do the same as for the SDSs, define one SDC for each ScaleIO VM and the configure it:
Now it’s time to put it all together, and create a volume that we’ll use as our storage. This is where all your hard work pays off 🙂
Oh yeah! Now we’re on a roll! Now it’s time to finish it up with some monitoring as well before we’ll run the install:
And DONE! If you have any RED or YELLOW parts left in the configuration GUI , please get those fixed before proceeding, otherwise it should look like this. Exit and SAVE your configuration 🙂
Ok, let’s go ahead and run the install now. Run the following command to start the installation:
./install.py --vm --all --license=YOURLICENSEHERE
The installation will now start and go through the deployment and configuration of packages on each ScaleIO VM, and hopeful it’ll look something like this in the end:
Voila! All done! Now all that’s left is to rescan your iSCSI Software Adapter in your VMware environment, and you should see a new ScaleIO Device pop up. Go to Storage->Add Storage and add your new ScaleIO device just like any other LUN 🙂
Next post will cover the dashboard functionality and some basic performance testing.