 I'm Dick Tan. I'm going to present my Cal Lab. Okay, let me introduce myself first. Actually, I'm a graduate research assistant for the last two years. And I mainly, of course, in the Chinese University of Hong Kong. And mainly in the last two years, I focus on my virtual machine store research, both and other. This I'm going to present is my Cal Lab, the platform for education use. And then currently, I'm no longer a research assistant and a software engineer in a local video infrastructure company. Okay, I'm going to give a background about why we have opened my Cal Lab and also the details and also some painful experience about OpenStat. Okay, the story begins with a course. Okay, we have a course that started offering from the spring 2012, and this is an introduction to Cal computing. The computer science and engineering department provides a new course, and therefore we have to build a Cal testbed for the student to evaluate or try or learn some Cal operation in the platform. And I'll just briefly talk about the course. The course is actually just talking about basically a fundamental concept of Cal computing and also some web-reduced programming. Big data is a very hot topic here nowadays. And the course will cover several things like web-reduced algorithms, how to do HIDFS and also some Cal storage like Swift and also some virtualization. That means we have to provide a Cal platform, Cal testbed platform to support those learning. Okay, and therefore, we build a Cal testbed to support the learning. And actually, the hardware is just briefly take out three machines, three servers and 20 restation machines, and also a switch. We collect them together and then form an OpenStat Cal. And the architecture is very straightforward. One is the management node, and also remaining Chinese server loop as a compute loop, that one when VMs, we are providing both VM positioning surface and also Cal storage surface. We have been used from 2011, and we have used a very old version at the beginning caters, which is very poor, and I will talk about it later. And also later on in last summer, 2012, we have upgraded to a better version of Ubuntu, a better version of Ubuntu and also the OpenStat. And we have also developed our control platform, not using the Horizon dashboard. We have developed on our own for the students. And actually, we have just a simple deployment here. And okay, the main focus part of it is the MyCalLab panel, that we mean the web interface to control everything, just like a Horizon dashboard. And the two components here, the one versus the VM lab, just the same as you may see very many times in this summit, there's a web interface to control the VM, VM positioning and everything else. And we have added two features on top of our simple control panel. The first one is our performance monitoring. We give a graph to show the each resources utilization and also a mechanism for students to better use a parts work piece mechanism. Of course, we have a demo later. And also we have a hard-to-read lab, which has a simple interface to let a student when they submit their hard-to-drop, made-reduced drop on the system. Okay, here are the screensaw. You will see that you have the VM running, you have the corresponding resources utilization history graph. And also a hard-to-read, which you can submit your own made-reduced program and then you can obtain the result from the system without entering any commands. You just write your program, prepare your data set, and then submit to the system. They will do it for you. And you have just put the program and data set. You don't have to set up your own hard-to-drop cluster. As you may know, that set up hard-to-drop circles may be several times, several weeks of time, that could be avoid and using this system directly. Okay, I will give a soft demo. Okay, here just a login page is somehow similar to the OpenStat one, but actually this one is totally written by us. We just reference to their template. And you may see after login, we have two major components, VM lab and also hard-to-read lab. And okay, after we go into the VM lab, we can see all the VM images that you can use to start your VMs. And there are, okay, of course you can launch the VM using your chosen VMs. And of course, you can type your LAN for your VM. And also you can see there are several different options for your VMs. Let's say you can choose more memory for your VM or less memory or more CPU power. You can choose. And also there are quotas for each student. And then you may see we have launched a VM on the top demo server 2 and using the server image and also our specification and his building. And after a while, okay, this is ready. We have our IP. And we can also actually go into the machine and actually the progress of the VM. To simplify the system, we have pre-generated username and password at this screen instead of using the complicated key pair mechanism to log in into the VM. We have pre-generated username and password, as you may see. Okay, we have the password. And then user can student just using this password and log in directly. We've dealt with dealing with the complicated key pair SSH key pair problems. And you may see, okay, the student got the VM. And then, yes. And then just play it. And then they will just... Okay. Let me see. Okay. I have also mentioned about the statistics. It doesn't build in open-stat. We develop our own performance monitoring system. User can monitor the CPU usage, memory usage, this IO and also that IO of each VM. And you can see the data is real-time generated. For several seconds, they will update. And of course, you can just take a snapshot for your VM also before you terminate your VM. Of course, you can also terminate your VM. Okay. And I'm going to also have a piece and demo of the Hadoop Lab. Okay. We have firstly prepared two VMs for the Hadoop Lab. And we can just enter the information. Let's say the IP, the username, and also the number of... Let's say we take two VMs for the Hadoop Lab. And then we just enter the information. And you can just click the button. Enter. And then the system will create the Hadoop cluster automatically. Actually, the slides, if you have to create your own Hadoop cluster, you have to follow around 40 slides around that that's complicated. And the system will... We can avoid the complicated steps using the interface. As you may see, the Hadoop process is running. And... Just take several seconds, and it is ready. Okay. I will demonstrate a job. Let's say I want one big data processing. Let's say I let a data set file, which is just something perfect domain test file. As you may see, I will show that here. It's just a big data. Of course, for demonstration, this is just a small data that is in the perfect domain. Small data set file. We are going to count the wording inside the data file using the MapReduce program. Okay. We upload the data set file. On your right-hand side, you may see the data set file is ready in the Hadoop In folder. Okay. Of course, you have to select your MapReduce program to process the big data. Okay. It will take several seconds. Just skip it for demo purpose. And you may see the result of the file, the Hadoop job. Here is the history. And we will download the result file. And the result file shows the frequency or currency of the combination of initial wordings in our data set. For example, let's say we appear something like Apple and Ice Cream, and those combination initial will be sold for the wordings. And here is the demonstration of Hadoop Lab. Okay. And then I just destroy the Hadoop server. Maybe do it later. Just build another one. Okay. Okay. And I will talk about the experience that I encountered in the last two years. And that's painful experience. And first, the first version that I used is Catalyst. This is a buggy system. Okay. I have to admit that. Okay. There are lots of bugs in the VM's left stock system. That means I have to find... I forget how many numbers of bugs in this subsystem. And also, I have handled a user about the dashboard VNC problem. And, okay. This is an old-age OpenStat dashboard. I think I believe most of you didn't see it before. On the basis of only a feature that is important is sold the console, which is sold the screen of the VM. And then you can do anything on that. But there is a bug about the WebSocket issue. And then I have to handle it and just modify a head to some library. That's a painful issue. Of course, this is already two years ago. Today's OpenStat is much better. And also, after one year, it should be last summer. Or I forgot. Anyway, we changed into SS platform. That's much better. We have only encountered two bugs. And then everything was fine. The first bug is about the migration. Okay. That's a minor bug that can be easily fixed. And other bugs is interesting about that. We have a dashboard interface. We have a good IEPI. A user can use their username and password and not in. The bug is user cannot change the password on their own. Okay. They have to ask the system administrator to modify the password in that version of dashboard or OpenStat API. And that's a bug that should be fixed. It's fixed in the foursome, but I have to backperform the foursome to our system. That's an interesting issue that, okay, I cannot in, but I can't change my password. That's unbelievable in some sense. Okay. They are fixed, of course. And all interface of dashboard. And, okay, the WebSocket issue that I have mentioned earlier. And also, there are several minor issues about the instability. I'm not sure the reason. But I have to manually handle the issue directly by manipulating the database and also some command about the virtual machines. And then Swift. Another story that's not a good story because, okay, some of you may have heard about the Swift version one and Swift version two. There's two different APIs. The one first one is a one, okay, two years ago, let's say, then the version two is a one, one years ago, and they are not comparable. And you cannot, okay, in the past, you cannot run those two versions of API simultaneously. That's, I can't say how, how, how poor I am. Because we have, there are some programs based on the version one and then they switch the API and then, oh. Anyway, the one we have used in the past have to manually switch between the settings. We have, for some case, we have to switch to version one and some case, we switch to version two, the Swift API. And, luckily, I'm not sure of the detail because I've not kept track. But in the recent version, they have provided an option to provide two versions of API simultaneously. That means the server can provide two versions of API at the same time. Luckily, they have fixed the problem, it seems. And also, the Swift, the object store, are not designed for small requests because, okay, we have, we have trouble, we have trouble because students write programs to issue some small requests and almost get the service done. They put, let's say, a few bytes and then push through our Swift. And then the system is very busy. Oops. And there are several minor issues about the VM I guess everyone faced about that. And, okay, the Pring no longer exists. Luckily, the system is running for one year or more and currently is still using the system. And, actually, there's not a word for me, by me. And also, that's two undergraduates. They decide the web panel. That means the fancy interface, fancy interface, there's two undergraduates inside in summer. And also, of course, I have to give many fans. I'm not sure that my supervisor, he assigned me to this project and I worked for one and more years. And also, I have to give a short acknowledgement to the grant that they give money to us to buy the machines, to hire the undergraduate to write the program. And that's all of my presentation. And any questions? Okay.