Infernalis版本radosgw搭建配置

1.安裝apache。node

#apt-get install apache2 libapache2-mod-fastcgiapache

2.配置apache。swift

  1. 在apache配置文件中添加服務器名稱,即:在/etc/apache2/apache2.conf文件添加以下內容:瀏覽器

ServerName {fqdn}服務器

其中fqdn是hostname -f的輸出結果。app

  1. 使能apache相關模塊。ssh

a2enmod proxy_fcgisocket

a2enmod fastcgiide

a2enmod rewriteui

  1. 啓動apache。

#service apache2 start

3.安裝radosgw模塊。

#apt-get install radosgw

4.建立radosgw用戶和keyring。

  1. 爲rgw建立keyring。

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

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

  1. 爲rgw用戶生成key。

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

  1. 爲rgw用戶建立權限。

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

  1. 將rgw用戶添加到ceph集羣。

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

  1. 分發rgw的keyring。

經過ssh命令將/etc/ceph/ceph.client.radosgw.keyring複製到其餘rgw節點上。

5.建立pool。

當建立的rgw用戶有寫權限,則rgw會自動的建立所需的pools,所以該步驟能夠省略。

6.配置rgw。

在/etc/ceph/ceph.conf中添加以下內容:

[client.radosgw.gateway]

host = ceph-node1

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

rgw socket path = /tmp/radosgw.sock

log file = /var/log/radosgw/client.radosgw.gateway.log

rgw print continue = false

建立rgw工做目錄:

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

建立rgwlog目錄

#mkdir -p /var/log/radosgw

7.啓動rgw。

#/etc/init.d/radosgw start

8.配置radosgw網關。

在/etc/apache2/site-available/目錄下建立rgw.conf文件且該文件內容以下:

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

<VirtualHost *:80>

       ServerName ceph-node1

       ServerAlias ceph-node1

       DocumentRoot /var/www

       RewriteEngine On

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

       <IfModule mod_headers.c>

           Header set Access-Control-Allow-Origin "*"

           Header set Access-Control-Allow-Methods "HEAD,GET,PUT,POST,DELETE,OPTIONS"

           Header set Access-Control-Allow-Headers "authorization,content-type,x-amz-date,x-amz-user-agent,content-md5,neunn-token,neunn-user-id,x-amz-copy-source,x-amz-acl,neunn-radosgw-user-id,neunn-user-adminops"

           Header set Access-Control-Expose-Headers "ETag"

       </IfModule>


       <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>

另外在/var/www/目錄下建立一個可執行文件s3gw.fcgi且該文件內容以下:

#!/bin/sh

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

9.從新啓動apache。

  1. 使能rgw模塊。

#a2ensite rgw.conf

#a2dissite 000-default

  1. 重啓apache。

#service apache2 restart

10.建立S3用戶。

#radosgw-admin user create --uid="testuser" --display-name="First User"

輸出內容以下:

{"user_id": "testuser",
"display_name": "First User",
"email": "",
"suspended": 0,
"max_buckets": 1000,
"auid": 0,
"subusers": [],
"keys": [
{ "user": "testuser",
"access_key": "I0PJDPCIYZ665MW88W9R",
"secret_key": "dxaXZ8U90SXydYzyS5ivamEP20hkLSUViiaR+ZDA"}],
"swift_keys": [],
"caps": [],
"op_mask": "read, write, delete",
"default_placement": "",
"placement_tags": [],
"bucket_quota": { "enabled": false,
"max_size_kb": -1,
"max_objects": -1},
"user_quota": { "enabled": false,
"max_size_kb": -1,
"max_objects": -1},
"temp_url_keys": []}

其中比較重要的是access_key和secret_key。

11.設置S3用戶的訪問權限。

#radosgw-admin caps add --uid=testuser --caps="users=*"

#radosgw-admin caps add --uid=testuser --caps="buckets=*"

#radosgw-admin caps add --uid=testuser --caps="metadata=*"

#radosgw-admin caps add --uid=testuser --caps="usage=*"

#radosgw-admin caps add --uid=testuser --caps="zone=*"

12.使用瀏覽器訪問radosgw。

使用通用瀏覽器訪問radosgw的80端口後,在瀏覽器上會出現以下信息:

This XML file does not appear to have any style information associated with it. The document tree is shown below.

<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">

<Owner>

<ID>anonymous</ID>

<DisplayName/>

</Owner>

<Buckets/>

</ListAllMyBucketsResult>

出現該信息表示radosgw已經搭建成功。

相關文章
相關標籤/搜索