|
一、前期准备:
安装RADOS gateway是为了使用对象存储。所以安装RADOS gateway之前,我已经安装好了CEPH,具体请参考我的博客《Ubuntu14.04部署CEPH》。
环境:参照《Ubuntu14.04部署CEPH》用三台Ubuntu14.04在vmware上成功部署了CEPH集群,并且集群健康。此时我们的网络环境就像《Ubuntu14.04部署CEPH》中描述的那样。
root@node1:~# ifconfig
eth0 Link encap:Ethernet HWaddr00:0c:29:d1:71:cb
inet addr:192.168.107.21 Bcast:192.168.107.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fed1:71cb/64Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RXpackets:253503 errors:0 dropped:0 overruns:0 frame:0
TX packets:234416 errors:0 dropped:0overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:95642029 (95.6 MB) TX bytes:85824464 (85.8 MB)
eth1 Link encap:Ethernet HWaddr00:0c:29:d1:71:d5
inet addr:192.168.2.21 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fed1:71d5/64Scope:Link
UPBROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:243193errors:0 dropped:53 overruns:0 frame:0
TX packets:16193 errors:0 dropped:0overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:57776861 (57.7 MB) TX bytes:1340724 (1.3 MB)
………
克隆一台完整的Ubuntu14并修改主机名为node4、ip等信息,为了之后的方便我们将node4添加到集群,最后的效果就是可以通过node4查询集群的状态等信息,仅此而已。相信大家看此教程之前已经部署成功了CEPH,所以添加node4到集群这里不做过多说明。参考《Ubuntu14.04部署CEPH》或许可以给你足够灵感。其中最重要的一步就是把配置文件拷贝到node4上。
root@node1:~#ceph-deploy admin node4
添加成功后,我们可以在node4节点上查看集群相关信息。
root@node4:~#ceph -s
clusterff527224-f4bf-4b5a-8180-e4d381cdb522
health HEALTH_OK
monmap e1: 1 mons at{node1=192.168.107.21:6789/0}, election epoch 2, quorum 0 node1
osdmap e65: 3 osds: 3 up, 3 in
pgmap v371: 2395 pgs, 8 pools, 1412 bytesdata, 47 objects
143 MB used, 45903 MB / 46046 MBavail
2395 active+clean
root@node4:~#ceph osd tree
# idweight typename up/down reweight
-1 0.02998rootdefault
-2 0.009995 hostnode1
0 0.009995 osd.0 up 1
-3 0.009995 hostnode2
1 0.009995 osd.1 up 1
-4 0.009995 hostnode3
2 0.009995 osd.2 up 1
二、接下来我们开始在node4主机上安装RADOS gateway
1、配置rados源
wget -q -O-https://raw.github.com/ceph/ceph/master/keys/autobuild.asc | sudo apt-key add -
echo debhttp://gitbuilder.ceph.com/apache2-deb-$(lsb_release-sc)-x86_64-basic/ref/master $(lsb_release -sc) main | sudo tee/etc/apt/sources.list.d/ceph-apache.list
echo debhttp://gitbuilder.ceph.com/libapache-mod-fastcgi-deb-$(lsb_release -sc)-x86_64-basic/ref/master $(lsb_release -sc) main | sudo tee/etc/apt/sources.list.d/ceph-fastcgi.list
2、安装radosgw软件
apt-getupdate
apt-get install apache2libapache2-mod-fastcgi radosgw –y
注意:更新源之后,这里执行apt-get update会报错误,我们自动忽略它。一般情况下不影响下面的安装
3、给RADOS网关创建密钥
注意:如果大家和我的主机名一致,并且是第一次安装,以下的$HOMENAME则用node4代替。
ceph-authtool--create-keyring /etc/ceph/ceph.client.radosgw.$HOMENAME.keyring
chmod +r /etc/ceph/ceph.client.radosgw.$HOMENAME.keyring
4、创建一个密钥用于RADOS到集群的认证
ceph-authtool/etc/ceph/ceph.client.radosgw.$HOMENAME.keyring -n client.radosgw.$HOMENAME--gen-key
ceph-authtool -n client.radosgw.$HOMENNAME--cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph /ceph.client.radosgw. $HOMENAME.keyring
5、把密钥添加到ceph密钥
ceph -k /etc/ceph/ceph.client.admin.keyringauth add client.radosgw.$HOMENAME -i /etc/ceph /ceph.client.radosgw. $HOMENAME.keyring
6、修改ceph配置文件
root@node4:~# vim /etc/ceph/ceph.conf
[client.radosgw.node4]
host = node4
keyring =/etc/ceph/ceph.client.radosgw.node4.keyring
rgw socket path = /tmp/radosgw.sock
log file = /var/log/ceph/radosgw.node4.log
rgw dns name = node4
说明:keyring = /etc/ceph/ceph.client.radosgw.node4.keyring ,因为本次在创建的各种秘钥是node4,如果在其他节点上创建过,也可以用其他的keyring
7、添加FastCGI脚本
root@node4:~# vim /var/www/s3gw.fcgi
#!/bin/sh
exec /usr/bin/radosgw -c/etc/ceph/ceph.conf -n client.radosgw.node4
添加执行权限:
chmod +x /var/www/s3gw.fcgi
8、创建网关配置文件(rgw.conf)
root@node4:~# vim/etc/apache2/sites-available/rgw.conf
FastCgiExternalServer /var/www/s3gw.fcgi-socket /tmp/radosgw.sock
ServerName node4
DocumentRoot /var/www
RewriteEngine On
RewriteRule ^/(.*) /s3gw.fcgi?%{QUERY_STRING}[E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
Options +ExecCGI
AllowOverride All
SetHandler fastcgi-script
Order allow,deny
Allow from all
AuthBasicAuthoritative off
AllowEncodedSlashes on
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
ServerSignatureoff
9、apache2添加ServerName
root@node4:~# vim /etc/apache2/apache2.conf
ServerName node4
10、加载模块和禁用默认站点启动rgw站点
a2enmod rewrite
a2enmod fastcgi
a2ensite rgw.conf
a2dissite 000-default
11、启动服务
service ceph restart
service apache2 restart
/etc/init.d/radosgw start
12、根据官方文档,补充步骤:
mkdir -p/var/lib/ceph/radosgw/ceph-radosgw.gateway
chown www-data:www-data /var/run/ceph
touch /var/log/ceph/radosgw.node4.log
chown www-data:www-data /var/log/ceph/radosgw.node4.log
/etc/init.d/radosgw start
/etc/init.d/apache2 start
申明:本文是学习了耿航老师的《Ceph分布式存储运维实践视频课程》之后整理出来,并添加了自己一知半解。感谢耿航等三位老师!!!
|
|
|