Wednesday, July 10, 2013

A post about work

It's been a while since I've last posted about work, so it's about time I post an update on what I spend most of my days playing with.

Last time, I've mentioned that I was working on porting postcopy migration to libvirt and CloudStack. After hunting down several bugs, I've successfully done that, more or less. But because the code for it is still in development, my port was more for testing and proof-of-concept than for actual use. Also, I don't think the user should have to be concerned about the method of migration in use.

"What is this box? Should I tick or not tick?" - User 
Right now, I'm playing with RDMA Migration, which utilizes the RDMA protocol rather than the TCP. RDMA stands for Remote Direct Memory Access and allows one computer to access another's memory directly without going through the CPU. RDMA works over Infiniband or RoCE (RDMA over Converged Ethernet), which is more or less a special flavor of Ethernet with additional features. The driver for the Mellanox ConnectX-2 that I've used supports RoCE and basically allowed the Ethernet device to appear as an Infiniband device. The lesson to take home is: in this world, there are protocols other than TCP/IP and Ethernet.

Of course, when testing migration methods, one thing that cannot be left out is benchmarking. Having spent quite a bit of time benchmarking, here's a lesson I've learnt: always automate. Automation will make your live much easier and your benchmarks much more reproducible. Plus, you can rest a bit while your automated benchmark is running.

This is it for now. The next work-related post will be about my summer internship presentation to other people in the department.

No comments:

Post a Comment