OpenStack juno版 安裝配置——第十章(Swift)

第十章——對象存儲安裝配置Swift

基礎知識:

  • swift簡介:

swift是一個多租戶對象存儲系統。它的高擴展性,以最小的成本管理大量的非結構化數據。可以說是製作網盤的組件。

  • 它包括下面組件:

  1. 代理伺服器【Proxy servers (swift-proxy-server)】:接受openstack對象存儲api和raw HTTP 請求上傳文件,修改元數據,和創建容器。它也存儲文件和通過瀏覽器查看列表。為提高性能,通常使用可選的高速緩存。

  2. 賬戶伺服器【Account servers (swift-account-server)】:管理對象存儲賬戶 。

  3. 容器伺服器【Container servers (swift-container-server)】:在swift中,管理容器或則文件的映射。

  4. 對象伺服器【Object servers (swift-object-server)】:管理實際對象,比如在存儲節點的文件。

  • Various periodic 進程

在大數量存儲執行內部任務,replication 服務,確保集群一致性和高可用性。其它周期進程包括。

  • WSGI 中間件

處理身份驗證,通常是OpenStack身份。

10.1、控制節點上安裝和配置Swift

注意:以下操作均在控制節點

1.創建身份認證服務

1)生效環境變數

相關命令:

  1. source admin-openrc.sh

2)創建一個swift 用戶

相關命令:

  1. keystone user-create --name swift--pass SWIFT_PASS

3)授予admin角色

相關命令:

  1. keystone user-role-add --userswift --tenant service --role admin

4)創建swift 服務實例

相關命令:

  1. keystone service-create --nameswift --type object-store

  2. --description "OpenStack Object Storage"

2.創建對象服務API endpoints

相關命令:

  1. keystone endpoint-create

  2. --service-id $(keystone service-list | awk / object-store / {print$2})

  3. --publicurlcontroller:8080/v1/AUTH

  4. --internalurl controller:8080/v1/AUTH

  5. --adminurl controller:8080

  6. --region regionOne

3. 安裝配置控制節點組件

1)安裝

相關命令:

  1. apt-get install swift swift-proxypython-swiftclient python-keystoneclient

  2. python-keystonemiddleware memcached

2)創建/etc/swift 目錄

相關命令:

  1. mkdir /etc/swift

3)從對象存儲服務源庫獲取代理服務配置文件

進入目錄/etc/swift並創建proxy-server.conf

相關命令:

  1. cd /etc/swift

進網站github.com/openstack/sw

並複製語句到proxy-server.conf

4.編輯文件proxy-server.conf

相關命令:

  1. gedit /etc/swift/proxy-server.conf

1)在 [DEFAULT]部分,配置綁定的埠,用戶和配置目錄

[DEFAULT]

bind_port = 8080

user = swift

swift_dir = /etc/swift

2)在 [pipeline:main] 部分,啟用appropriate modules

[pipeline:main]

pipeline = authtoken cachehealthcheck keystoneauth proxy-logging proxy-server

3)在[app:proxy-server]部分,啟用賬戶管理

[app:proxy-server]

allow_account_management = true

account_autocreate = true

4)在[filter:keystoneauth] 部分,配置操作的角色

[filter:keystoneauth]

use = egg:swift#keystoneauth

operator_roles = admin,_member_

5)在[filter:authtoken]部分,配置身份認證訪問

[filter:authtoken]

paste.filter_factory =keystonemiddleware.auth_token:filter_factory

auth_uri =controller:5000/v2.0

identity_uri =controller:35357

admin_tenant_name = service

admin_user = swift

admin_password = SWIFT_PASS

delay_auth_decision = true

6)在 [filter:cache]部分,配置memcached 位置

[filter:cache]

memcache_servers = 127.0.0.1:11211

10.2、對象存儲節點上安裝和配置Swift

注意:以下操作均在對象存儲節點

新增兩個存儲節點object1和object2。

1.準備

新加節點相關操作

2.改hosts,hostname,interfaces

objetc1:

auto eth0

iface eth0 inet static

address 10.0.0.51

netmask 255.255.255.0

gateway 10.0.0.2

dns-nameservers 114.114.114.114

objetc2:

auto eth0

iface eth0 inet static

address 10.0.0.52

netmask 255.255.255.0

gateway 10.0.0.2

dns-nameservers 114.114.114.114

3.安裝支持實用包

相關命令:

  1. apt-get install xfsprogs rsync

4.在虛擬機添加兩塊硬碟,然後使用fdisk命令,對其進行劃分區。

例如:在objetc1下

相關命令:

  1. fdisk /dev/sdb

  2. #Type in the followings:

  3. n

  4. p

  5. 1

  6. ENTER

  7. ENTER

  8. t

  9. 8e

  10. w

  11. fdisk /dev/sdc

  12. #Type in the followings:

  13. n

  14. p

  15. 1

  16. ENTER

  17. ENTER

  18. t

  19. 8e

  20. w

5.格式化 /dev/sdb1 和 /dev/sdc1分區表,作為XFS

相關命令:

  1. mkfs.xfs /dev/sdb1

  2. mkfs.xfs /dev/sdc1

6.創建掛載點目錄結構

相關命令:

  1. mkdir -p /srv/node/sdb1

  2. mkdir -p /srv/node/sdc1

7.編輯文件fstab

相關命令與內容:

  1. gedit /etc/fstab

  2. ------------------------------內 容------------------------------

  3. /dev/sdb1 /srv/node/sdb1 xfsnoatime,nodiratime,nobarrier,logbufs=8 0 2

  4. /dev/sdc1 /srv/node/sdc1 xfsnoatime,nodiratime,nobarrier,logbufs=8 0 2

  5. ------------------------------內 容------------------------------

8.掛載

相關命令:

  1. mount /srv/node/sdb1

  2. mount /srv/node/sdc1

9.編輯rsyncd.conf

例如:在objetc1下

相關命令與內容:

  1. gedit /etc/rsyncd.conf

  2. ------------------------------內 容------------------------------

  3. uid = swift

  4. gid = swift

  5. log file = /var/log/rsyncd.log

  6. pid file = /var/run/rsyncd.pid

  7. address = 10.0.0.51

  8. [account]

  9. max connections = 2

  10. path = /srv/node/

  11. read only = false

  12. lock file = /var/lock/account.lock

  13. [container]

  14. max connections = 2

  15. path = /srv/node/

  16. read only = false

  17. lock file =/var/lock/container.lock

  18. [object]

  19. max connections = 2

  20. path = /srv/node/

  21. read only = false

  22. lock file = /var/lock/object.lock

  23. ------------------------------內 容------------------------------

注意:rsync服務不需要認證,所以考慮運行一個專用網路

10.編輯文件rsync

相關命令與內容:

  1. gedit /etc/default/rsync

  2. ------------------------------內 容------------------------------

  3. RSYNC_ENABLE=true

  4. ------------------------------內 容------------------------------

11.啟動rsync 服務

相關命令:

  1. service rsync start

12. 安裝配置存儲節點組件

1)安裝包

相關命令:

  1. apt-get install swift swift-accountswift-container swift-object

2)下載,並保存accounting, container, 和object配置文件

pan.baidu.com/s/1blMAEa

13.編輯文件account-server.conf

例如:在objetc1下

相關命令:

  1. gedit /etc/swift/account-server.conf

1)在 [DEFAULT] 部分,配置綁定ip地址,埠,用戶,配置文件目錄,和掛載點目錄

[DEFAULT]

bind_ip = 10.0.0.51

bind_port = 6002

user = swift

swift_dir = /etc/swift

devices = /srv/node

2)在[pipeline:main]部分,啟用appropriate 模塊

[pipeline:main]

pipeline = healthcheck reconaccount-server

3)在 [filter:recon] 部分,配置緩存目錄

[filter:recon]

recon_cache_path =/var/cache/swift

14.編輯文件container-server.conf

例如:在objetc1下

相關命令:

  1. gedit /etc/swift/container-server.conf

1)在 [DEFAULT]部分,配置綁定ip地址,埠,用戶,配置目錄,和掛載點目錄

[DEFAULT]

bind_ip = 10.0.0.51

bind_port = 6001

user = swift

swift_dir = /etc/swift

devices = /srv/node

2)在[pipeline:main]部分,啟用appropriate 模塊

[pipeline:main]

pipeline = healthcheck reconcontainer-server

3)在 [filter:recon]部分,配置緩存目錄

[filter:recon]

recon_cache_path =/var/cache/swift

15. 編輯文件object-server.conf

例如:在objetc1下

相關命令:

  1. gedit /etc/swift/object-server.conf

1)在 [DEFAULT]部分,配置綁定ip地址,綁定埠,用戶,配置目錄,和掛載點目錄

[DEFAULT]

bind_ip = 10.0.0.51

bind_port = 6000

user = swift

swift_dir = /etc/swift

devices = /srv/node

2)在 [pipeline:main] 部分,啟用appropriate 模塊

[pipeline:main]

pipeline = healthcheck reconobject-server

3)在 [filter:recon]部分,配置緩存目錄

[filter:recon]

recon_cache_path =/var/cache/swift

16.給掛載點目錄合適的許可權

相關命令:

  1. chown -R swift:swift /srv/node

17.創建recon(偵查)目錄,並授權

相關命令:

  1. mkdir -p /var/cache/swift

  2. chown -R swift:swift/var/cache/swift

10.3創建初始rings

在開始使用對象存儲服務之前,你必須創建初始賬戶,容器,和對象 rings。環生成器所創建的配置文件,每個節點使用確定和部署的存儲架構。

嚮導使用一個地區的區2 ^10(1024)最大分區,每個對象3個副本,和至少一小時時間移動分區不止一次。對象存儲一個分區代表一個存儲設備上的目錄,而不是一個傳統分區表。

注意:以下操作均在控制節點

1.賬戶環

賬戶伺服器使用賬戶環,保存容器列表

1)進入 /etc/swift目錄

相關命令:

  1. cd /etc/swift

2)創建 account.builder

相關命令:

  1. swift-ring-builder account.buildercreate 10 3 1

3)添加每一個存儲節點到環

swift-ring-builder account.builder

addr1z1-STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS:6002/DEVICE_NAMEDEVICE_WEIGHT

替換存儲節點管理網路ip地址STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS,替換存儲節點設備名稱DEVICE_NAME ,例如在存儲節點使用的 /dev/sdb1存儲設備,替換為下面內容

相關命令:

  1. swift-ring-builder account.builder add r1z1-10.0.0.51:6002/sdb1100

  2. swift-ring-builder account.builder add r1z1-10.0.0.51:6002/sdc1100

  3. swift-ring-builder account.builder add r1z1-10.0.0.52:6002/sdb1100

  4. swift-ring-builder account.builder add r1z1-10.0.0.52:6002/sdc1100

4)核實ring內容

相關命令:

  1. swift-ring-builder account.builder

5)負載均衡ring

相關命令:

  1. swift-ring-builder account.builderrebalance

2.容器環

容器伺服器使用容器環保存對象服務列表。儘管如此,它不跟蹤對象的存儲位置。

1)進入 /etc/swift目錄

相關命令:

  1. cd /etc/swift

2)創建 container.builder文件

相關命令:

  1. swift-ring-buildercontainer.builder create 10 3 1

3)添加每一個存儲節點到環

相關命令:

  1. swift-ring-buildercontainer.builder add r1z1-10.0.0.51:6001/sdb1100

  2. swift-ring-buildercontainer.builder add r1z1-10.0.0.51:6001/sdc1100

  3. swift-ring-buildercontainer.builder add r1z1-10.0.0.52:6001/sdb1100

  4. swift-ring-buildercontainer.builder add r1z1-10.0.0.52:6001/sdc1100

4)核實ring內容

相關命令:

  1. swift-ring-builder container.builder

5)負載均衡ring

相關命令:

  1. swift-ring-builder container.builderrebalance

3.對象環

對象伺服器使用對象環保存本地對象列表。

1)進入 /etc/swift目錄

相關命令:

  1. cd /etc/swift

2)創建 object.builder文件

相關命令:

  1. swift-ring-builder object.buildercreate 10 3 1

3)添加每一個存儲節點到環

相關命令:

  1. swift-ring-builder object.builderadd r1z1-10.0.0.51:6001/sdb1 100

  2. swift-ring-builder object.builderadd r1z1-10.0.0.51:6001/sdc1 100

  3. swift-ring-builder object.builderadd r1z1-10.0.0.52:6001/sdb1 100

  4. swift-ring-builder object.builderadd r1z1-10.0.0.52:6001/sdc1 100

4)核實ring內容

相關命令:

  1. swift-ring-builder object.builder

5)負載均衡ring

相關命令:

  1. swift-ring-builder object.builderrebalance

4.分發配置文件

複製控制節點產生的account.ring.gz, container.ring.gz, 和 object.ring.gz 文件到其他對象存儲節點的 /etc/swift 目錄下。

5.完成安裝

配置hashes 和默認存儲策略

1)下載,保存 /etc/swift/swift.conf 文件

pan.baidu.com/s/1kU1dJW

2)編輯文件swift.conf

相關命令:

  1. gedit /etc/swift/swift.conf

a)在[swift-hash] 部分,為環境配置哈希路徑 prefix 和 suffix

[swift-hash]

swift_hash_path_suffix = about

swift_hash_path_prefix = yun

b)在 [storage-policy:0] 部分,配置默認存儲策略

[storage-policy:0]

name = Policy-0

default = yes

6.複製文件swift.conf到每個對象存儲節點 /etc/swift 目錄

相關命令1:

  1. cd /etc/swift

  2. scp swift.conf root@10.0.0.51:~/

  3. scp swift.conf root@10.0.0.52:~/

相關命令2:

  1. cp swift.conf /etc/swift

7.授權(所有節點)

相關命令:

  1. chown -R swift:swift /etc/swift

8.控制節點,和其它運行代理服務的節點,重啟存儲節點服務包括它的依賴

相關命令:

  1. service memcached restart

  2. service swift-proxy restart

9.對象存儲節點,啟動存儲節點服務

相關命令:

  1. swift-init all start

注意:存儲節點運行了很多存儲節點服務, swift-init 使他們更容易管理

10.4、驗證安裝

注意:以下操作均在控制節點

1.環境變數生效

相關命令:

  1. source demo-openrc.sh

2.顯示服務狀態

相關命令:

  1. swift stat

3.上傳一個測試文件

這裡創建了一個testSwift文件

相關命令:

  1. swift upload demo-container1testSwift

4.列出容器

相關命令:

  1. swift list

5.下載文件

相關命令:

  1. swift download demo-container1testSwift

注意:也可以通過web驗證


推薦閱讀:

Kubernetes和OpenStack到底是什麼關係?
2017 OpenStack Summit | 網路性能篇
OpenStack大規模部署優化之二:穩態優化
那些年走過的OpenStack的坑(下)
構建中移杭研OpenStack雲平台,迎接萬物互聯新時代

TAG:雲計算 | 大數據 | OpenStack |