This section describes how to add a Ceph Monitor node to an existing Ceph cluster.
Warning
Prior to the 2019.2.10 maintenance update, this feature is available as technical preview only.
Note
The Ceph Monitor service is quorum-based. Therefore, keep an odd number of Ceph Monitor nodes to establish a quorum.
To add a Ceph Monitor node:
In your project repository, add the following lines to the
cluster/ceph/init.yml
file and modify them according to your
environment:
_param:
ceph_mon_node04_hostname: cmn04
ceph_mon_node04_address: 172.16.47.145
ceph_mon_node04_ceph_public_address: 10.13.0.4
ceph_mon_node04_deploy_address: 192.168.0.145
linux:
network:
host:
cmn04:
address: ${_param:ceph_mon_node04_address}
names:
- ${_param:ceph_mon_node04_hostname}
- ${_param:ceph_mon_node04_hostname}.${_param:cluster_domain}
Note
Skip the ceph_mon_node04_deploy_address
parameter if you have
DHCP enabled on a PXE network.
Define the backup configuration for the new node in
cluster/ceph/init.yml
. For example:
parameters:
_param:
ceph_mon_node04_ceph_backup_hour: 4
ceph_mon_node04_ceph_backup_minute: 0
Add the following lines to the cluster/ceph/common.yml
file and modify
them according to your environment:
parameters:
ceph:
common:
members:
- name: ${_param:ceph_mon_node04_hostname}
host: ${_param:ceph_mon_node04_address}
Add the following lines to the cluster/infra/config/nodes.yml
file:
parameters:
reclass:
storage:
node:
ceph_mon_node04:
name: ${_param:ceph_mon_node04_hostname}
domain: ${_param:cluster_domain}
classes:
- cluster.${_param:cluster_name}.ceph.mon
params:
ceph_public_address: ${_param:ceph_mon_node04_ceph_public_address}
ceph_backup_time_hour: ${_param:ceph_mon_node04_ceph_backup_hour}
ceph_backup_time_minute: ${_param:ceph_mon_node04_ceph_backup_minute}
salt_master_host: ${_param:reclass_config_master}
linux_system_codename: ${_param:ceph_mon_system_codename}
single_address: ${_param:ceph_mon_node04_address}
deploy_address: ${_param:ceph_mon_node04_deploy_address}
ceph_public_address: ${_param:ceph_mon_node04_public_address}
keepalived_vip_priority: 104
Note
Skip the deploy_address
parameter if you have DHCP enabled on
a PXE network.
Add the following lines to the cluster/infra/kvm.yml
file and modify
infra_kvm_node03_hostname
depending on which KVM node the Ceph Monitor
node should run on:
parameters:
salt:
control:
size:
ceph.mon:
cpu: 8
ram: 16384
disk_profile: small
net_profile: default
cluster:
internal:
node:
cmn04:
name: ${_param:ceph_mon_node04_hostname}
provider: ${_param:infra_kvm_node03_hostname}.${_param:cluster_domain}
image: ${_param:salt_control_xenial_image}
size: ceph.mon
Refresh pillars:
salt '*' saltutil.refresh_pillar
Log in to the Jenkins web UI.
Open the Ceph - add node pipeline.
Specify the following parameters:
Parameter | Description and values |
---|---|
SALT_MASTER_CREDENTIALS | The Salt Master credentials to use for connection, defaults to
salt . |
SALT_MASTER_URL | The Salt Master node host URL with the salt-api port, defaults to
the jenkins_salt_api_url parameter. For example,
http://172.18.170.27:6969 . |
HOST | Add the Salt target name of the new Ceph Monitor node. For example,
cmn04* . |
HOST_TYPE Removed since 2019.2.13 update | Add mon as the type of Ceph node that is going to be added. |
Click Deploy.
The Ceph - add node pipeline workflow:
reclass
state.linux
, openssh
, salt
, ntp
, rsyslog
,
ceph.mon
states.ceph.conf
files on all Ceph nodes.ceph.mgr
state if the pillar is present.