My Internship Project – Improving Anti-Affinity in Sahara

It’s been around 3 weeks since my internship started and trust me every single day had been an entirely new learning experience.

My internship started on 7th December. The very first day, we had a meeting with the fellow OpenStack interns and mentors all around the world. It was kind of warm up for the internship. We discussed what and how we are going to achieve our goals set for the internship.


Improving anti-affinity behaviour for Sahara cluster creation

Sahara is a data processing component of OpenStack. It provisions the clusters (e.g a Hadoop cluster) into OpenStack cloud.

Since the nodes in the cluster are provisioned on virtual machines, we can’t be sure on which hypervisor they go. To provide high availability, hadoop ensures that there are replicas for the nodes. In the worst case, if all the replicas go onto the same hypervisor and the hypervisor goes down, high availability is not ensured. So to avoid this, Sahara provides the user with capability of defining anti-affinity policies. In the policy, the user is expected to define a node group, nodes of which should be anti-affine.

Sahara ensures that the nodes in the anti-affinity group are not on a single hypervisor. It provisions each of the anti-affine node on a different hypervisor. The problem with the current implementation is that, if the hypervisors are less than the number of nodes in the anti-affinity group, Sahara throws an error which can be a valid  use-case sometimes. My task involves me to understand the current cluster allocation strategy and improve it so as to support the above use case.


My mentor for the project is Michael McCune (elmiko). He is very supportive and encouraging. His “Keep up the good work!” comment always inspires me to do more and more. I would love to meet him in person some day. We discuss the status of the project every alternate day.

Work so far:

On the work front, I have installed DevStack with Sahara enabled (a blog post coming up soon on how to install it). I am exploring the Sahara codebase and pdb comes very handy. I am learning how to use screens in DevStack. So far, it has been an amazing experience.

I have fallen in love with OpenStack. I am learning new things each day. 🙂

Outreachy Intern @OpenStack

Yay!!! 🙂 Yes, that was my expression when I saw the results of Outreachy Dec’2015 Round.

I am extremely glad to be selected as an intern for my favorite open-source project. Being a part of OpenStack community for a few months now, I must say that it is the most welcoming and active community.

I am grateful to the entire OpenStack community for mentoring and encouraging me to contribute my first patch as required for Outreachy.

Hope to have lots of learnings and  fun during the internship. I would be updating my experiences and learning throughout the internship here.

Stay tuned for updates! 🙂