From 16:00 to 17:30 on August 21, the Poster session of the 2013 MSRA Summer Camp was held in the public exhibition area of Microsoft Research Asia. Participants included Microsoft Scholars attending the summer camp, members of Microsoft clubs from various universities, and MSRA Researchers & Interns.

Originally, I didn’t plan to present anything, but at the request of the event committee, I chose Blog and Freeshell as my presentation projects. Following the committee’s suggestion, I modified it to “Cloud Services in USTC”, a title that seems big and fashionable.

IMG_20130821_162607IMG_20130821_162607

Above: Blog & Freeshell booth (click to enlarge, same below).

The so-called “Cloud Services” are divided into two unrelated parts, one is the Wordpress blog (blue), and the other is the virtual machine (green). The blog and the virtual machine run on different physical machines, and the blog does not run on the virtual machine architecture.

The Wordpress blog hosting service (blog.ustc.edu.cn) is similar to wordpress.com. USTC students can register blogs, freely install plugins and themes, and theoretically run any code, which is the biggest difference from blogs like Sina.

The Blog modifies the PHP interpreter code and uses a daemon for privileged operations to ensure isolation between apps; the daemon also audits the resource usage of the app, promptly discovers abnormal apps and reports to the administrator. In terms of databases, traditional PHP virtual hosts give the administrator a database username and password; in the Blog, by adding hooks to the PHP interpreter, each app automatically connects to its own database, eliminating the need to store the database password in plaintext in the code or configuration files, thereby enhancing security.

To improve performance, using Linux’s symbolic links, the Wordpress core code is a shared public area, and user plugins, themes, and data are placed in separate directories, which can save 80% of disk space and more effectively use the PHP opcode cache. (PHP is interpreted into intermediate code for execution, and opcode cache is to cache the generated intermediate code. Reusing files is equivalent to reusing cache.)

Many readers hope that the Blog supports the ability to upload any PHP program like SAE. I believe that, first of all, Wordpress plugins and themes have enough customizability, not just for building personal blogs; secondly, the performance optimization of the Blog depends on sharing the Wordpress core files; finally, using Wordpress uniformly can avoid some websites with numerous vulnerabilities causing security risks, and using the same database structure facilitates content extraction and monitoring.

IMG_20130821_163502IMG_20130821_163502

Above: Girls registering for USTC Blog.

Freeshell (freeshell.ustc.edu.cn) is a virtual machine, mainly used for scientific computing and algorithm experiments, and all USTC students can register. Due to copyright issues, naturally, only Linux virtual machines can be supported, using open-source virtualization technology.

The difference between these virtual machines and commercial virtual machines that support SLA is that if a physical node has 16G of memory, 16 virtual machines are divided, and each virtual machine can only use 1G. However, most students in the school register for virtual machines but rarely use them, which will cause a great waste of resources. Therefore, we use OpenVZ virtualization technology to implement resource sharing between virtual machines. If only one person uses it, the virtual machine can use the computing resources of the entire physical node, and if two people use it, it is divided in half.

In terms of network, because freeshell does not want to be used to provide external services, inbound connections are limited to the campus, accessing the node’s Virtual IP, and then port mapping to the virtual machine’s Real IP. Outbound connections are NAT Internet access, using a line different from inbound connections.

During the exchange, some students mentioned why there is no centralized storage. My answer is that freeshell is currently not used for big data processing. If there is such a need, a more professional high-performance cluster can be used. We mainly face students doing experiments.

Since the current usage rate of freeshell is not very high, there hasn’t been any situation of node overload for now. If the load increases in the future, we can consider using OpenVZ’s Live Migration to transfer some virtual machines to less busy nodes. At that point, as long as port mapping and ARP broadcast updates are handled well, seamless network handover can be achieved.

IMG_20130821_164059IMG_20130821_164059

Above: Two seniors are observing the usage graph of Freeshell with interest.

IMG_20130821_174601IMG_20130821_174601

Above: Part of the scene after the event. When there were many people, I had to keep explaining at the booth, so I couldn’t capture many exciting moments.

By the way, Poster is a common Session in academic conferences. USTC’s 2012 SFD Hefei station adopted a similar format, but of course, we didn’t have that much to display.

IMG_20130821_174333IMG_20130821_174333

Above: Because the Poster I made was not attractive, and the booth was in the corner, I only received four “like” stickers. (Each participant has a “like” sticker, which can be given to their favorite Poster, and they can’t give it to themselves)

Lastly, I want to complain that a student who was doing a project on Android was asked to change the word “Android” to “mobile phone”, and the Android screenshot was also changed to a Windows Phone screenshot. After I submitted this Poster, I was not asked to make any changes, it seems that Microsoft in the upper left corner and LUG in the lower right corner can coexist harmoniously…

Comments

2013-08-22