Ingo

Yes, we had to use multicore machine to do this efficiently ;-)
Update procedure is very similar to commands described here:
https://docs.ceph.com/docs/master/radosgw/layout/

so *radosgw-admin metadata get bucket.instance:<bucket>:<instance>*
then fix JSON
then* radoshw-admin metadata set bucket.instance:<bucket>:<instnace>*

Good luck!
ps: using this tweak we were able also to move some index objects from
storage pool to index pool, but you have to migrate objects along with OMAP
keys

Jacek

pon., 9 gru 2019 o 08:39 Ingo Reimann <ireim...@dunkel.de> napisał(a):

> Hi Jacek,
>
> thanks for your help. I will try to inject my new placement_target
> "pre-jewel" as placement_rule for that buckets with the modified
> radosgw-admin. Just now struggeling with the compile prozess.
>
> kind regards,
> Ingo
> ------------------------------
> *Von: *"Jacek Suchenia" <jacek.suche...@gmail.com>
> *An: *"ceph-users" <ceph-users@ceph.io>
> *Gesendet: *Sonntag, 8. Dezember 2019 16:47:16
> *Betreff: *[ceph-users] Re: nautilus radosgw fails with pre jewel buckets
> - index objects not at right place
>
> Hell Ingo
>
> We had the same issue, the fix is to update bucket instance metadata
> information. Unfortunately in a source code there is a special code to
> avoid this kind of change.
> https://github.com/ceph/ceph/blob/master/src/rgw/rgw_bucket.cc#L3005
>
> So to fix a bucket you have to comment those two lines, compile
> *radosgw-admin* and update bucket index metadata with proper location (In
> my example they were wrong or empty)
>
> Jacek
>
> pon., 2 gru 2019 o 12:28 Ingo Reimann <ireim...@dunkel.de> napisał(a):
>
>> Hi,
>>
>> 2 years after my issue [ https://tracker.ceph.com/issues/22928 |
>> https://tracker.ceph.com/issues/22928 ] the next one fires back.
>>
>> The Problem:
>> Old Buckets have their index and data in rgw.buckets:
>> root@cephrgw01:~# radosgw-admin metadata get bucket:testtesttesty
>> {
>> "key": "bucket:testtesttesty",
>> "ver": {
>> "tag": "_E_OHNhD28Zu1DeuvyGq8Q8b",
>> "ver": 1
>> },
>> "mtime": "2013-11-11 09:25:56.000000Z",
>> "data": {
>> "bucket": {
>> "name": "testtesttesty",
>> "marker": "default.2542971.19",
>> "bucket_id": "default.2542971.19",
>> "tenant": "",
>> "explicit_placement": {
>> "data_pool": "rgw.buckets",
>> "data_extra_pool": "",
>> "index_pool": "rgw.buckets"
>> }
>> },
>> "owner": "123",
>> "creation_time": "2013-11-11 09:25:56.000000Z",
>> "linked": "true",
>> "has_bucket_info": "false"
>> }
>> }
>>
>> After upgrade from luminous to nautilus i get 400(InvalidArgument) and
>> "NOTICE: invalid dest placement" in the radosgw-log on access to the buckets
>>
>> My zone defines:
>> root@cephrgw01:~# radosgw-admin zone get
>> {
>> "id": "default",
>> "name": "default",
>> "domain_root": ".rgw",
>> "control_pool": ".rgw.control",
>> "gc_pool": ".rgw.gc",
>> "lc_pool": ".log:lc",
>> "log_pool": ".log",
>> "intent_log_pool": ".intent-log",
>> "usage_log_pool": ".usage",
>> "reshard_pool": ".log:reshard",
>> "user_keys_pool": ".users",
>> "user_email_pool": ".users.email",
>> "user_swift_pool": ".users.swift",
>> "user_uid_pool": ".users.uid",
>> "otp_pool": "default.rgw.otp",
>> "system_key": {
>> "access_key": "",
>> "secret_key": ""
>> },
>> "placement_pools": [
>> {
>> "key": "default-placement",
>> "val": {
>> "index_pool": "rgw.buckets.index",
>> "storage_classes": {
>> "STANDARD": {
>> "data_pool": "rgw.buckets"
>> }
>> },
>> "data_extra_pool": "rgw.buckets.non-ec",
>> "index_type": 0
>> }
>> }
>> ],
>> "metadata_heap": ".rgw.meta",
>> "realm_id": "*********************c"
>> }
>>
>> Now i am a little bit lost. I added a new placement to my zone and
>> zonegroup
>> radosgw-admin zonegroup placement add --rgw-zonegroup default
>> --placement-id pre-jewel
>> radosgw-admin zone placement add --rgw-zonegroup default --placement-id
>> pre-jewel --data-pool rgw.buckets --index-pool rgw.buckets data-extra-pool
>> ""
>> radosgw-admin period update --commit
>>
>> root@cephrgw01:~# radosgw-admin zone get
>> {
>> "id": "default",
>> "name": "default",
>> "domain_root": ".rgw",
>> "control_pool": ".rgw.control",
>> "gc_pool": ".rgw.gc",
>> "lc_pool": ".log:lc",
>> "log_pool": ".log",
>> "intent_log_pool": ".intent-log",
>> "usage_log_pool": ".usage",
>> "reshard_pool": ".log:reshard",
>> "user_keys_pool": ".users",
>> "user_email_pool": ".users.email",
>> "user_swift_pool": ".users.swift",
>> "user_uid_pool": ".users.uid",
>> "otp_pool": "default.rgw.otp",
>> "system_key": {
>> "access_key": "",
>> "secret_key": ""
>> },
>> "placement_pools": [
>> {
>> "key": "default-placement",
>> "val": {
>> "index_pool": "rgw.buckets.index",
>> "storage_classes": {
>> "STANDARD": {
>> "data_pool": "rgw.buckets"
>> }
>> },
>> "data_extra_pool": "rgw.buckets.non-ec",
>> "index_type": 0
>> }
>> },
>> {
>> "key": "pre-jewel",
>> "val": {
>> "index_pool": "rgw.buckets",
>> "storage_classes": {
>> "STANDARD": {
>> "data_pool": "rgw.buckets"
>> }
>> },
>> "data_extra_pool": "",
>> "index_type": 0
>> }
>> }
>> ],
>> "metadata_heap": ".rgw.meta",
>> "realm_id": "****************c"
>> }
>>
>> Nevertheless, only the luminous gateways may list my old buckets. As far
>> as I can see, I may only change the placement_rule for new buckets. Is
>> there any chance to make radosgw find the old indices and complete the
>> upgrade to nautilus?
>>
>> Many thanks,
>>
>> Ingo
>>
>> --
>> Ingo Reimann
>>         [ https://www.dunkel.de/ ]
>> Dunkel GmbH
>> Philipp-Reis-Straße 2
>> 65795 Hattersheim
>> Fon: +49 6190 889-100
>> Fax: +49 6190 889-399
>> eMail: supp...@dunkel.de
>> http://www.Dunkel.de/   Amtsgericht Frankfurt/Main
>> HRB: 37971
>> Geschäftsführer: Axel Dunkel
>> Ust-ID: DE 811622001
>> _______________________________________________
>> ceph-users mailing list -- ceph-users@ceph.io
>> To unsubscribe send an email to ceph-users-le...@ceph.io
>>
>
>
> --
> Jacek Suchenia
> jacek.suche...@gmail.com
>
> _______________________________________________
> 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
>


-- 
Jacek Suchenia
jacek.suche...@gmail.com
_______________________________________________
ceph-users mailing list -- ceph-users@ceph.io
To unsubscribe send an email to ceph-users-le...@ceph.io

Reply via email to