Animesh,

I am working through it now.  I will do my best to be done by Friday,
but it is a massive patch to digest (25 pages in Review Board).

Thanks,
-John




On May 22, 2013, at 3:01 PM, Animesh Chaturvedi
<animesh.chaturv...@citrix.com> wrote:

>
>
>> -----Original Message-----
>> From: John Burwell [mailto:jburw...@basho.com]
>> Sent: Tuesday, May 21, 2013 8:51 AM
>> To: dev@cloudstack.apache.org
>> Subject: Re: [MERGE]object_store branch into master
>>
>> Edison,
>>
>> Thanks, I will start going through it today.  Based on other $dayjob
>> responsibilities, it may take me a couple of days.
>>
>> Thanks,
>> -John
> [Animesh>] John we are just a few days away  from 4.2 feature freeze, can you 
> provide your comments by Friday 5/24.   I would like all feature threads to 
> be resolved sooner so that we don't have last minute rush.
>>
>> On May 20, 2013, at 6:15 PM, Edison Su <edison...@citrix.com> wrote:
>>
>>>
>>>
>>>> -----Original Message-----
>>>> From: Edison Su [mailto:edison...@citrix.com]
>>>> Sent: Monday, May 20, 2013 2:30 PM
>>>> To: dev@cloudstack.apache.org
>>>> Subject: RE: [MERGE]object_store branch into master
>>>>
>>>>
>>>>
>>>>> -----Original Message-----
>>>>> From: John Burwell [mailto:jburw...@basho.com]
>>>>> Sent: Monday, May 20, 2013 12:56 PM
>>>>> To: dev@cloudstack.apache.org
>>>>> Subject: Re: [MERGE]object_store branch into master
>>>>>
>>>>> All,
>>>>>
>>>>> Since this change is so large, it makes reviewing and commenting in
>>>>> detail extremely difficult.  Would it be possible to push this patch
>>>>> through Review Board to ease comprehension and promote a
>>>>> conversation
>>>> about this patch?
>>>>
>>>> We can try to push it into Review Board.
>>>
>>> The review board url is: https://reviews.apache.org/r/11277/, 25 pages...
>>>
>>>>
>>>>>
>>>>> Reading through the FS, I have the following questions regarding the
>>>>> operation of the NFS cache:
>>>>>
>>>>> What happens if/when the disk space of the NFS cache is exhausted?
>>>>> What are the sizing recommendations/guidelines for it?
>>>>> What strategy is used to age files out of the NFS cache?
>>>> As usual, admin can have multiple NFS secondary storages, admin can
>>>> also add multiple NFS cache storages. The NFS cache storage capacity
>>>> plan will be the same as NFS secondary storage.
>>>> If there multiple NFS cache storages, the current strategy will
>>>> randomly choose one of them. Currently, no clean up/aging out
>>>> strategy implemented yet But the situation can be improved: most of
>>>> cached object can be deleted after accessed once. Take template as
>>>> example, if zone wide storage is used, put template on cache storage
>>>> has little value, as once the template is downloaded into primary
>>>> storage, suddenly all the hypervisor host can access it.
>>>> I think the simple LRU algorithm to delete cached objects should be
>> enough.
>>>> It can be added later, the cache storage has its own pom project,
>>>> it's place to add more intelligence.
>>>>
>>>>> If two processes, process1 and process2, are both using a template,
>>>>> templateA, will both processes reference the same file in the NFS
>>>>> cache?  If
>>>> It's possible, that one template can be downloaded into cache storage
>>>> twice, in case of concurrent accessed by two processes. The current
>>>> implementation is that, if two processes want to download the same
>>>> template from s3 into one primary storage at the same time, there is
>>>> only one template will be downloaded into cache storage. While, if
>>>> two processes want to download the same template into different
>>>> primary storage, the template will be cached twice.
>>>>> they are reading from the same file and process1 finishes before
>>>>> process2, will process1 attempt to delete process2?
>>>>
>>>> There is no way to delete while read, as each cached object has its
>>>> own state machine. If it's accessed by one process, the state will be
>>>> changed to "Copying", you can't delete an object when it's in "Copying"
>> state.
>>>>
>>>>> If a file transfer from the NFS cache to the object store fails,
>>>>> what is the recovery/retry strategy?  What durability guarantees
>>>>> will CloudStack supply when a snapshot, template, or ISO is in the
>>>>> cache, but can't be written to the object store?
>>>>
>>>> The error handling of cache storage shouldn't be different than
>>>> without cache storage. For example, directly backup snapshot from
>>>> primary storage to S3, without cache storage. If backup failed, then
>>>> the whole process failed, user needs to do it again through
>>>> cloudstack API. So in cache storage case, if push object from cache
>>>> storage to s3 failed, then the whole backup process failed.
>>>>
>>>>> What will be the migration strategy for the objects contained in S3
>>>>> buckets/Swift containers from pre-4.2.0 instances?  Currently,
>>>>> CloudStack tracks a mapping between these objects and templates/ISOs
>>>>> in the template_switt_ref and template_s3_ref table.
>>>>
>>>> We need to migrate DB from existing template_s3_ref to
>>>> template_store_ref, and put all the s3 information into image_store
>>>> and image_store_details tables.
>>>>
>>>>>
>>>>> Finally, does the S3 implementation use multi-part upload to
>>>>> transfer files to the object store?  If not, the implementation will
>>>>> be limited to storing files no larger than 5GB in size.
>>>> Oh, this is something we don't know yet. We haven't try to upload a
>>>> template which is large than 5GB, so haven't met this issue.
>>>> Could you help to hack it up?:)
>>>>
>>>>>
>>>>> Thanks,
>>>>> -John
>>>>>
>>>>> On May 20, 2013, at 1:52 PM, Chip Childers
>>>>> <chip.child...@sungard.com>
>>>>> wrote:
>>>>>
>>>>>> On Fri, May 17, 2013 at 08:19:57AM -0400, David Nalley wrote:
>>>>>>> On Fri, May 17, 2013 at 4:11 AM, Edison Su <edison...@citrix.com>
>>>> wrote:
>>>>>>>> Hi all,
>>>>>>>>   Min and I worked on object_store branch during the last one
>>>>>>>> and half
>>>>> month. We made a lot of refactor on the storage code, mostly related
>>>>> to secondary storage, but also on the general storage framework. The
>>>>> following goals are made:
>>>>>>>>
>>>>>>>> 1.       An unified storage framework. Both secondary
>>>>> storages(nfs/s3/swift etc) and primary storages will share the same
>>>>> plugin model, the same interface. Add any other new storages into
>>>>> cloudstack will much easier and straightforward.
>>>>>>>>
>>>>>>>> 2.       The storage interface  between mgt server and resource is
>>>> unified,
>>>>> currently there are only 5 commands send out by mgt server:
>> copycommand/createobjectcommand/deletecommand/attachcommand/de
>>>>> ttachcommand, and each storage vendor can decode/encode all the
>>>>> entities(volume/snapshot/storage pool/ template etc) by its own.
>>>>>>>>
>>>>>>>> 3.       NFS secondary storage is not explicitly depended on by other
>>>>> components. For example, when registering template into S3, template
>>>>> will be write into S3 directly, instead of storing into nfs
>>>>> secondary storage, then push to S3. If s3 is used as secondary
>>>>> storage, then nfs storage will be used as cache storage, but from
>>>>> other components point of view, cache storage is invisible. So, it's
>>>>> possible to make nfs storage as optional if s3 is used for certain
>> hypervisors.
>>>>>>>> The detailed FS is at
>> https://cwiki.apache.org/confluence/display/CLOUDSTACK/Storage+Backu
>>>>>>>> p+Object+Store+Plugin+Framework
>>>>>>>> The test we did:
>>>>>>>>
>>>>>>>> 1.       We modified marvin to use new storage api
>>>>>>>>
>>>>>>>> 2.       Test_volume and test_vm_life_cycle, test_template under
>>>> smoke
>>>>> test folder are executed against xenserver/kvm/vmware and devcloud,
>>>>> some of them are failed, it's partly due to bugs introduced by our
>>>>> code, partly master branch itself has issue(e.g. resizevolume
>>>>> doesn't work). We want to fix these issues after merging into master.
>>>>>>>>
>>>>>>>> The basic follow does work: create user vm, attach/detach volume,
>>>>> register template, create template from volume/snapshot, take
>>>>> snapshot, create volume from snapshot.
>>>>>>>> It's a huge change, around 60k LOC patch, to review the code, you
>>>>>>>> can
>>>>> try: git diff master..object_store, will show all the diff.
>>>>>>>> Comments/feedback are welcome. Thanks.
>>>>>>>
>>>>>>>
>>>>>>> Given the amount of change, can we get at least a BVT run against
>>>>>>> your branch done before merge?
>>>>>>>
>>>>>>> --David
>>>>>>
>>>>>> +1 to BVT please.
>

Reply via email to