ceph radosgw模塊介紹

ceph object store模式node

1、整體歸納。web

ceph對象網關存儲指的是,經過在librados庫基礎上對外提供Restful API的方式來訪問ceph集羣。ceph對象網關一般指的是radosgw程序,該程序創建在librados庫基礎上且該程序是一個FastCGI模塊,該模塊向上提供兼容S3以及Swift的接口。apache

radosgw是一個基於FastCGI的模塊,所以須要依賴apache和FastCGI。當有外部ceph對象存儲請求到達時apache首先接收到該請求,以後將該請求轉發給FastCGI模塊,最後FastCGI模塊再將該請求發送給radosgw,radosgw經過librados與ceph集羣通訊。swift

2、手動安裝ceph object store。服務器

因爲radosgw是一個FastCGI模塊,所以須要安裝apache等軟件。具體安裝步驟以下:socket

1)安裝apache:ide

#apt-get install apache2 libapache2-mod-fastcgiui

2)配置apache:spa

A)在apache配置文件中添加向外提供服務的服務器地址。apache配置文件位於/etc/apach2/apache2.conf文件,在該文件中添加以下信息:rest

ServerName {fqdn} #其中{fqdn}能夠經過命令hostname -f獲取

B)使能rewrite模塊和FastCGI模塊:

#a2enmod rewrite

#a2enmod fastcgi

C)從新啓動apache:

#service apache2 restart

3)啓用apache ssl功能:

A)安裝openssl及其依賴庫:

#apt-get install openssl ssl-cert

B)在apache中使能ssl模塊:

#a2enmod ssl

C)爲apache ssl建立證書:

#mkdir -p /etc/apache2/ssl

#openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

以後能夠在/etc/apache2/ssl/目錄下看到apache證書

D)從新啓動apache:

#service apache2 restart

4)安裝ceph object gateway:

#apt-get install radosgw radosgw-agent

3、配置ceph object gateway。

一、在ceph配置文件中添加網關配置。在安裝radosgw的機器上的ceph配置文件(/etc/ceph/ceph.conf)中添加以下內容:

[client.radosgw.gateway]

host = {host-name}

keyring = /etc/ceph/ceph.client.radosgw.keyring

rgw socket path = /tmp/radosgw.sock

log file = /var/log/ceph/radosgw.log

其中:

host指出配置radosgw服務的物理機的host name;

keyring指出用戶client.radosgw.gateway訪問ceph集羣的keyring文件的位置;

二、將修改後的ceph配置文件分發到全部安裝radosgw的機器上;

三、爲radosgw建立數據目錄:

#mkdir -p /var/lib/ceph/radosgw/ceph-radosgw.gateway

四、建立網關配置文件(修改apache配置文件)。這裏須要在/etc/apache2/site-available目錄下建立一個新的關於radosgw的配置文件rgw.conf。該配置文件的內容以下:

FastCgiExternalServer /var/www/s3gw.fcgi -socket /tmp/radosgw.sock

NameVirtualHost *:443

NameVirtualHost *:80


<VirtualHost *:80>

        ServerName {fqdn}

        ServerAlias {fqdn}

        ServerAdmin {email.address}

        DocumentRoot /var/www

        RewriteEngine On

        RewriteRule  ^/(.*) /s3gw.fcgi?%{QUERY_STRING} [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

        <IfModule mod_fastcgi.c>

        <Directory /var/www>

                        Options +ExecCGI

                        AllowOverride All

                        SetHandler fastcgi-script

                        Order allow,deny

                        Allow from all

                        AuthBasicAuthoritative Off

                </Directory>

        </IfModule>

        AllowEncodedSlashes On

        ErrorLog /var/log/apache2/error.log

        CustomLog /var/log/apache2/access.log combined

        ServerSignature Off

</VirtualHost>


<VirtualHost *:443>

        ServerName {fqdn}

        ServerAlias {fqdn}

        DocumentRoot /var/www

        RewriteEngine On

        RewriteRule  ^/(.*) /s3gw.fcgi?%{QUERY_STRING} [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

        <IfModule mod_fastcgi.c>

        <Directory /var/www>

                        Options +ExecCGI

                        AllowOverride All

                        SetHandler fastcgi-script

                        Order allow,deny

                        Allow from all

                        AuthBasicAuthoritative Off

                </Directory>

        </IfModule>

        AllowEncodedSlashes On

        ErrorLog /var/log/apache2/error.log

        CustomLog /var/log/apache2/access.log combined

        ServerSignature Off

        SSLEngine on

        SSLCertificateFile /etc/apache2/ssl/apache.crt

        SSLCertificateKeyFile /etc/apache2/ssl/apache.key

</VirtualHost>


五、使能rgw.conf配置,關閉apache默認處理。

#a2ensite rgw.conf

#a2dissite default

六、建立ceph對象網關啓動腳本。在/var/www/目錄下建立ceph對象網關啓動腳本s3gw.fcgi。該腳本內容以下:

#!/bin/sh

exec /usr/bin/radosgw -c /etc/ceph/ceph.conf -n client.radosgw.gateway

建立完畢後設置該腳本爲可執行模式。

七、爲ceph對象網關存儲建立ceph用戶及其訪問權限。

#ceph-authtool --create-keyring /etc/ceph/ceph.radosgw.gateway.keyring

#chmod +r /etc/ceph/ceph.radosgw.gateway.keyring

#ceph-authtool /etc/ceph/ceph.radosgw.gateway.keyring -n client.radosgw.gateway —gen-key

#ceph-authtool -n client.radosgw.gateway --cap osd 'allow rwx' --cap mon 'allow rw' /etc/ceph/ceph.radosgw.gateway.keyring

#ceph -k /etc/ceph/ceph.client.admin.keyring auth add client.radosgw.gateway -i /etc/ceph/ceph.radosgw.gateway.keyring

八、在ceph集羣中爲radosgw建立默認pools。

radosgw默認使用的pools有以下幾個:.rgw, .rgw.control, .rgw.gc, .log, .intent-log, .usage, .users, .users.email, .users.swift, .users.uid。經過使用#ceph osd pool create命令來建立這些pools。注意要根據ceph集羣中OSDs的數量合理的分配各個pools上的PGs數量。

九、從新啓動各服務。

#service apache2 restart

#/etc/init.d/radosgw start

到此radosgw的配置就完成了,若使用S3或openstack swift方式經過radosgw訪問ceph集羣時,須要在radosgw上建立對應的用戶及其訪問key,對於openstack swift來講還要在ceph配置文件中的client.radosgw.gateway節點下配置keystone相關信息。

相關文章
相關標籤/搜索