您好,登錄后才能下訂單哦!
今天來玩下Ceph的對象存儲,在開始之前呢,先扯會閑篇,我覺得生活中處處是非結構化數據,最簡單的舉例,下面兩個行業,一個是直播,一個是攝影。
現在直播行業這么火,不夸張的說甚至每天都會產生一個直播軟件。不單單是視頻流媒體行業,還有現在非常流行的云攝影,什么是云攝影呢?相信經常參會的朋友應該知道,有些現場拍的照片立馬就可以發出來,很是方便,相信以后肯定會火起來。有些細心的朋友應該會看到每張照片都會有水印標示就是V.Photos,這是個什么鬼?
下面簡單扒一扒這家公司
V.Photos是一家云攝影服務平臺,成立于2015年,主要致力于為B端商業用戶提供智能便捷的商業攝影和照片同步歸檔管理的專業級方案。
八卦到此結束,biabiabiabia…..
除了,流媒體、照片攝影行業之外,還有醫療、銀行、衛星等行業,都將產生很多很多的非結構化數據。所以看到了對象存儲有如此之大的潛力,促使我們不得不學習下對象存儲。所謂活到老學到老,尤其是我們搞IT的,每天都得學習新技術。
下面我們來看看Ceph對象存儲如何部署
首先呢就是部署一套Ceph環境,這里就不再贅述了,網上好多安裝文檔,都比較清晰了。
重點說下RGW部分
安裝完集群之后
ceph-deploy install --rgw devin-ceph2 #因為是測試所以只用一個rgw
然后創建RGW實例
ceph-deploy rgw create devin-ceph2
那么這時候就OK了,成功后會提示你訪問7480端口
http://10.0.100.201:7480
你會看到如下內容:
<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Owner> <ID>anonymous</ID> <DisplayName/> </Owner> <Buckets/> </ListAllMyBucketsResult>
由于RGW默認采用的是Civetweb,默認端口是7480那有人會說了,那我可不可以修改RGW端口啊。答案肯定是可以的。
修改Ceph配置文件進行修改。下面看看我的配置文件
[client.rgw.devin-ceph2] host = devin-ceph2 rgw_enable_ops_log =true rgw_frontends ="civetweb port=80" rgw dns name = s3.devin.com rgw socket path =/var/run/ceph-client.radosgw.sock keyring =/etc/ceph/ceph.client.radosgw.keyring
可以看到我的端口設置成80了。
修改完配置文件之后同步到個節點然后重啟rgw服務
ceph-deploy --overwrite-conf config push devin-ceph2 devin-ceph3 devin-ceph4 systemctl restart ceph-radosgw.target
那么到此RGW安裝完成了,那么RGW怎么使用呢?或者說怎么證明我的RGW是好的?
可能會有人說:你笨啊,剛才都能訪問頁面了,就證明成功了唄。
可能又會有人說:光訪問個頁面管P用啊,要能用才行。
別急,下面我們來說下兩種方式來玩,一種是S3cmd方式
首先安裝S3cmd
yum –y install s3cmd
安裝完之后運行s3cmd --configure進行初始化配置(說白了就是生成個配置文件)
然后會提示你輸入access key和secret key,沒玩過ASW相關產品的童鞋可能會說,這倆key是干嘛的。用行話來說呢簡稱AK和SK。所謂key嘛就是用來認證和驗證的。我們來看看如何生成。
你要用工具連接RGW那么首先得有用戶吧,那來創建個用戶
radosgw-admin user create —uid=devin —display-name=“Devin” —email=devin@example.com
創建完之后會有AK和SK的信息,記得復制下待會還要用。
那么復制完之后在進行s3cmd –configure配置
配置完之后就可以開始玩了。附贈s3cmd常用命令
s3cmd ls #查看可用的bucket s3cmd mb s3://devin_bucket #創建bucket,且bucket名字是唯一的,不能重復 s3cmd ls s3://devin_bucket #列出bucket內容 s3cmd put devin.txt s3://devin_bucket #上傳本地file到指定的bucket s3cmd put --acl-public devin.txt s3://devin_bucket #上傳本地file到指定的bucket,并開啟file的匿名訪問權限 s3cmd get s3://devin_bucket/devin.txt #下載file到本地
可能在玩的時候會遇到問題,那么怎么排錯呢?
可以在s3cmd的命令后面加上-d 也就是開啟debug然后排錯。
遇到最多的問題就是解析問題。那么如何解決解析的問題呢?
可以查看下這篇文章《教你如何配置輕量級DNS》。
然后還有一種方式,就是python-boto方式
首先安裝python-boto
yum install python-boto
然后創建個python腳本
vi s3test.py
內容如下:
import boto.s3.connection access_key = 'Y2S78LKZ1ROD0MGIDUBC' secret_key = 'LyGCgoydLI2MGA7C0PtynyfBa3aKODNYQ0sHDMtP' conn = boto.connect_s3( aws_access_key_id=access_key, aws_secret_access_key=secret_key, host='s3.devin.com', port=80, is_secure=False, calling_format=boto.s3.connection.OrdinaryCallingFormat(), ) bucket = conn.create_bucket('devin-bucket') for bucket in conn.get_all_buckets(): print"{name} {created}".format( name=bucket.name, created=bucket.creation_date, )
這里要注意修改的地方就是AK和SK還有host域名
完事之后就是執行下腳本
python s3test.py
腳本大概意思就是說導入boto s3模塊然后借用AK、SK來進行驗證創建一個名為devin-bucket的bucket,創建完成之后并打印出來結果。
OK,本文Ceph對象存儲到此就講述結束了下篇文章來講述如何對接OwnCloud網盤應用。
【本文由“Ceph中國社區”發布,2017年8月15日】
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。