Add a Ceph Monitor node

Add a Ceph Monitor nodeΒΆ

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:

  1. 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.

  2. 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
    
  3. 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}
    
  4. 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.

  5. 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
    
  6. Refresh pillars:

    salt '*' saltutil.refresh_pillar
    
  7. Log in to the Jenkins web UI.

  8. Open the Ceph - add node pipeline.

  9. 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.
  10. Click Deploy.

The Ceph - add node pipeline workflow:

  1. Launch the Ceph Monitor VMs.
  2. Run the reclass state.
  3. Run the linux, openssh, salt, ntp, rsyslog, ceph.mon states.
  4. Update ceph.conf files on all Ceph nodes.
  5. Run the ceph.mgr state if the pillar is present.