mirror of
https://github.com/ceph/ceph
synced 2025-01-03 01:22:53 +00:00
Merge PR #37202 into master
* refs/pull/37202/head: mon: allow overriding the initial mon_host Reviewed-by: Neha Ojha <nojha@redhat.com>
This commit is contained in:
commit
7eceaf45de
@ -128,6 +128,12 @@
|
|||||||
contain alphanumeric and ``-``, ``_`` and ``.`` characters. Some commands
|
contain alphanumeric and ``-``, ``_`` and ``.`` characters. Some commands
|
||||||
or CephX credentials may not work with old FSs with non-conformant names.
|
or CephX credentials may not work with old FSs with non-conformant names.
|
||||||
|
|
||||||
|
* It is now possible to specify the initial monitor to contact for Ceph tools
|
||||||
|
and daemons using the ``mon_host_override`` config option or
|
||||||
|
``--mon-host-override <ip>`` command-line switch. This generally should only
|
||||||
|
be used for debugging and only affects initial communication with Ceph's
|
||||||
|
monitor cluster.
|
||||||
|
|
||||||
* `blacklist` has been replaced with `blocklist` throughout. The following commands have changed:
|
* `blacklist` has been replaced with `blocklist` throughout. The following commands have changed:
|
||||||
|
|
||||||
- ``ceph osd blacklist ...`` are now ``ceph osd blocklist ...``
|
- ``ceph osd blacklist ...`` are now ``ceph osd blocklist ...``
|
||||||
|
@ -67,6 +67,11 @@ configuration, they may need to be stored locally on the node and set
|
|||||||
in a local configuration file. These options include:
|
in a local configuration file. These options include:
|
||||||
|
|
||||||
- ``mon_host``, the list of monitors for the cluster
|
- ``mon_host``, the list of monitors for the cluster
|
||||||
|
- ``mon_host_override``, the list of monitors for the cluster to
|
||||||
|
**initially** contact when beginning a new instance of communication with the
|
||||||
|
Ceph cluster. This overrides the known monitor list derived from MonMap
|
||||||
|
updates sent to older Ceph instances (like librados cluster handles). It is
|
||||||
|
expected this option is primarily useful for debugging.
|
||||||
- ``mon_dns_serv_name`` (default: `ceph-mon`), the name of the DNS
|
- ``mon_dns_serv_name`` (default: `ceph-mon`), the name of the DNS
|
||||||
SRV record to check to identify the cluster monitors via DNS
|
SRV record to check to identify the cluster monitors via DNS
|
||||||
- ``mon_data``, ``osd_data``, ``mds_data``, ``mgr_data``, and
|
- ``mon_data``, ``osd_data``, ``mds_data``, ``mgr_data``, and
|
||||||
|
@ -33,18 +33,18 @@ function run() {
|
|||||||
run_mon $dir b --public-addr $MONB || return 1
|
run_mon $dir b --public-addr $MONB || return 1
|
||||||
)
|
)
|
||||||
|
|
||||||
timeout 360 ceph --mon-host $MONA mon stat || return 1
|
timeout 360 ceph --mon-host-override $MONA mon stat || return 1
|
||||||
# check that MONB is indeed a peon
|
# check that MONB is indeed a peon
|
||||||
ceph --admin-daemon $(get_asok_path mon.b) mon_status |
|
ceph --admin-daemon $(get_asok_path mon.b) mon_status |
|
||||||
grep '"peon"' || return 1
|
grep '"peon"' || return 1
|
||||||
# when the leader ( MONA ) is used, there is no message forwarding
|
# when the leader ( MONA ) is used, there is no message forwarding
|
||||||
ceph --mon-host $MONA osd pool create POOL1 12
|
ceph --mon-host-override $MONA osd pool create POOL1 12
|
||||||
CEPH_ARGS='' ceph --admin-daemon $(get_asok_path mon.a) log flush || return 1
|
CEPH_ARGS='' ceph --admin-daemon $(get_asok_path mon.a) log flush || return 1
|
||||||
grep 'mon_command(.*"POOL1"' $dir/mon.a.log || return 1
|
grep 'mon_command(.*"POOL1"' $dir/mon.a.log || return 1
|
||||||
CEPH_ARGS='' ceph --admin-daemon $(get_asok_path mon.b) log flush || return 1
|
CEPH_ARGS='' ceph --admin-daemon $(get_asok_path mon.b) log flush || return 1
|
||||||
grep 'mon_command(.*"POOL1"' $dir/mon.b.log && return 1
|
grep 'mon_command(.*"POOL1"' $dir/mon.b.log && return 1
|
||||||
# when the peon ( MONB ) is used, the message is forwarded to the leader
|
# when the peon ( MONB ) is used, the message is forwarded to the leader
|
||||||
ceph --mon-host $MONB osd pool create POOL2 12
|
ceph --mon-host-override $MONB osd pool create POOL2 12
|
||||||
CEPH_ARGS='' ceph --admin-daemon $(get_asok_path mon.b) log flush || return 1
|
CEPH_ARGS='' ceph --admin-daemon $(get_asok_path mon.b) log flush || return 1
|
||||||
grep 'forward_request.*mon_command(.*"POOL2"' $dir/mon.b.log || return 1
|
grep 'forward_request.*mon_command(.*"POOL2"' $dir/mon.b.log || return 1
|
||||||
CEPH_ARGS='' ceph --admin-daemon $(get_asok_path mon.a) log flush || return 1
|
CEPH_ARGS='' ceph --admin-daemon $(get_asok_path mon.a) log flush || return 1
|
||||||
|
@ -429,6 +429,12 @@ std::vector<Option> get_global_options() {
|
|||||||
.set_flag(Option::FLAG_STARTUP)
|
.set_flag(Option::FLAG_STARTUP)
|
||||||
.add_service("common"),
|
.add_service("common"),
|
||||||
|
|
||||||
|
Option("mon_host_override", Option::TYPE_STR, Option::LEVEL_ADVANCED)
|
||||||
|
.set_description("monitor(s) to use overriding the MonMap")
|
||||||
|
.set_flag(Option::FLAG_NO_MON_UPDATE)
|
||||||
|
.set_flag(Option::FLAG_STARTUP)
|
||||||
|
.add_service("common"),
|
||||||
|
|
||||||
Option("mon_dns_srv_name", Option::TYPE_STR, Option::LEVEL_ADVANCED)
|
Option("mon_dns_srv_name", Option::TYPE_STR, Option::LEVEL_ADVANCED)
|
||||||
.set_default("ceph-mon")
|
.set_default("ceph-mon")
|
||||||
.set_description("name of DNS SRV record to check for monitor addresses")
|
.set_description("name of DNS SRV record to check for monitor addresses")
|
||||||
|
@ -883,6 +883,21 @@ int MonMap::build_initial(CephContext *cct, bool for_mkfs, ostream& errout)
|
|||||||
{
|
{
|
||||||
const auto& conf = cct->_conf;
|
const auto& conf = cct->_conf;
|
||||||
|
|
||||||
|
// mon_host_override?
|
||||||
|
auto mon_host_override = conf.get_val<std::string>("mon_host_override");
|
||||||
|
if (!mon_host_override.empty()) {
|
||||||
|
lgeneric_dout(cct, 1) << "Using mon_host_override " << mon_host_override << dendl;
|
||||||
|
auto ret = init_with_ips(mon_host_override, for_mkfs, "noname-");
|
||||||
|
if (ret == -EINVAL) {
|
||||||
|
ret = init_with_hosts(mon_host_override, for_mkfs, "noname-");
|
||||||
|
}
|
||||||
|
if (ret < 0) {
|
||||||
|
errout << "unable to parse addrs in '" << mon_host_override << "'"
|
||||||
|
<< std::endl;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
// cct?
|
// cct?
|
||||||
auto addrs = cct->get_mon_addrs();
|
auto addrs = cct->get_mon_addrs();
|
||||||
if (addrs != nullptr && (addrs->size() > 0)) {
|
if (addrs != nullptr && (addrs->size() > 0)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user