Archive for the 'ganeti' Category

Ganeti Web Manager 0.7

Ganeti Web ManagerWe’ve just release version 0.7 of Ganeti Web Manager. Ganeti Web Manager is a Django based web application that allows administrators and clients access to their ganeti clusters. It includes a permissions and quota system that allows administrators to grant access to both clusters and virtual machines. It also includes user groups for structuring access to organizations.

This is the fourth release of Ganeti Web Manager and it contains numerous new features.  It also includes various bug fixes and speed optimizations.  Here is the full CHANGELOG, or read on for the highlights.

Xen Support

Ganeti Web Manager now have full Xen support.  Prior versions could display Xen instances, but now you can create and edit them too.  This as an important addition because Xen is a widely used and mature project.  Now with full hardware virtualization in Linux 3.0, Xen will continue to be an important technology for virtualization.  This was our most often requested feature and we’re glad to have fulfilled it.

Internationalization

Thanks to a large community contribution, internationalization support was added for nearly all aspects of the interface.  Users can switch between their default language and any other.  Currently only a Greek translation is available, but we’d like to see many more languages. If you can read and write another language this is a great opportunity for you to get involved. We’re using Transifex to coordinate people who want to help translate.

Search & Improved Navigation

Administrators of larger cluster can now find objects easier with our search interface.  It includes an Ajax auto-complete feature, along with detailed results.

We’ve also added contextual links wherever we could.  This included ensuring breadcrumbs were properly formatted on each page.  Object Permissions and Object Log were updated to ensure navigating between those screens and Ganeti Web Manager is seamless.

Import Tools

There are now import tools for Nodes.  These work the same as for instances.  The cache updater has also been reworked to support both Nodes and Instances.  It’s now a twisted plugin with modest speed improvements due to Ganeti requests happening asynchronously.

Speed, Scalability, and Bugs

We’ve sought out places where we performed extra and or inefficient database queries.  We identified numerous places where database interaction could be reduced, and pages returned faster.  This is an ongoing process.  We’ll continue to optimize and improve the responsiveness as we find areas of the project we can improve.

Numerous bugs were fixed in both the user interface and the backend.  Notably, the instance creation interface has had several bugs corrected.

Module Releases

We’re building several modules along with Ganeti Web Manager.  The following projects have new releases coinciding with Ganeti Web Manager 0.7:

Django Object Permissions 1.4

  • improved user selection widget
  • speed improvements

Object Log 0.6

  • our first public release
  • speed, scalability, and flexibility improvements

Twisted VNC Auth Proxy

  • our first public release
  • added support for hixie 07 and latest noVNC version.

Want to learn more?

Lance Albertson and I will be speaking about Ganeti & Ganeti Web Manager at several conferences this summer.  Catch us at the following events:

Ganeti Web Manager 0.6

We’ve released Ganeti Web Manager 0.6.  Ganeti Web Manager is a Django based web application that allows administrators and clients access to their ganeti clusters. It includes a permissions and quota system that allows administrators to grant access to both clusters and virtual machines. It also includes user groups for structuring access to organizations.

This release comes after a short development cycle, with the goal of fixing critical bugs and providing important core features.  Check out the full change log, or read on for some highlights:

Virtual Machines

Ganeti Web Manager 0.6 includes multiple improvements to the virtual machine detail view.  We’ve added the complete list of virtual machine properties.  The layout has been updated to group properties into relevant sections, as well as make it more readable.

The following new controls were added for virtual machines:

  • Edit a virtual machine’s settings.
  • Rename a virtual machine.
  • Migrate a virtual machine to it’s secondary storage.

Ganeti Web Manager 0.6 also features improvements to the virtual machine deployment process.  It now detects and recovers from Ganeti errors better than before.  If a create job fails without ganeti deploying the virtual machine, you can edit the settings and re-submit the job.  All other failures will let you continue to the virtual machine detail view where you can use the provided admin tools to repair the virtual machine.

Nodes

node detail view

Nodes are now cached by Ganeti Web Manager.  This allows views using node data to be displayed faster. We now also provide Node views that allow an admin to issue commands on a node such as migration and changing the node role.  The node detail view also provides information from the perspective of a node including used resources and which virtual machines are deployed on it.

Logs

Ganeti Web Manager 0.6 now provides a log of actions performed on every object.  This will allow admins to see the history of every action taken on a VirtualMachine, Node, and Clusters.  It also shows every action a user account has performed.  The log is intended to aid auditing and troubleshooting.

Logging is provided by the newly branded Django Object Log app.  It is a reusable app that can log generic messages.  Each message can define it’s own rich format, including contextual links to the related objects.  Object Log will be developed in parallel with Ganeti Web Manager and future projects by the OSUOSL.

Ganeti Web Manager 0.5

We’ve released Ganeti Web Manager 0.5.  Ganeti Web Manager is a Django based web application that allows administrators and clients access to their ganeti clusters. It includes a permissions and quota system that allows administrators to grant access to both clusters and virtual machines. It also includes user groups for structuring access to organizations.

Here are some notable changes in the second release of Ganeti Web Manager:

  • New status Dashboard
  • NoVNC Integration
  • Virtual Machine Re-installation
  • Numerous bug fixes and improvements.

Read the full change log for more details.

Status Dashboard

The front page of Ganeti Web Manager is now a status dashboard for both admins and users.  This is the first thing users will see when they log into Ganeti Web manager.  It enables them to quickly assess what is happening within their cluster, or their portion of it.  The information is filtered by permissions to give each user a custom view.  Here is a list of things it shows:

  • Cluster status – highlights running virtual machines, nodes, and resource usage.
  • Personal resource usage – a summary of resources used, and if applicable, remaining resource quota.
  • Errors – A single place to view any errors connecting to ganeti, or deploying and managing virtual machines.

NoVNC Integration


Our in browser console now uses NoVNC, an HTML5 VNC client.  This replaces an older applet, that required the java runtime be installed.  Now users will be able to view the console natively within their browser.  NoVNC uses web sockets for communication so it works best in Chrome, but Firefox is also supported through the use of a Flash applet.  We’re looking forward to Firefox 4.0 and it’s native web socket support.

Behind the scenes we use a VNC proxy that sits between our secure network and the web.  It securely handles connection requests from NoVNC.  This proxy allows you to keep your Ganeti cluster on a protected network, but expose secure access to a console as needed.

Ganeti Web Manager Permissions

Ganeti Web Manager features a very flexible permission system.  It’s powered by our django object permissions middleware, which grants permissions at an object level.  It can grant permissions per cluster and per virtual machine.  Ganeti Web Manager also supports groups, for easier management.

Groups

Groups and Users are interchangeable.  Permissions and quotas can be assigned to either groups or users.  At the OSL, groups represent one of the many  open source projects we host.   It is easier to manage access when everyone is assigned to their respective project groups.

Members of a group act on its behalf.  Each groups is assigned a quota, and group members create virtual machines that consume it.  The virtual machines belong to the group, not the individual.  Users can choose whichever persona they want to act on behalf of, themselves or a group, and Ganeti Web Manager will permit them accordingly.

Permissions

Permissions are fine grained so any set of permissions can be assigned.  Here is a sample:

  • Clusters – creating virtual machines.
  • Virtual Machine - modifying, starting, stopping, rebooting and console access.

Admins are granted all permissions for an object.  They also have the ability to manage permissions for other users.  This empowers users to manage their own groups, clusters, and virtual machines freeing site admins to perform other tasks.

Admin permissions can be set at three levels:

  • Virtual Machine Admins – can manage a specific virtual machine.
  • Cluster Admins – can create and manage any virtual machines within that cluster.
  • Site Admins (superusers) – total access to all clusters and virtual machines.   Includes the ability to bypass quota and cluster restrictions.

Permissions and admins are meant to be combined in different scenarios:

  • Fully managed - users have no access at all.  Only admins can create, reboot, or modify.
  • Partially managed - users can’t create virtual machines, but they have some limited ability to manage them.
  • Self Service - users can create virtual machines on demand.  They can create and manage their own virtual machines as needed.
  • User Managed Cluster - a user has control of an entire cluster.

The default scenario is a fully managed (closed) system in which users must be granted permissions.  A different scenario can be used for each cluster managed by a single instance of Ganeti Web Manager.  At the OSL, we will be using several different scenarios.  Our production web cluster is fully managed, but some clients own an entire cluster and will manage it themselves.

Quotas

Ganeti Web Manager has a basic quota system that limits consumption of RAM, disk space, and virtual CPUs (threads).  In a self service model quotas are used to divide the resources amongst the users.  Clusters default to unlimited quota and this can be changed per cluster.  Quotas can also be changed per user as needed.