如何实现单机部署多CEPH

68次阅读
没有评论

共计 2836 个字符,预计需要花费 8 分钟才能阅读完成。

丸趣 TV 小编给大家分享一下如何实现单机部署多 CEPH-RGW,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

1.nginx Radosgw 联合使用

Ceph 官网说明了如何使用 Apache 作为前端 Web 服务器,后官方又退出 Civetweb 作为自带的 web 服务器。不过考虑实际并发性能,我们采用 Nginx 作为前端 web 服务器,和 radosgw 联合使用。

1.1 nginx 配置

server {
 listen 80 default;
 #server_name .com .com.cn .net .cn .org .tv .cc .hk .tw;
 server_name ceph-21;
 location / {
 fastcgi_pass_header Authorization;
 fastcgi_pass_request_headers on;
 fastcgi_param QUERY_STRING $query_string;
 fastcgi_param REQUEST_METHOD $request_method;
 fastcgi_param CONTENT_LENGTH $content_length;
 fastcgi_param CONTENT_LENGTH $content_length;
 if ($request_method = PUT) {
 rewrite ^ /PUT$request_uri;
 }
 include fastcgi_params;
 fastcgi_pass unix:/var/run/ceph/ceph.radosgw.gateway1.sock;
 }
 location /PUT/ {
 internal;
 fastcgi_pass_header Authorization;
 fastcgi_pass_request_headers on;
 include fastcgi_params;
 fastcgi_param QUERY_STRING $query_string;
 fastcgi_param REQUEST_METHOD $request_method;
 fastcgi_param CONTENT_LENGTH $content_length;
 fastcgi_param CONTENT_TYPE $content_type;
 fastcgi_pass unix:/var/run/ceph/ceph.radosgw.gateway1.sock;
 }
 }

这边需要详细注意的是 fastcgi_pass 参数,注意配置 gateway.sock。在参数需要和 ceph.conf 一一对应。在下文中的 rgw 配置中,rgw_socket_path 需要与 nginx fastcgi_pass 一致,从而可以使得两个进程基于 fastcgi 进行通信。

1.2 Ceph rgw 配置方法

[client.radosgw.gateway1]
host = ceph-21
rgw frontends = fastcgi
log file = /var/log/radosgw/client.radosgw.gateway1.log
keyring = /etc/ceph/ceph.client.radosgw.keyring
rgw_socket_path = /var/run/ceph/ceph.radosgw.gateway1.sock

秦牧羊的博客,详细说明了配置方法

2 单机多 radosgw 配置 2.1 nginx 负载均衡设计

Nginx0 采用 upstream 进行负载均衡

upstream nginx-upstream-rgw{
 #ip_hash;
 server 10.71.21.31:81;
 server 10.71.21.31:82;
 server 10.71.21.31:83;
 server 10.71.21.31:84;
 server 10.71.21.31:85;
 }
 server {
 listen 80 default;
 server_name demo.ceph.work;
 location / {
 proxy_pass http://nginx-upstream-rgw;
 }
 }

负载均衡参考文档

每个 Nginx 对应一个 rgw,对应的配置方法参考章节 1。

3 启动各进程 3.1 启动 nginx

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx1.conf
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx2.conf
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx3.conf
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx4.conf
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx5.conf

3.2 启动 radosgw

radosgw -c /etc/ceph/ceph.conf -n client.radosgw.gateway1 
radosgw -c /etc/ceph/ceph.conf -n client.radosgw.gateway2
radosgw -c /etc/ceph/ceph.conf -n client.radosgw.gateway3 
radosgw -c /etc/ceph/ceph.conf -n client.radosgw.gateway4 
radosgw -c /etc/ceph/ceph.conf -n client.radosgw.gateway5

4. 结果测试

我对上述结构进行了测试,libs3 的 read, write, list 等操作可以正常访问,后续进一步测试并发能力。在相同配置下,原来单 RGW 测试 500K 并发是 200;现在采用 10 个实例,现在并发 2000. 还是要增强单 rgw 的并发能力。搞这个多实例也不是个事~~~

在该种模式下,RGW 会表现出不稳定的情况,主要体现在当压力过载时,即便停止压力测试,一段时间后再访问,NGINX 会爆大量的 502 错误。我会进一步跟进这个错误。

以上是“如何实现单机部署多 CEPH-RGW”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计2836字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)