How to install ScaleIO in a VMware environment – Part 2

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: --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 can see, there will be several pieces that need to be configured and you need to go through each piece. It won’t take that long 🙂
We’ll start with the MDM cluster, where you will need a minimum of 4 IP addresses (two for the MDMs, one for the Tie-Breaker and one for our virtual IP).
The Meta-Data Manager (MDM) is responsible for knowing where each chunk of data is located, and the Tie-Breaker (TB) makes sure that we don’t run into a split-brain scenario. So these are essential functions and parts of the secret sauce that makes up ScaleIO 🙂

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.

Ok, so now the MDMs, TB and Virtual IP are all configured, let’s move on the Protection domains.

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:

./ --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.

Have fun!

About Jonas Rosland

Open Source Community Manager at VMware
This entry was posted in Converged Infrastructure, EMC, How to, Installation, ScaleIO, VMware, vSphere5. Bookmark the permalink.

7 Responses to How to install ScaleIO in a VMware environment – Part 2

  1. Pingback: Increasing and measuring the performance of your ScaleIO environment | pureVirtual

  2. Pingback: Microsoft SQL server testing with ScaleIO on VMware | pureVirtual

  3. Pingback: Cody Hosterman | VMware VAAI with EMC ScaleIO

  4. Pingback: Free ScaleIO licenses for EMC Elect! | pureVirtual

  5. Patrick says:

    So it seems that SDC component which runs as a single VM is the weak part of the cluster? What if this VM fails?

    • Jonas Rosland says:

      Hi Patrick!

      The SDC runs on a VM on each physical host, so there’s one for each host that wants access to it. So it’s not just a single VM in the entire cluster. Also, this post is 1.5 years old, a lot has changed since this. But rest assured, the ScaleIO SDC isn’t a single points of failure 🙂

      • Patrick says:

        I meant a single VM per ESXi host. What if that VM fails. Will the VM’s on that host remain in a state of limbo or do they get routed to another SDC VM? And if so,. How?

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s