中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Ceph 對象存儲

發布時間:2020-07-27 12:15:36 來源:網絡 閱讀:2485 作者:司徒曉宇 欄目:大數據

一、什么是對象存儲

1、對象存儲,也就是鍵值存儲,通過其接口指令,也就是簡單GET、PUT、DEL和其他擴展指令,向存儲服務上傳下載數據等

2、對象存儲中所有數據都被認為是一個對象。所以,任何數據都可以存入對象存儲服務器,如圖片、視頻、音頻等

二、Ceph 對象存儲的構成

Ceph 對象存儲主要是通過 RGW  來實現,那么什么是 RGW 呢?

1、RGW 即 Rados Gateway 的全稱。

2、RGW 是 Ceph 對象存儲網關,用于向客戶端應用程序提供存儲界面,提供 RESTful API 訪問接口。

3、RGW 可以部署多臺做為 高可用和負載均衡,拓撲如下圖:

Ceph 對象存儲

三、部署 RGW 服務

1、在 ceph-a 上通過 ceph-deploy 將 ceph-radosgw 軟件包安裝到 ceph-e 中

[root@ceph-a ~]# ceph-deploy install --rgw ceph-e

Ceph 對象存儲

2、將配置文件、密鑰文件同步到 ceph-e

[root@ceph-a ceph]# ceph-deploy admin ceph-e

Ceph 對象存儲

3、啟動一個RGW服務

[root@ceph-a ceph]# ceph-deploy rgw create ceph-e

Ceph 對象存儲

4、登陸 ceph-e 驗證服務是否啟動

[root@ceph-e yum.repos.d]# ps -ef | grep radosgw

Ceph 對象存儲

5、查看 rgw 狀態

[root@ceph-e yum.repos.d]# systemctl status ceph-radosgw\*

Ceph 對象存儲

6、查看端口是否有監聽

[root@ceph-e yum.repos.d]# netstat -tpnl | grep 7480

Ceph 對象存儲

通過以上 6 步,我們的 RGW 服務已經可以成功運行了。

7、RGW 內建了一個名為 civetweb 的 web 服務器,這個服務器與 apache/nginx 類似,既然是 web 服務,那么使用 80 端口就更為方便,為了應用便捷,可以將默認的 7480 端口修改為 80 端口。

修改 ceph-e 節點的 ceph.conf 配置文件,追加以下內容:

[root@ceph-e ceph]# vim ceph.conf
[client.rgw.ceph-e]
host = ceph-e
rgw_frontends = "civetweb port=80"

保存退出并重啟服務

[root@ceph-e ceph]# systemctl restart ceph-radosgw.target

8、查看端口是否修改成功

[root@ceph-e ceph]# netstat -tpnl

Ceph 對象存儲

9、驗證

打開瀏覽器,輸入 http://192.168.20.148,如下圖

Ceph 對象存儲

或者在命令行中輸入 curl http://192.168.20.148 \r ,\r表示發送回車鍵指令,如下如

Ceph 對象存儲

四、使用第三方軟件訪問

1、使用亞馬遜 s3 客戶端進行訪問

①、登陸 ceph-e(RGW)創建用戶

[root@ceph-e radosgw]# radosgw-admin user create --uid="radosgw" --display-name="First User"

Ceph 對象存儲

user: radosgw
access_key: N6ALEK0KS0ISYCIM5JBG
secret_key: qK9hrpX2uwna4elPP1VsuErmAHBw3So40fE2K4yM

②、授權用戶,允許 radosgw 讀寫 users 信息:

[root@ceph-e radosgw]# radosgw-admin caps add --uid=radosgw --caps="users=*"

Ceph 對象存儲

允許 radosgw 讀寫所有的usage信息:

[root@ceph-e radosgw]# radosgw-admin caps add --uid=radosgw --caps="usage=read,write"

Ceph 對象存儲

③、創建子用戶,做為后面 swift 客戶端訪問時使用

[root@ceph-e radosgw]# radosgw-admin subuser create --uid=radosgw --subuser=radosgw:swift --access=full

Ceph 對象存儲

④、創建密鑰

[root@ceph-e radosgw]# radosgw-admin key create --subuser=radosgw:swift --key-type=swift --gen-secret

Ceph 對象存儲

user: radosgw:swift
secret_key: NhTk42HlMcAnv2GBXqatqMPeI20eSLod30AOJLwl

⑤、在 ceph-f 安裝 s3 客戶端軟件

首先,我們找一下 yum 源有沒有 s3 的 rpm 包

[root@ceph-f ~]# yum list | grep s3

Ceph 對象存儲

發現,有 s3 的 rpm 包,因此直接安裝即可

[root@ceph-f ~]# yum -y install s3cmd.noarch

⑥、對 s3 進行配置

[root@ceph-f ~]# s3cmd --configure

Ceph 對象存儲

注意:

Access Key: N6ALEK0KS0ISYCIM5JBG
Secret Key: qK9hrpX2uwna4elPP1VsuErmAHBw3So40fE2K4yM
Default Region [US]:                        #這里一定不要修改,否則后面會報錯
S3 Endpoint [s3.amazonaws.com]: 192.168.20.148
DNS-style bucket+hostname:port template for accessing a bucket [%(bucket)s.s3.amazonaws.com]: %(bucket)s.192.168.20.148 bucket     #相當于百度網盤的創建文件夾,這里是固定格式
Path to GPG program [/usr/bin/gpg]:                 #保持默認
Use HTTPS protocol [Yes]: no                    #這里寫 no ,因為沒有提供 https 端口
HTTP Proxy server name:                       #這里不用寫,因為沒有代理
Test access with supplied credentials? [Y/n] y
Save settings? [y/N] y

⑦、客戶端測試,查看內容

[root@ceph-f ~]# s3cmd ls

Ceph 對象存儲

空的,因為就像百度云盤一樣,剛申請,沒有創建,所以是空的

⑧、創建存儲數據的 bucket (類似于存儲數據的目錄)要求 xxx_yyy 格式

[root@ceph-f ~]# s3cmd mb s3://cephdir

Ceph 對象存儲

發現報錯了,看上圖,發現,出錯是因為我們的寫的格式不正確,按照正確的格式重新書寫,再來一次

[root@ceph-f ~]# s3cmd mb s3://ceph_dir

Ceph 對象存儲

如上圖,成功了

⑨、再次查看客戶端內容

[root@ceph-f ~]# s3cmd ls

Ceph 對象存儲

這里提供 s3 的測試腳本

[root@ceph-f ~]# yum -y install python-boto
[root@ceph-f ~]# vim s3test.py
import boto.s3.connection
access_key = 'N6ALEK0KS0ISYCIM5JBG'
secret_key = 'qK9hrpX2uwna4elPP1VsuErmAHBw3So40fE2K4yM'
conn = boto.connect_s3(
         aws_access_key_id=access_key,         
         aws_secret_access_key=secret_key,         
         host='ceph-e', port=80,         
         is_secure=False, calling_format=boto.s3.connection.OrdinaryCallingFormat(),        
         )
bucket = conn.create_bucket('xxx_yyy')
for bucket in conn.get_all_buckets():
     print "{name} {created}".format(         
     name=bucket.name,         
     created=bucket.creation_date,     
     )

在使用時,請替換自己的 access_key、secret_key、主機名和端口

2、swift 接口測試

①、需要安裝以下軟件包

[root@ceph-f ~]# yum install python-setuptools
[root@ceph-f ~]# easy_install pip
[root@ceph-f ~]# pip install --upgrade setuptools
[root@ceph-f ~]# pip install --upgrade python-swiftclient

②、命令行訪問

swift -A http://192.168.20.148/auth/v1.0 -U radosgw:swift -K NhTk42HlMcAnv2GBXqatqMPeI20eSLod30AOJLwl list

Ceph 對象存儲

swift -A http://192.168.20.148/auth/v1.0 -U radosgw:swift -K NhTk42HlMcAnv2GBXqatqMPeI20eSLod30AOJLwl stat -v

Ceph 對象存儲

這里提供 swift 的測試腳本:

[root@ceph-f ~]# vim swift.py
import swiftclient
user = 'radosgw:swift'
key = 'NhTk42HlMcAnv2GBXqatqMPeI20eSLod30AOJLwl'

conn = swiftclient.Connection(
         user=user,         
         key=key,         
         authurl='http://192.168.20.148/auth/v1.0',
         )
for container in conn.get_account()[1]:
         print container['name']

在使用時,請替換自己的 access_key、secret_key、authurl

到此,的 Ceph 對象存儲已經完結,如果各位大俠有什么不明白的地方,請參考官網文檔。


關于 Ceph 集群的實現,請參閱小弟的另外一篇博文:https://blog.51cto.com/4746316/2329558
關于 Ceph 塊設備的應用,請參閱小弟的另外一篇博文:https://blog.51cto.com/4746316/2330070
關于 CephFS 文件系統的應用,請參閱小弟的另外一篇博文:https://blog.51cto.com/4746316/2330186


五、總結

Ceph 對象存儲目前尚不不穩定,且官方文檔較舊,這里只做大概講解,不做深入研究。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

韶山市| 泸西县| 洪洞县| 大竹县| 衡阳县| 临海市| 维西| 沅江市| 永新县| 克山县| 眉山市| 浦北县| 大同县| 镇康县| 永清县| 邓州市| 若尔盖县| 江西省| 牡丹江市| 新津县| 东港市| 邹城市| 九台市| 赤城县| 天水市| 固原市| 连南| 社会| 加查县| 浪卡子县| 祁连县| 贵港市| 饶河县| 比如县| 驻马店市| 濮阳市| 和龙市| 安平县| 巴彦县| 衡水市| 驻马店市|