配置 Ceph 内外网分离

luminous.jpg

1. 为什么要做内外网分离

  先明确一下这么做的必要性。Ceph 的客户端,如 RADOSGW,RBD 等,会直接和 OSD 互联,以上传和下载数据,这部分是直接提供对外下载上传能力的;Ceph 一个基本功能是提供数据的冗余备份,OSD 负责数据的备份,跨主机间的数据备份当然要占用带宽,而且这部分带宽是无益于 Ceph 集群的吞吐量的。只有一个网络,尤其是有新的存储节点加入时,Ceph 集群的性能会因为大量的数据拷贝而变得很糟糕。所以对于性能有一定要求的用户,还是有必要配置内外网分离的。

2. 如何配置

Ceph 内外分离网络结构

  建立内网是为了降低 OSD 节点间数据复制对 Ceph 整体的影响,那么只要在 OSD 节点上加内网就可以了,上图非常清晰的描述了内网和外网覆盖的范围。   做内外网分离,必不可少的前提条件是 OSD 服务器上必须有两张可用的网卡,并且网络互通,确保这点我们就可以开始了。别以为是废话哈,我在配置时,就是因为有台 OSD 服务器网卡丢包严重,分析了好长时间才找到原因的。

2.1 iptables 配置

  如果 Linux 服务器上开启了防火墙,就有必要配置 iptables 规则,让服务器的防火墙放开对 OSD 新开放的 端口限制。

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

2.2 修改 ceph.conf

  先上修改好的例子。

[golbal]
...
public_network = 10.19.250.0/24
cluster_network = 10.19.251.0/24
...

[osd.0]
host = osd5
public_addr = 10.19.250.35
cluster_addr = 10.19.251.35

[osd.1]
host = osd5
public_addr = 10.19.250.35
cluster_addr = 10.19.251.35
...

  配置并不复杂,主要就是两段:

  • [global] 中需要新增 cluster_network 字段,这个对应的就是内网,填写内网的子网掩码就可以了。public_network 对应的是外网。
  • [osd.*],这部分是针对每个 OSD 进程的,如果 OSD 进程多的话,确实有点繁琐,目前我还没找到更为简洁的方法。host 字段要填写 OSD 进程所在服务器的主机名,通过 hostname -s 来查询。public_addr 填写所在主机的外网地址,cluster_addr 则填写主机的内网地址。

  配置修改好后,就需要把配置上传到服务器上了,配置 Ceph 环境,通常都是使用 ceph-deploy,现在也可以用这个命令上传配置。

ceph-deploy --overwrite-conf config push [<host-name>...]

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

# OSD 服务器上需重启全部 OSD 进程
sudo systemctl restart ceph-osd@*

# Monitor 服务器
sudo systemctl restart ceph-mon@*

# Manager 服务器 
sudo systemctl restart ceph-mgr@*

# metadata 服务器 
sudo systemctl restart ceph-mds@*

3. 参考链接:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Jerry的SAP技术分享

如何使用ABSL代码调用Web service

需求:在C4C UI里创建web service(maintain ticket),然后通过ABSL代码消费。

4554
来自专栏Pythonista

centos7之saltstack安装

查阅来自salt官网:http://docs.saltstack.cn/topics/installation/rhel.html

801
来自专栏逸鹏说道

并发编程~先导篇上

并发 :一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。

2048
来自专栏张宁的专栏

【腾讯云的1001种玩法】几种在腾讯云建立WordPress的方法(Linux)(一)

腾讯云作为国内一流的云服务提供商,云服务器CVM的使用可谓是“一键成站”,十分方便。今天我们就来介绍一下几种在腾讯云建立WordPress的方法。这里,我们仅介...

4.3K1
来自专栏Jerry的SAP技术分享

如何安装Virtual Box的VBox Guest Additions扩展程序

Virtual Box的默认安装是不包含Guest Addition这个扩展的,在实际使用过程中带来种种不便,比如只能通过小窗口访问虚拟机的操作系统,通过默认的...

1743
来自专栏撸码那些事

【眼见为实】数据库并发问题 封锁协议 隔离级别

此篇博客是【眼见为实】系列的第一篇博客,主要从理论上讲了数据库并发可能会出现的问题,解决并发问题的技术——封锁,封锁约定的规则——封锁协议。然后简单说明了数据库...

39211
来自专栏blackpiglet

Linux 远程挂载 Ceph RBD 磁盘

RBD 是 Ceph 的块存储方案,最近需要在一台 Linux 服务器上挂载 Ceph 镜像,做法和 Kubernetes 挂 RBD 很像,但部分操作由于 K...

5201
来自专栏云知识学习

故障:fork failed:Resource Temporarily Unavailable解决方案

AIX中用户无法执行任何命令,再ssh连报fork failed:Resource Temporarily Unavailable,是该用户的进程数超过了限制 ...

7138
来自专栏hotqin888的专栏

Dgraph安装和使用(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/det...

6702
来自专栏Netkiller

高级运维工程师面试题(更新中)

高级运维工程师 服务器硬件 RAID 磁盘阵列 简述 RAID? RAID 0 5 6 10 50 都适用于那些场景? 数据库适用那种 RAID? RAID 1...

9434

扫码关注云+社区

领取腾讯云代金券