Google Summer of Code 2012: Difference between revisions
mNo edit summary |
No edit summary |
||
Line 91: | Line 91: | ||
* Mentor: iggy/agraf__ | * Mentor: iggy/agraf__ | ||
* Suggested by: iggy | * Suggested by: iggy | ||
== In-process NBD server == | |||
'''Summary:''' Integrate qemu-nbd server functionality into qemu so disk images can be accessed remotely while the VM is running | |||
The qemu-nbd utility is a stand-alone Network Block Device server which exports disk images (qcow2, qed, vmdk, etc). Linux has an NBD driver, this makes it possible to attach NBD devices like iSCSI or ATA-over-Ethernet volumes and operate on them like local block devices using mkfs, mount, and other common tools. | |||
It is not safe to run qemu-nbd while the VM is running because the disk image could be corrupted by simultaneous updates or read access could give inconsistent results. The goal of this project is to make the qemu-nbd functionality available for a running VM by integrating it into qemu proper. | |||
New QEMU monitor commands must be added to allow disk images to be exported from inside qemu while the VM is running. For safety the in-process NBD server would only allow read access. It should be possible to export not just top-level image files but also backing files. | |||
This new feature will enable online backup, data migration, and other interesting scenarios. | |||
'''Links:''' | |||
* http://en.wikipedia.org/wiki/Network_block_device | |||
* http://blog.vmsplice.net/2011/02/how-to-access-virtual-machine-image.html | |||
* Component: QEMU | |||
* Skill level: intermediate | |||
* Language: C | |||
* Mentor: Stefan Hajnoczi <stefanha@gmail.com>, 'stefanha' on IRC | |||
* Suggested by: Stefan Hajnoczi |
Revision as of 13:41, 14 February 2012
Introduction
As we did last year, QEMU is going to apply as a mentoring organization for Google Summer of Code 2012. This page contains our ideas list and some additional information for students and mentors.
Please note that QEMU, as a GSoC organization, also includes the following projects:
Organization
Any Question, request or problem regarding QEMU in GSoC, please contact the following people.
Find Us
- IRC (devel): #qemu on irc.oftc.net
- IRC (GSoC specific): #qemu-gsoc on irc.oftc.net
- Mailing list: http://lists.nongnu.org/mailman/listinfo/qemu-devel
GSoC important pages
Information for students
We require students to provide (at least) the following information in their applications:
- Contact information (email, irc nick, phone number)
- A general personal description (skills, past experiences and possible open source contributions)
- Why QEMU and why this project
- A detailed description of the approach the student will take
Please get in touch before applying so we can arrange for an IRC interview and get to know each other. Students who do not contact the mentor cannot be accepted.
VERY IMPORTANT: Submitting a patch and having it merged by QEMU or KVM increases your chances of being accepted.
Projects Ideas
This is the listing of suggested project ideas. It might be useful to check last year's page. Also note that students are free to suggest their own projects.
== TITLE == '''Summary:''' Short description of the project Detailed description of the project. '''Links:''' * Wiki links to relevant material * External links to mailing lists or web sites * Component: QEMU or KVM or libvirt * Skill level: beginner or intermediate or advanced * Language: C * Mentor: Email address and IRC nick * Suggested by: Person who suggested the idea
git style front-end to QEMU
Summary: Provide a git like front-end for QEMU that allows for enumerating running instances and manipulating them from a command line.
Starting in the 1.0 release, we freed up the qemu executable name in order to allow a script to be introduced that would provide an easier to use scripting interface to QEMU. It would provide a series of sub commands like list, create, shutdown, etc. that would provide an alternative command line front-end to QEMU that the qemu-system executables.
Links:
- Component: QEMU
- Skill level: beginner
- Language: Python
- Mentor: Anthony Liguori <aliguori@us.ibm.com> (IRC: aliguori)
- Suggested by: Anthony Liguori
Finish OS X Virtualization Support
Summary: Finish up the last remaining pieces to enable running Mac OS X guests on Linux on Mac hardware
There are a few remaining pieces of work to allow virtualizing OS X guests in KVM. A few devices still need to be up-streamed. Testing needs to be done, and likely some new code will have to be written to fix certain bugs. The last time anyone was successful in running OS X in KVM was OS X 10.4. Support for newer versions would be required. The most recently updated patches that I know of would be in the OpenSUSE src rpm for the kvm package.
Links:
- Component: QEMU/KVM
- Skill level: intermediate/advanced
- Language: C
- Mentor: iggy/agraf__
- Suggested by: iggy
In-process NBD server
Summary: Integrate qemu-nbd server functionality into qemu so disk images can be accessed remotely while the VM is running
The qemu-nbd utility is a stand-alone Network Block Device server which exports disk images (qcow2, qed, vmdk, etc). Linux has an NBD driver, this makes it possible to attach NBD devices like iSCSI or ATA-over-Ethernet volumes and operate on them like local block devices using mkfs, mount, and other common tools.
It is not safe to run qemu-nbd while the VM is running because the disk image could be corrupted by simultaneous updates or read access could give inconsistent results. The goal of this project is to make the qemu-nbd functionality available for a running VM by integrating it into qemu proper.
New QEMU monitor commands must be added to allow disk images to be exported from inside qemu while the VM is running. For safety the in-process NBD server would only allow read access. It should be possible to export not just top-level image files but also backing files.
This new feature will enable online backup, data migration, and other interesting scenarios.
Links:
- http://en.wikipedia.org/wiki/Network_block_device
- http://blog.vmsplice.net/2011/02/how-to-access-virtual-machine-image.html
- Component: QEMU
- Skill level: intermediate
- Language: C
- Mentor: Stefan Hajnoczi <stefanha@gmail.com>, 'stefanha' on IRC
- Suggested by: Stefan Hajnoczi