Hi Jan...

We were interested in the situation where an rm -Rf is done in the current directory of the OSD. Here are my findings:

   1. In this exercise, we simply deleted all the content of
   /var/lib/ceph/osd/ceph-23/current.

       # cd /var/lib/ceph/osd/ceph-23/current
       # rm -Rf *
       # df
       (...)
       /dev/sdj1      2918054776    434548 2917620228   1%
       /var/lib/ceph/osd/ceph-23



   2. After some time, ceph enters in error state because it thinks it
   has an inconsistent PG and several scrub errors

       # ceph -s
            cluster eea8578f-b3ac-4dfb-a0c5-da40509f5cdc
             health HEALTH_ERR
                    1 pgs inconsistent
                    1850 scrub errors
             monmap e1: 3 mons at
       {mon1=X.X.X.X:6789/0,mon2=X.X.X.X:6789/0,mon3=X.X.X.X:6789/0}
                    election epoch 24, quorum 0,1,2 mon1,mon3,mon2
             mdsmap e162: 1/1/1 up {0=mds=up:active}, 1 up:standby-replay
             osdmap e1903: 32 osds: 32 up, 32 in
              pgmap v1041261: 2176 pgs, 2 pools, 4930 GB data, 1843
       kobjects
                    14424 GB used, 74627 GB / 89051 GB avail
                        2175 active+clean
                           1 active+clean+inconsistent
          client io 989 B/s rd, 1 op/s


   3. Looking to ceph.log in the mon, it is possible to check which is
   the PG affected and which OSD is responsible for the error:

       # tail -f /var/log/ceph/ceph.log
       (...)
       2015-08-24 11:31:10.139239 osd.13 X.X.X.X:6804/20104 2384 :
       cluster [ERR] be_compare_scrubmaps: *5.336 shard 23* missing
       e300336/100000001b0.00002825/head//5be_compare_scrubmaps: 5.336
       shard 23 missing
       32600336/10000000109.00000754/head//5be_compare_scrubmaps:
       *5.336 shard 23* missing
       dd700336/100000001ab.00000b91/head//5be_compare_scrubmaps: 5.336
       shard 23 missing
       bc220336/100000001bd.0000387c/head//5be_compare_scrubmaps: 5.336
       shard 23 missing
       f9320336/10000000201.00002e96/head//5be_compare_scrubmaps: 5.336
       shard 23 missing
       1a920336/10000000228.0000d501/head//5be_compare_scrubmaps: 5.336
       shard 23 missing
       24a20336/100000001bc.00003e06/head//5be_compare_scrubmaps: 5.336
       shard 23 missing
       cd20336/10000000227.00004775/head//5be_compare_scrubmaps: 5.336
       shard 23 missing
       cef20336/100000001b9.00002260/head//5be_compare_scrubmaps: 5.336
       shard 23 missing
       ba240336/100000001d8.00000630/head//5be_compare_scrubmaps: 5.336
       shard 23 missing
       3e740336/100000001b1.00002089/head//5be_compare_scrubmaps: 5.336
       shard 23 missing
       e840336/100000001ba.00002618/head//5be_compare_scrubmaps: 5.336
       shard 23 missing
       17b40336/100000000e9.00000287/head//5be_compare_scrubmaps: 5.336
       shard 23 missing
       b7950336/100000000e4.00000800/head//5be_compare_scrubmaps: 5.336
       shard 23 missing
       94560336/100000001b4.00002834/head//5be_compare_scrubmaps: 5.336
       shard 23 missing
       71370336/10000000051.00000179/head//5be_compare_scrubmaps: 5.336
       shard 23 missing
       62370336/100000001b5.00003b5b/head//5be_compare_scrubmaps: 5.336
       shard 23 missing
       e9670336/10000000120.000003f8/head//5be_compare_scrubmaps: 5.336
       shard 23 missing
       1b480336/1000000019a.00000d4b/head//5be_compare_scrubmaps: 5.336
       shard 23 missing
       11880336/100000001e8.000003e9/head//5be_compare_scrubmaps: 5.336
       shard 23 missing
       56c80336/10000000083.00000255/head//5be_compare_scrubmaps: 5.336
       shard 23 missing
       97790336/100000001e7.00000668/head//5be_compare_scrubmaps: 5.336
       shard 23 missing
       e4ca0336/100000001b6.0000278c/head//5be_compare_scrubmaps: 5.336
       shard 23 missing 4eda0336/1000000019e.000036ad/head//5
       (...)
       2015-08-24 11:31:14.336760 osd.13 X.X.X.X:6804/20104 2476 :
       cluster [ERR] 5.336 scrub 1850 missing, 0 inconsistent objects
       2015-08-24 11:31:14.336764 osd.13 X.X.X.X:6804/20104 2477 :
       cluster [ERR] 5.336 scrub 1850 errors

   4. We have tried to restart the problematic osd, but that fails.

       # /etc/init.d/ceph stop osd.23
       === osd.23 ===
       Stopping Ceph osd.23 on osd3...done
       [root@osd3 ~]# /etc/init.d/ceph start osd.23
       === osd.23 ===
       create-or-move updated item name 'osd.23' weight 2.72 at
       location {host=osd3,root=default} to crush map
       Starting Ceph osd.23 on osd3...
       starting osd.23 at :/0 osd_data /var/lib/ceph/osd/ceph-23
       /var/lib/ceph/osd/ceph-23/journal

       # tail -f /var/log/ceph/ceph-osd.23.log
       2015-08-24 11:48:12.189322 7fa24d85d800  0 ceph version 0.94.2
       (5fb85614ca8f354284c713a2f9c610860720bbf3), process ceph-osd,
       pid 7266
       2015-08-24 11:48:12.389747 7fa24d85d800  0
       filestore(/var/lib/ceph/osd/ceph-23) backend xfs (magic 0x58465342)
       2015-08-24 11:48:12.391370 7fa24d85d800  0
       genericfilestorebackend(/var/lib/ceph/osd/ceph-23)
       detect_features: FIEMAP ioctl is supported and appears to work
       2015-08-24 11:48:12.391381 7fa24d85d800  0
       genericfilestorebackend(/var/lib/ceph/osd/ceph-23)
       detect_features: FIEMAP ioctl is disabled via 'filestore fiemap'
       config option
       2015-08-24 11:48:12.404785 7fa24d85d800  0
       genericfilestorebackend(/var/lib/ceph/osd/ceph-23)
       detect_features: syscall(SYS_syncfs, fd) fully supported
       2015-08-24 11:48:12.404874 7fa24d85d800  0
       xfsfilestorebackend(/var/lib/ceph/osd/ceph-23) detect_features:
       disabling extsize, kernel 2.6.32-504.16.2.el6.x86_64 is older
       than 3.5 and has buggy extsize ioctl
       2015-08-24 11:48:12.405226 7fa24d85d800 -1
       filestore(/var/lib/ceph/osd/ceph-23) mount initial op seq is 0;
       something is wrong
       2015-08-24 11:48:12.405243 7fa24d85d800 -1 osd.23 0 OSD:init:
       unable to mount object store
       2015-08-24 11:48:12.405251 7fa24d85d800 -1   ERROR: osd init
       failed: (22) Invalid argument


   5. At this point, osd.23 is reported as 'down' but 'in', and ceph
   finally understands that there is an osd down, and that there are
   degraded PGs.

       # ceph osd dump
       (...)
       osd.23 down in  weight 1 up_from 276 up_thru 1838 down_at 1904
       last_clean_interval [112,208) X.X.X.X:6812/30826
       10.100.1.169:6812/30826 10.100.1.169:6813/30826
       X.X.X.X:6813/30826 exists 3010de97-3080-42e2-9a64-4bb1960d40b4
       # ceph -s
            cluster eea8578f-b3ac-4dfb-a0c5-da40509f5cdc
             health HEALTH_ERR
                    202 pgs degraded
                    1 pgs inconsistent
                    201 pgs stuck unclean
                    202 pgs undersized
                    recovery 155149/5664204 objects degraded (2.739%)
                    1850 scrub errors
                    1/32 in osds are down
             monmap e1: 3 mons at
       {mon1=X.X.X.X:6789/0,mon2=X.X.X.X:6789/0,mon3=X.X.X.X:6789/0}
                    election epoch 24, quorum 0,1,2 mon1,mon3,mon2
             mdsmap e162: 1/1/1 up {0=mds=up:active}, 1 up:standby-replay
             osdmap e1905: 32 osds: 31 up, 32 in
              pgmap v1041433: 2176 pgs, 2 pools, 4930 GB data, 1843
       kobjects
                    14424 GB used, 74627 GB / 89051 GB avail
                    155149/5664204 objects degraded (2.739%)
                        1974 active+clean
                         201 active+undersized+degraded
                           1 active+undersized+degraded+inconsistent
          client io 1023 B/s rd, 0 op/s

   6. Recovery I/O starts and finishes, but the systems remains in
   error state because of the inconsistent PG

       # ceph -s
            cluster eea8578f-b3ac-4dfb-a0c5-da40509f5cdc
             health HEALTH_ERR
                    1 pgs inconsistent
                    1850 scrub errors
             monmap e1: 3 mons at
       {mon1=X.X.X.X:6789/0,mon2=X.X.X.X:6789/0,mon3=X.X.X.X:6789/0}
                    election epoch 24, quorum 0,1,2 mon1,mon3,mon2
             mdsmap e162: 1/1/1 up {0=mds=up:active}, 1 up:standby-replay
             osdmap e2097: 32 osds: 31 up, 31 in
              pgmap v1043287: 2176 pgs, 2 pools, 4930 GB data, 1843
       kobjects
                    14838 GB used, 71430 GB / 86269 GB avail
                        2172 active+clean
                           2 active+clean+replay
                           1 active+clean+scrubbing
                           1 active+clean+inconsistent
          client io 1063 B/s rd, 2 op/s

       # ceph health detail
       HEALTH_ERR 1 pgs inconsistent; 1850 scrub errors
       pg 5.336 is active+clean+inconsistent, acting [13,2,22]
       1850 scrub errors


   7. The inconsistent PG is then repaired, and the system returns to a
   'HEALTH_OK' status

       # ceph pg repair 5.336
       instructing pg 5.336 on osd.13 to repair

       $ tail -f /var/log/ceph/ceph.log
       2015-08-24 12:30:49.583363 mon.0 X.X.X.X:6789/0 289961 : cluster
       [INF] pgmap v1043322: 2176 pgs: 2173 active+clean, 1
       active+clean+inconsistent, 2 active+clean+replay; 4930 GB data,
       14833 GB used, 71435 GB / 86269 GB avail; 1023 B/s rd, 1 op/s
       2015-08-24 12:36:20.894597 osd.13 192.231.127.168:6804/20104
       2496 : cluster [INF] 5.336 repair starts
       2015-08-24 12:39:27.105511 osd.13 192.231.127.168:6804/20104
       2497 : cluster [INF] 5.336 repair ok, 0 fixed

       # ceph -s
            cluster eea8578f-b3ac-4dfb-a0c5-da40509f5cdc
             health HEALTH_OK
             monmap e1: 3 mons at
       {mon1=X.X.X.X:6789/0,mon2=X.X.X.X:6789/0,mon3=X.X.X.X:6789/0}
                    election epoch 24, quorum 0,1,2 mon1,mon3,mon2
             mdsmap e162: 1/1/1 up {0=mds=up:active}, 1 up:standby-replay
             osdmap e2097: 32 osds: 31 up, 31 in
              pgmap v1043543: 2176 pgs, 2 pools, 4930 GB data, 1843
       kobjects
                    14828 GB used, 71440 GB / 86269 GB avail
                        2174 active+clean
                           2 active+clean+replay
          client io 1023 B/s rd, 1 op/s





On 08/24/2015 07:49 PM, Jan Schermer wrote:
I'm not talking about IO happening, I'm talking about file descriptors staying open. If 
they weren't open you could umount it without the "-l".
Once you hit the OSD again all those open files will start working and if more 
need to be opened it will start looking for them...

Jan


On 24 Aug 2015, at 03:07, Goncalo Borges <[email protected]> wrote:

Hi Jan...

Thank for the reply.

Yes, I did an 'umount -l' but I was sure that no I/O was happening at the time. 
So, I was almost 100% sure that there were no real incoherence in terms of open 
files in the OS.


On 08/20/2015 07:31 PM, Jan Schermer wrote:
Just to clarify - you unmounted the filesystem with "umount -l"? That almost 
never a good idea, and it puts the OSD in a very unusual situation where IO will actually 
work on the open files, but it can't open any new ones. I think this would be enough to 
confuse just about any piece of software.
Yes, I did an 'umount -l' but I was sure that no I/O was happening at the time. 
So, I was almost 100% sure that there were no real incoherence in terms of open 
files in the OS.

Was journal on the filesystem or on a separate partition/device?
The journal in on the same disk, but in a different partition.

It's not the same as R/O filesystem (I hit that once and no such havoc 
happened), in my experience the OSD traps and exits when something like that 
happens.

It would be interesting to know what would happen if you just did rm -rf 
/var/lib/ceph/osd/ceph-4/current/* - that could be an equivalent to umount -l, 
more or less :-)

Will try that today and report back here.

Cheers
Goncalo


--
Goncalo Borges
Research Computing
ARC Centre of Excellence for Particle Physics at the Terascale
School of Physics A28 | University of Sydney, NSW  2006
T: +61 2 93511937

_______________________________________________
ceph-users mailing list
[email protected]
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to