A PR that adds experimental support for restoring a bucket index was merged 
into main. It’ll need back ports to reef, quincy, and pacific.

        https://tracker.ceph.com/issues/59053 
<https://tracker.ceph.com/issues/59053?issue_count=48&issue_position=1&next_issue_id=58780>

Currently it does not work for versioned buckets. And it is experimental.

If anyone is able to try it I’d be curious about your experiences.

Eric
(he/him)

> On Feb 23, 2023, at 11:20 AM, J. Eric Ivancich <ivanc...@redhat.com> wrote:
> 
> Off the top of my head:
> 
> 1. The command would take a bucket marker and a bucket names as arguments. It 
> might also need some additional metadata to fill in gaps.
> 2. Scan the data pool for head objects that refer to that bucket marker.
> 3. Based on the number of such objects found, create a bucket index with an 
> appropriate number of shards (approximately that number divided by 50,000).
> 4. For each such object:
>       a. Read the manifest in the head object and see if all tail objects 
> exit.
>       b. If any tail objects are missing, maybe report that object on the 
> console as non-recoverable?
>       c. If all tail objects present, resolve the name of the object from the 
> head object and add the bucket index entry to the appropriate shard.
> 
> Note 1: Slight variations may be needed depending on whether or not the 
> bucket entry object exists and the bucket instance object exists.
> Note 2: Versioned buckets will likely require some additional steps, but I’d 
> need to refresh my memory on some of the details.
> 
> Eric
> (he/him)
> 
>> On Feb 23, 2023, at 4:51 AM, Robert Sander <r.san...@heinlein-support.de> 
>> wrote:
>> 
>> Hi,
>> 
>> On 22.02.23 17:45, J. Eric Ivancich wrote:
>> 
>>> You also asked why there’s not a command to scan the data pool and recreate 
>>> the bucket index. I think the concept would work as all head objects 
>>> include the bucket marker in their names. There might be some corner cases 
>>> where it’d partially fail, such as (possibly) transactional changes that 
>>> were underway when the bucket index was purged. And there is metadata in 
>>> the bucket index that’s not stored in the objects, so it would have to be 
>>> recreated somehow. But no one has written it yet.
>> 
>> I am not in an urgent need to get such a feature.
>> 
>> How would the process look to get development started in this direction?
>> 
>> Regards
>> -- 
>> Robert Sander
>> Heinlein Consulting GmbH
>> Schwedter Str. 8/9b, 10119 Berlin
>> 
>> https://www.heinlein-support.de
>> 
>> Tel: 030 / 405051-43
>> Fax: 030 / 405051-19
>> 
>> Amtsgericht Berlin-Charlottenburg - HRB 220009 B
>> Geschäftsführer: Peer Heinlein - Sitz: Berlin
>> _______________________________________________
>> ceph-users mailing list -- ceph-users@ceph.io
>> To unsubscribe send an email to ceph-users-le...@ceph.io
> 

_______________________________________________
ceph-users mailing list -- ceph-users@ceph.io
To unsubscribe send an email to ceph-users-le...@ceph.io

Reply via email to