From 8f3432d5b6148930dc55ce7ef70a5f9bf5fd2d80 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Sat, 11 Mar 2017 01:27:59 +0800 Subject: [PATCH] messages/MOSDBeacon: add beacon msg osd will send beacon message to monitor periodically to inform it that "i am still alive!", previously, monitor use the pg-stats to check the status of OSD, but since osd will only send pg stat to mgr after luminous, we use a dedicated msg for this purpose. Signed-off-by: Kefu Chai --- src/messages/MOSDBeacon.h | 19 +++++++++++++++++++ src/msg/Message.cc | 4 ++++ src/msg/Message.h | 2 ++ 3 files changed, 25 insertions(+) create mode 100644 src/messages/MOSDBeacon.h diff --git a/src/messages/MOSDBeacon.h b/src/messages/MOSDBeacon.h new file mode 100644 index 0000000000000..e431fce090d43 --- /dev/null +++ b/src/messages/MOSDBeacon.h @@ -0,0 +1,19 @@ +#pragma once + +class MOSDBeacon : public PaxosServiceMessage { +public: + MOSDBeacon(epoch_t e = 0) + : PaxosServiceMessage(MSG_OSD_BEACON, e) + {} + void encode_payload(uint64_t features) override { + paxos_encode(); + } + void decode_payload() override { + bufferlist::iterator p = payload.begin(); + paxos_decode(p); + } + const char *get_type_name() const override { return "osd_beacon"; } + void print(ostream &out) const { + out << get_type_name(); + } +}; diff --git a/src/msg/Message.cc b/src/msg/Message.cc index 632bc92606a2f..8b5cb0a98f0c3 100644 --- a/src/msg/Message.cc +++ b/src/msg/Message.cc @@ -57,6 +57,7 @@ using namespace std; #include "messages/MOSDBoot.h" #include "messages/MOSDAlive.h" +#include "messages/MOSDBeacon.h" #include "messages/MOSDPGTemp.h" #include "messages/MOSDFailure.h" #include "messages/MOSDMarkMeDown.h" @@ -425,6 +426,9 @@ Message *decode_message(CephContext *cct, int crcflags, case MSG_OSD_ALIVE: m = new MOSDAlive(); break; + case MSG_OSD_BEACON: + m = new MOSDBeacon(); + break; case MSG_OSD_PGTEMP: m = new MOSDPGTemp; break; diff --git a/src/msg/Message.h b/src/msg/Message.h index 455c31adf46c1..da35ce08ef2ba 100644 --- a/src/msg/Message.h +++ b/src/msg/Message.h @@ -72,6 +72,8 @@ #define MSG_OSD_PGTEMP 78 +#define MSG_OSD_BEACON 79 + #define MSG_OSD_PG_NOTIFY 80 #define MSG_OSD_PG_QUERY 81 #define MSG_OSD_PG_LOG 83 -- 2.39.5