[Openstack] Is m1.tiny instance type supported for Xen?

Alessio Ababilov aababilov at griddynamics.com
Tue Jan 17 16:12:25 UTC 2012


Hi!

OpenStack Nova allows to run instances with local_gb = 0 for m1.tiny 
instance type if libvirt is used. As I see, m1.tiny is not supported 
when using Xen. Am I right?

I think it would be better to unify behavior for different backends.

Here are code examples.

Generic code allows local_gb == 0 (nova/compute/manager.py):

             # NOTE(jk0): Since libvirt uses local_gb as a secondary 
drive, we
             # need to handle potential situations where local_gb is 0. 
This is
             # the default for m1.tiny.
             if allowed_size_gb == 0:

Libvirt backend handles m1.tiny in special way 
(nova/virt/libvirt/connection.py):

         if inst_type['name'] == 'm1.tiny' or suffix == '.rescue':
             size = None

Xen backend just checks the size (nova/virt/xenapi/vm_utils.py)

     @classmethod
     def _check_vdi_size(cls, context, session, instance, vdi_uuid):
         size_bytes = cls._get_vdi_chain_size(context, session, vdi_uuid)

         # FIXME(jk0): this was copied directly from compute.manager.py, 
let's
         # refactor this to a common area
         instance_type_id = instance['instance_type_id']
         instance_type = db.instance_type_get(context,
                 instance_type_id)
         allowed_size_gb = instance_type['local_gb']
         allowed_size_bytes = allowed_size_gb * 1024 * 1024 * 1024

         LOG.debug(_("image_size_bytes=%(size_bytes)d, allowed_size_bytes="
                     "%(allowed_size_bytes)d") % locals())

         if size_bytes > allowed_size_bytes:
             LOG.info(_("Image size %(size_bytes)d exceeded"
                        " instance_type allowed size "
                        "%(allowed_size_bytes)d")
                        % locals())
             raise exception.ImageTooLarge()

-- 
Alessio Ababilov
Software Engineer
Grid Dynamics





More information about the Openstack mailing list