Projects
This page lists some of the tasks/projects for ConVirt. Contributors are encouraged to pick a project that best aligns their interest and expertise.
Table of contents |
Generic
Network Admin interface
Description Allow users to create NAT, Private network(for VM on the same host), Bridged netowrk. Have a GUI at the server pool level to describe a network and make is consistent for each server in the pool.
Notes
Phase I
- Allow user to define the network definition
- For NAT : get the interface name from the user.
- For Private network : get the bridge names
- For Public network : get the bridge name and the interface name.
- Allow user to actually make the changes on each server (one by one.)
- A dialog with list of servers and "push" button.
- Keep track of status ?
- present with errors.
- Allow user to pick the named network at the time of provisioning. Present it with a union of defined networks and other bridges available.
- Prompt the user to do the network configuration, when a server is added to the pool. NOTE: Allow the user to fine tune the vif entry, if he wishes to do so.
Phase II
- Allow for bonding
- Allow for VLAN definitions0
Developer(s) : Milind
Status : Backend scripts being worked on.
ConVirt CLI
Description
Allow ConVirt operations to be controlled via command line interface.
Notes
Initialize key objects like GridManager, ImageStore, ApplianceManager etc. and write a wrapper for operations supported by ConVirt.
Developer(s) : Gigo
Status : In progress
VM Cloning interface
Description
Allow existing VMs to be cloned.
Notes
Use pieces already available for appliance import to add a smoother workflow for importing a disk or cloning an existing VM (may contain multiple disks)
Developer(s)
Status
VM Snapshots
Description
Take snapshot of the disk also as a part of taking VM.
Notes
Look in to thin provisioning/qcow format, LVM snapshots. At least provide hooks so users can hook in their custom thing.
Developer(s)
Status
Allow Lun Partitions as disks
Description
Currently we allow selection of a lun as a disk for a VM. Some users allocate a large lun and use partitions as disks for VM.
Notes
- Show lun partitions along with lun.
* Watch out : dont double count the storage
- Enhance the provisioning script to create a partition given a large lun.
Developer(s)
Status
Support Multipath
Description
Allow correct selection of multipath interface while selecting an iscsi storage.
Notes
developer notes
Developer(s)
Status
Thin provisioning
Description
Allow for qcow based thin provisioning.
Notes
Developer(s)
Status
libvirt substrate
Description Add libvirt as an alternative substrate to write ConVirt platform plugins.
Notes Allow for plugin writer to use libvirt as a substrate. This would facilitate quick development of other plugin platforms like oVirt, openvz etc.
Developer(s)
Status
OVF Support
Description
Allow for OVF based appliances/VMs.
Notes
Currently we support XVA based appliances, now that OVF seems to be reasonably cooked, we should look into adding support for it.
Developer(s)
Status
Xen
Xen Managed VMs
Description
xm new/delete allows the users to store the config information in the xenstore instead of external files. ConVirt should manage these VMs.
Notes
Currently there is quite a bit or reliance on the configuration file. For short term we should provide users with a utility that would harvest the information from the xenstore using xm list --long and create appropriate configuration files. We can use the utility function available in src/convirt/core/utils/utils.py to get sxp property.
Also, issue xm delete, while deleting VM from ConVirt.
Developer(s) :
Status :
Xen Disk hotplug
Description
Allow disks to be added to a running VM.
Notes
Enhance the VMSetttings dialog to handle addition of disk for running VMs. User xm block-attach to attach the disk. Also update the config file so that the next boot of VM would have the disk.
Developer(s) Gigo
Status Done
Xen Network hotplug
Description
Allow Networks to be added to a running VM.
Notes
Enhance the VMSetttings dialog to handle addition of n/w interfaces for running VMs. User xm commands to attach the network. Also update the config file so that the next boot of VM would have the disk.
Developer(s)
Status
Integration with native provisioning scripts for xen
Description
Integrate ConVirt provisioning with vm-install, xen-tools etc. This would add support for provisioning PV images for SLES, Debian/ubuntu based platforms.
Notes
Create template images, which has custom provisioning script which reads the context passed to it and transforms in to native tool command lines.
Developer(s)
Status
KVM
KVM bridge setup
Description
At the time of setting up managed node via convirt-tool, configure the bridge for each interface.
Notes
Developer(s) Milind
Status : done
Start KVM Virtual machines on boot
Description
Allow /etc/xen/auto like mechanism to start selected KVM virtual machines on boot.
Notes
Use the rc.d mechanism to kick of starting of VMs.
Approach 1
- Store the kvm command line params in /etc/kvm/auto/vm file.
- write rc script to kick these off on startup and shut them down on shutdown.
- Enhance ConVirt to keep the startup files in sync when VM gets modified.
Approach 2
- Create links, exactly similar to xen
- The rc script will know how to generate command line from the given config file. (Will use some code from the kvm plugin.)
In either case, it would be nice to add a checkbox to the VM config "Start VM on boot".
Developer(s)
Status
KVM hotplug
Description
Allow for KVM CPU, Mem and Disk and network hotplug.
Notes
Figure out which kvm version these are available and stable. Anyway we need figure out next KVM release to target.
Developer(s)
Status
KVM Pause / Resume
Description
Enable Pause and Resume for KVM.
Notes
The pause and resume functionality is disabled as it was difficult to get the status of a VM that is on the receiving end of migration. That VM used to block causing problem. There has been enhancements in this area, we need to find out exact details and see how we can make these available without breaking migration.
Developer(s)
Status
KVM Network and I/O stats
Get network and I/O stat similar to xen.
Notes Network :
Read stat from /proc/net/dev : and find stat for vif interfaces for dom. Note : These are from point of view of Dom0, so you would have to swap rx and tx.
I/O : We need to find similar stats for KVM. This is available via info blockstats from the monitor.
Sample :
info block ide0-hd0: type=hd removable=0 file=/mnt/vm_data/F8-Storage.disk.xm ro=0 drv=raw ide0-hd1: type=hd removable=0 file=/dev/ROOT_FS/Lun2G ro=0 drv=host_device ide1-hd0: type=hd removable=0 file=/dev/ROOT_FS/Lun4G ro=0 drv=host_device ide1-hd1: type=hd removable=0 file=/dev/ROOT_FS/Lun6G ro=0 drv=host_device floppy0: type=floppy removable=1 locked=0 [not inserted] sd0: type=floppy removable=1 locked=0 [not inserted]
info blockstats ide0-hd0: rd_bytes=1146557952 wr_bytes=1580803072 rd_operations=119192 wr_operations=196376 ide0-hd1: rd_bytes=607232 wr_bytes=0 rd_operations=56 wr_operations=0 ide1-hd0: rd_bytes=1493504 wr_bytes=0 rd_operations=227 wr_operations=0 ide1-hd1: rd_bytes=1095680 wr_bytes=1024 rd_operations=200 wr_operations=1 floppy0: rd_bytes=0 wr_bytes=0 rd_operations=0 wr_operations=0 sd0: rd_bytes=0 wr_bytes=0 rd_operations=0 wr_operations=0
NOTE : For both metrics, If required consult xentop for how these metrics are rolled up of processed further.
Developer(s)
Status
Template : Project Name
Description
desc here
Notes
developer notes
Developer(s)
Status
Commentaires