Re: What will PGs do when the network splits?

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

 



On Sat, Apr 6, 2013 at 1:22 PM, 袁冬 <yuandong1222@xxxxxxxxx> wrote:
>
> Hi guys.
>
> I have a problem when reading the codes of the ceph.
>
> In the osd.cc, the tick method will check if the mon is timeout by
> compare "now - g_conf->osd_mon_ack_timeout" with last_pg_stats_ack, if
> it's timeout, then monc->reopen_session() will be called to try to
> re-connect to the mon.
>
> The question is that, if the network has splited so that the osd will
> never be able to connect to any mon, how do the PGs on the osd know
> that? I think the PGs may still believe they are heathly with the
> current OSDMap even the mons have already mark their osd down & out
> (but couldn't tell them for the network problem), Then they continue
> to sevice clients who have the same OSDMap with them. So two primary
> PG may exist in the cluster at the same time which is terrible.
>

When OSDs communicate, they check if their OSDMaps match. If not, ODS that has
newer OSDMap sends OSDMap to ODSs that have old map. To migrate a PG to new
OSDs, the new OSDs need communicate with the old OSDs, so it's
impossible to have
two active PG primaries exist at the same time.

> I want to knwon any code work with this issue or is there some wrong
> with my opinion?
>
> Thanks for any help!
>
>
> --
> 袁冬
> Email:yuandong1222@xxxxxxxxx
> QQ:10200230
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux