ceph对象存储服务、高可用安装配置
简介:
Ceph本质上就是一个rados,利用命令rados就可以访问和使用ceph的对象存储,但作为一个真正产品机的对象存储服务,通常使用的是Restfulapi的方式进行访问和使用。而radosgw其实就是这个作用,安装完radosgw以后,就可以使用api来访问和使用ceph的对象存储服务了。
首先明白一下架构,radosgw其实名副其实,就是rados的一个网关,作用是对外提供对象存储服务。本质上radosgw(其实也是一个命令)和rbd命令一样,其实是ceph集群的客户端。只不过,radosgw即作为rados的客户端,同时又提供http restful接口,作为服务端供用户使用。Radosgw对用户而言就是一个http restful的应用,因此本质上来讲,对其进行使用就是通过http的方式,但显然每次都要用户构建http访问的url和headers不是一个很方便的方式,因此radosgw兼容了通用的对象存储接口,分别是亚马逊的s3和openstack的swift,这也就是说你可以用swift或者s3的客户端来访问radosgw。
Radosgw包含两个命令行工具:
一个是radosgw,这个是用来启动radosgw服务的脚b本,是一个二进制文件;
另外一个是radosgw-admin,这是用来管理radosgw的账号的一个命令行工具,主要用来创建、查看、修改radosgw的账号信息。
注意,radowgw的账号信息仅仅是对radosgw的用户而言,这个和ceph中的用户不是一个概念。
Radosgw作为ceph集群(rados)的客户端,因此他在ceph中有一个账号,通常叫做client.radosgw.gateway。在启动radosgw这个服务时,会读取ceph.conf中[client.radosgw.gateway]这个section。
RGW业务处理流程:
http reqest --> apache 转 FastCgi module
FastCgi module --> radosgw 通过socket请求实现
radosgw --> ceph集群 通过socket实现,调用rados接口
一:配置部署环境介绍:
1:系统版本:
[root@node242 ~]# more /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
2:内核版本:
[root@node242 ~]# uname -a
Linux node242 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
3:ceph 版本:
[root@node242 ~]# ceph --version
ceph version 0.94.5 (9764da52395923e0b32908d83a9f7304401fee43)
4:集群节点数和osd 情况:
[root@node242 ~]# ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-6 0 host node01
-1 1.35999 root default
-2 0.09000 host ceph-deploy
0 0.09000 osd.0 up 1.00000 1.00000
-3 0.09000 host node241
1 0.09000 osd.1 up 1.00000 1.00000
-4 0.09000 host node242
2 0.09000 osd.2 up 1.00000 1.00000
-5 1.00000 host node243
3 1.00000 osd.3 up 1.00000 1.00000
-7 0.09000 host node245
5 0.09000 osd.5 up 1.00000 1.00000
二:部署
1:安装Apache服务
在Apache 2.4发行版(如RHEL 7,CentOS7),mod_proxy_fcgi默认已经会安装。 httpd 安装完成,mod_proxy_fcgi可用的服务器上使用。
yum install httpd -y
2:修改httpd服务,先清理一下配置文件的无用注释;
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
sed -i '/^#/d' /etc/httpd/conf/httpd.conf
vim /etc/httpd/conf/httpd.conf
修改配置中的LISTEN字段,将网关所在主机的IP地址添加进去
Listen 192.168.2.42:80
添加ServerName项,添加上自己服务器的IP地址
ServerName 192.168.2.42:80
3:在配置尾部增加如下信息,加载mod_proxy_fcgi
首先确认一下模块存在
[root@node242 ~]# ll /etc/httpd/modules/mod_proxy_fcgi.so
-rwxr-xr-x 1 root root 19360 Nov 20 05:44 /etc/httpd/modules/mod_proxy_fcgi.so
添加内容如下:
<IfModule !proxy_fcgi_module>
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
</IfModule>
4:重启apache服务
systemctl start httpd
5:配置apache ssl配置
此选项主要为了对应,一些resetful客户端默认使用https;如果公司有信任机构颁发的证书,可以直接使用,如果没有可以自己做一个自认证的证书,网上有很多配置参考文档,本次演示直接使用公司的正式ssl证书。
6:安装apache ssl证书相关依赖软件包安装
yum install mod_ssl openssl -y
##########################
需要做自签名证书的参照信息如下:
http://docs.ceph.com/docs/master/install/install-ceph-gateway/
Enable SSL ==》步骤 2~6
############################
7:上传公司ssl证书到服务器 (本次演示直接使用公司的正式ssl证书)
[root@node242 ceph]# ll
-rw-r--r-- 1 root root 6335 Dec 23 15:48 ptengine.cn.crt
-rw-r--r-- 1 root root 1704 Dec 23 15:48 ptengine.cn.key
copy文件到相关目录
cp -rp ptengine.cn.crt /etc/pki/tls/certs/ptengine.cn.crt
cp -rp ptengine.cn.key /etc/pki/tls/private/ptengine.cn.key
验证文件是否就位
ll /etc/pki/tls/certs/ptengine.cn.crt
ll /etc/pki/tls/private/ptengine.cn.key
8:配置文件修改/etc/httpd/conf.d/ssl.conf
首先清理配置文件注释项;
cp -rp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.bak
sed -i '/^#/d' /etc/httpd/conf.d/ssl.conf
9:修改配置项如下:
vim /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/pki/tls/certs/ptengine.cn.crt
SSLCertificateKeyFile /etc/pki/tls/private/ptengine.cn.key
10:配置修改完成,重启apache
systemctl restart httpd
三:安装Ceph对象存储网关服务
ceph网关其实是ceph集群的一个客户端,用户通过这个网关间接访问ceph集群,
1:软件包安装:
yum install ceph-radosgw -y
2:配置Ceph的对象存储准备信息
ceph网关其实是ceph集群的一个客户端,用户通过这个网关间接访问ceph集群,作为客户端,它需要准备如下内容:
网关名称,此处用gateway称呼、
一个可以访问存储集群的用户以及对应的KEYRING
数据资源池,这个由ceph集群提供
为网关服务示例准备一个数据存放空间
在ceph.conf配置文件中设置gateway信息
3:创建访问用户及权限设置
创建gateway keyring,
ceph-authtool --create-keyring /etc/ceph/ceph.client.radosgw.keyring
chmod +r /etc/ceph/ceph.client.radosgw.keyring
4:创建网关用户名以及key 此处名字为 client.radosgw.gateway
ceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.radosgw.gateway --gen-key
5:验证:
[root@node242 ceph]# more ceph.client.radosgw.keyring
[client.radosgw.gateway]
key = AQBXI3lWoOC7MBAAWMHg+sNAelf8S3Hm3S5BiQ==
6:为KEYRING添加权限
ceph-authtool -n client.radosgw.gateway --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.client.radosgw.keyring
7:验证授权:
[root@node242 ceph]# more ceph.client.radosgw.keyring
[client.radosgw.gateway]
key = AQBXI3lWoOC7MBAAWMHg+sNAelf8S3Hm3S5BiQ==
caps mon = "allow rwx"
caps osd = "allow rwx"
8:将key添加到集群中
ceph -k /etc/ceph/ceph.client.admin.keyring auth add client.radosgw.gateway -i /etc/ceph/ceph.client.radosgw.keyring
备注:如果想在多节点安装对象存储
ceph对象存储(rgw)服务、高可用安装配置
最新推荐文章于 2024-10-14 14:19:19 发布
本文档详细介绍了如何在CentOS 7环境下安装和配置Ceph对象存储服务(rgw),包括高可用性设置,以及通过Apache和Nginx实现负载均衡。内容涵盖Apache FastCGI配置、SSL证书安装、radosgw服务启动、池创建、日志文件设置等步骤,并提供了多节点负载均衡的Nginx配置示例。

最低0.47元/天 解锁文章
165

被折叠的 条评论
为什么被折叠?



