[one-users] (block) iotune support in templates

Stefan Kooman stefan at bit.nl
Wed Jan 15 07:17:23 PST 2014


Quoting Carlos Martín Sánchez (cmartin at opennebula.org):
> 
> That's really interesting, indeed.
> Let's think of how this would look in OpenNebula.
> 
> The first and easiest option that comes to mind is to allow a new attribute
> DISK/RAW, that would look like:
> 
> DISK = [
>   IMAGE_ID = 7,
>   RAW = "<iotune>
>         <total_bytes_sec>10000000</total_bytes_sec>
>         <read_iops_sec>400000</read_iops_sec>
>         <write_iops_sec>100000</write_iops_sec>
>       </iotune>"
> ]
> 
> I think this is useful by itself, to allow generic customization of the
> devices in the deployment file. A similar NIC/RAW attribute would be also
> easy to add.

> 
> A prettier way would be to parse the elements DISK/READ_BYTES_SEC
>  DISK/WRITE_BYTES_SEC, etc. These iotune attributes could be set as
> restricted attributes [1], and let the admin set defaults for each Image or
> each DS, using the inherited attributes functionality introduced in
> OpenNebula 4.4 [2].

I would definately prefer this above "raw attributes" but allowing it to
be defined as a raw attribute as well leaves the possibility for a user
to "voluntarily" restrict IO resources. Or would there be a way to
distinguish behaviour and let it depend on who has set this parameter.
I.e. if someone from oneadmin group sets this restriction it is
enforced, otherwise it's free te remove / alter this parameter. I guess
you can compare this to "renice"  in UNIX. As an oridary user you are
allowed to give processes a lower priority but you are not allowed to
give them higher priority.

> 
> Regarding the user and group quotas, that's something that I'd consider for
> a second phase. If this is specific for kvm and we don't have an equivalent
> for xen and vmware, I don't know if it would be acceptable to have an
> exception hardcoded in the quotas:

Well, VMware does have "io tuning" support. It's called Storage I/O
Control (SIOC). It gives you the ability to restrict the amount of IOPS
(shares). It's possible to set limit per virtual disk (image) and/or per
datastore (lun). Xen does not have (upstream) support for disk iotuning.
There are patches floating around that have support for this but I've
read a thread on a mailinglist that they (xen developers) do not want to
build this into xen but leave this task up to the OS (cgroups for
example in linux environments). As hypervisor implementations differ on
this aspect having iotune support would mean different things for
different platforms.

> 
> <VM_QUOTA>
>   <VM>
>     <CPU>
>     <CPU_USED>
>     <MEMORY>
>     <MEMORY_USED>
>     ..
>     <TOTAL_BYTES_SEC>
>   </VM>
> </VM_QUOTA>
> 
> Or if we should think of a more flexible definition of the quotas
> mechanism. I'm thinking of something like this in oned.conf:
> 
> VM_QUOTA_DEFINITION = [
>   VM_ATTRS = "/VM/DISK/TOTAL_BYTES_SEC /VM/DISK/READ_BYTES_SEC
> /VM/DISK/WRITE_BYTES_SEC"
>   NAME = DISK_IOTUNE
> ]

I guess this would make quota support more future proof, but might be
"overkill" like you said. Then again, there's no better kill than
overkill (TM) ;).

Gr. Stefan

-- 
| BIT BV  http://www.bit.nl/        Kamer van Koophandel 09090351
| GPG: 0xD14839C6                   +31 318 648 688 / info at bit.nl



More information about the Users mailing list