1 iptables 配置

    1. # Monitor 服务器
    2. $ sudo iptables -A INPUT -i {iface} -p tcp -s {ip-address}/{netmask} --dport 6789 -j ACCEPT
    3. # MDS 和 MGR 服务器
    4. $ sudo iptables -A INPUT -i {iface} -m multiport -p tcp -s {ip-address}/{netmask} --dports 6800:7300 -j ACCEPT
    5. # OSD 服务器
    6. $ sudo iptables -A INPUT -i {iface} -m multiport -p tcp -s {ip-address}/{netmask} --dports 6800:7300 -j ACCEPT

    2 修改 ceph.conf

    1. [golbal]
    2. ...
    3. public_network = 10.19.250.0/24
    4. cluster_network = 10.19.251.0/24
    5. ...
    6. [osd.0]
    7. host = osd5
    8. public_addr = 10.19.250.35
    9. cluster_addr = 10.19.251.35
    10. [osd.1]
    11. host = osd5
    12. public_addr = 10.19.250.35
    13. cluster_addr = 10.19.251.35
    1. [global] 中需要新增 cluster_network 字段,这个对应的就是内网,填写内网的子网掩码就可以了。public_network 对应的是外网。
    2. [osd.*],这部分是针对每个 OSD 进程的,如果 OSD 进程多的话,确实有点繁琐,目前我还没找到更为简洁的方法。host 字段要填写 OSD 进程所在服务器的主机名,通过 hostname -s 来查询。public_addr 填写所在主机的外网地址,cluster_addr 则填写主机的内网地址。
    3. 配置修改好后,就需要把配置上传到服务器上了,配置 Ceph 环境,通常都是使用 ceph-deploy,现在也可以用这个命令上传配置。
    1. ceph-deploy --overwrite-conf config push [<host-name>...]

    最后,配置需要重启 ceph 相关的进程才能生效

    1. # OSD 服务器上需重启全部 OSD 进程
    2. sudo systemctl restart ceph-osd@*
    3. # Monitor 服务器
    4. sudo systemctl restart ceph-mon@*
    5. # Manager 服务器
    6. sudo systemctl restart ceph-mgr@*
    7. # metadata 服务器
    8. sudo systemctl restart ceph-mds@*