iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 4
0

主題

OpenStack Swift

前言

今天開始時我要講一件令我非常難過的事情,如果有持續在看我文章的人就會看到我昨天沒有發文,但其實不然因為我昨天有完成文章,送出也沒有出現問題,今天看了一下寫說發文中斷心中滿是香菇,我看一下文章發現他其實存在但是他是草稿但我明明昨天有案送出阿,也沒有錯誤跳窗啊?!結果瀏覽整個頁面之後發現了一件事情「Tag 超過5個」哭哭就因為這樣發文失敗了,哀~希望有補救的辦法/images/emoticon/emoticon02.gif
好吧切回主題,我今天之所以要講Swift的原因就是他是OpenStack的始祖套件之一,雖然他不是核心套件但在30天中盡量會教大家怎麼安裝使用套件。

主要內容

那先來介紹一下Swift的運作原理

↑取至Seagte
這張圖可以看到主要套件分成兩部分Proxy區域

  • Proxy Server : 開放API給外部進行上傳下載使用的入口
  • Ring : 將處理進行分類並做出判斷
  • Zone : 一個集群的電腦
  • Object Server : 實際放置文件的電腦
  • Disk : 實體硬碟

Controller安裝步驟
一、先在KeyStone服務上進行註冊
使用admin帳號登入
建立User
openstack user create --domain default --password-prompt swift
加進服務帳號中
openstack role add --project service --user swift admin
啟用服務
openstack service create --name swift --description "OpenStack Object Storage" object-store
啟用API

openstack endpoint create --region RegionOne \
object-store public http://controller:8080/v1/AUTH_%\(tenant_id\)s  

openstack endpoint create --region RegionOne \
object-store internal http://controller:8080/v1/AUTH_%\(tenant_id\)s

openstack endpoint create --region RegionOne \
object-store admin http://controller:8080/v1

二、安裝套件

apt-get install swift swift-proxy python-swiftclient python-keystoneclient 
python-keystonemiddleware memcached -y

那會發現有一些套件其實前面有裝過,因為他得運用範圍不只OpenStack喔

三、開始設定
先把預設設定檔下載後放入指定位置
/etc/swift/proxy-server.conf
詳細的功能官方都有幫我們說明了
裡面有幾樣設定要看一下

user = 使用者名稱
swift_dir = swift的設定目錄
pipeline = 擴充功能
※官方說要把tempurl tempauth 這兩個移除並加入authtoken keystoneauth 
但如果想要做SAIO的話請把前面兩個留下,但後面兩個一樣要加
account_autocreate = True 自動創建帳戶
operator_roles = admin ,user
以下請依照KeyStone的需求進行填寫
[filter:authtoken]
paste.filter_factory = keystonemiddleware.auth_token:filter_factory
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = swift
password = SWIFT_PASS
delay_auth_decision = True
以下請依照memcache的設定進行填寫
[filter:cache]
use = egg:swift#memcache
memcache_servers = controller:11211

Storage安裝步驟
這邊會分成兩步驟解說

  • 硬碟的初始化
  • Swift的設定

本範例使用兩台機器並各配置不含系統的兩顆硬碟
一、安裝套件

apt-get install xfsprogs rsync -y

二、格式化硬碟成XFS(Wiki)格式

mkfs.xfs /dev/硬碟名稱

三、創建欲掛載的資料夾

mkdir -p /srv/node/硬碟名稱

結束後要記得mount喔
四、設定硬碟的開機參數
新增到/etc/fstab

硬碟名稱 掛載連結 xfs noatime,nodiratime,nobarrier,logbufs=8 0 2

五、設定同步選項
新增

sudo vim /etc/rsyncd.conf
uid = swift
gid = swift
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
address = MANAGEMENT_INTERFACE_IP_ADDRESS  //管理的IP位置

[account]
max connections = 2
path = /srv/node/
read only = False
lock file = /var/lock/account.lock

[container]
max connections = 2
path = /srv/node/
read only = False
lock file = /var/lock/container.lock

[object]
max connections = 2
path = /srv/node/
read only = False
lock file = /var/lock/object.lock

6、設定同步

sudo vim /etc/default/rsync
RSYNC_ENABLE=true

7、重啟服務

sudo service rsync restart

那今天先到這邊喔~明天再戰

後記

今日問了課服之後和我說可以重新辦一個題目寫,因此我這幾天會將我全部的文章進行轉移。
我會再給新的連結的
希望大家可以在這一個月中讀到非常多的應用技巧,那如果有問題可以以私訊我的方式是使用問題回復,我會盡可能地回答問題,那會在後面統一做回覆,或者如果有想知道的相關的應用也可以提出討論喔。

參考資料

Developers Seagate


上一篇
OpenStack Nova
系列文
OpenStack-多到數不清的套件6
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言