配置集群主机间时间同步策略

Ceph中会自动校验存储节点之间的时间,若不同节点之间时差较大,会有告警,因此需要配置时间同步,Ubuntu下使用NTP服务,openEuler下使用Chrony服务,同步各节点间的时间,提高网络管理效率。

Ubuntu下配置NTP

  1. 安装NTP服务。

    1. 在所有服务端ceph1~ceph3节点和客户端client1节点安装NTP。
      1
      apt install -y ntp ntpdate
      

    2. 在所有服务端节点和客户端节点备份旧配置。
      1
      cd /etc && mv ntp.conf ntp.conf.bak
      
    3. 以ceph1为NTP服务端节点,在ceph1新建NTP文件。
      1. 打开“/etc/ntp.conf”文件。
        1
        vi /etc/ntp.conf
        
      2. “i”进入编辑模式,并新增如下内容作为NTP服务端。
        1
        2
        3
        4
        5
        restrict 127.0.0.1
        restrict ::1
        restrict 192.168.3.0 mask 255.255.255.0
        server 127.127.1.0
        fudge 127.127.1.0 stratum 8
        

        其中,“restrict 192.168.3.0 mask 255.255.255.0”是ceph1的网段与掩码。

      3. “Esc”键退出编辑模式,输入:wq!后按“Enter”键保存并退出文件。
    4. 在ceph2、ceph3及所有客户端节点新建NTP文件。
      1. 打开“/etc/ntp.conf”文件。
        1
        vi /etc/ntp.conf
        
      2. “i”进入编辑模式,新增如下内容:
        1
        server 192.168.3.166
        
      3. “Esc”键退出编辑模式,输入:wq!,“Enter”键保存并退出文件。

  2. 启动NTP服务。

    1. 在ceph1节点启动NTP服务,并检查服务状态是否为 “active(running)”。
      1
      2
      3
      4
      systemctl stop ntp
      systemctl start ntp
      systemctl enable ntp
      systemctl status ntp
      

      ceph1节点启动NTP进程5分钟后,再在其他节点进行时间同步,否则会报错(no server suitable for synchronization found)。

    2. 在除ceph1的所有节点强制停止NTP服务,同步server(ceph1)时间。
      1
      2
      service ntp stop
      ntpdate ceph1
      

      在其他节点同步成功显示如下:

    3. 在除ceph1的所有节点写入硬件时钟,避免重启后失效。
      1
      hwclock -w
      
    4. 在除ceph1的所有节点安装并启动crontab工具。
      1
      2
      3
      4
      apt install -y cron
      systemctl start cron
      systemctl enable cron
      crontab -e
      
    5. 添加以下内容,每隔10分钟自动与ceph1同步时间。
      1
      */10 * * * * /usr/sbin/ntpdate 192.168.3.166
      

      此IP地址为ceph1节点Public Network的IP地址。

openEuler配置Chrony

  1. 所有服务端ceph1~ceph3节点和客户端client1节点安装Chrony服务。

    1
    dnf install -y chrony
    

  2. 备份配置文件。

    1
    mv /etc/chrony.conf /etc/chrony.conf.bak
    

  3. 修改配置文件。

    1
    2
    3
    4
    5
    cat > /etc/chrony.conf <<EOF
    server xxx iburst # xxx为提供时钟服务的服务器在网络中的ip或域名
    allow xxx/xx # xxx/xx 是本地网络的IP地址范围(如:192.168.1.0/24),表示只有这个子网的机器才能与服务器进行时钟同步。
    local stratum 10
    EOF
    

  4. 重启Chrony。

    1
    2
    systemctl restart chronyd
    systemctl enable chronyd
    

  5. 查看时间同步状态。

    1
    2
    3
    chronyc -a makestep  #强制同步系统时间
    chronyc sourcestats   #显示当前时间源的同步统计信息
    chronyc sources -v    #显示当前时间源的同步信息