Ceph RagosGWのインストールと構成

8432 ワード

RagosGWのインストールと構成


しばらくこれをしなくてもいいです.cephコードを熟知してください.
これを構成すれば、RADOSGWオブジェクトストレージゲートウェイを熟知することが主な目的です.
 
操作前にバックアップ、スナップショットを作成します.面倒そうに見えますから.
lxpnode 1にradosgwを作成する
 

4.1インストール構成Apache


Apt-getソース:
1.インストールapache 2のダウンロード
# apt-get install apache2
# apt-get install libapache2-mod-fastcgi
 
2.構成/etc/apache 2/apache 2.conf
追加:
ServerName lxpnode1
3.rewriteとfastcgiモジュールのロード
# a2enmod rewrite
# a2enmod fastcgi
 
4.apacheサービスの起動
# service apache2 start

4.2 SSLの有効化


4.2.1インストール


# apt-get install openssl ssl-cert
 

4.2.2 SSLモジュールのロード


# a2enmod ssl

4.2.3証明書の生成


# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout/etc/apache2/ssl/apache.key -out/etc/apache2/ssl/apache.crt
ぜんしゃ
Generating a 2048 bit RSA private key
........................................................................................................................+++
...........................................+++
writing new private key to '/etc/apache2/ssl/apache.key'
-----
You are about to be asked to enter information that will beincorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Nameor a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:
root@lxpnode1:/etc/apache2#

4.2.4 apacheを再起動する


# service apache2 restart
 

4.3 Ceph Object Gatewayデーモンのインストール


海康の源を用いるubuntutrustyの源はいずれも0.80である.x,ubuntu vividのソースバージョンは0.94.5で、ソースをvividに変更します.
# apt-get install ceph
root@lxpnode1:/etc/apt# ceph -v
ceph version 0.94.5 (9764da52395923e0b32908d83a9f7304401fee43)
次にceph-radosgwをインストールします.
 
 
root@lxpnode1:/etc/apt# ceph -s
    cluster19c11869-2430-4b9a-8152-e60e36064826
     health HEALTH_OK
     monmap e1: 1 mons at{lxpnode1=192.168.11.6:6789/0}
            election epoch 1,quorum 0 lxpnode1
     osdmap e20: 2 osds: 2 up,2 in
      pgmap v1414: 124 pgs, 2pools, 148 bytes data, 4 objects
            3642 MB used,33380 MB/39051 MB avail
                 124active+clean
現在もHEALTH_OK、影響なし
次にradosgwをインストールします.
# apt-get install radosgw
# apt-get install radosgw-agent
 

4.4 Ceph Object Gatewayの構成


4.4.1ユーザーとkeyringの作成


(1)ゲートウェイサーバにkeyringを作成する
# ceph-authtool --create-keyring/etc/ceph/ceph.client.radosgw.keyring
# chmod +r ceph.client.radosgw.keyring
 
(2)ゲートウェイインスタンスごとに名前とkeyを生成する.クライアントでradosgwの後にこの名前を使用します(次のインスタンスの名前はgateway):
# ceph-authtool/etc/ceph/ceph.client.radosgw.keyring -n client.radosgw.gateway --gen-key 
(3)key該当権限の追加
# ceph-authtool -n client.radosgw.gateway--cap osd 'allow rwx' --cap mon 'allow rwx'/etc/ceph/ceph.client.radosgw.keyring
(4)Ceph storage clusterにkeyを追加する:
# ceph -k/etc/ceph/ceph.client.admin.keyring auth add client.radosgw.gateway -i/etc/ceph/ceph.client.radosgw.keyring
(5)keyを他のゲートウェイサーバにコピーします.ここには1台しかありません.コピーする必要はありません.
#sudo scp/etc/ceph/ceph.client.radosgw.keyring  root@{hostname}:/etc/ceph/
 
注意:1~4ステップはCephのadminノードで実行されます.adminノードとゲートウェイサーバが1台のマシンにある場合、5ステップ目は実行する必要はありません.
 

4.4.2プールの作成


#ceph osd pool create .rgw 32 32
#ceph osd pool create .rgw.root 32 32
#ceph osd pool create .rgw.control 32 32
#ceph osd pool create .rgw.gc 32 32
#ceph osd pool create .rgw.buckets 32 32
#ceph osd pool create .rgw.buckets.index 32 32
#ceph osd pool create .log 32 32
#ceph osd pool create .intent-log 32 32
#ceph osd pool create .usage 32 32
#ceph osd pool create .users 32 32
#ceph osd pool create .users.email 32 32
#ceph osd pool create .users.swift 32 32
#ceph osd pool create .users.uid 32 32
 
root@lxpnode1:/etc/ceph# rados lspools
rbd
rbd_pool
.rgw
.rgw.root
.rgw.control
.rgw.gc
.rgw.buckets
.rgw.buckets.index
.log
.intent-log
.usage
.users
.users.email
.users.swift
.users.uid
 

4.4.3ゲートウェイプロファイルをCephに追加する


Apacheバージョン:
 
root@lxpnode1:/etc/ceph# apache2 -v
Server version: Apache/2.4.7 (Ubuntu)
Apache2.2および以前の2.4バージョン、adminノード上の/etc/ceph/ceph.confに追加:
[client.radosgw.gateway]
host = {hostname}
keyring =/etc/ceph/ceph.client.radosgw.keyring
rgw socket path = ""
log file =/var/log/radosgw/client.radosgw.gateway.log
rgw frontends = fastcgi socket_port=9000socket_host=0.0.0.0
rgw print continue = false
 
Apache 2.4.9以降:
[client.radosgw.gateway]
host = {hostname}
keyring =/etc/ceph/ceph.client.radosgw.keyring
rgw socket path =/var/run/ceph/ceph.radosgw.gateway.fastcgi.sock
log file =/var/log/radosgw/client.radosgw.gateway.log
rgw print continue = false
注:Apache 2.4.7前の方法でradosgwサービスは起きられません.後の方法ではOKです.Apache 2.4.7 Unix Domain Socketをサポートする.
 

4.4.4 Cephプロファイルの配布


(1)etc/ceph/cephを更新する.confからCephクラスタへのルートディレクトリ:
# ceph-deploy --overwrite-conf config pulllxpnode1
(2)adminノードのceph.confを他のノードにコピー
# ceph-deploy  --overwrite-conf config push lxpnode2lxpnode3
 

4.4.5 cephをコピーする.client.admin.keyringからゲートウェイサーバへ


私のゲートウェイサーバーはクラスタのmonなので、コピーする必要はありません.
 

4.4.6 CGI wrapperスクリプトの作成


1.スクリプトの作成:
#sudo vi/var/www/html/s3gw.fcgi
2.関連内容を追加する:
#!/bin/sh
exec/usr/bin/radosgw -c/etc/ceph/ceph.conf -n client.radosgw.gateway
3.スクリプト実行権限の付与:
#sudo chmod +x/var/www/html/s3gw.fcgi

4.4.7 CGI wrapperスクリプト権限の調整


#sudo chown www-data:www-data/var/www/html/s3gw.fcgi
Note:Ubuntuデフォルトapacheのユーザーはwww-data:www-data
 

4.4.8データ保管ディレクトリの作成


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

4.4.9 socketディレクトリ権限の調整


# chown www-data:www-data/var/run/ceph
 

4.4.10ログファイルの変更権限


root@lxpnode1:/etc/ceph# touch /var/log/radosgw/client.radosgw.gateway.log
root@lxpnode1:/etc/ceph# chownwww-data:www-data/var/log/radosgw/client.radosgw.gateway.log
 

4.4.11 radosgwサービスの開始


#/etc/init.d/radosgw start
 

4.4.12ゲートウェイプロファイルの作成


1.Create thefile:
#sudovi/etc/apache2/sites-available/rgw.conf
2.add thefollowing contents to the file:
FastCgiExternalServer /var/www/html/s3gw.fcgi -socket /var/run/ceph/ceph.radosgw.gateway.fastcgi.sock

<VirtualHost *:8080>

 ServerName {hostname}
 ServerAlias *.{hostname}
 ServerAdmin [email protected]
 DocumentRoot /var/www/html
 RewriteEngine On
 RewriteRule ^/(.*) /s3gw.fcgi?%{QUERY_STRING} [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

 <IfModule mod_fastcgi.c>
 <Directory /var/www/html>
 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>

配備ノードにすでにapache 2サービスが80ポートを使用している場合は、apacheマルチポート、rgwを構成する必要があります.confで次のように変更します.
Listen 8080
3.rgw.conf構成が有効になりますFor Debian/Ubuntu distributions,enable the site forrgw.conf. root@lxpnode1:/etc/apache2#a2ensite rgw.conf
Enabling site rgw.
To activate the new configuration, you need to run:
  serviceapache2 reload
root@lxpnode1:/etc/apache2# a2dissite000-default.conf
Site 000-default disabled.
To activate the new configuration, you need to run:
  serviceapache2 reload
 

4.4.13 apache 2の再起動


# service apache2 restart