Ingo We got this comfort to shut down S3 interface for couple of minutes where we could fix buckets - all the operation took ~3-5 minutes so we didn't lock buckets
Jacek pon., 9 gru 2019 o 15:31 Ingo Reimann <ireim...@dunkel.de> napisał(a): > Hi Jacek, > > thanks! I wanted to do follow exactly that plan with the metadata! > > For moving the index objects to the proper pool - did you lock the buckets > somehow?I wanted to avoid moving the indeces in the first step, when the > placement targets allow leaving everything as it is. > > We have a lot of traffic on the buckets, so i thought about modifying the > reshard command and store the "resharded" index on the new place. Just now, > i am not sure, if i need that and if i am able to do the right > modifications on the code.. > > Kind regards, > Ingo > > ------------------------------ > *Von: *"Jacek Suchenia" <jacek.suche...@gmail.com> > *An: *"Ingo Reimann" <ireim...@dunkel.de>, "ceph-users" < > ceph-users@ceph.io> > *Gesendet: *Montag, 9. Dezember 2019 13:34:26 > *Betreff: *Re: [ceph-users] Re: nautilus radosgw fails with pre jewel > buckets - index objects not at right place > > 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 > > -- 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