[ceph-users] Re: Dedicated radosgw gateways

2023-05-19 Thread Ulrich Klein
Another not sure ….

For syncing, the RGWs - afaik - use the URLs set as endpoints in the zone 
configurations.
So, if RadosGW1-4 on the West cluster are configured as endpoints then RadosGW4 
on the East cluster will pull data from all of them if there is anything to be 
pulled. And the same in the other direction.
If you want to use only the two RadosGW4 for syncing then only they should be 
endpoints for their cluster.

For customer S3 traffic the other RGWs just have to “be there” and you can talk 
to them, if the network allows. No need to set them as endpoints.
(Disclaimer: I haven’t looked at the code. This is just my experience :) )

What I also usually do is - using your example - put a HAProxy/keepalived 
(Ingress) in front of RadosGW1-3. Then I only have one customer URL per cluster 
and HAProxy nicely load balances the requests over the 3 RGWs.

Maybe this helps?

Ciao, Uli

PS: And only the "ceph config set client.rgw.clb.node3.nxumka 
rgw_run_sync_thread false” has an effect on which RGW tries to sync. The other 
two are unrelated to syncing, afaict, but might just be useful to remove load 
from the “customer” RGWs.


> On 19. May 2023, at 15:24, Tarrago, Eli (RIS-BCT) 
>  wrote:
> 
> Thanks Ulrich, using `ceph config set` instead of specifying in the config 
> file did end up working for me.
>  
> What I expected to happen with these series of changes would be:
> RadosGW4 would only sync with RadosGW 4 of the opposing site. Looking at the 
> logs, I see that RadosGW4 talks to WestGW1,2,3,4 instead of just 4 and 4 
> exclusively. I see this same pattern of activity from both sides of the 
> zonegroup.
>  
> Is this expected? 
>  
> My expectation was RadosGW4 would exclusivly talk to RadosGW4 to remove sync 
> traffic from client facing radosgw.
>  
> I have included a diagram below. I am unsure if pictures come thru the 
> mailing lists
>  
>  
> 
>  
> From: Ulrich Klein  <mailto:ulrich.kl...@ulrichklein.de>>
> Date: Friday, May 19, 2023 at 5:57 AM
> To: Tarrago, Eli (RIS-BCT)  <mailto:eli.tarr...@lexisnexisrisk.com>>
> Cc: ceph-users mailto:ceph-users@ceph.io>>
> Subject: Re: [ceph-users] Dedicated radosgw gateways
> 
> [You don't often get email from ulrich.kl...@ulrichklein.de 
> <mailto:ulrich.kl...@ulrichklein.de>. Learn why this is important at 
> https://aka.ms/LearnAboutSenderIdentification ]
> 
> *** External email: use caution ***
> 
> 
> 
> Not sure this will help:
> 
> I did some experiments on small test clusters with separate RGWs for 
> "customers" and for syncing. Both are Cephadm/containerized clusters.
> Cluster A primary with zone A with 4 nodes, one RGW on each, node 1 and 2 
> behind one HAProxy/ingress URL for syncing via http://clusterA 
> <http://clustera/>, node3 and 4 behind one HAPRoxy/ingress for customers via 
> https://customersA <https://customersa/>
> Cluster B secondary with zone B with 4 nodes, one RGW on each, node 1 and 2 
> behind one HAProxy/ingress URL for syncing via http://clusterB 
> <http://clusterb/>, node 3 and 4 behind one HAPRoxy/ingress for customers via 
> https://customersB <https://customersb/>
> 
> Endpoint for cluster A is http://clusterA <http://clustera/>
> Endpoint for cluster B is http://clusterB <http://clusterb/>
> 
> I set in cluster B:
> ceph config set client.rgw.clb.node3.nxumka rgw_run_sync_thread false
> ceph config set client.rgw.clb.node4.xeeqqq rgw_run_sync_thread false
> 
> ceph config set client.rgw.clb.node3.nxumka rgw_enable_lc_threads false
> ceph config set client.rgw.clb.node4.xeeqqq rgw_enable_lc_threads false
> 
> ceph config set client.rgw.clb.node3.nxumka rgw_enable_gc_threads false
> ceph config set client.rgw.clb.node4.xeeqqq rgw_enable_gc_threads false
> 
> ceph orch restart rgw.customer  # That's the "service" for customer RGW on 
> nodes 3 and 4.
> 
> Now I uploaded a 32G file to cluster A (via https://customersA) 
> <https://customersa)/>
> Once it's uploaded cluster B pulls it over. As the clusters are otherwise 
> completely idle I can check the network load (via SNMP) on the nodes to see 
> which one is doing the transfers.
> Without the restart cluster B seems to use a random RGW for pulling the sync 
> data, for me actually always node 3 or 4.
> But after the restart it uses only nodes 1 and 2 for pulling (although I only 
> ran the test 4 times).
> 
> So, looks like one has to restart the RGWs to pick up the configuration.
> 
> Ciao, Uli
> 
> > On 18. May 2023, at 21:14, Tarrago, Eli (RIS-BCT) 
> > mailto:eli.tarr...@lexisnexisrisk.com>> 
> > wrote:
> >
> > Adding a bit more context to this thread.
> >
> > I a

[ceph-users] Re: Dedicated radosgw gateways

2023-05-19 Thread Ulrich Klein
 /admin/log/?type=data=58=1_.1=true=
>  HTTP/1.1" 200 312 - - - latency=0.196007445s
> 2023-05-18T19:06:49.987+ 7fb27c750700  1 == starting new request 
> req=0x7fb3e81b06f0 =
> 
> 
> 
> 
> radosgw-admin zonegroup get
> {
>"id": "x",
>"name": "eastWestceph",
>"api_name": "EastWestCeph",
>"is_master": "true",
>"endpoints": [
>"http://east01.noam.lnrm.net:8080;,
>"http://east02.noam.lnrm.net:8080;,
>"http://east03.noam.lnrm.net:8080;,
>"http://east04.noam.lnrm.net:8080;, <<  sync node
>"http://west01.noam.lnrm.net:8080;,
>"http://west02.noam.lnrm.net:8080;,
>"http://west03.noam.lnrm.net:8080;,
>"http://west04.noam.lnrm.net:8080; <<  sync node
>],
> ...
>],
>"hostnames_s3website": [],
>"master_zone": "x",
>"zones": [
>{
>"id": "x",
>"name": "rgw-west",
>"endpoints": [
>"http://west01.noam.lnrm.net:8080;,
>"http://west02.noam.lnrm.net:8080;,
>"http://west03.noam.lnrm.net:8080;,
>"http://west04.noam.lnrm.net:8080; << -- sync node
>    ],
>"log_meta": "false",
>"log_data": "true",
>"bucket_index_max_shards": 0,
>"read_only": "false",
>"tier_type": "",
>"sync_from_all": "true",
>"sync_from": [],
>"redirect_zone": ""
>},
>{
>"id": "x",
>"name": "rgw-east",
>"endpoints": [
>"http://east01.noam.lnrm.net:8080;,
>"http://east02.noam.lnrm.net:8080;,
>"http://east03.noam.lnrm.net:8080;,
>"http://east04.noam.lnrm.net:8080;   << -- sync node
> 
> From: Ulrich Klein 
> Date: Tuesday, May 16, 2023 at 10:22 AM
> To: Konstantin Shalygin 
> Cc: Michal Strnad , ceph-users 
> Subject: [ceph-users] Re: Dedicated radosgw gateways
> [You don't often get email from ulrich.kl...@ulrichklein.de. Learn why this 
> is important at https://aka.ms/LearnAboutSenderIdentification ]
> 
> *** External email: use caution ***
> 
> 
> 
> Hi,
> 
> Might be a dumb question …
> I'm wondering how I can set those config variables in some but not all RGW 
> processes?
> 
> I'm on a cephadm 17.2.6. On 3 nodes I have RGWs. The ones on 8080 are behind 
> haproxy for users. the ones one 8081 I'd like for sync only.
> 
> # ceph orch ps | grep rgw
> rgw.max.maxvm4.lmjaef  maxvm4   *:8080   running (51m) 4s ago   2h
>  262M-  17.2.6   d007367d0f3c  315f47a4f164
> rgw.max.maxvm4.lwzxpf  maxvm4   *:8081   running (51m) 4s ago   2h
>  199M-  17.2.6   d007367d0f3c  7ae82e5f6ef2
> rgw.max.maxvm5.syxpnb  maxvm5   *:8081   running (51m) 4s ago   2h
>  137M-  17.2.6   d007367d0f3c  c0635c09ba8f
> rgw.max.maxvm5.wtpyfk  maxvm5   *:8080   running (51m) 4s ago   2h
>  267M-  17.2.6   d007367d0f3c  b4ad91718094
> rgw.max.maxvm6.ostneb  maxvm6   *:8081   running (51m) 4s ago   2h
>  150M-  17.2.6   d007367d0f3c  83b2af8f787a
> rgw.max.maxvm6.qfulra  maxvm6   *:8080   running (51m) 4s ago   2h
>  262M-  17.2.6   d007367d0f3c  81d01bf9e21d
> 
> # ceph config show rgw.max.maxvm4.lwzxpf
> Error ENOENT: no config state for daemon rgw.max.maxvm4.lwzxpf
> 
> # ceph config set rgw.max.maxvm4.lwzxpf rgw_enable_lc_threads false
> Error EINVAL: unrecognized config target 'rgw.max.maxvm4.lwzxpf'
> (Not surprised)
> 
> # ceph tell rgw.max.maxvm4.lmjaef get rgw_enable_lc_threads
> error handling command target: local variable 'poolid' referenced before 
> assignment
> 
> # ceph tell rgw.max.maxvm4.lmjaef set rgw_enable_lc_threads false
> error handling command target: local variable 'poolid' referenced before 
> assignment
> 
> Is there any way to set the config for specific RGWs in a containerized env?
> 
> (ceph.conf doesn't work. Doesn't do anything and gets overwritten with a 
> minimall version at "unpredictable" intervalls)
> 
> Thanks for any ideas.
> 
> Ciao, Uli
> 
>> On 15

[ceph-users] Re: Dedicated radosgw gateways

2023-05-16 Thread Ulrich Klein
Hi,

Might be a dumb question …
I'm wondering how I can set those config variables in some but not all RGW 
processes?

I'm on a cephadm 17.2.6. On 3 nodes I have RGWs. The ones on 8080 are behind 
haproxy for users. the ones one 8081 I'd like for sync only.

# ceph orch ps | grep rgw
rgw.max.maxvm4.lmjaef  maxvm4   *:8080   running (51m) 4s ago   2h 
262M-  17.2.6   d007367d0f3c  315f47a4f164
rgw.max.maxvm4.lwzxpf  maxvm4   *:8081   running (51m) 4s ago   2h 
199M-  17.2.6   d007367d0f3c  7ae82e5f6ef2
rgw.max.maxvm5.syxpnb  maxvm5   *:8081   running (51m) 4s ago   2h 
137M-  17.2.6   d007367d0f3c  c0635c09ba8f
rgw.max.maxvm5.wtpyfk  maxvm5   *:8080   running (51m) 4s ago   2h 
267M-  17.2.6   d007367d0f3c  b4ad91718094
rgw.max.maxvm6.ostneb  maxvm6   *:8081   running (51m) 4s ago   2h 
150M-  17.2.6   d007367d0f3c  83b2af8f787a
rgw.max.maxvm6.qfulra  maxvm6   *:8080   running (51m) 4s ago   2h 
262M-  17.2.6   d007367d0f3c  81d01bf9e21d

# ceph config show rgw.max.maxvm4.lwzxpf
Error ENOENT: no config state for daemon rgw.max.maxvm4.lwzxpf

# ceph config set rgw.max.maxvm4.lwzxpf rgw_enable_lc_threads false
Error EINVAL: unrecognized config target 'rgw.max.maxvm4.lwzxpf'
(Not surprised)

# ceph tell rgw.max.maxvm4.lmjaef get rgw_enable_lc_threads
error handling command target: local variable 'poolid' referenced before 
assignment

# ceph tell rgw.max.maxvm4.lmjaef set rgw_enable_lc_threads false
error handling command target: local variable 'poolid' referenced before 
assignment

Is there any way to set the config for specific RGWs in a containerized env?

(ceph.conf doesn't work. Doesn't do anything and gets overwritten with a 
minimall version at "unpredictable" intervalls)

Thanks for any ideas.

Ciao, Uli

> On 15. May 2023, at 14:15, Konstantin Shalygin  wrote:
> 
> Hi,
> 
>> On 15 May 2023, at 14:58, Michal Strnad  wrote:
>> 
>> at Cephalocon 2023, it was mentioned several times that for service tasks 
>> such as data deletion via garbage collection or data replication in S3 via 
>> zoning, it is good to do them on dedicated radosgw gateways and not mix them 
>> with gateways used by users. How can this be achieved? How can we isolate 
>> these tasks? Will using dedicated keyrings instead of admin keys be 
>> sufficient? How do you operate this in your environment?
> 
> Just:
> 
> # don't put client traffic to "dedicated radosgw gateways"
> # disable lc/gc on "gateways used by users" via `rgw_enable_lc_threads = 
> false` & `rgw_enable_gc_threads = false`
> 
> 
> k
> ___
> 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


[ceph-users] Re: Veeam backups to radosgw seem to be very slow

2023-04-25 Thread Ulrich Klein
Hi,

I’ve tested that combination once last year. My experience was similar. It was 
dead-slow.
But if I remember correctly my conclusion was that Veeam was sending very 
slowly lots of rather small objects without any parallelism.
But apart from the cruel slowness I didn’t have problems of the “bucket does 
not exist”/“permission denied” type.

I don’t have the setup anymore. But I think it might be worth checking what 
kind of objects Veeam puts into its buckets.

Ciao, Uli

> On 25. Apr 2023, at 15:01, Boris Behrens  wrote:
> 
> We have a customer that tries to use veeam with our rgw objectstorage and
> it seems to be blazingly slow.
> 
> What also seems to be strange, that veeam sometimes show "bucket does not
> exist" or "permission denied".
> 
> I've tested parallel and everything seems to work fine from the s3cmd/aws
> cli standpoint.
> 
> Does anyone here ever experienced veeam problems with rgw?
> 
> Cheers
> Boris
> ___
> 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


[ceph-users] Yet another question about OSD memory usage ...

2023-02-10 Thread Ulrich Klein
Hi,

Yet another question about OSD memory usage ...

I have a test cluster running. When I do a ceph orch ps I see for my osd.11:
ceph orch ps --refresh
NAME HOSTPORTSSTATUSREFRESHED  AGE  MEM 
USE  MEM LIM  VERSION  IMAGE ID  CONTAINER ID
osd.11   ceph01   running (2h)97s ago   2h
23.0G13.1G  17.2.5   cc65afd6173a  5d1062e8d392

When I chek via top on the machine I see:
PID USER  PR  NIVIRTRESSHR S  %CPU  %MEM TIME+ COMMAND
  39807 ceph  20   0 6254956   3.7g   9228 S  31.2   3.0 846:21.63 
/usr/bin/ceph-osd -n osd.11 -f --setuser ceph --setgroup ceph 
--default-log-to-file=false --default-lo+

Now, where does ceph orch ps get those 23.0G from, when top just shows 3.7G 
resident and 6.2G virtual for osd.11?
(I do understand that the MEM LIM n the ceph orch ps list is not really the 
limit)

Anyone know where that discrepancy comes from?

Ciao, Uli

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


[ceph-users] Re: excluding from host_pattern

2023-01-27 Thread Ulrich Klein
I use something like "^ceph(0[1-9])|(1[0-9])$", but in a script that checks a 
parameter for a "correct" ceph node name like in:

   wantNum=$1
   if [[ $wantNum =~ ^ceph(0[2-9]|1[0-9])$ ]] ; then
  wantNum=${BASH_REMATCH[1]}

Which gives me the number, if it is in the range 02-19

Dunno, if that helps :)

Ciao, Uli

> On 27. Jan 2023, at 18:17, E Taka <0eta...@gmail.com> wrote:
> 
> Hi,
> 
> I wonder if it is possible to define a host pattern, which includes the
> host names
> ceph01…ceph19, but no other hosts, especially not ceph00. That means, this
> pattern is wrong: ceph[01][0-9] , since it includes ceph00.
> 
> Not really a problem, but it seems that the "“host-pattern” is a regex that
> matches against hostnames and returns only matching hosts"¹ is not defined
> more precisely in the docs.
> 
> 1) https://docs.ceph.com/en/latest/cephadm/host-management/
> ___
> 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


[ceph-users] No Authentication/Authorization for creating topics on RGW?

2022-12-05 Thread Ulrich Klein
Hi,

I'm experimenting with notifications for S3 buckets.
I got it working with notifications to HTTP(S) endpoints.

What I did:

Create a topic:
# cat create_topic.data
Action=CreateTopic
=topictest2
=verify-ssl=false
=use-ssl=false
=OpaqueData=Hallodrio
=push-endpoint=http://helper.example.com/cgi-bin/topictest
=persistent=false
=cloudevents=false

# curl --request POST 'https://rgw.example.com' --data @create_topic.data
https://sns.amazonaws.com/doc/2010-03-31/;>arn:aws:sns:example::topictest2f0904533-f4ed-4d60-886c-4125fcbed97b.4944109.3169009808426767767


And then created a notification for some user, which I received ok via http.


What I'm wondering:
There was no authentication/authorization necessary at all to create the topic??
Is that normal? Any <...> could create a million topics that way.

Is there a way to prevent that from happening? I haven't found one in the docs.

I guess - being new to the topic of notifications - that I'm missing something 
obvious?

Ciao, Uli
___
ceph-users mailing list -- ceph-users@ceph.io
To unsubscribe send an email to ceph-users-le...@ceph.io


[ceph-users] RGW/S3 after a cluster is/was full

2022-10-25 Thread Ulrich Klein
Hi,

I have a problem with a full cluster and getting it back to a healthy state.
Fortunately it's a small test cluster with no valuable data in it.
It is used exclusively for RGW/S3, running 17.2.3.

I intentionaly filled it up via rclone/S3 until it got into HEALTH_ERR, so see 
what would happen in that situation. 
At first it sort-of looks ok, as the cluster apparently goes into a read-only 
state. I can still get the stored data via S3.

But then there seems to be no way to get out of the full state. Via S3 one 
can't delete any objects or buckets.
Or did I miss anything? The requests just hang until they time out.

So, I used "rados rm -p   --force-full" to delete a bunch of those 
multipart corpses and other "old" objects.
That got the cluster back into HEALTH_OK.

But now the RGW gc seems to be screwed up:
# radosgw-admin gc list --include-all | grep oid | wc -l
158109
# radosgw-admin gc process --include-all
# radosgw-admin gc list --include-all | grep oid | wc -l
158109

I.e.. it has 158109 objects to clean up, but doesn’t clean up anything.
I guess that's because the objects it wants to collect don't exist anymore, but 
are in some index or other list.
Is there any way to reset or clean up?

I'd appreciate any hints.

Ciao, Uli

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


[ceph-users] Re: why rgw generates large quantities orphan objects?

2022-10-14 Thread Ulrich Klein
Hi,

I’m wondering if this problem will ever get fixed?

This multipart-orphan-problem has made it now multiple times to the list, the 
tickets are up to 6 years old … and nothing changes. 
It screws up per-user space accounting and uses up space for nothing.

I’d open another ticket with easy steps to reproduce, but can’t get an account 
on tracker.ceph.com (“pending administrator approval”)

Ciao, Uli

> On 13. 10 2022, at 17:44, Haas, Josh  wrote:
> 
> Hi Liang,
> 
> My guess would be this bug:
> 
> https://tracker.ceph.com/issues/44660
> https://www.spinics.net/lists/ceph-users/msg30151.html
> 
> 
> It's actually existed for at least 6 years:
> https://tracker.ceph.com/issues/16767
> 
> 
> Which occurs any time you reupload the same *part* in a single Multipart 
> Upload multiple times. For example, if my Multipart upload consists of 3 
> parts, if I upload part #2 twice, then the first upload of part #2 becomes 
> orphaned.
> 
> 
> If this was indeed the cause, you should have multiple "_multipart_" rados 
> objects for the same part in "rados ls". For example, here's all the rados 
> objects associated with a bugged bucket before I deleted it:
> 
> cc79b188-89d1-4f47-acb1-ab90513e9bc9.23325574.228__multipart_file.txt.4vkWzU4C5XLd2R6unFgbQ6aZM26vPuq8.1
> cc79b188-89d1-4f47-acb1-ab90513e9bc9.23325574.228__multipart_file.txt.2~4zogSe4Ep0xvSC8j6aX71x_96cOgvQN.1
> cc79b188-89d1-4f47-acb1-ab90513e9bc9.23325574.228__shadow_file.txt.4vkWzU4C5XLd2R6unFgbQ6aZM26vPuq8.1_1
> cc79b188-89d1-4f47-acb1-ab90513e9bc9.23325574.228__shadow_file.txt.2~4zogSe4Ep0xvSC8j6aX71x_96cOgvQN.1_1
> 
> 
> If we look at just these two:
> 
> cc79b188-89d1-4f47-acb1-ab90513e9bc9.23325574.228__multipart_file.txt.4vkWzU4C5XLd2R6unFgbQ6aZM26vPuq8.1
> cc79b188-89d1-4f47-acb1-ab90513e9bc9.23325574.228__multipart_file.txt.2~4zogSe4Ep0xvSC8j6aX71x_96cOgvQN.1
> 
> 
> They are in the format:
> 
> $BUCKETID__multipart_$S3KEY.$PARTUID.$PARTNUM
> 
> Because everything matches ($BUCKETID, $S3KEY, $PARTNUM) except for $PARTUID, 
> this S3 object has been affected by the bug. If you find instances of rados 
> keys that match on everything except $PARTUID, then this bug is probably the 
> cause.
> 
> 
> Josh
> 
> 
> From: 郑亮 
> Sent: Wednesday, October 12, 2022 1:34:31 AM
> To: ceph-users@ceph.io
> Subject: [ceph-users] why rgw generates large quantities orphan objects?
> 
> Hi all,
> Description of problem: [RGW] Buckets/objects deletion is causing large
> quantities orphan raods objects
> 
> The cluster was running a cosbench workload, then remove the partial data
> by deleting objects from the cosbench client, then we have deleted all the
> buckets with the help of `s3cmd rb --recursive --force` command that
> removed all the buckets, but that did not help in the space reclaimation.
> 
> ```
> [root@node01 /]# rgw-orphan-list
> 
> Available pools:
> 
>device_health_metrics
> 
>.rgw.root
> 
>os-test.rgw.buckets.non-ec
> 
>os-test.rgw.log
> 
>os-test.rgw.control
> 
>os-test.rgw.buckets.index
> 
>os-test.rgw.meta
> 
>os-test.rgw.buckets.data
> 
>deeproute-replica-hdd-pool
> 
>deeproute-replica-ssd-pool
> 
>cephfs-metadata
> 
>cephfs-replicated-pool
> 
>.nfs
> 
> Which pool do you want to search for orphans (for multiple, use
> space-separated list)? os-test.rgw.buckets.data
> 
> Pool is "os-test.rgw.buckets.data".
> 
> Note: output files produced will be tagged with the current timestamp --
> 20221008062356.
> running 'rados ls' at Sat Oct  8 06:24:05 UTC 2022
> 
> running 'rados ls' on pool os-test.rgw.buckets.data.
> 
> 
> 
> running 'radosgw-admin bucket radoslist' at Sat Oct  8 06:43:21 UTC 2022
> computing delta at Sat Oct  8 06:47:17 UTC 2022
> 
> 39662551 potential orphans found out of a possible 39844453 (99%).
> The results can be found in './orphan-list-20221008062356.out'.
> 
>Intermediate files are './rados-20221008062356.intermediate' and
> './radosgw-admin-20221008062356.intermediate'.
> ***
> 
> *** WARNING: This is EXPERIMENTAL code and the results should be used
> ***  only with CAUTION!
> ***
> Done at Sat Oct  8 06:48:07 UTC 2022.
> 
> [root@node01 /]# radosgw-admin gc list
> []
> 
> [root@node01 /]# cat orphan-list-20221008062356.out | wc -l
> 39662551
> 
> [root@node01 /]# rados df
> POOL_NAME   USED   OBJECTS  CLONES COPIES
> MISSING_ON_PRIMARY  UNFOUND  DEGRADED RD_OPS   RD WR_OPS
> WR  USED COMPR  UNDER COMPR
> .nfs 4.3 MiB 4   0 12
>00 0  77398   76 MiB146   79
> KiB 0 B  0 B
> .rgw.root180 KiB16   0 48
>00 0  28749   28 MiB  0
> 0 B 0 B  0 B
> cephfs-metadata  932 MiB 14772   0  44316
>00 01569690  3.8 GiB1258651  3.4
> GiB 0 B  0 B
> 

[ceph-users] Re: Wrong size actual?

2022-09-06 Thread Ulrich Klein
I’m not sure anymore, but I think I tried that on a test system. Afterwards I 
had to recreate the RGW pools and start over, so didn’t try it on a “real” 
system.
But I can try again in about 2 weeks. It’s dead simple to recreate the problem
(https://lists.ceph.io/hyperkitty/list/ceph-users@ceph.io/message/XOQXZYOWYMMQBWFXMHYDQUJ7LZZPFLSU
 
<https://lists.ceph.io/hyperkitty/list/ceph-users@ceph.io/message/XOQXZYOWYMMQBWFXMHYDQUJ7LZZPFLSU>)
 in any Ceph version since at least Pacific

Ciao, Uli


> On 6. Sep 2022, at 15:48, J. Eric Ivancich  wrote:
> 
> You could use `rgw-orphan-list` to determine rados objects that aren’t 
> referenced by any bucket indices. Those objects could be removed after 
> verification since this is an experimental feature.
> 
> Eric
> (he/him)
> 
>> On Sep 5, 2022, at 10:44 AM, Ulrich Klein  
>> wrote:
>> 
>> Looks like the old problem of lost multipart upload fragments. Has been 
>> haunting me in all versions for more than a year. Haven‘t found any way of 
>> getting rid of them.
>> Even deleting the bucket seems to leave the objects in the rados pool 
>> forever.
>> 
>> Ciao, Uli
>> 
>>> Am 05.09.2022 um 15:19 schrieb Rok Jaklič :
>>> 
>>> Hi,
>>> 
>>> when I do:
>>> radosgw-admin user stats --uid=X --tenant=Y --sync-stats
>>> 
>>> I get:
>>> {
>>>  "stats": {
>>>  "size": 2620347285776,
>>>  "size_actual": 2620348436480,
>>>  "size_utilized": 0,
>>>  "size_kb": 2558932897,
>>>  "size_kb_actual": 2558934020,
>>>  "size_kb_utilized": 0,
>>>  "num_objects": 593
>>>  },
>>>  "last_stats_sync": "2022-09-05T13:11:05.009648Z",
>>>  "last_stats_update": "2022-09-05T13:11:04.97Z"
>>> }
>>> 
>>> even though I have only two empty buckets inside account. Any ideas why?
>>> 
>>> Account was previously full of objects, but objects were delete few days
>>> ago.
>>> 
>>> Kind regards,
>>> Rok
>>> ___
>>> 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

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


[ceph-users] Re: Wrong size actual?

2022-09-06 Thread Ulrich Klein
Hm, there are a couple, like https://tracker.ceph.com/issues/44660, but none 
with a resolution.
It’s a real problem for us because it accumulates “lost” space and screws up 
space accounting.
But the ticket is classified as “3 - minor”, ie. apparently not seen as urgent 
for the last couple of years.

Ciao, Uli 


> On 6. Sep 2022, at 11:06, Rok Jaklič  wrote:
> 
> Thanks for the info.
> 
> Is there any bug report open?
> 
> On Mon, Sep 5, 2022 at 4:44 PM Ulrich Klein  <mailto:ulrich.kl...@ulrichklein.de>> wrote:
> Looks like the old problem of lost multipart upload fragments. Has been 
> haunting me in all versions for more than a year. Haven‘t found any way of 
> getting rid of them.
> Even deleting the bucket seems to leave the objects in the rados pool forever.
> 
> Ciao, Uli
> 
> > Am 05.09.2022 um 15:19 schrieb Rok Jaklič  > <mailto:rjak...@gmail.com>>:
> > 
> > Hi,
> > 
> > when I do:
> > radosgw-admin user stats --uid=X --tenant=Y --sync-stats
> > 
> > I get:
> > {
> >"stats": {
> >"size": 2620347285776,
> >"size_actual": 2620348436480,
> >"size_utilized": 0,
> >"size_kb": 2558932897,
> >"size_kb_actual": 2558934020,
> >"size_kb_utilized": 0,
> >"num_objects": 593
> >},
> >"last_stats_sync": "2022-09-05T13:11:05.009648Z",
> >"last_stats_update": "2022-09-05T13:11:04.97Z"
> > }
> > 
> > even though I have only two empty buckets inside account. Any ideas why?
> > 
> > Account was previously full of objects, but objects were delete few days
> > ago.
> > 
> > Kind regards,
> > Rok
> > ___
> > ceph-users mailing list -- ceph-users@ceph.io <mailto:ceph-users@ceph.io>
> > To unsubscribe send an email to ceph-users-le...@ceph.io 
> > <mailto:ceph-users-le...@ceph.io>

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


[ceph-users] Re: Wrong size actual?

2022-09-05 Thread Ulrich Klein
Looks like the old problem of lost multipart upload fragments. Has been 
haunting me in all versions for more than a year. Haven‘t found any way of 
getting rid of them.
Even deleting the bucket seems to leave the objects in the rados pool forever.

Ciao, Uli

> Am 05.09.2022 um 15:19 schrieb Rok Jaklič :
> 
> Hi,
> 
> when I do:
> radosgw-admin user stats --uid=X --tenant=Y --sync-stats
> 
> I get:
> {
>"stats": {
>"size": 2620347285776,
>"size_actual": 2620348436480,
>"size_utilized": 0,
>"size_kb": 2558932897,
>"size_kb_actual": 2558934020,
>"size_kb_utilized": 0,
>"num_objects": 593
>},
>"last_stats_sync": "2022-09-05T13:11:05.009648Z",
>"last_stats_update": "2022-09-05T13:11:04.97Z"
> }
> 
> even though I have only two empty buckets inside account. Any ideas why?
> 
> Account was previously full of objects, but objects were delete few days
> ago.
> 
> Kind regards,
> Rok
> ___
> 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


[ceph-users] Re: not so empty bucket

2022-05-10 Thread Ulrich Klein
Yo, I’m having the same problem and can easily reproduce it.
See 
https://lists.ceph.io/hyperkitty/list/ceph-users@ceph.io/message/XOQXZYOWYMMQBWFXMHYDQUJ7LZZPFLSU/
And similar ones.

The problem still exists in Quincy 17.2.0. But looks like it’s too low priority 
to be fixed.

Ciao, Uli

> On 09. 05 2022, at 22:20, Christopher Durham  wrote:
> 
> 
> I am using pacific 16.2.7 on rocket 8.5 Linux 8.5.
> I have a once heavily used radosgw bucket that is now empty. Let's call it 
> 'oldbucket' awscli now shows that there are no objects in the bucket.
> 
> However, radosgw-admin bucket stats --bucket oldbucket shows num_objects in 
> rgw.main as 39 objects, with about 200 gigs used in the size field.
> 
> radosgw-admin bucket check --bucket oldbucket indeed shows 39 objects in a 
> list.
> Each of these objects are of the form:
> _multipart_originalobjectname.someoriginalid.NN
> radosgw-admin bucket radoslist --bucket oldbucket shows only 9 objects, but 
> thoseobjects are alll included as part of the bucket check command above.
> This particular bucket did have alot of multipart uploads. All multipart 
> uploads have beenaborted with awscli. And of course awscli shows no objects 
> in the bucket
> 
> radosgw-admin bucket list --bucket oldbucket shows all 39 objects, which is 
> weird thatI see object names which once were multipart object parts.
> 
> None of the 39 objects exist in the pool (rados -p $pool get $obj /tmp/$obj 
> all return 1)
> If I list all the index objects for this bucket in the index pool and then do 
> a listomapkeys for each of the index objects,I see only the 39 omapkeys.
> So my question is, what do I need to do to fix this bucket (without delting 
> and recreating it?) Would just doing a rmomapkeyon each of the omap keys in 
> the listomapkeys output solve my problem, and reclaim the 200 Gigs?
> Do I have to rebuild the index somehow (--fix in bucket check above did 
> nothing).
> 
> Thanks for any thoughts/insight.
> -Chris
> 
> 
> 
> 
> ___
> 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


[ceph-users] Re: RGW/S3 losing multipart upload objects

2022-04-29 Thread Ulrich Klein
Hi,

I just tried again on a Quincy 17.2.0.
Same procedure, same problem. 
I just wonder if nobody else sees that problem?

Ciao, Uli

> On 18. 03 2022, at 12:18, Ulrich Klein  wrote:
> 
> I tried it on a mini-cluster (4 Raspberries) with 16.2.7. 
> Same procedure, same effect. I just can’t get rid of these objects.
> 
> Is there any method that would allow me to delete these objects without 
> damaging RGW?
> 
> Ciao, Uli 
> 
>> On 17. 03 2022, at 15:30, Soumya Koduri  wrote:
>> 
>> On 3/17/22 17:16, Ulrich Klein wrote:
>>> Hi,
>>> 
>>> My second attempt to get help with a problem I'm trying to solve for about 
>>> 6 month now.
>>> 
>>> I have a Ceph 16.2.6 test cluster, used almost exclusively for providing 
>>> RGW/S3 service. similar to a production cluster.
>>> 
>>> The problem I have is this:
>>> A client uploads (via S3) a bunch of large files into a bucket via 
>>> multiparts
>>> The upload(s) get interrupted and retried
>>> In the end from a client's perspective all the files are visible and 
>>> everything looks fine.
>>> But on the cluster there are many more objects in the buckets
>>> Even after cleaning out the incomplete multipart uploads there are too many 
>>> objects
>>> Even after deleting all the visible objects from the bucket there are still 
>>> objects in the bucket
>>> I have so far found no way to get rid of those left-over objects.
>>> It's screwing up space accounting and I'm afraid I'll eventually have a 
>>> cluster full of those lost objects.
>>> The only way to clean up seems to be to copy te contents of a bucket to a 
>>> new bucket and delete the screwed-up bucket. But on a production system 
>>> that's not always a real option.
>>> 
>>> I've found a variety of older threads that describe a similar problem. None 
>>> of them decribing a solution :(
>>> 
>>> 
>>> 
>>> I can pretty easily reproduce the problem with this sequence:
>>> 
>>> On a client system create a directory with ~30 200MB files. (On a faster 
>>> system I'd probably need bigger or more files)
>>> tstfiles/tst01 - tst29
>>> 
>>> run
>>> $ rclone mkdir tester:/test-bucket # creates a bucket on the test system 
>>> with user tester
>>> Run
>>> $ rclone sync -v tstfiles tester:/test-bucket/tstfiles
>>> a couple of times (6-8), interrupting each one via CNTRL-C
>>> Eventually let one finish.
>>> 
>>> Now I can use s3cmd to see all the files:
>>> $ s3cmd ls -lr s3://test-bucket/tstfiles
>>> 2022-03-16 17:11   200M  ecb28853bd18eeae185b0b12bd47333c-40  STANDARD 
>>> s3://test-bucket/tstfiles/tst01
>>> ...
>>> 2022-03-16 17:13   200M  ecb28853bd18eeae185b0b12bd47333c-40  STANDARD 
>>> s3://test-bucket/tstfiles/tst29
>>> 
>>> ... and to list incomplete uploads:
>>> $ s3cmd multipart s3://test-bucket
>>> s3://test-bucket/
>>> Initiated   PathId
>>> 2022-03-16T17:11:19.074Zs3://test-bucket/tstfiles/tst05 
>>> 2~1nElF0c3uq5FnZ9cKlsnGlXKATvjr0g
>>> ...
>>> 2022-03-16T17:12:41.583Zs3://test-bucket/tstfiles/tst28 
>>> 2~exVQUILhVSmFqWxCuAflRa4Tfq4nUQa
>>> 
>>> I can abort the uploads with
>>> $  s3cmd abortmp s3://test-bucket/tstfiles/tst05 
>>> 2~1nElF0c3uq5FnZ9cKlsnGlXKATvjr0g
>>> ...
>> 
>> 
>> 
>> On the latest master, I see that these objects are deleted immediately post 
>> abortmp. I believe this issue may have beenn fixed as part of [1], 
>> backported to v16.2.7 [2]. Maybe you could try upgrading your cluster and 
>> recheck.
>> 
>> 
>> Thanks,
>> 
>> Soumya
>> 
>> 
>> [1] https://tracker.ceph.com/issues/53222
>> 
>> [2] https://tracker.ceph.com/issues/53291
>> 
>> 
>> 
>> ___
>> 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

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


[ceph-users] Re: Permission problem upgrading Raspi-cluster from 16.2.7 to 17.2.0

2022-04-27 Thread Ulrich Klein
Yup, looks exactly like the problem described in that thread. 
For the next cluster I’ll try without the _admin labels.
I think I added them because without the label the files in /etc/ceph ever so 
often “magically” disappeared.
So I’ll save copies of them before doing the upgrade.

Thanks, Uli


> On 27. 04 2022, at 12:17, Kuo Gene  wrote:
> 
> Hi,
> 
> There’s previous discussion about this issue.
> 
> https://lists.ceph.io/hyperkitty/list/ceph-users@ceph.io/thread/ZZZGEVD4L4SEMEBMTZYDW2OOVWQFXGOA/
> 
> Can you check if there is any host with _admin label on it?  Removing the 
> label works for me.
> 
> Regards,
> Gene Kuo
> 
>> On Apr 27, 2022, at 18:21, Ulrich Klein  wrote:
>> 
>> Hi,
>> 
>> Yesterday I upgraded my smallest test system, 4 Raspberries 4B, from Pacific 
>> 16.2.7 (cephadm/containerized) to 17.2.0 using
>> ceph orch upgrade start --ceph-version 17.2.0
>> 
>> It mostly worked ok, but wouldn't have finished without manual intervention.
>> Apparently each time a mgr is upgraded the process creates new 
>> /etc/ceph/ceph.conf and /etc/ceph/ceph.client.admin.keyring files on all 
>> nodes. 
>> To do that it looks like it first copies the files to 
>> /tmp/etc/ceph/ceph.conf on the node, then changes owwner and permission and 
>> then tries to move the file into place. Unfortunately it changes 
>> owner/permission in way so that it doesn't have permission to write to and 
>> move the file resulting in somethig like this in an infinite (?) loop:
>> 
>> 2022-04-27T09:03:45.032808+ mgr.ceph00.lpaijp (mgr.2314108) 605 : 
>> cephadm [ERR] executing refresh((['ceph00', 'ceph01', 'ceph02', 'ceph03'],)) 
>> failed.
>> Traceback (most recent call last):
>> File "/usr/share/ceph/mgr/cephadm/ssh.py", line 221, in _write_remote_file
>>   await asyncssh.scp(f.name, (conn, tmp_path))
>> File "/lib/python3.6/site-packages/asyncssh/scp.py", line 922, in scp
>>   await source.run(srcpath)
>> File "/lib/python3.6/site-packages/asyncssh/scp.py", line 458, in run
>>   self.handle_error(exc)
>> File "/lib/python3.6/site-packages/asyncssh/scp.py", line 307, in 
>> handle_error
>>   raise exc from None
>> File "/lib/python3.6/site-packages/asyncssh/scp.py", line 456, in run
>>   await self._send_files(path, b'')
>> File "/lib/python3.6/site-packages/asyncssh/scp.py", line 438, in _send_files
>>   self.handle_error(exc)
>> File "/lib/python3.6/site-packages/asyncssh/scp.py", line 307, in 
>> handle_error
>>   raise exc from None
>> File "/lib/python3.6/site-packages/asyncssh/scp.py", line 434, in _send_files
>>   await self._send_file(srcpath, dstpath, attrs)
>> File "/lib/python3.6/site-packages/asyncssh/scp.py", line 365, in _send_file
>>   await self._make_cd_request(b'C', attrs, size, srcpath)
>> File "/lib/python3.6/site-packages/asyncssh/scp.py", line 343, in 
>> _make_cd_request
>>   self._fs.basename(path))
>> File "/lib/python3.6/site-packages/asyncssh/scp.py", line 224, in 
>> make_request
>>   raise exc
>> asyncssh.sftp.SFTPFailure: scp: /tmp/etc/ceph/ceph.conf.new: Permission 
>> denied
>> 
>> During handling of the above exception, another exception occurred:
>> 
>> Traceback (most recent call last):
>> File "/usr/share/ceph/mgr/cephadm/utils.py", line 76, in do_work
>>   return f(*arg)
>> File "/usr/share/ceph/mgr/cephadm/serve.py", line 265, in refresh
>>   self._write_client_files(client_files, host)
>> File "/usr/share/ceph/mgr/cephadm/serve.py", line 1052, in 
>> _write_client_files
>>   self.mgr.ssh.write_remote_file(host, path, content, mode, uid, gid)
>> File "/usr/share/ceph/mgr/cephadm/ssh.py", line 238, in write_remote_file
>>   host, path, content, mode, uid, gid, addr))
>> File "/usr/share/ceph/mgr/cephadm/module.py", line 569, in wait_async
>>   return self.event_loop.get_result(coro)
>> File "/usr/share/ceph/mgr/cephadm/ssh.py", line 48, in get_result
>>   return asyncio.run_coroutine_threadsafe(coro, self._loop).result()
>> File "/lib64/python3.6/concurrent/futures/_base.py", line 432, in result
>>   return self.__get_result()
>> File "/lib64/python3.6/concurrent/futures/_base.py", line 384, in 
>> __get_result
>>   raise self._exception
>> File "/usr/share/ceph/mgr/cephadm/ssh.py", line 226, in _write_remote_file
>>   raise OrchestratorError(msg)
>> orchestrator._interface.OrchestratorError: U

[ceph-users] Permission problem upgrading Raspi-cluster from 16.2.7 to 17.2.0

2022-04-27 Thread Ulrich Klein
Hi,

Yesterday I upgraded my smallest test system, 4 Raspberries 4B, from Pacific 
16.2.7 (cephadm/containerized) to 17.2.0 using
ceph orch upgrade start --ceph-version 17.2.0

It mostly worked ok, but wouldn't have finished without manual intervention.
Apparently each time a mgr is upgraded the process creates new 
/etc/ceph/ceph.conf and /etc/ceph/ceph.client.admin.keyring files on all nodes. 
To do that it looks like it first copies the files to /tmp/etc/ceph/ceph.conf 
on the node, then changes owwner and permission and then tries to move the file 
into place. Unfortunately it changes owner/permission in way so that it doesn't 
have permission to write to and move the file resulting in somethig like this 
in an infinite (?) loop:

2022-04-27T09:03:45.032808+ mgr.ceph00.lpaijp (mgr.2314108) 605 : cephadm 
[ERR] executing refresh((['ceph00', 'ceph01', 'ceph02', 'ceph03'],)) failed.
Traceback (most recent call last):
  File "/usr/share/ceph/mgr/cephadm/ssh.py", line 221, in _write_remote_file
await asyncssh.scp(f.name, (conn, tmp_path))
  File "/lib/python3.6/site-packages/asyncssh/scp.py", line 922, in scp
await source.run(srcpath)
  File "/lib/python3.6/site-packages/asyncssh/scp.py", line 458, in run
self.handle_error(exc)
  File "/lib/python3.6/site-packages/asyncssh/scp.py", line 307, in handle_error
raise exc from None
  File "/lib/python3.6/site-packages/asyncssh/scp.py", line 456, in run
await self._send_files(path, b'')
  File "/lib/python3.6/site-packages/asyncssh/scp.py", line 438, in _send_files
self.handle_error(exc)
  File "/lib/python3.6/site-packages/asyncssh/scp.py", line 307, in handle_error
raise exc from None
  File "/lib/python3.6/site-packages/asyncssh/scp.py", line 434, in _send_files
await self._send_file(srcpath, dstpath, attrs)
  File "/lib/python3.6/site-packages/asyncssh/scp.py", line 365, in _send_file
await self._make_cd_request(b'C', attrs, size, srcpath)
  File "/lib/python3.6/site-packages/asyncssh/scp.py", line 343, in 
_make_cd_request
self._fs.basename(path))
  File "/lib/python3.6/site-packages/asyncssh/scp.py", line 224, in make_request
raise exc
asyncssh.sftp.SFTPFailure: scp: /tmp/etc/ceph/ceph.conf.new: Permission denied

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/share/ceph/mgr/cephadm/utils.py", line 76, in do_work
return f(*arg)
  File "/usr/share/ceph/mgr/cephadm/serve.py", line 265, in refresh
self._write_client_files(client_files, host)
  File "/usr/share/ceph/mgr/cephadm/serve.py", line 1052, in _write_client_files
self.mgr.ssh.write_remote_file(host, path, content, mode, uid, gid)
  File "/usr/share/ceph/mgr/cephadm/ssh.py", line 238, in write_remote_file
host, path, content, mode, uid, gid, addr))
  File "/usr/share/ceph/mgr/cephadm/module.py", line 569, in wait_async
return self.event_loop.get_result(coro)
  File "/usr/share/ceph/mgr/cephadm/ssh.py", line 48, in get_result
return asyncio.run_coroutine_threadsafe(coro, self._loop).result()
  File "/lib64/python3.6/concurrent/futures/_base.py", line 432, in result
return self.__get_result()
  File "/lib64/python3.6/concurrent/futures/_base.py", line 384, in __get_result
raise self._exception
  File "/usr/share/ceph/mgr/cephadm/ssh.py", line 226, in _write_remote_file
raise OrchestratorError(msg)
orchestrator._interface.OrchestratorError: Unable to write 
ceph02:/etc/ceph/ceph.conf: scp: /tmp/etc/ceph/ceph.conf.new: Permission denied


On each node I had to do
cd /usr/bin
mv chmod chmod_real ; ln -s true chmod
mv chown chown_real ; ln -s true chown

And then whenever the file(s) appeared:
chmod_real 666 /tmp/etc/ceph/ceph.conf.new

to make it get over that hurdle. And once finished restore the chown/chmod 
binaries and permissions.
I wonder if anyone else has seen that on Intel/AMD machines? Looks like a 
pretty obvious problem with the process shooting itself in the permission foot, 
and on bigger clusters that process would be a time consuming pain.

Ciao, Uli

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


[ceph-users] Re: Ceph RGW Multisite Multi Zonegroup Build Problems

2022-04-19 Thread Ulrich Klein
After a bunch of attempts to get multiple zonegroups with RGW multi-site to 
work I’d have a question:

Has anyone successfully created a working setup with multiple zonegroups  with 
RGW multi-site using a cephadm/ceph orch installation of pacific? 

Ciao, Uli

> On 19. 04 2022, at 14:33, Ulrich Klein  wrote:
> 
> Hi,
> 
> I'm trying to do the same as Mark. Basically the same problem. Can’t get it 
> to work.
> The —-master doesn’t make much of a difference for me.
> 
> 
> Any other idea, maybe?
> 
> Ciao, Uli
> 
> On Cluster #1 ("nceph"):
> 
> radosgw-admin realm create --rgw-realm=acme --default
> radosgw-admin zonegroup create --rgw-zonegroup=us --rgw-realm=acme --master 
> --default --endpoints=http://nceph00.uli.home:8080
> radosgw-admin zone create --rgw-zonegroup=us --rgw-zone=us-west-1 --master 
> --default --endpoints=http://nceph00.uli.home:8080
> radosgw-admin user create --uid="sysuser" --display-name="System User" 
> --system --access-key=N7Y6CM8KIN45UY2J5NQA 
> --secret=a8QvbAMGpDwPBk8E3t3jHTyTSNqMQi4PK04yN9GX
> radosgw-admin zone modify --rgw-zone=us-west-1 
> --access-key=N7Y6CM8KIN45UY2J5NQA 
> --secret=a8QvbAMGpDwPBk8E3t3jHTyTSNqMQi4PK04yN9GX
> radosgw-admin period update --commit
> ceph orch host label add nceph00 rgw
> ceph orch apply rgw acme --realm=acme --zone=us-west-1 '--placement=label:rgw 
> count-per-host:1' --port=8080
> echo -n "N7Y6CM8KIN45UY2J5NQA" > ac
> echo -n "a8QvbAMGpDwPBk8E3t3jHTyTSNqMQi4PK04yN9GX" > sc
> ceph dashboard set-rgw-api-access-key -i ac
> ceph dashboard set-rgw-api-secret-key -i sc
> 
> radosgw-admin period update --commit
> {
>"id": "5b304997-e3ba-4cc2-9f80-af88a31827c3",
>"epoch": 2,
>"predecessor_uuid": "118ecc9a-3824-4560-afdf-98f901836fb2",
>"sync_status": [],
>"period_map": {
>"id": "5b304997-e3ba-4cc2-9f80-af88a31827c3",
>"zonegroups": [
>{
>"id": "1df9e729-8fa0-47fa-942f-b5159fad8360",
>"name": "us",
>"api_name": "us",
>"is_master": "true",
>"endpoints": [
>"http://nceph00.uli.home:8080;
>],
>"hostnames": [],
>"hostnames_s3website": [],
>"master_zone": "7ac5da6e-ea41-43ce-b6fc-f5b6e794933f",
>"zones": [
>{
>"id": "7ac5da6e-ea41-43ce-b6fc-f5b6e794933f",
>"name": "us-west-1",
>"endpoints": [
>"http://nceph00.uli.home:8080;
>],
>"log_meta": "false",
>"log_data": "false",
>"bucket_index_max_shards": 11,
>"read_only": "false",
>"tier_type": "",
>"sync_from_all": "true",
>"sync_from": [],
>"redirect_zone": ""
>}
>],
>"placement_targets": [
>{
>"name": "default-placement",
>"tags": [],
>"storage_classes": [
>"STANDARD"
>]
>}
>],
>"default_placement": "default-placement",
>"realm_id": "657b514d-be49-45c8-a69e-7ee474276c9a",
>"sync_policy": {
>"groups": []
>}
>}
>],
>"short_zone_ids": [
>{
>"key": "7ac5da6e-ea41-43ce-b6fc-f5b6e794933f",
>"val": 1454718312
>}
>]
>},
>"master_zonegroup": "1df9e729-8fa0-47fa-942f-b5159fad8360",
>"master_zone": "7ac5da6e-ea41-43ce-b6fc-f5b6e794933f",
>"period_config": {
>"bucket_quota": {
>"enabled": false

[ceph-users] Re: Ceph RGW Multisite Multi Zonegroup Build Problems

2022-04-19 Thread Ulrich Klein
Hi,

I'm trying to do the same as Mark. Basically the same problem. Can’t get it to 
work.
The —-master doesn’t make much of a difference for me.


Any other idea, maybe?

Ciao, Uli

On Cluster #1 ("nceph"):

radosgw-admin realm create --rgw-realm=acme --default
radosgw-admin zonegroup create --rgw-zonegroup=us --rgw-realm=acme --master 
--default --endpoints=http://nceph00.uli.home:8080
radosgw-admin zone create --rgw-zonegroup=us --rgw-zone=us-west-1 --master 
--default --endpoints=http://nceph00.uli.home:8080
radosgw-admin user create --uid="sysuser" --display-name="System User" --system 
--access-key=N7Y6CM8KIN45UY2J5NQA 
--secret=a8QvbAMGpDwPBk8E3t3jHTyTSNqMQi4PK04yN9GX
radosgw-admin zone modify --rgw-zone=us-west-1 
--access-key=N7Y6CM8KIN45UY2J5NQA 
--secret=a8QvbAMGpDwPBk8E3t3jHTyTSNqMQi4PK04yN9GX
radosgw-admin period update --commit
ceph orch host label add nceph00 rgw
ceph orch apply rgw acme --realm=acme --zone=us-west-1 '--placement=label:rgw 
count-per-host:1' --port=8080
echo -n "N7Y6CM8KIN45UY2J5NQA" > ac
echo -n "a8QvbAMGpDwPBk8E3t3jHTyTSNqMQi4PK04yN9GX" > sc
ceph dashboard set-rgw-api-access-key -i ac
ceph dashboard set-rgw-api-secret-key -i sc

radosgw-admin period update --commit
{
"id": "5b304997-e3ba-4cc2-9f80-af88a31827c3",
"epoch": 2,
"predecessor_uuid": "118ecc9a-3824-4560-afdf-98f901836fb2",
"sync_status": [],
"period_map": {
"id": "5b304997-e3ba-4cc2-9f80-af88a31827c3",
"zonegroups": [
{
"id": "1df9e729-8fa0-47fa-942f-b5159fad8360",
"name": "us",
"api_name": "us",
"is_master": "true",
"endpoints": [
"http://nceph00.uli.home:8080;
],
"hostnames": [],
"hostnames_s3website": [],
"master_zone": "7ac5da6e-ea41-43ce-b6fc-f5b6e794933f",
"zones": [
{
"id": "7ac5da6e-ea41-43ce-b6fc-f5b6e794933f",
"name": "us-west-1",
"endpoints": [
"http://nceph00.uli.home:8080;
],
"log_meta": "false",
"log_data": "false",
"bucket_index_max_shards": 11,
"read_only": "false",
"tier_type": "",
"sync_from_all": "true",
"sync_from": [],
"redirect_zone": ""
}
],
"placement_targets": [
{
"name": "default-placement",
"tags": [],
"storage_classes": [
"STANDARD"
]
}
],
"default_placement": "default-placement",
"realm_id": "657b514d-be49-45c8-a69e-7ee474276c9a",
"sync_policy": {
"groups": []
}
}
],
"short_zone_ids": [
{
"key": "7ac5da6e-ea41-43ce-b6fc-f5b6e794933f",
"val": 1454718312
}
]
},
"master_zonegroup": "1df9e729-8fa0-47fa-942f-b5159fad8360",
"master_zone": "7ac5da6e-ea41-43ce-b6fc-f5b6e794933f",
"period_config": {
"bucket_quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
},
"user_quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
}
},
"realm_id": "657b514d-be49-45c8-a69e-7ee474276c9a",
"realm_name": "acme",
"realm_epoch": 2
}

Dashboard works, too


On cluster #2 ("ceph")
--
radosgw-admin realm pull --url=http://nceph00.uli.home:8080 
--access-key=N7Y6CM8KIN45UY2J5NQA 
--secret=a8QvbAMGpDwPBk8E3t3jHTyTSNqMQi4PK04yN9GX
radosgw-admin zonegroup create --rgw-realm=acme --rgw-zonegroup=eu 
--endpoints=http://ceph00.uli.home:8080
radosgw-admin zone create --rgw-zone=eu-west-1 --rgw-zonegroup=eu 
--endpoints=http://ceph00.uli.home:8080
(With or without —default makes no difference)

radosgw-admin zone modify --rgw-zone=eu-west-1 --rgw-zonegroup=eu 
--access-key=N7Y6CM8KIN45UY2J5NQA 
--secret=a8QvbAMGpDwPBk8E3t3jHTyTSNqMQi4PK04yN9GX
ceph orch host label add ceph00 rgw
ceph orch apply rgw acme --realm=acme --zone=eu-west-1 '--placement=label:rgw 
count-per-host:1' --port=8080
echo -n "N7Y6CM8KIN45UY2J5NQA" > ac
echo -n "a8QvbAMGpDwPBk8E3t3jHTyTSNqMQi4PK04yN9GX" > sc
ceph dashboard set-rgw-api-access-key -i ac
ceph dashboard set-rgw-api-secret-key -i sc

radosgw-admin period update --commit
couldn't init storage provider

ceph orch ps 

[ceph-users] Re: RadosGW S3 range on a 0 byte object gives 416 Range Not Satisfiable

2022-03-21 Thread Ulrich Klein
RFC 7233

4.4 <https://datatracker.ietf.org/doc/html/rfc7233#section-4.4>.  416 Range Not 
Satisfiable

   The 416 (Range Not Satisfiable) status code indicates that none of
   the ranges in the request's Range header field (Section 3.1 
<https://datatracker.ietf.org/doc/html/rfc7233#section-3.1>) overlap
   the current extent of the selected resource or that the set of ranges
   requested has been rejected due to invalid ranges or an excessive
   request of small or overlapping ranges.

   For byte ranges, failing to overlap the current extent means that the
   first-byte-pos of all of the byte-range-spec values were greater than
   the current length of the selected representation.  When this status
   code is generated in response to a byte-range request, the sender
   SHOULD generate a Content-Range header field specifying the current
   length of the selected representation (Section 4.2 
<https://datatracker.ietf.org/doc/html/rfc7233#section-4.2>).

   For example:

 HTTP/1.1 416 Range Not Satisfiable
 Date: Fri, 20 Jan 2012 15:41:54 GMT
 Content-Range: bytes */47022

  Note: Because servers are free to ignore Range, many
  implementations will simply respond with the entire selected
  representation in a 200 (OK) response.  That is partly because
  most clients are prepared to receive a 200 (OK) to complete the
  task (albeit less efficiently) and partly because clients might
  not stop making an invalid partial request until they have
  received a complete representation.  Thus, clients cannot depend
  on receiving a 416 (Range Not Satisfiable) response even when it
  is most appropriate.


> On 21. 03 2022, at 15:11, Ulrich Klein  wrote:
> 
> With a bit of HTTP background I’d say:
> bytes=0-100 means: First byte to to 100nd byte. First byte is byte #0
> On an empty object there is no first byte, i.e. not satisfiable ==> 416
> 
> Should be the same as on a single byte object and
> bytes=1-100
> 
> 200 OK should only be correct, if the server or a proxy in between doesn’t 
> support range requests.
> 
> Ciao, Uli
> 
>> On 21. 03 2022, at 14:47, Kai Stian Olstad  wrote:
>> 
>> Hi
>> 
>> Ceph v16.2.6.
>> 
>> Using GET with Range: bytes=0-100 it fails with 416 if the object is 0 
>> byte.
>> I tried reading the http specification[1] on the subject but did not get any 
>> wiser unfortunately.
>> 
>> I did a test with curl and range against a 0 byte file on Nginx and it 
>> returned 200 OK.
>> 
>> Does anyone know it's correct to return 416 on 0 byte object with range or 
>> should this be considered a bug in Ceph.
>> 
>> 
>> [1] https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.1
>> 
>> -- 
>> Kai Stian Olstad
>> ___
>> 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

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


[ceph-users] Re: RadosGW S3 range on a 0 byte object gives 416 Range Not Satisfiable

2022-03-21 Thread Ulrich Klein
With a bit of HTTP background I’d say:
bytes=0-100 means: First byte to to 100nd byte. First byte is byte #0
On an empty object there is no first byte, i.e. not satisfiable ==> 416

Should be the same as on a single byte object and
bytes=1-100

200 OK should only be correct, if the server or a proxy in between doesn’t 
support range requests.

Ciao, Uli

> On 21. 03 2022, at 14:47, Kai Stian Olstad  wrote:
> 
> Hi
> 
> Ceph v16.2.6.
> 
> Using GET with Range: bytes=0-100 it fails with 416 if the object is 0 
> byte.
> I tried reading the http specification[1] on the subject but did not get any 
> wiser unfortunately.
> 
> I did a test with curl and range against a 0 byte file on Nginx and it 
> returned 200 OK.
> 
> Does anyone know it's correct to return 416 on 0 byte object with range or 
> should this be considered a bug in Ceph.
> 
> 
> [1] https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.1
> 
> -- 
> Kai Stian Olstad
> ___
> 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


[ceph-users] Re: Questions / doubts about rgw users and zones

2022-03-19 Thread Ulrich Klein
Hi,

I'm not the expert, either :) So if someone with more experience wants to 
correct me, that’s fine.
But I think I have a similar setup with a similar goal.

I have two clusters, purely for RGW/S3.
I have a realm R in which I created a zonegroup ZG (not the low tax Kanton:) )
On the primary cluster I have a zone ZA as master and on the second cluster a 
zone ZB.
With all set up including the access keys for the zones, metadata and data is 
synced between the two.

Users access only the primary cluster, the secondary is basically a very safe 
backup.
But I want - for some users - that their data is NOT replicated to that 
secondary cluster, cheaper plan or short lived data.

I found two ways to achieve that. 
One is similar to what I understand is your setup:
Create another zone ZC in zonegroup ZG on the primary cluster:
- Create zone ZC with endpoint on host hostxy:8080
- period update commit
- Create new pools and placement targets (if necessary)
- period update commit
- Add another RGW
  # ceph orch host label add hostxy rgwnosync
  # ceph orch apply rgw ZC --realm=myrealm --zone=ZC '-- 
placement=label:rgwnosync count-per-host:1' --port=8080
  # radosgw-admin zone modify --rgw-zone=ZC --access- key=sysuserkey -- 
secret=sysusersecret
- period update commit

(My cook book also has this step, giving the credentials once more to the 
dashboard:
On the primar cluster:
# echo -n "sysuserkey" > ac
# echo -n "sysusersecret" > sc
# ceph dashboard set-rgw-api-access-key -i ac
# ceph dashboard set-rgw-api-secret-key -i sc
Not sure it's necessary, but doesn't hurt.
)

Now there are 3 zones that sync everything back and forth in all directions.

Then limit what to sync from where:
On the primary cluster
# radosgw-admin zone modify --rgw-zone=ZA --sync-from-all=false
# radosgw-admin zone modify --rgw-zone=ZC --sync-from-all=false
# radosgw-admin period update --commit

On the secondary cluster:
# radosgw-admin zone modify --rgw-zone=ZC --sync-from-all=false
# radosgw-admin period update --commit

Now nothing gets synced anymore
But I want to sync from ZA to ZB and only that sync.

On the secondary cluster:
# radosgw-admin zone modify --rgw-zone=ZB --sync-from=ZA
# radosgw-admin period update --commit


Now, when users push their data to the URL for zone ZA it gets replicated to 
zone ZB.
If they push to the ZC URL it stays in zone ZC on the primary cluster only.

What's a bit "non-intuitive" are a few things:
- In the dashboard on the primary cluster one has to look close to figure out 
which RGW it's currently talking to, and possibly select a different one in 
that selection at the top.
- Users and their credentials are synced across all zones, which is good in my 
case, as users don't have to use different credentials for ZA and ZC.
- Bucket names are also synced across all zones, but not their objects, which 
creates "interesting" effects.

My alternative solution was to turn on/off synchronization on buckets:
For any existing (!) bucket one can simply turn off/on synchronization via
# radosgw-admin bucket sync [enable/disable] --bucket=

Problem is that it only works on existing buckets. I've found no way to turn 
synchronization off by default, and even less what I actually need, which is 
turn synchronization/replication on/off per RGW user.

I discarded sync policies as they left the sync status in a suspicious state, 
were complicated in a strange way and the documentation "wasn't too clear to me"

Dunno, if this helps, and I'm pretty sure their may be better ways. But this 
worked for me.


Ciao, Uli


PS:
I use s3cmd, rclone and cyberduck for my simple testing. aws cli I found more 
AWS-centric and it also doen't work well with Ceph/RGW tenants.
And, I'm not sure why you have so many endpoints in the zonegroup, but no load 
balancer a la RGW ingress, i.e. keepalived+haproxy. But that may be my lack of 
expertise.


> On 19. Mar 2022, at  11:47, Arno Lehmann  wrote:
> 
> Hi all,
> 
> I am currently playing around with a Ceph lab environment, using it to 
> develop some particular solution, at the same time learning about the 
> many-armed monster.
> 
> My understanding of Ceph is accordingly somewhat superficial.
> 
> What I have are two clusters I set set up and manage using cephadm, thus 
> containerized. The version is 16.2.7.
> 
> Each cluster consists of five VMs, a few osds, managers, five monitor 
> instances, and all the other stuff that cephadm, when deploying, decided I 
> need. Network per cluster is very simple, there's exactly one network for 
> services access, management, and in-cluster traffic. The two clusters are 
> connected by an IP-IP tunnel through a VPN. The whole thing is pretty slow, 
> but functional enough to allow me to run
> 
> - one realm (I called it europe)
> - inside is one zonegroup (called ch-de)
> - in that zonegroup live some zones
> In one of the clusters, the zone "yv" has been created as the master zone for 
> the zonegroup. Some user accounts for object storage 

[ceph-users] Re: RGW/S3 losing multipart upload objects

2022-03-18 Thread Ulrich Klein
I tried it on a mini-cluster (4 Raspberries) with 16.2.7. 
Same procedure, same effect. I just can’t get rid of these objects.

Is there any method that would allow me to delete these objects without 
damaging RGW?

Ciao, Uli 

> On 17. 03 2022, at 15:30, Soumya Koduri  wrote:
> 
> On 3/17/22 17:16, Ulrich Klein wrote:
>> Hi,
>> 
>> My second attempt to get help with a problem I'm trying to solve for about 6 
>> month now.
>> 
>> I have a Ceph 16.2.6 test cluster, used almost exclusively for providing 
>> RGW/S3 service. similar to a production cluster.
>> 
>> The problem I have is this:
>> A client uploads (via S3) a bunch of large files into a bucket via multiparts
>> The upload(s) get interrupted and retried
>> In the end from a client's perspective all the files are visible and 
>> everything looks fine.
>> But on the cluster there are many more objects in the buckets
>> Even after cleaning out the incomplete multipart uploads there are too many 
>> objects
>> Even after deleting all the visible objects from the bucket there are still 
>> objects in the bucket
>> I have so far found no way to get rid of those left-over objects.
>> It's screwing up space accounting and I'm afraid I'll eventually have a 
>> cluster full of those lost objects.
>> The only way to clean up seems to be to copy te contents of a bucket to a 
>> new bucket and delete the screwed-up bucket. But on a production system 
>> that's not always a real option.
>> 
>> I've found a variety of older threads that describe a similar problem. None 
>> of them decribing a solution :(
>> 
>> 
>> 
>> I can pretty easily reproduce the problem with this sequence:
>> 
>> On a client system create a directory with ~30 200MB files. (On a faster 
>> system I'd probably need bigger or more files)
>> tstfiles/tst01 - tst29
>> 
>> run
>> $ rclone mkdir tester:/test-bucket # creates a bucket on the test system 
>> with user tester
>> Run
>> $ rclone sync -v tstfiles tester:/test-bucket/tstfiles
>> a couple of times (6-8), interrupting each one via CNTRL-C
>> Eventually let one finish.
>> 
>> Now I can use s3cmd to see all the files:
>> $ s3cmd ls -lr s3://test-bucket/tstfiles
>> 2022-03-16 17:11   200M  ecb28853bd18eeae185b0b12bd47333c-40  STANDARD 
>> s3://test-bucket/tstfiles/tst01
>> ...
>> 2022-03-16 17:13   200M  ecb28853bd18eeae185b0b12bd47333c-40  STANDARD 
>> s3://test-bucket/tstfiles/tst29
>> 
>> ... and to list incomplete uploads:
>> $ s3cmd multipart s3://test-bucket
>> s3://test-bucket/
>> InitiatedPathId
>> 2022-03-16T17:11:19.074Z s3://test-bucket/tstfiles/tst05 
>> 2~1nElF0c3uq5FnZ9cKlsnGlXKATvjr0g
>> ...
>> 2022-03-16T17:12:41.583Z s3://test-bucket/tstfiles/tst28 
>> 2~exVQUILhVSmFqWxCuAflRa4Tfq4nUQa
>> 
>> I can abort the uploads with
>> $  s3cmd abortmp s3://test-bucket/tstfiles/tst05 
>> 2~1nElF0c3uq5FnZ9cKlsnGlXKATvjr0g
>> ...
> 
> 
> 
> On the latest master, I see that these objects are deleted immediately post 
> abortmp. I believe this issue may have beenn fixed as part of [1], backported 
> to v16.2.7 [2]. Maybe you could try upgrading your cluster and recheck.
> 
> 
> Thanks,
> 
> Soumya
> 
> 
> [1] https://tracker.ceph.com/issues/53222
> 
> [2] https://tracker.ceph.com/issues/53291
> 
> 
> 
> ___
> 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


[ceph-users] Re: RGW/S3 losing multipart upload objects

2022-03-17 Thread Ulrich Klein
Yo, that one is one of the threads that looks very similar to my problem, just 
with no resolution for me. 
I have a multi-site setup, so no resharding. Tried it — setup RGW from scratch 
due to all the “funny” errors.

So, hoping for 16.2.7 or the “in the works” fix :)

Ciao, Uli 

> On 17. 03 2022, at 15:34, Matt Benjamin  wrote:
> 
> Thanks, Soumya.
> 
> It's also possible that what's reproducing is the known (space) leak
> during re-upload of multipart parts, described here:
> https://tracker.ceph.com/issues/44660.
> A fix for this is being worked on, it's taking a while.
> 
> Matt
> 
> On Thu, Mar 17, 2022 at 10:31 AM Soumya Koduri  wrote:
>> 
>> On 3/17/22 17:16, Ulrich Klein wrote:
>>> Hi,
>>> 
>>> My second attempt to get help with a problem I'm trying to solve for about 
>>> 6 month now.
>>> 
>>> I have a Ceph 16.2.6 test cluster, used almost exclusively for providing 
>>> RGW/S3 service. similar to a production cluster.
>>> 
>>> The problem I have is this:
>>> A client uploads (via S3) a bunch of large files into a bucket via 
>>> multiparts
>>> The upload(s) get interrupted and retried
>>> In the end from a client's perspective all the files are visible and 
>>> everything looks fine.
>>> But on the cluster there are many more objects in the buckets
>>> Even after cleaning out the incomplete multipart uploads there are too many 
>>> objects
>>> Even after deleting all the visible objects from the bucket there are still 
>>> objects in the bucket
>>> I have so far found no way to get rid of those left-over objects.
>>> It's screwing up space accounting and I'm afraid I'll eventually have a 
>>> cluster full of those lost objects.
>>> The only way to clean up seems to be to copy te contents of a bucket to a 
>>> new bucket and delete the screwed-up bucket. But on a production system 
>>> that's not always a real option.
>>> 
>>> I've found a variety of older threads that describe a similar problem. None 
>>> of them decribing a solution :(
>>> 
>>> 
>>> 
>>> I can pretty easily reproduce the problem with this sequence:
>>> 
>>> On a client system create a directory with ~30 200MB files. (On a faster 
>>> system I'd probably need bigger or more files)
>>> tstfiles/tst01 - tst29
>>> 
>>> run
>>> $ rclone mkdir tester:/test-bucket # creates a bucket on the test system 
>>> with user tester
>>> Run
>>> $ rclone sync -v tstfiles tester:/test-bucket/tstfiles
>>> a couple of times (6-8), interrupting each one via CNTRL-C
>>> Eventually let one finish.
>>> 
>>> Now I can use s3cmd to see all the files:
>>> $ s3cmd ls -lr s3://test-bucket/tstfiles
>>> 2022-03-16 17:11   200M  ecb28853bd18eeae185b0b12bd47333c-40  STANDARD 
>>> s3://test-bucket/tstfiles/tst01
>>> ...
>>> 2022-03-16 17:13   200M  ecb28853bd18eeae185b0b12bd47333c-40  STANDARD 
>>> s3://test-bucket/tstfiles/tst29
>>> 
>>> ... and to list incomplete uploads:
>>> $ s3cmd multipart s3://test-bucket
>>> s3://test-bucket/
>>> Initiated PathId
>>> 2022-03-16T17:11:19.074Z  s3://test-bucket/tstfiles/tst05 
>>> 2~1nElF0c3uq5FnZ9cKlsnGlXKATvjr0g
>>> ...
>>> 2022-03-16T17:12:41.583Z  s3://test-bucket/tstfiles/tst28 
>>> 2~exVQUILhVSmFqWxCuAflRa4Tfq4nUQa
>>> 
>>> I can abort the uploads with
>>> $  s3cmd abortmp s3://test-bucket/tstfiles/tst05 
>>> 2~1nElF0c3uq5FnZ9cKlsnGlXKATvjr0g
>>> ...
>> 
>> 
>> 
>> On the latest master, I see that these objects are deleted immediately
>> post abortmp. I believe this issue may have beenn fixed as part of [1],
>> backported to v16.2.7 [2]. Maybe you could try upgrading your cluster
>> and recheck.
>> 
>> 
>> Thanks,
>> 
>> Soumya
>> 
>> 
>> [1] https://tracker.ceph.com/issues/53222
>> 
>> [2] https://tracker.ceph.com/issues/53291
>> 
>> 
>> 
>> ___
>> ceph-users mailing list -- ceph-users@ceph.io
>> To unsubscribe send an email to ceph-users-le...@ceph.io
>> 
> 
> 
> -- 
> 
> Matt Benjamin
> Red Hat, Inc.
> 315 West Huron Street, Suite 140A
> Ann Arbor, Michigan 48103
> 
> http://www.redhat.com/en/technologies/storage
> 
> tel.  734-821-5101
> fax.  734-769-8938
> cel.  734-216-5309
> 
> ___
> 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


[ceph-users] Re: RGW/S3 losing multipart upload objects

2022-03-17 Thread Ulrich Klein
Ok, I’ll try again on 16.2.7. Only downside is that then I can’t use the 
dashboard on Safari i.e. iPads for monitoring anymore.

And to make sure: From a user’s/client’s perspective the objects do disappear. 
Only on the Ceph/RGW-side - including accounting - they are still there and 
can’t be removed.

Ciao, Uli 

> On 17. 03 2022, at 15:30, Soumya Koduri  wrote:
> 
> On 3/17/22 17:16, Ulrich Klein wrote:
>> Hi,
>> 
>> My second attempt to get help with a problem I'm trying to solve for about 6 
>> month now.
>> 
>> I have a Ceph 16.2.6 test cluster, used almost exclusively for providing 
>> RGW/S3 service. similar to a production cluster.
>> 
>> The problem I have is this:
>> A client uploads (via S3) a bunch of large files into a bucket via multiparts
>> The upload(s) get interrupted and retried
>> In the end from a client's perspective all the files are visible and 
>> everything looks fine.
>> But on the cluster there are many more objects in the buckets
>> Even after cleaning out the incomplete multipart uploads there are too many 
>> objects
>> Even after deleting all the visible objects from the bucket there are still 
>> objects in the bucket
>> I have so far found no way to get rid of those left-over objects.
>> It's screwing up space accounting and I'm afraid I'll eventually have a 
>> cluster full of those lost objects.
>> The only way to clean up seems to be to copy te contents of a bucket to a 
>> new bucket and delete the screwed-up bucket. But on a production system 
>> that's not always a real option.
>> 
>> I've found a variety of older threads that describe a similar problem. None 
>> of them decribing a solution :(
>> 
>> 
>> 
>> I can pretty easily reproduce the problem with this sequence:
>> 
>> On a client system create a directory with ~30 200MB files. (On a faster 
>> system I'd probably need bigger or more files)
>> tstfiles/tst01 - tst29
>> 
>> run
>> $ rclone mkdir tester:/test-bucket # creates a bucket on the test system 
>> with user tester
>> Run
>> $ rclone sync -v tstfiles tester:/test-bucket/tstfiles
>> a couple of times (6-8), interrupting each one via CNTRL-C
>> Eventually let one finish.
>> 
>> Now I can use s3cmd to see all the files:
>> $ s3cmd ls -lr s3://test-bucket/tstfiles
>> 2022-03-16 17:11   200M  ecb28853bd18eeae185b0b12bd47333c-40  STANDARD 
>> s3://test-bucket/tstfiles/tst01
>> ...
>> 2022-03-16 17:13   200M  ecb28853bd18eeae185b0b12bd47333c-40  STANDARD 
>> s3://test-bucket/tstfiles/tst29
>> 
>> ... and to list incomplete uploads:
>> $ s3cmd multipart s3://test-bucket
>> s3://test-bucket/
>> InitiatedPathId
>> 2022-03-16T17:11:19.074Z s3://test-bucket/tstfiles/tst05 
>> 2~1nElF0c3uq5FnZ9cKlsnGlXKATvjr0g
>> ...
>> 2022-03-16T17:12:41.583Z s3://test-bucket/tstfiles/tst28 
>> 2~exVQUILhVSmFqWxCuAflRa4Tfq4nUQa
>> 
>> I can abort the uploads with
>> $  s3cmd abortmp s3://test-bucket/tstfiles/tst05 
>> 2~1nElF0c3uq5FnZ9cKlsnGlXKATvjr0g
>> ...
> 
> 
> 
> On the latest master, I see that these objects are deleted immediately post 
> abortmp. I believe this issue may have beenn fixed as part of [1], backported 
> to v16.2.7 [2]. Maybe you could try upgrading your cluster and recheck.
> 
> 
> Thanks,
> 
> Soumya
> 
> 
> [1] https://tracker.ceph.com/issues/53222
> 
> [2] https://tracker.ceph.com/issues/53291
> 
> 
> 
> ___
> 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


[ceph-users] RGW/S3 losing multipart upload objects

2022-03-17 Thread Ulrich Klein
Hi,

My second attempt to get help with a problem I'm trying to solve for about 6 
month now.

I have a Ceph 16.2.6 test cluster, used almost exclusively for providing RGW/S3 
service. similar to a production cluster.

The problem I have is this:
A client uploads (via S3) a bunch of large files into a bucket via multiparts
The upload(s) get interrupted and retried
In the end from a client's perspective all the files are visible and everything 
looks fine.
But on the cluster there are many more objects in the buckets
Even after cleaning out the incomplete multipart uploads there are too many 
objects
Even after deleting all the visible objects from the bucket there are still 
objects in the bucket
I have so far found no way to get rid of those left-over objects.
It's screwing up space accounting and I'm afraid I'll eventually have a cluster 
full of those lost objects.
The only way to clean up seems to be to copy te contents of a bucket to a new 
bucket and delete the screwed-up bucket. But on a production system that's not 
always a real option.

I've found a variety of older threads that describe a similar problem. None of 
them decribing a solution :(



I can pretty easily reproduce the problem with this sequence:

On a client system create a directory with ~30 200MB files. (On a faster system 
I'd probably need bigger or more files)
tstfiles/tst01 - tst29

run 
$ rclone mkdir tester:/test-bucket # creates a bucket on the test system with 
user tester
Run
$ rclone sync -v tstfiles tester:/test-bucket/tstfiles
a couple of times (6-8), interrupting each one via CNTRL-C
Eventually let one finish.

Now I can use s3cmd to see all the files:
$ s3cmd ls -lr s3://test-bucket/tstfiles
2022-03-16 17:11   200M  ecb28853bd18eeae185b0b12bd47333c-40  STANDARD 
s3://test-bucket/tstfiles/tst01
...
2022-03-16 17:13   200M  ecb28853bd18eeae185b0b12bd47333c-40  STANDARD 
s3://test-bucket/tstfiles/tst29

... and to list incomplete uploads:
$ s3cmd multipart s3://test-bucket
s3://test-bucket/
Initiated   PathId
2022-03-16T17:11:19.074Zs3://test-bucket/tstfiles/tst05 
2~1nElF0c3uq5FnZ9cKlsnGlXKATvjr0g
...
2022-03-16T17:12:41.583Zs3://test-bucket/tstfiles/tst28 
2~exVQUILhVSmFqWxCuAflRa4Tfq4nUQa

I can abort the uploads with
$  s3cmd abortmp s3://test-bucket/tstfiles/tst05 
2~1nElF0c3uq5FnZ9cKlsnGlXKATvjr0g
...

Afterwards  s3cmd multipart s3://test-bucket doesn't list anything.

Now I delete all the objects in the bucket 
$ s3 rm -r s3://test-bucket/tstfiles

.. and as client I think everything is cleaned up. No data stored to pay for.


Then I go to the Ceph cluster
In the dashboard I see 80MB in 16 objects in the bucket test-bucket

# radosgw-admin bi list --bucket test-bucket | grep idx
"idx": "_multipart_tstfiles/tst11.2~mki7cgVbg1dAh22EMZKJgmlUMveKBjx.4",
"idx": "_multipart_tstfiles/tst11.2~mki7cgVbg1dAh22EMZKJgmlUMveKBjx.5",
"idx": "_multipart_tstfiles/tst11.2~mki7cgVbg1dAh22EMZKJgmlUMveKBjx.6",
"idx": "_multipart_tstfiles/tst11.2~mki7cgVbg1dAh22EMZKJgmlUMveKBjx.7",
"idx": "_multipart_tstfiles/tst10.2~QlUi7pxm5KnQZEzPh-osjXGRe0jI-hS.3",
"idx": "_multipart_tstfiles/tst10.2~QlUi7pxm5KnQZEzPh-osjXGRe0jI-hS.5",
"idx": "_multipart_tstfiles/tst10.2~QlUi7pxm5KnQZEzPh-osjXGRe0jI-hS.6",
"idx": "_multipart_tstfiles/tst05.2~5l2zkUs__QvrD7pMevtFFhia47pdHLO.5",
"idx": "_multipart_tstfiles/tst05.2~5l2zkUs__QvrD7pMevtFFhia47pdHLO.6",
"idx": "_multipart_tstfiles/tst05.2~5l2zkUs__QvrD7pMevtFFhia47pdHLO.7",
"idx": "_multipart_tstfiles/tst05.2~5l2zkUs__QvrD7pMevtFFhia47pdHLO.8",
"idx": "_multipart_tstfiles/tst29.2~7ZrDo14zBvVBSASif1c8KmqXdwyzvzn.14",
"idx": "_multipart_tstfiles/tst29.2~7ZrDo14zBvVBSASif1c8KmqXdwyzvzn.15",
"idx": "_multipart_tstfiles/tst29.2~7ZrDo14zBvVBSASif1c8KmqXdwyzvzn.17",
"idx": "_multipart_tstfiles/tst29.2~7ZrDo14zBvVBSASif1c8KmqXdwyzvzn.19",
"idx": "_multipart_tstfiles/tst18.2~VaXq_AAM1JUb4Gtuw7zfYiKpBaYJSbs.1",
# radosgw-admin bucket stats --bucket test-bucket
{
"bucket": "test-bucket",
"num_shards": 30,
"tenant": "",
"zonegroup": "c44f5696-8f78-4c74-b657-15f611de1969",
"placement_rule": "ec21",
"explicit_placement": {
"data_pool": "",
"data_extra_pool": "",
"index_pool": ""
},
"id": "3d925f45-51bd-4442-817d-acc4d77f6ba3.1925174.1",
"marker": "3d925f45-51bd-4442-817d-acc4d77f6ba3.1925174.1",
"index_type": "Normal",
"owner": "tester",
"ver": 
"0#538,1#785,2#360,3#352,4#213,5#4,6#174,7#4,8#4,9#186,10#246,11#244,12#182,13#4,14#4,15#4,16#354,17#4,18#4,19#172,20#183,21#378,22#211,23#172,24#4,25#4,26#4,27#208,28#224,29#363",
"master_ver": 
"0#0,1#0,2#0,3#0,4#0,5#0,6#0,7#0,8#0,9#0,10#0,11#0,12#0,13#0,14#0,15#0,16#0,17#0,18#0,19#0,20#0,21#0,22#0,23#0,24#0,25#0,26#0,27#0,28#0,29#0",
"mtime": "2022-03-16T17:02:38.754412Z",
"creation_time": "2022-03-16T17:02:38.715908Z",

[ceph-users] Re: Ceph Pacific 16.2.7 dashboard doesn't work with Safari

2022-03-08 Thread Ulrich Klein
Replying to my self :)

It seems to be this function:
replaceBraces(e) {
==> return e.replace(/(?<=\d)\s*-\s*(?=\d)/g, "..").
replace(/\(/g, "{").
replace(/\)/g, "}").
replace(/\[/g, "{").
replace(/]/g, "}")
}
The first regular expression is what breaks it for Safari. I must admit that 
I’m not sure what it does.
I removed it
replaceBraces(e) {
return e.replace(/\(/g, "{").
replace(/\)/g, "}").
replace(/\[/g, "{").
replace(/]/g, "}")
        }

and now the dashboard shows again in Safari.


> On 08. 03 2022, at 10:37, Ulrich Klein  wrote:
> 
> Hi,
> 
> I just upgraded a small test cluster on Raspberries from pacific 16.2.6 to 
> 16.2.7.
> The upgrade went without major problems.
> 
> But now the Ceph Dashboard doesn't work anymore in Safari.
> It complains about main..js "Line 3 invalid regular expression: 
> invalid group specifier name".
> It works with Firefox and Edge on the Mac. But on an iPad I don't have that 
> choice.
> 
> Has anyone seen that problem, and maybe have a solution? 
> Is that also a problem on “real” clusters” on x86_64?
> 
> The javascript code is just one long line, i.e. unreadable.
> 
> Ciao, Uli
> ___
> 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


[ceph-users] Ceph Pacific 16.2.7 dashboard doesn't work with Safari

2022-03-08 Thread Ulrich Klein
Hi,

I just upgraded a small test cluster on Raspberries from pacific 16.2.6 to 
16.2.7.
The upgrade went without major problems.

But now the Ceph Dashboard doesn't work anymore in Safari.
It complains about main..js "Line 3 invalid regular expression: invalid 
group specifier name".
It works with Firefox and Edge on the Mac. But on an iPad I don't have that 
choice.

Has anyone seen that problem, and maybe have a solution? 
Is that also a problem on “real” clusters” on x86_64?

The javascript code is just one long line, i.e. unreadable.

Ciao, Uli
___
ceph-users mailing list -- ceph-users@ceph.io
To unsubscribe send an email to ceph-users-le...@ceph.io


[ceph-users] Re: Understanding RGW multi zonegroup replication topology

2022-03-01 Thread Ulrich Klein
Hi,

Disclaimer: I'm in no way a Ceph expert. Have just been tinkering with Ceph/RGW 
for a larger installation for a while.

My understanding is that the data between zones in a zonegroup is synced by 
default. And that works well, most of the time.
If you, as I had to, want to restrict what data is synced, because e.g. some 
users' data should not be copied to a second site/zone, then there are a couple 
of ways to achieve that. Sync policies I discarded because I couldn't get them 
to work without "sync status" reporting all non-synced data as "not yet" 
synced, and there wasn't any per-user setting anyway.
The sync settings on zones and buckets work fine. But the setting 
"sync_from..." on a zone is all or nothing and the setting on buckets can only 
be applied once the bucket exists. No setting on a per user basis.

As an alternative I used two zonegroups A and B. On the primary cluster both 
had a zone A1 and B1, on the secondary cluster only one of them had zone A2.
That way what's written to to A1 is replicated to A2. What's written to B1 is 
not replicated/synced.
The good and bad part is that metadata (?) is synced across the zonegroups. 
That's good (for me) because the same user credentials work in both zonegroups, 
i.e. user selects the "replication" by using different S3 URLs. On the other 
hand it's annoying because also bucket names - if I remember correctly - are 
considered metadata and thus synced across all zones in the realm, which can 
create "interesting" effects.

As I said, I'm not the expert. Just my experience so far.

Ciao, Uli

> On 01. 03 2022, at 01:54, Mark Selby  wrote:
> 
> I am designing a Ceph RGW multisite configuration. I have done a fair bit if 
> reading but still am having trouble groking the utility of having multiple 
> zonegroups within a realm. I know that all meta data is replicated between 
> zonegroups and that replication can be setup between zones across zonegroups. 
> I am having trouble understanding the benefits that a multi zonegroup 
> topology would provide. I really want to understand this as I want to make 
> sure that I design a topology that best meets the company’s needs.
> 
> 
> 
> Any and all help is greatly appreciated. Thanks!
> 
> 
> 
> -- 
> 
> Mark Selby
> 
> mse...@voleon.com 
> 
> 
> 
> This email is subject to important conditions and disclosures that are listed 
> on this web page: https://voleon.com/disclaimer/.
> 
> 
> 
> ___
> 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


[ceph-users] Re: question about radosgw-admin bucket check

2022-02-16 Thread Ulrich Klein
Hi Francois,

> For the mpu's it is less important as I can fix them with some scripts.

Would you mind sharing how you get rid of these left-over mpu objects?
I’ve been trying to get rid of them without much success.

The "radosgw-admin bucket check --bucket --fix --check-objects” I tried, but it 
didn’t seem to have any effect. But I’m on pacific

Thanks in advance.

Ciao, Uli

> On 15. 02 2022, at 16:16, Scheurer François  
> wrote:
> 
> Dear Ceph Experts,
> 
> 
> The docu about this rgw command is a bit unclear:
>radosgw-admin bucket check --bucket --fix --check-objects
> 
> Is this command still maintained and safe to use? (we are still on nautilus)
> Is it working with sharded buckets? and also in multi-site?
> 
> I heard it will clear invalid mpu's from the index and correct wrong bucket 
> stats.
> 
> The most important part for us would be to correct the bucket stats.
> For the mpu's it is less important as I can fix them with some scripts.
> 
> Thank you for your help!
> 
> 
> Cheers
> Francois
> 
> 
> PS:
> I can also reshard a bucket to correct its stats, but in multi-site this will 
> also require to delete this bucket in secondary zones and resync it from 
> scratch, which is sub-optimal ;-)
> 
> 
> 
> 
> --
> 
> 
> EveryWare AG
> François Scheurer
> Senior Systems Engineer
> Zurlindenstrasse 52a
> CH-8003 Zürich
> 
> tel: +41 44 466 60 00
> fax: +41 44 466 60 10
> mail: francois.scheu...@everyware.ch
> web: http://www.everyware.ch
> ___
> 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


[ceph-users] Re: Changing prometheus default alerts with cephadm

2022-02-04 Thread Ulrich Klein
… and a „chattr +i“ on the file will preserve your changes from being 
over-/re-written at arbitrary points in time :) Been there…

Ciao, Uli

> Am 04.02.2022 um 11:05 schrieb Eugen Block :
> 
> Hi,
> 
> you should be able to change in the config file:
> 
> /var/lib/ceph//prometheus.ses7-host1/etc/prometheus/alerting/ceph_alerts.yml
> 
> and restart the containers.
> 
> Regards,
> Eugen
> 
> 
> Zitat von Manuel Holtgrewe :
> 
>> Dear all,
>> 
>> I wonder how I can adjust the default alerts generated by prometheus
>> when having deployed with cephadm? I need to adjust the network
>> package drop thresholds a bit.
>> 
>> Best wishes,
>> Manuel
>> ___
>> 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

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


[ceph-users] Re: Pacific 16.2.6: Trying to get an RGW running for a scond zonegroup in an existing realm

2022-02-02 Thread Ulrich Klein
Well, looks like not many people have tried this.
And to me it looks like a bug/omission in "ceph orch apply rgw".

After digging through the setup I figured out that the unit.run file for the 
new rgw.zone21 process/container doesn't get the --rgw-zonegroup (or 
--rgw-region) parameter for radosgw.
Ceph orch apply rgw doesn’t seem to forward those parameters.

Once I added "--rgw-zone=zone21 --rgw-zonegroup=zg2 --rgw-region=zg2" to the 
command line in the unit.run file and restarted the service on that node, the 
process came up and seems to work correctly(?)

The behavior is somewhat unexpected to me:
Buckets created in any of my 3 zones and their contents get synced to all other 
zones, regardless of zonegroups.
Only if I create buckets/objects in a zone of one zonegroup I can't delete them 
in another zonegroup. I get an 301 without redirect URI.

Not sure, if that's a bug or a feature.

Ciao, Uli

> On 01. 02 2022, at 18:09, Ulrich Klein  wrote:
> 
> Hi,
> 
> Maybe someone who knows the commands can help me with my problem 
> 
> I have a small 6-node cluster running with 16.2.6 using cephadm and another 
> one with the same versions.
> Both clusters are exlusively used for RGW/S3.
> I have a realm myrealm, a zonegroup zg1 and zones on both cluster, one is 
> zone1, master, the other zone2
> I have RGWs running in both clusters behind HAproxy deployed via ceph orch 
> and labels and they work just fine.
> 
> Now I want to add a second zonegroup zg2 on the first cluster, with a zone 
> zone21, master, and no secondary zone.
> And, to use that zone I want to deploy another RGW for it.
> 
> So, I did mostly the same as for the first zonegroup (nceph03 is a node in 
> the first cluster, the label rgwnosync is set and the keys are correct):
> 
> radosgw-admin zonegroup create --rgw-zonegroup=zg2 
> --endpoints=http://nceph03.example.com:8080 --rgw-realm=myrealm
> radosgw-admin zone create --rgw-zonegroup=zg2 --rgw-zone=zone21 --master 
> --endpoints=http://nceph03.example.com:8080
> 
> radosgw-admin zone modify --rgw-zonegroup=zg2 --rgw-zone=zone21 
> --access-key=ackey --secret=sekey
> 
> radosgw-admin zonegroup add --rgw-zonegroup=zg2 --rgw-zone=zone21
> 
> radosgw-admin period update --commit
> 
> Everything looks as expected (by me) up to this point. But then I try to add 
> an RGW process for that zone:
> 
> ceph orch apply rgw zone21 --realm=myrealm --rgw-zonegroup=zg2 --zone=zone21 
> '--placement=label:rgwnosync count-per-host:1' --port=8080
> 
> The process comes up and dies spitting out the messages in the log:
> 
> ...  1 rgw main: Cannot find zone id=f9151746-09e9-4854-9159-9df35a3457bf 
> (name=zone21), switching to local zonegroup configuration
> ...
> ...
> ... -1 rgw main: Cannot find zone id=f9151746-09e9-4854-9159-9df35a3457bf 
> (name=zone21)
> ...
> ...
> ...  0 rgw main: ERROR: failed to start notify service ((22) Invalid argument
> ...
> ...
> ...  0 rgw main: ERROR: failed to init services (ret=(22) Invalid argument)
> ...
> ...
> ... -1 Couldn't init storage provider (RADOS)
> 
> Somehow it looks like radosgw is looking for that zone in the default master 
> zonegroup zg1 and I can't figure out how to tell it to use zg2.
> 
> I've tried variations of the "ceph orch apply rgw" command with and w/o 
> zonegroup, with and w/o realm=, and a whole lot more, but nothing seems to 
> make any difference.
> Even tried putting stuff in various ceph.conf files (although I already know 
> it's ignored)
> 
> Do I miss some step or command or setting or ...
> 
> Any help would be appreciated.
> 
> Ciao, Uli
> ___
> 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


[ceph-users] Pacific 16.2.6: Trying to get an RGW running for a scond zonegroup in an existing realm

2022-02-01 Thread Ulrich Klein
Hi,

Maybe someone who knows the commands can help me with my problem 

I have a small 6-node cluster running with 16.2.6 using cephadm and another one 
with the same versions.
Both clusters are exlusively used for RGW/S3.
I have a realm myrealm, a zonegroup zg1 and zones on both cluster, one is 
zone1, master, the other zone2
I have RGWs running in both clusters behind HAproxy deployed via ceph orch and 
labels and they work just fine.

Now I want to add a second zonegroup zg2 on the first cluster, with a zone 
zone21, master, and no secondary zone.
And, to use that zone I want to deploy another RGW for it.

So, I did mostly the same as for the first zonegroup (nceph03 is a node in the 
first cluster, the label rgwnosync is set and the keys are correct):

radosgw-admin zonegroup create --rgw-zonegroup=zg2 
--endpoints=http://nceph03.example.com:8080 --rgw-realm=myrealm
radosgw-admin zone create --rgw-zonegroup=zg2 --rgw-zone=zone21 --master 
--endpoints=http://nceph03.example.com:8080

radosgw-admin zone modify --rgw-zonegroup=zg2 --rgw-zone=zone21 
--access-key=ackey --secret=sekey

radosgw-admin zonegroup add --rgw-zonegroup=zg2 --rgw-zone=zone21

radosgw-admin period update --commit

Everything looks as expected (by me) up to this point. But then I try to add an 
RGW process for that zone:

ceph orch apply rgw zone21 --realm=myrealm --rgw-zonegroup=zg2 --zone=zone21 
'--placement=label:rgwnosync count-per-host:1' --port=8080

The process comes up and dies spitting out the messages in the log:

...  1 rgw main: Cannot find zone id=f9151746-09e9-4854-9159-9df35a3457bf 
(name=zone21), switching to local zonegroup configuration
...
...
... -1 rgw main: Cannot find zone id=f9151746-09e9-4854-9159-9df35a3457bf 
(name=zone21)
...
...
...  0 rgw main: ERROR: failed to start notify service ((22) Invalid argument
...
...
...  0 rgw main: ERROR: failed to init services (ret=(22) Invalid argument)
...
...
... -1 Couldn't init storage provider (RADOS)

Somehow it looks like radosgw is looking for that zone in the default master 
zonegroup zg1 and I can't figure out how to tell it to use zg2.

I've tried variations of the "ceph orch apply rgw" command with and w/o 
zonegroup, with and w/o realm=, and a whole lot more, but nothing seems to make 
any difference.
Even tried putting stuff in various ceph.conf files (although I already know 
it's ignored)

Do I miss some step or command or setting or ...

Any help would be appreciated.

Ciao, Uli
___
ceph-users mailing list -- ceph-users@ceph.io
To unsubscribe send an email to ceph-users-le...@ceph.io


[ceph-users] Question about multi-site sync policies

2022-01-06 Thread Ulrich Klein
Hi,

My first question on this list …. 2nd attempt because the first one didn’t make 
it (I hope)?

I'm trying out RGW multi-site sync policies.

I have a test/PoC setup with 16.2.6 using cephadm (which, by the way, I DO like)
I only use RGW/S3 
There is one realm (myrealm), one zonegroup (myzg) and 3 zones: Zone A, zone B 
and zone DR

Zone A and B are on the same ceph instance with different rgw processes and 
pools, zone DR is on a second cluster, in case that matters.
Without any sync policies all data is synced perfectly fine between all zones

What I want to see is:
Data from zone A is synced directionally to zone DR, but not to zone B
Data from zone B is not synced anywhere
Data from zone DR is not synced back/anywhere
i.e. clients writing to zone A get their data "backed up" to zone DR, 
while clients writng to zone B don't get their data "backed" up to a second 
zone.
Clients don't have access to zone DR.

I used sync policies this way:
radosgw-admin sync group create --group-id=drsync --status=allowed
radosgw-admin sync group flow create --group-id=drsync --flow-id=a2dr 
--flow-type=directional --source-zone=a --dest-zone=dr
radosgw-admin sync group pipe create --group-id=drsync --pipe-id=allbuck 
--source-zones='*' --source-bucket='*' --dest-zones='*' --dest-bucket='*'
radosgw-admin sync group modify --group-id=drsync --status=enabled
radosgw-admin period update --commit

Now, from a data-in-buckets perspective all looks fine
Add data to bucket buck on A -> appears on buck on DR, but not in B
Add data to bucket buck on B -> doesn't appear in A or DR
Same for all other combinations, just as I want it.

BUT
radosgw-admin sync status 
with --rgw-zone=A or DR or B
after adding or removing data always shows some
"data is behind on X shards", apparently for all the shards that are - 
intentionally - not synced. Those “behind” shards accumulate over time and 
never go away again.

Is that just annoying but normal? Or is that a bug?
Or is my configuration just "bad" and could be changed so I don't have those 
sort-of errors with the sync status.

When I used bucket level sync policies (only sync certain buckets from zone A 
to DR, no zone B) I had iirc the same effect.

What I'm really trying to achieve is something like "user sync policies", i.e.
- User X data should be synced from A to DR
- User Y data should only stay in A
I’m trying to emulate that by using the existing/documented sync policies. User 
X gets URL for zone A, user Y gets URL for zone B
(or with bucket level policies both get URL for zone A and for user X syncing 
is turned on “on demand” for certain existing buckets - inconvenient)

Best would be if I could flip a flag and change the behaviour per user :)
And even better if it was easy to understand, i.e. if user's sync-flag is 
turned on all his data is synced, not just new data. If user's sync-flag is 
turned off, all his data is removed from the DR zone.


Thanks for any input :)

Ciao, Uli
___
ceph-users mailing list -- ceph-users@ceph.io
To unsubscribe send an email to ceph-users-le...@ceph.io