RGW hung, 2 OSDs using 100% CPU

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I noticed that my RGW Replication wasn't doing anything.  RGW Replication logs were full of:
2014-03-26T11:29:01.802 18698:ERROR:root:Could not retrieve region map from destination
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/radosgw_agent/cli.py", line 262, in main
    region_map = client.get_region_map(dest_conn)
<snip>

I tried to get a list of buckets in the slave zone, and it hangs.  The simpliest operation I can run that hangs is:
radosgw-admin --name=client.radosgw.ceph1c regions list

This cluster has 2 nodes.  Watching ceph -w, I see 2 OSDs get kicked out of the cluster.  OSDs 4 and 8 are both flapping.  An excerpt from ceph -w:
2014-03-26 11:24:33.582757 osd.9 [WRN] 1 slow requests, 1 included below; oldest blocked for > 30.838374 secs
2014-03-26 11:24:33.582762 osd.9 [WRN] slow request 30.838374 seconds old, received at 2014-03-26 11:24:02.744331: osd_op(client.41087064.0:8 notify.0 [watch add cookie 1 ver 0] 9.4322fa9f e8270) v4 currently waiting for subops from [4]
2014-03-26 11:24:35.583064 osd.9 [WRN] 2 slow requests, 1 included below; oldest blocked for > 32.838703 secs
2014-03-26 11:24:35.583068 osd.9 [WRN] slow request 30.012828 seconds old, received at 2014-03-26 11:24:05.570206: osd_op(client.41087080.0:8 notify.0 [watch add cookie 1 ver 0] 9.4322fa9f e8270) v4 currently waiting for subops from [4]
2014-03-26 11:28:10.612684 osd.9 [WRN] 4 slow requests, 1 included below; oldest blocked for > 247.868328 secs
2014-03-26 11:28:10.612692 osd.9 [WRN] slow request 240.276922 seconds old, received at 2014-03-26 11:24:10.335737: osd_op(client.41087104.0:8 notify.0 [watch add cookie 1 ver 0] 9.4322fa9f e8270) v4 currently waiting for subops from [4]
2014-03-26 11:31:08.198483 mon.0 [INF] osd.4 marked itself down
2014-03-26 11:31:08.266406 mon.0 [INF] osdmap e8271: 16 osds: 15 up, 16 in
2014-03-26 11:31:21.294695 mon.0 [INF] osd.4 10.193.0.6:6812/2215 boot
2014-03-26 11:33:55.856801 mon.0 [INF] osd.8 marked down after no pg stats for 900.157048seconds
2014-03-26 11:33:55.894864 mon.0 [INF] osdmap e8275: 16 osds: 15 up, 16 in
2014-03-26 11:47:30.952634 mon.0 [INF] osd.8 out (down for 815.058447)

I set the noout flag.

This is a production slave zone.  I can play with the cluster as long as replication is off.  By playing with OSD 4 and 8, I found that I can make the cluster work fine with OSD 4 up, and OSD 8 down.  If I start ODS 8, and stop OSD 4, RGW is still hung.  If I start both, RGW is still hung.

I saw some mailing list posts where somebody had a similar issue, and fixing the time solved it.  I verified that my times are correct on both machines.

I haven't seen any XFS issues, but just to be sure, I umounted both devices, and ran xfs_check.  No errors were reported.


Since all the easy things appear to be in order, I bumped up logging on both nodes:
[osd]
  osd journal size = 6144
  osd max backfills = 1
  osd mkfs options xfs = -l size=1024m -n size=64k -i size=2048 -s size=4096
  osd mkfs type = xfs
  osd mount options xfs = rw,noatime,nodiratime,nosuid,noexec,inode64
  osd recovery op priority = 1
  debug osd = 5
  debug filestore = 5
  debug journal = 1
  debug monc = 20

At 14:14:00, I started OSD 4, and waited for ceph-w to stabilize.  CPU usage was normal.
At 14:15:10, I ran radosgw-admin --name=client.radosgw.ceph1c regions list && radosgw-admin --name=client.radosgw.ceph1c regionmap get.  It returned successfully.
At 14:16:00, I started OSD 8, and waited for ceph -w to stabilize.  CPU usage started out normal, but went to 100% before 14:16:40.
At 14:17:25, I ran radosgw-admin --name=client.radosgw.ceph1c regions list && radosgw-admin --name=client.radosgw.ceph1c regionmap get.  regions list hung, and I killed At 14:18:15, I stopped ceph-osd id=8.
At 14:18:45, I ran radosgw-admin --name=client.radosgw.ceph1c regions list && radosgw-admin --name=client.radosgw.ceph1c regionmap get.  It returned successfully.
At 14:19:10, I stopped ceph-osd id=8.

Looking at the logs, nothing jumps out at me between 14:16:00 and 14:16:40.  The logs are busy, since OSD 8 is backfilling.


I don't think it's related, but I'd like to point out that all of the RGW pools have snapshots:
root@ceph1c:/var/log/ceph# rados lssnap -p .us-central-1.rgw.root
3    2014-03-15T02:00:02    2014.03.15 02:00:02
4    2014-03-16T02:00:01    2014.03.16 02:00:02
5    2014-03-17T02:00:01    2014.03.17 02:00:01
6    2014-03-18T02:00:01    2014.03.18 02:00:01
7    2014-03-19T02:00:01    2014.03.19 02:00:01
8    2014-03-20T02:00:01    2014.03.20 02:00:01
9    2014-03-21T02:00:01    2014.03.21 02:00:01
10    2014-03-22T02:00:01    2014.03.22 02:00:01
11    2014-03-23T02:00:02    2014.03.23 02:00:02
12    2014-03-24T02:00:02    2014.03.24 02:00:02
13    2014-03-25T02:00:02    2014.03.25 02:00:02
14    2014-03-26T02:00:01    2014.03.26 02:00:01
12 snaps

That's only in my slave zone.  The master zone (which is working fine) has no snapshots.


For now, I've removed the debugging, started OSD 4, and started radosgw-agent.  OSD 8 remains off. 

There are 43 PGs that live on OSD 4 and 8:
root@ceph1c:/var/log/ceph# ceph pg dump | fgrep '[4]' | cut -d"." -f1 | sort | uniq -c
     36 11
      2 13
      1 14
      1 18
      1 19
      1 20
      1 21
root@ceph1c:/var/log/ceph# ceph osd dump | grep pool | egrep 'pool (11|13|14|18|19|20|21)'
pool 11 '.rgw.buckets' rep size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 2048 pgp_num 2048 last_change 8014 owner 0 flags hashpspool
pool 13 '.us-central-1.log' rep size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 32 pgp_num 32 last_change 8007 owner 0 flags hashpspool
pool 14 '.us-central-1.intent-log' rep size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 32 pgp_num 32 last_change 8006 owner 0 flags hashpspool
pool 18 '.us-central-1.users.swift' rep size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 32 pgp_num 32 last_change 8010 owner 0 flags hashpspool
pool 19 '.us-central-1.users.uid' rep size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 32 pgp_num 32 last_change 8011 owner 0 flags hashpspool
pool 20 '.rgw.root' rep size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 32 pgp_num 32 last_change 207 owner 0 flags hashpspool
pool 21 '.rgw.control' rep size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 32 pgp_num 32 last_change 208 owner 0 flags hashpspool



The two OSD logs from 14:14:00 to 14:19:10 can be found at
OSD 4: https://cd.centraldesktop.com/p/eAAAAAAADL0vAAAAAABMSio
OSD 8: https://cd.centraldesktop.com/p/eAAAAAAADL05AAAAAFAVWRg


Any suggestions or ideas are appreciated.


--

Craig Lewis
Senior Systems Engineer
Office +1.714.602.1309
Email clewis@xxxxxxxxxxxxxxxxxx

Central Desktop. Work together in ways you never thought possible.
Connect with us   Website  |  Twitter  |  Facebook  |  LinkedIn  |  Blog

_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Ceph Dev]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux