OpenStack juno版 安裝配置——第十章(Swift)
第十章——對象存儲安裝配置Swift
基礎知識:
- swift簡介:
swift是一個多租戶對象存儲系統。它的高擴展性,以最小的成本管理大量的非結構化數據。可以說是製作網盤的組件。
- 它包括下面組件:
- 代理伺服器【Proxy servers (swift-proxy-server)】:接受openstack對象存儲api和raw HTTP 請求上傳文件,修改元數據,和創建容器。它也存儲文件和通過瀏覽器查看列表。為提高性能,通常使用可選的高速緩存。
- 賬戶伺服器【Account servers (swift-account-server)】:管理對象存儲賬戶 。
- 容器伺服器【Container servers (swift-container-server)】:在swift中,管理容器或則文件的映射。
- 對象伺服器【Object servers (swift-object-server)】:管理實際對象,比如在存儲節點的文件。
- Various periodic 進程
在大數量存儲執行內部任務,replication 服務,確保集群一致性和高可用性。其它周期進程包括。
- WSGI 中間件
處理身份驗證,通常是OpenStack身份。
10.1、在控制節點上安裝和配置Swift
注意:以下操作均在控制節點
1.創建身份認證服務
1)生效環境變數
相關命令:
- source admin-openrc.sh
2)創建一個swift 用戶
相關命令:
- keystone user-create --name swift--pass SWIFT_PASS
3)授予admin角色
相關命令:
- keystone user-role-add --userswift --tenant service --role admin
4)創建swift 服務實例
相關命令:
- keystone service-create --nameswift --type object-store
- --description "OpenStack Object Storage"
2.創建對象服務API endpoints
相關命令:
- keystone endpoint-create
- --service-id $(keystone service-list | awk / object-store / {print$2})
- --publicurlhttp://controller:8080/v1/AUTH_%(tenant_id)s
- --internalurl http://controller:8080/v1/AUTH_%(tenant_id)s
- --adminurl http://controller:8080
- --region regionOne
3. 安裝配置控制節點組件
1)安裝
相關命令:
- apt-get install swift swift-proxypython-swiftclient python-keystoneclient
- python-keystonemiddleware memcached
2)創建/etc/swift 目錄
相關命令:
- mkdir /etc/swift
3)從對象存儲服務源庫獲取代理服務配置文件
進入目錄/etc/swift並創建proxy-server.conf
相關命令:
- cd /etc/swift
進網站https://github.com/openstack/swift/blob/master/etc/proxy-server.conf-sample
並複製語句到proxy-server.conf
4.編輯文件proxy-server.conf
相關命令:
- 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 =http://controller:5000/v2.0
identity_uri =http://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.安裝支持實用包
相關命令:
- apt-get install xfsprogs rsync
4.在虛擬機添加兩塊硬碟,然後使用fdisk命令,對其進行劃分區。
例如:在objetc1下
相關命令:
- fdisk /dev/sdb
- #Type in the followings:
- n
- p
- 1
- ENTER
- ENTER
- t
- 8e
- w
- fdisk /dev/sdc
- #Type in the followings:
- n
- p
- 1
- ENTER
- ENTER
- t
- 8e
- w
5.格式化 /dev/sdb1 和 /dev/sdc1分區表,作為XFS
相關命令:
- mkfs.xfs /dev/sdb1
- mkfs.xfs /dev/sdc1
6.創建掛載點目錄結構
相關命令:
- mkdir -p /srv/node/sdb1
- mkdir -p /srv/node/sdc1
7.編輯文件fstab
相關命令與內容:
- gedit /etc/fstab
- ------------------------------內 容------------------------------
- /dev/sdb1 /srv/node/sdb1 xfsnoatime,nodiratime,nobarrier,logbufs=8 0 2
- /dev/sdc1 /srv/node/sdc1 xfsnoatime,nodiratime,nobarrier,logbufs=8 0 2
- ------------------------------內 容------------------------------
8.掛載
相關命令:
- mount /srv/node/sdb1
- mount /srv/node/sdc1
9.編輯rsyncd.conf
例如:在objetc1下
相關命令與內容:
- gedit /etc/rsyncd.conf
- ------------------------------內 容------------------------------
- uid = swift
- gid = swift
- log file = /var/log/rsyncd.log
- pid file = /var/run/rsyncd.pid
- address = 10.0.0.51
- [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
- ------------------------------內 容------------------------------
注意:rsync服務不需要認證,所以考慮運行一個專用網路
10.編輯文件rsync
相關命令與內容:
- gedit /etc/default/rsync
- ------------------------------內 容------------------------------
- RSYNC_ENABLE=true
- ------------------------------內 容------------------------------
11.啟動rsync 服務
相關命令:
- service rsync start
12. 安裝配置存儲節點組件
1)安裝包
相關命令:
- apt-get install swift swift-accountswift-container swift-object
2)下載,並保存accounting, container, 和object配置文件
http://pan.baidu.com/s/1blMAEa
13.編輯文件account-server.conf
例如:在objetc1下
相關命令:
- 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下
相關命令:
- 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下
相關命令:
- 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.給掛載點目錄合適的許可權
相關命令:
- chown -R swift:swift /srv/node
17.創建recon(偵查)目錄,並授權
相關命令:
- mkdir -p /var/cache/swift
- chown -R swift:swift/var/cache/swift
10.3、創建初始rings
在開始使用對象存儲服務之前,你必須創建初始賬戶,容器,和對象 rings。環生成器所創建的配置文件,每個節點使用確定和部署的存儲架構。
嚮導使用一個地區的區2 ^10(1024)最大分區,每個對象3個副本,和至少一小時時間移動分區不止一次。對象存儲一個分區代表一個存儲設備上的目錄,而不是一個傳統分區表。
注意:以下操作均在控制節點
1.賬戶環
賬戶伺服器使用賬戶環,保存容器列表
1)進入 /etc/swift目錄
相關命令:
- cd /etc/swift
2)創建 account.builder
相關命令:
- 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存儲設備,替換為下面內容
相關命令:
- swift-ring-builder account.builder add r1z1-10.0.0.51:6002/sdb1100
- swift-ring-builder account.builder add r1z1-10.0.0.51:6002/sdc1100
- swift-ring-builder account.builder add r1z1-10.0.0.52:6002/sdb1100
- swift-ring-builder account.builder add r1z1-10.0.0.52:6002/sdc1100
4)核實ring內容
相關命令:
- swift-ring-builder account.builder
5)負載均衡ring
相關命令:
- swift-ring-builder account.builderrebalance
2.容器環
容器伺服器使用容器環保存對象服務列表。儘管如此,它不跟蹤對象的存儲位置。
1)進入 /etc/swift目錄
相關命令:
- cd /etc/swift
2)創建 container.builder文件
相關命令:
- swift-ring-buildercontainer.builder create 10 3 1
3)添加每一個存儲節點到環
相關命令:
- swift-ring-buildercontainer.builder add r1z1-10.0.0.51:6001/sdb1100
- swift-ring-buildercontainer.builder add r1z1-10.0.0.51:6001/sdc1100
- swift-ring-buildercontainer.builder add r1z1-10.0.0.52:6001/sdb1100
- swift-ring-buildercontainer.builder add r1z1-10.0.0.52:6001/sdc1100
4)核實ring內容
相關命令:
- swift-ring-builder container.builder
5)負載均衡ring
相關命令:
- swift-ring-builder container.builderrebalance
3.對象環
對象伺服器使用對象環保存本地對象列表。
1)進入 /etc/swift目錄
相關命令:
- cd /etc/swift
2)創建 object.builder文件
相關命令:
- swift-ring-builder object.buildercreate 10 3 1
3)添加每一個存儲節點到環
相關命令:
- swift-ring-builder object.builderadd r1z1-10.0.0.51:6001/sdb1 100
- swift-ring-builder object.builderadd r1z1-10.0.0.51:6001/sdc1 100
- swift-ring-builder object.builderadd r1z1-10.0.0.52:6001/sdb1 100
- swift-ring-builder object.builderadd r1z1-10.0.0.52:6001/sdc1 100
4)核實ring內容
相關命令:
- swift-ring-builder object.builder
5)負載均衡ring
相關命令:
- swift-ring-builder object.builderrebalance
4.分發配置文件
複製控制節點產生的account.ring.gz, container.ring.gz, 和 object.ring.gz 文件到其他對象存儲節點的 /etc/swift 目錄下。
5.完成安裝
配置hashes 和默認存儲策略
1)下載,保存 /etc/swift/swift.conf 文件
http://pan.baidu.com/s/1kU1dJWN
2)編輯文件swift.conf
相關命令:
- 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:
- cd /etc/swift
- scp swift.conf root@10.0.0.51:~/
- scp swift.conf root@10.0.0.52:~/
相關命令2:
- cp swift.conf /etc/swift
7.授權(所有節點)
相關命令:
- chown -R swift:swift /etc/swift
8.在控制節點,和其它運行代理服務的節點,重啟存儲節點服務包括它的依賴
相關命令:
- service memcached restart
- service swift-proxy restart
9.在對象存儲節點,啟動存儲節點服務
相關命令:
- swift-init all start
注意:存儲節點運行了很多存儲節點服務, swift-init 使他們更容易管理
10.4、驗證安裝
注意:以下操作均在控制節點
1.環境變數生效
相關命令:
- source demo-openrc.sh
2.顯示服務狀態
相關命令:
- swift stat
3.上傳一個測試文件
這裡創建了一個testSwift文件
相關命令:
- swift upload demo-container1testSwift
4.列出容器
相關命令:
- swift list
5.下載文件
相關命令:
- swift download demo-container1testSwift
注意:也可以通過web驗證
推薦閱讀:
※Kubernetes和OpenStack到底是什麼關係?
※2017 OpenStack Summit | 網路性能篇
※OpenStack大規模部署優化之二:穩態優化
※那些年走過的OpenStack的坑(下)
※構建中移杭研OpenStack雲平台,迎接萬物互聯新時代