Prachi, Mike,
I appreciate your comments.

I think it is a bug that there is a difference between filter logic of
ClusterScopeStoragePoolAllocator and that of
ZoneWideStoragePoolAllocator
(ex. allocator skip iSCSI type storage pool or not when a volume is a RootDisk),
I will unify by implementing it in AbstractStoragePoolAllocator#filter method.

It is new information for me that managed storages only support zone
level. Thank you for let me know.
But when iopscapacity parameter is not set to a primary storage (i.e.
unmanaged storage), storageMgr.storagePoolHasEnoughIops always returns
true.
I suppose calling storageMgr.storagePoolHasEnoughIops from
AbstractStoragePoolAllocator will not cause a problem, and it will
simplify the code.

I created a patch to explain my thought. Could you review it?
https://reviews.apache.org/r/22717/

Regards,
Noji


2014-06-17 19:19 GMT-06:00 Mike Tutkowski <mike.tutkow...@solidfire.com>:
> I can comment on the IOPS part.
>
> The IOPS are currently only relevant when using managed storage (which is
> currently only applicable at the zone level). That being the case, no
> cluster (or local) storage takes advantage of counting IOPS that have been
> handed out.
>
> Of course this logic might be expanded in the future, but that's how it
> works today.
>
>
> On Tue, Jun 17, 2014 at 2:47 PM, Prachi Damle <prachi.da...@citrix.com>
> wrote:
>
>> >Why ZoneWideStoragePoolAllocator implements "filter" method (and doesn't
>> call that of base class) rather than just using that of base class?
>> >ZoneWideStoragePoolAllocator#filter method seems doesn't care "avoid"
>> parameter, doesn't skip iSCSI type storage pool even if a volume is a
>> RootDisk.
>>
>> The first question seems like a bug to me.
>>
>> I am not sure about the IOPS
>>
>> Prachi
>>
>> -----Original Message-----
>> From: ynoj...@ynojima.net [mailto:ynoj...@ynojima.net] On Behalf Of
>> Yoshikazu Nojima
>> Sent: Tuesday, June 17, 2014 1:07 PM
>> To: dev@cloudstack.apache.org
>> Subject: ZoneWideStoragePoolAllocator#filter seems weird for me
>>
>> Hi,
>>
>> ZoneWideStoragePoolAllocator#filter seems weird for me.
>>
>> ZoneWideStoragePoolAllocator and ClusterScopeStoragePoolAllocator are
>> allocator classes to select storage pool.
>> They extends AbstractStoragePoolAllocator class, which provides "filter"
>> method to exclude unavailable storage pools.
>>
>> Why ZoneWideStoragePoolAllocator implements "filter" method (and doesn't
>> call that of base class) rather than just using that of base class?
>>
>> ZoneWideStoragePoolAllocator#filter method seems doesn't care "avoid"
>> parameter, doesn't skip iSCSI type storage pool even if a volume is a
>> RootDisk.
>> (These functions are implemented in
>> AbstractStoragePoolAllocator#filter method, which used by
>> ClusterScopeStoragePoolAllocator.)
>> On the other hand, AbstractStoragePoolAllocator#filter doesn't call
>> storageMgr.storagePoolHasEnoughIops, so a cluster wide primary storage
>> would be allocated more volumes than its designated IOPS capacity.
>>
>> Is there any difference between a zone wide primary storage and a cluster
>> wide primary storage except its scope?
>> If it is a bug, I'll fix it.
>>
>> Regards,
>> Noji
>>
>
>
>
> --
> *Mike Tutkowski*
> *Senior CloudStack Developer, SolidFire Inc.*
> e: mike.tutkow...@solidfire.com
> o: 303.746.7302
> Advancing the way the world uses the cloud
> <http://solidfire.com/solution/overview/?video=play>*™*

Reply via email to