今天來玩下Ceph的對象存儲,在開始之前呢,先扯會閑篇,我覺得生活中處處是非結(jié)構(gòu)化數(shù)據(jù),最簡單的舉例,下面兩個行業(yè),一個是直播,一個是攝影。
創(chuàng)新互聯(lián)服務(wù)項目包括銅鼓網(wǎng)站建設(shè)、銅鼓網(wǎng)站制作、銅鼓網(wǎng)頁制作以及銅鼓網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,銅鼓網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到銅鼓省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
現(xiàn)在直播行業(yè)這么火,不夸張的說甚至每天都會產(chǎn)生一個直播軟件。不單單是視頻流媒體行業(yè),還有現(xiàn)在非常流行的云攝影,什么是云攝影呢?相信經(jīng)常參會的朋友應(yīng)該知道,有些現(xiàn)場拍的照片立馬就可以發(fā)出來,很是方便,相信以后肯定會火起來。有些細心的朋友應(yīng)該會看到每張照片都會有水印標示就是V.Photos,這是個什么鬼?
下面簡單扒一扒這家公司
V.Photos是一家云攝影服務(wù)平臺,成立于2015年,主要致力于為B端商業(yè)用戶提供智能便捷的商業(yè)攝影和照片同步歸檔管理的專業(yè)級方案。
八卦到此結(jié)束,biabiabiabia…..
除了,流媒體、照片攝影行業(yè)之外,還有醫(yī)療、銀行、衛(wèi)星等行業(yè),都將產(chǎn)生很多很多的非結(jié)構(gòu)化數(shù)據(jù)。所以看到了對象存儲有如此之大的潛力,促使我們不得不學(xué)習(xí)下對象存儲。所謂活到老學(xué)到老,尤其是我們搞IT的,每天都得學(xué)習(xí)新技術(shù)。
下面我們來看看Ceph對象存儲如何部署
首先呢就是部署一套Ceph環(huán)境,這里就不再贅述了,網(wǎng)上好多安裝文檔,都比較清晰了。
重點說下RGW部分
安裝完集群之后
ceph-deploy install --rgw devin-ceph2 #因為是測試所以只用一個rgw
然后創(chuàng)建RGW實例
ceph-deploy rgw create devin-ceph2
那么這時候就OK了,成功后會提示你訪問7480端口
http://10.0.100.201:7480
你會看到如下內(nèi)容:
anonymous
由于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
可以看到我的端口設(shè)置成80了。
修改完配置文件之后同步到個節(jié)點然后重啟rgw服務(wù)
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相關(guān)產(chǎn)品的童鞋可能會說,這倆key是干嘛的。用行話來說呢簡稱AK和SK。所謂key嘛就是用來認證和驗證的。我們來看看如何生成。
你要用工具連接RGW那么首先得有用戶吧,那來創(chuàng)建個用戶
radosgw-admin user create —uid=devin —display-name=“Devin” —email=devin@example.com
創(chuàng)建完之后會有AK和SK的信息,記得復(fù)制下待會還要用。
那么復(fù)制完之后在進行s3cmd –configure配置
配置完之后就可以開始玩了。附贈s3cmd常用命令
s3cmd ls #查看可用的bucket s3cmd mb s3://devin_bucket #創(chuàng)建bucket,且bucket名字是唯一的,不能重復(fù) s3cmd ls s3://devin_bucket #列出bucket內(nèi)容 s3cmd put devin.txt s3://devin_bucket #上傳本地file到指定的bucket s3cmd put --acl-public devin.txt s3://devin_bucket #上傳本地file到指定的bucket,并開啟file的匿名訪問權(quán)限 s3cmd get s3://devin_bucket/devin.txt #下載file到本地
可能在玩的時候會遇到問題,那么怎么排錯呢?
可以在s3cmd的命令后面加上-d 也就是開啟debug然后排錯。
遇到最多的問題就是解析問題。那么如何解決解析的問題呢?
可以查看下這篇文章《教你如何配置輕量級DNS》。
然后還有一種方式,就是python-boto方式
首先安裝python-boto
yum install python-boto
然后創(chuàng)建個python腳本
vi s3test.py
內(nèi)容如下:
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域名
完事之后就是執(zhí)行下腳本
python s3test.py
腳本大概意思就是說導(dǎo)入boto s3模塊然后借用AK、SK來進行驗證創(chuàng)建一個名為devin-bucket的bucket,創(chuàng)建完成之后并打印出來結(jié)果。
OK,本文Ceph對象存儲到此就講述結(jié)束了下篇文章來講述如何對接OwnCloud網(wǎng)盤應(yīng)用。
【本文由“Ceph中國社區(qū)”發(fā)布,2017年8月15日】