OpenStack云第五天
OpenStack云第五天
安裝OpenStack Object Storage
目錄:
一、系統(tǒng)需求?
二、對(duì)象存儲(chǔ)架構(gòu)
三、安裝OpenStack Object Storage?
四、安裝配置存儲(chǔ)節(jié)點(diǎn)
五、安裝與配置代理節(jié)點(diǎn)
六、安裝驗(yàn)證
一、系統(tǒng)需求
硬件: OpenStack對(duì)象存儲(chǔ)被設(shè)計(jì)運(yùn)行在通用計(jì)算機(jī)硬件平臺(tái)上,以下表達(dá)為建議硬件配置。?
操作系統(tǒng):OpenStack 對(duì)象存儲(chǔ)現(xiàn)在可以運(yùn)行在Ubuntu,RHEL,CentOS或Fedora系統(tǒng)上。
網(wǎng)絡(luò):建議千兆網(wǎng)絡(luò)。為對(duì)象存儲(chǔ)準(zhǔn)備一個(gè)額外的網(wǎng)絡(luò)連接外網(wǎng)的代理服務(wù)器。
數(shù)據(jù)庫(kù):OpenStack對(duì)象存儲(chǔ),SQLite數(shù)據(jù)庫(kù)是OpenStack對(duì)象存儲(chǔ)容器和帳號(hào)管理的進(jìn)程的一部分。
權(quán)限:你可以直接只用root或用戶sudo權(quán)限的用戶執(zhí)行安裝OpenStack對(duì)象存儲(chǔ)。
網(wǎng)絡(luò)規(guī)劃
本文檔提供兩個(gè)網(wǎng)絡(luò)規(guī)劃,一個(gè)公共網(wǎng)絡(luò)連接代理服務(wù)器,第二個(gè)是在存儲(chǔ)集群外不可訪問(wèn)的存儲(chǔ)網(wǎng)絡(luò)。
公共網(wǎng)絡(luò)大小:8IPs(CIDR/29)。
存儲(chǔ)網(wǎng)絡(luò)建議大小:255IPs(CIDR/24)。
二、對(duì)象存儲(chǔ)架構(gòu)
節(jié)點(diǎn)--運(yùn)行一個(gè)或多個(gè)OpenStack對(duì)象存儲(chǔ)服務(wù)的主機(jī)。
代理節(jié)點(diǎn)--運(yùn)行代理服務(wù)的主機(jī)。
認(rèn)證節(jié)點(diǎn)--一個(gè)可選的獨(dú)立于代理服務(wù)并運(yùn)行認(rèn)證服務(wù)的節(jié)點(diǎn)。
存儲(chǔ)節(jié)點(diǎn)--運(yùn)行用戶、容器、對(duì)象服務(wù)的節(jié)點(diǎn)。
環(huán)--OpenStack對(duì)象存儲(chǔ)數(shù)據(jù)與物理設(shè)備之間的映射集合。
為了增加高可用,你有可能會(huì)希望添加更多的代理服務(wù)以×××能。
本文檔描述的存儲(chǔ)節(jié)點(diǎn)都是在環(huán)中作為獨(dú)立的區(qū)域,建議至少用5個(gè)區(qū)域。一個(gè)區(qū)域是相互獨(dú)立的節(jié)點(diǎn)組合。環(huán)確保所有的備份數(shù)據(jù)在不同的區(qū)域,下圖為最小安裝的一種可能:
三、安裝OpenStack Object Storage
雖然在開(kāi)發(fā)或測(cè)試環(huán)境下,你可以安裝OpenStack Object Storage在一臺(tái)服務(wù)器上,但多服務(wù)器安裝可以為你的正式發(fā)布產(chǎn)品帶來(lái)更高的可用性與冗余。
如果你想執(zhí)行單節(jié)點(diǎn)安裝,你可以使用Swift All In One 或DevStack。參考http://swift.openstack.org/development_saio.html 或http://devstack.org。
開(kāi)始之前
如果你是在一臺(tái)新服務(wù)器上安裝,準(zhǔn)備一份系統(tǒng)安裝光盤(pán)。
本文檔演示安裝一個(gè)使用了如下節(jié)點(diǎn)的集群:
??? * 一個(gè)運(yùn)行swift-proxy-server的代理節(jié)點(diǎn),代理服務(wù)器將請(qǐng)求發(fā)送至正確的存儲(chǔ)節(jié)點(diǎn)。
??? * 五個(gè)運(yùn)行swift-account-server,swift-container-server以及swift-object-server進(jìn)程的存儲(chǔ)節(jié)點(diǎn)。
安裝步驟
1. 在所有節(jié)點(diǎn)安裝操作系統(tǒng),如Ubuntu Server,RHEL,CentOS或Fedora。
2. 安裝swift服務(wù)以及OpenSSH。
# yum install? openstack-swift? openstack-swift-proxy? openstack-swift-account? \
> openstack-swift-container? openstack-swift-object memcached
3. 在所有的節(jié)點(diǎn)上創(chuàng)建目錄:
# mkdir? -p?? /etc/swift
# chown? -R? swift:swift?? /etc/swift/
4. 創(chuàng)建/etc/swift/swift.conf文件
注意:suffix的值為隨機(jī)字串。
下一步,設(shè)置你的存儲(chǔ)節(jié)點(diǎn)、代理節(jié)點(diǎn)以及認(rèn)證節(jié)點(diǎn),這里我們使用keystone作為通用認(rèn)證組件。
四、安裝與配置存儲(chǔ)節(jié)點(diǎn)
注意:OpenStack對(duì)象存儲(chǔ)需要工作在支持XATTRS(擴(kuò)展屬性)的現(xiàn)代文件系統(tǒng)上。我們建議使用XFS文件系統(tǒng)。
1. 安裝存儲(chǔ)節(jié)點(diǎn)包:
# yum? install? openstack-swift-account? openstack-swift-container \
> openstack-swift-object? xfsprogs
2. 為所有的設(shè)備設(shè)置XFS卷:
# fdisk?? /dev/sdb??? (創(chuàng)建一個(gè)分區(qū))
# mkfs.xfs? -i?? size=1024?? /dev/sdb1
# echo “/dev/sdb1?? /srv/node/sdb1?? xfs?? noatime,nodiratime,nobarrier,logbufs=8? 0? 0” >>? /etc/fstab
# mkdir? -p? /srv/node/sdb1
# mount?? /srv/node/sdb1
# chown? -R? swift:swift?? /srv/node
3. 創(chuàng)建/etc/rsyncd.conf
4. 編輯/etc/default/rsync:
5. 開(kāi)啟rsync進(jìn)程:
# service? rsync? start
6. 創(chuàng)建/etc/swift/account-server.conf文件
7. 創(chuàng)建/etc/swift/container-server.conf
8. 創(chuàng)建/etc/swift/object-server.conf
譯者備注:經(jīng)由譯者實(shí)驗(yàn)證明,軟件安裝完成后在/etc/swift目錄下,會(huì)自動(dòng)生成account-server,container-server等目錄,以上配置文件也可以分別放置在對(duì)應(yīng)的目錄下。
9. 開(kāi)啟storage服務(wù):
swift-init object-server start
swift-init object-replicator start
swift-init object-updater start
swift-init object-auditor start
swift-init container-server start
swift-init container-replicator start
swift-init container-updater start
swift-init container-auditor start
swift-init account-server start
swift-init account-replicator start
swift-init account-auditor start
五、安裝與配置代理節(jié)點(diǎn)
代理服務(wù)器接受請(qǐng)求并查找賬戶、容器或?qū)ο蟮奈恢米詈髮⒄?qǐng)求路由到正確的位置。代理服務(wù)器同樣處理APIs請(qǐng)求。你可以修改proxy-server.conf文件啟用帳號(hào)管理。
注意:建議所有的命令使用root帳號(hào)操作。
1. 安裝swift-proxy服務(wù):
# yum? install? openstack-swift-proxy? memcached
2. 創(chuàng)建自簽名證書(shū):
# cd?? /etc/swift
# openssl?? req?? -new?? -x509? -nodes?? -out? cert.crt?? -keyout?? cert.key
3. 修改memcached監(jiān)聽(tīng)的端口。編輯/etc/memcached.conf文件:
將? -l? 127.0.0.1? 改變?yōu)? -l?? <代理服務(wù)器IP>
4. 重啟memcached服務(wù):
# service? memcached?? restart
5. 使用openstack-config命令設(shè)置swift代理配置文件的keystone管理標(biāo)識(shí):
# openstack-config --set /etc/swift/proxy-server.conf? filter:authtoken?? admin_token $ADMIN_TOKEN
# openstack-config --set /etc/swift/proxy-server.conf? filter:authtoken?? auth_token $ADMIN_TOKEN
6. 創(chuàng)建/etc/swift/proxy-server.conf
7. 創(chuàng)建賬戶,容器以及對(duì)象環(huán)。
命令第一個(gè)參數(shù)18代表2^18(2的冪),表示定義分區(qū)的大小,該值大小取決于你希望整個(gè)環(huán)使用存儲(chǔ)的總大小;3代表每個(gè)對(duì)象備份的數(shù)量;最后一個(gè)數(shù)值表示分區(qū)移動(dòng)的間隔(小時(shí))。
# cd?? /etc/swift
# swift-ring-builder account.builder create 18 3 1
# swift-ring-builder container.builder create 18 3 1
# swift-ring-builder object.builder create 18 3 1
8. 為每個(gè)節(jié)點(diǎn)的存儲(chǔ)設(shè)備添加條目至環(huán):
# swift-ring-builder account.builder add z<ZONE>-<STORAGE_LOCAL_NET_IP>:6002/<DEVICE> 100
# swift-ring-builder container.builder add z<ZONE>-<STORAGE_LOCAL_NET_IP_1>:6001/<DEVICE> 100
# swift-ring-builder object.builder add z<ZONE>-<STORAGE_LOCAL_NET_IP_1>:6000/<DEVICE> 100
例如,如果你在IP 10.0.0.1存儲(chǔ)節(jié)點(diǎn)上在Zone 1(區(qū)域1)中設(shè)置分區(qū)。掛載點(diǎn)是/srv/node/sdb1,且在rsyncd.conf文件中是/srv/node/,設(shè)備為sdb1。命令如下:
swift-ring-builder? account.builder? add z1-10.0.0.1:6002/sdb1? 100
swift-ring-builder? container.builder? add z1-10.0.0.1:6001/sdb1? 100
swift-ring-builder? object.builder? add z1-10.0.0.1:6000/sdb1? 100
注意:假設(shè)5個(gè)區(qū)域中每個(gè)區(qū)域有一個(gè)節(jié)點(diǎn),ZONE從1開(kāi)始并通過(guò)添加額外節(jié)點(diǎn)增加該數(shù)值。
9. 驗(yàn)證ring內(nèi)容:
swift-ring-builder? account.builder
swift-ring-builder? container.builder
swift-ring-builder? object.builder
10. 調(diào)整rings:
swift-ring-builder account.builder rebalance
swift-ring-builder container.builder rebalance
swift-ring-builder object.builder rebalance
注意:這里會(huì)花費(fèi)一些時(shí)間。
11. 拷貝account.ring.gz, container.ring.gz, object.ring.gz到每個(gè)代理與存儲(chǔ)節(jié)的/etc/swift目錄下。
12. 確保所有的配置文件所屬者為swift:
# chown?? -R?? swift:swift?? /etc/swift
13. 開(kāi)啟Proxy服務(wù):
# swift-init? proxy? start
配置OpenStack對(duì)象存儲(chǔ):
swift-init main start
swift-init rest start
六、安裝驗(yàn)證
1. 運(yùn)行swift命令,使用$ export ADMINPASS=secretword定義全局變量。
$ swift -V 2 -A http://<AUTH_HOSTNAME>:5000/v2.0 -U adminUser:admin -K? 012345SECRET99TOKEN012345 stat
2. 獲得X-Storage-Url 與 X-Auth-Token:
$ curl -k -v -H 'X-Storage-User: adminUser:admin' -H 'X-Storage-Pass:$ADMINPASS' http://<AUTH_HOSTNAME>:5000/auth/v1.0
3. 檢查賬戶:
$ curl -k -v -H 'X-Auth-Token: <token-from-x-auth-token-above>' <url-from-xstorage-url-above>
4. 使用swift上傳一個(gè)名稱為gigfile[1-2].tgz的文件至名為myfiles的容器:
$ swift -A http://<AUTH_HOSTNAME>:5000/v2.0 -U adminUser:admin -K $ADMINPASS? upload myfiles bigfile1.tgz
$ swift -A http://<AUTH_HOSTNAME>:5000/v2.0 -U adminUser:admin -K $ADMINPASS? upload myfiles bigfile2.tgz
5. 使用swift下載所有的文件:
$ swift -A http://<AUTH_HOSTNAME>:5000/v2.0 -U adminUser:admin -K $ADMINPASS? download myfiles
排錯(cuò):如果你遇到問(wèn)題,可以查看/var/log/syslog。
轉(zhuǎn)載時(shí)請(qǐng)務(wù)必以超鏈接形式標(biāo)明出處,丁丁歷險(xiǎn)博客:http://manual.blog.51cto.com/3300438/980364
轉(zhuǎn)載于:https://blog.51cto.com/manual/980364
總結(jié)
以上是生活随笔為你收集整理的OpenStack云第五天的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 天窗保养(天窗保养也要注意)
- 下一篇: 乌龙球什么意思(乌龙球怎么判定)