天天看點

Openstack Mitaka for Centos7.2 部署指南(三)

4.7 塊存儲服務配置(Block Storage Service Cinder)

部署節點:Controller Node

mysql -u root -p123456

CREATE DATABASE cinder;

GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \

  IDENTIFIED BY 'cinder';

GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' \

openstack user create --domain default --password-prompt cinder

openstack role add --project service --user cinder admin

openstack service create --name cinder   --description "OpenStack Block Storage" volume

openstack service create --name cinderv2   --description "OpenStack Block Storage" volumev2

openstack endpoint create --region RegionOne   volume public http://controller:8776/v1/%\(tenant_id\)s

openstack endpoint create --region RegionOne   volume internal http://controller:8776/v1/%\(tenant_id\)s

openstack endpoint create --region RegionOne   volume admin http://controller:8776/v1/%\(tenant_id\)s

openstack endpoint create --region RegionOne   volumev2 public http://controller:8776/v2/%\(tenant_id\)s

openstack endpoint create --region RegionOne   volumev2 internal http://controller:8776/v2/%\(tenant_id\)s

openstack endpoint create --region RegionOne   volumev2 admin http://controller:8776/v2/%\(tenant_id\)s

安裝和配置Cinder服務元件

yum install openstack-cinder

修改配置檔案sudo vi /etc/cinder/cinder.conf

connection = mysql+pymysql://cinder:cinder@controller/cinder

[oslo_messaging_rabbit]

rabbit_host = controller

rabbit_userid = openstack

rabbit_password = openstack

[DEFAULT]

...

auth_strategy = keystone

[keystone_authtoken]

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 = cinder

password = cinder

my_ip = 10.0.0.11

[oslo_concurrency]

lock_path = /var/lib/cinder/tmp

su -s /bin/sh -c "cinder-manage db sync" cinder

配置計算服務調用塊存儲服務

修改配置檔案sudo vi /etc/nova/nova.conf ,添加如下資訊:

[cinder]

os_region_name = RegionOne

systemctl restart openstack-nova-api.service

systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service

systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service

部署節點:BlockStorage Node

[root@blockstorage ~]# yum install lvm2

systemctl enable lvm2-lvmetad.service

systemctl start lvm2-lvmetad.service

[root@blockstorage ~]# pvcreate /dev/sdb

  Physical volume "/dev/sdb" successfully created

# vgcreate cinder-volumes /dev/sdb

Volume group "cinder-volumes" successfully created

配置隻有OpenStack執行個體才可以通路塊存儲卷

修改配置檔案sudo vi /etc/lvm/lvm.conf ,在devices 處添加一個過濾器,使OpenStack執行個體隻允許訪

問/dev/sdb 。

devices {

filter = [ "a/sdb/", "r/.*/"]

安裝配置塊存儲服務元件

yum install openstack-cinder targetcli python-keystone

[database]

rpc_backend = rabbit

my_ip = 10.0.0.41

[lvm]

volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver

volume_group = cinder-volumes

iscsi_protocol = iscsi

iscsi_helper = tgtadm

enabled_backends = lvm

glance_api_servers = http://controller:9292

systemctl start openstack-cinder-volume.service target.service

systemctl enable openstack-cinder-volume.service target.service

[root@controller ~]# cinder service-list

+------------------+------------------+------+---------+-------+----------------------------+-----------------+

|      Binary      |       Host       | Zone |  Status | State |         Updated_at         | Disabled Reason |

| cinder-scheduler |    controller    | nova | enabled |   up  | 2016-09-03T14:19:51.000000 |        -        |

|  cinder-volume   | blockstorage@lvm | nova | enabled |   up  | 2016-09-03T14:19:27.000000 |        -        |

4.9 對象存儲服務配置(Object Storage Service Swift)

通過REST API 提供對象存儲和檢索服務。

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

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

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

yum install openstack-swift-proxy python-swiftclient   python-keystoneclient python-keystonemiddleware   memcached

從對象存儲軟體源倉庫下載下傳對象存儲代理服務配置檔案

curl -o /etc/swift/proxy-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/proxy-server.conf-sample?h=stable/mitaka

修改配置檔案sudo vi /etc/swift/proxy‐server.conf 。

bind_port = 8080

user = swift

swift_dir = /etc/swift

在[pipeline:main] 處移除tempurl 和tempauth 子產品,并添加authtoken 和keystoneauth 子產品

[pipeline:main]

pipeline = catch_errors gatekeeper healthcheck proxy-logging cache container_sync bulk ratelimit authtoken keystoneauth container-quotas account-quotas slo dlo versioned_writes proxy-logging proxy-server

[app:proxy-server]

use = egg:swift#proxy

account_autocreate = True

[filter:keystoneauth]

use = egg:swift#keystoneauth

operator_roles = admin,user

[filter:authtoken]

paste.filter_factory = keystonemiddleware.auth_token:filter_factory

username = swift

password = SWIFT_PASS

delay_auth_decision = True

[filter:cache]

use = egg:swift#memcache

memcache_servers = controller:11211

部署節點:ObjectStorage Node

注:每個對象存儲節點都需執行以下步驟

yum install xfsprogs rsync -y

# mkfs.xfs /dev/sdb

# mkfs.xfs /dev/sdc

# mkdir -p /srv/node/sdb

# mkdir -p /srv/node/sdc

/dev/sdb /srv/node/sdb xfs noatime,nodiratime,nobarrier,logbufs=8 0 2

/dev/sdc /srv/node/sdc xfs noatime,nodiratime,nobarrier,logbufs=8 0 2

# mount /srv/node/sdb

# mount /srv/node/sdc

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

[account]

max connections = 2

path = /srv/node/

read only = False

lock file = /var/lock/account.lock

[container]

lock file = /var/lock/container.lock

[object]

lock file = /var/lock/object.lock

# systemctl enable rsyncd.service

# systemctl start rsyncd.service

yum install openstack-swift-account openstack-swift-container  openstack-swift-object

curl -o /etc/swift/account-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/account-server.conf-sample?h=stable/mitaka

curl -o /etc/swift/container-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/container-server.conf-sample?h=stable/mitaka

curl -o /etc/swift/object-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/object-server.conf-sample?h=stable/mitaka

修改配置檔案sudo vi /etc/swift/account‐server.conf 。

在[DEFAULT] 處配置綁定IP位址、綁定端口、使用者、目錄和挂載點:

注:将下面MANAGEMENT_INTERFACE_IP_ADDRESS 替換為對象存儲節點Management Network 網絡接口地

址10.0.0.51 或10.0.0.52

bind_ip = MANAGEMENT_INTERFACE_IP_ADDRESS

bind_port = 6002

devices = /srv/node

mount_check = True

pipeline = healthcheck recon account‐server

[filter:recon]

use = egg:swift#recon

recon_cache_path = /var/cache/swift

修改配置檔案sudo vi /etc/swift/container‐server.conf

bind_port = 6001

pipeline = healthcheck recon container‐server

修改配置檔案sudo vi /etc/swift/object‐server.conf

bind_port = 6000

pipeline = healthcheck recon object‐server

recon_lock_path = /var/lock

chown -R swift:swift /srv/node

mkdir -p /var/cache/swift

chown -R root:swift /var/cache/swift

chmod -R 775 /var/cache/swift

建立和分發初始環

cd /etc/swift

建立基礎的account.builder 檔案:

[root@controller swift]# swift-ring-builder account.builder create 10 3 1

将每個對象存儲節點裝置添加到賬戶環:

swift-ring-builder account.builder  add --region 1 --zone 1 --ip STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS --port 6002  --device DEVICE_NAME --weight DEVICE_WEIGHT

注:将STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS 替換為對象存儲節點Management Network 網絡接

口位址,将DEVICE_NAME 替換為對應的對象存儲節點上的儲存設備名稱,将DEVICE_WEIGHT 替換為實際權重

值。

注:重複以上指令,将每個存儲節點上的每個儲存設備添加到賬戶環。

例如,本文采用如下指令将每個存儲節點上的每個儲存設備添加到賬戶環:

swift-ring-builder  account.builder add --region 1 --zone 1 --ip 10.0.0.51  --port 6002 --device sdb --weight 100

swift-ring-builder  account.builder add --region 1 --zone 1 --ip 10.0.0.51  --port 6002 --device sdc --weight 100

swift-ring-builder  account.builder add --region 1 --zone 2 --ip 10.0.0.52  --port 6002 --device sdb --weight 100

swift-ring-builder  account.builder add --region 1 --zone 2 --ip 10.0.0.52  --port 6002 --device sdc --weight 100

 驗證

swift-ring-builder account.builder

平衡賬戶環:

[root@controller swift]# swift-ring-builder account.builder rebalance

Reassigned 3072 (300.00%) partitions. Balance is now 0.00.  Dispersion is now 0.00

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

swift-ring-builder  container.builder add --region 1 --zone 1 --ip 10.0.0.51  --port 6001 --device sdb --weight 100

swift-ring-builder  container.builder add --region 1 --zone 1 --ip 10.0.0.51  --port 6001 --device sdc --weight 100

swift-ring-builder  container.builder add --region 1 --zone 2 --ip 10.0.0.52  --port 6001 --device sdb --weight 100

swift-ring-builder  container.builder add --region 1 --zone 2 --ip 10.0.0.52  --port 6001 --device sdc --weight 100

swift-ring-builder container.builder

swift-ring-builder container.builder rebalance

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

swift-ring-builder  object.builder add --region 1 --zone 1 --ip 10.0.0.51  --port 6000 --device sdb --weight 100

swift-ring-builder  object.builder add --region 1 --zone 1 --ip 10.0.0.51  --port 6000 --device sdc --weight 100

swift-ring-builder  object.builder add --region 1 --zone 2 --ip 10.0.0.52  --port 6000 --device sdb --weight 100

swift-ring-builder  object.builder add --region 1 --zone 2 --ip 10.0.0.52  --port 6000 --device sdc --weight 100

swift-ring-builder object.builder

swift-ring-builder object.builder rebalance

分發環配置檔案

将環配置檔案account.ring.gz 、container.ring.gz 和object.ring.gz 拷貝到每個對象存儲節點以及代理

服務節點的/etc/swift 目錄。在每個存儲節點或代理服務節點執行以下指令:

 scp root@controller:/etc/swift/*.ring.gz /etc/swift   

本文将swift‐proxy 部署到controller節點,是以無需再講環配置檔案拷貝到代理服務節點的/etc/swift

目錄。若對象存儲代理服務swift‐proxy 部署在其他節點,則需将環配置檔案拷貝到該代理服務節

點/etc/swift 目錄下。

添加、分發swift 配置檔案

① 從對象存儲軟體源倉庫下載下傳配置檔案/etc/swift/swift.conf

curl -o /etc/swift/swift.conf  https://git.openstack.org/cgit/openstack/swift/plain/etc/swift.conf-sample?h=stable/mitaka

② 修改配置檔案sudo vi /etc/swift/swift.conf

在[swift‐hash] 處哈希路徑字首和字尾

注:将HASH_PATH_PREFIX 和HASH_PATH_SUFFIX 替換為前面設計的唯一值。

[swift-hash]

swift_hash_path_suffix = HASH_PATH_SUFFIX

swift_hash_path_prefix = HASH_PATH_PREFIX

[storage‐policy:0]

name = Policy‐0

default = yes

③ 分發swift 配置檔案

将/etc/swift/swift.conf 拷貝到每個對象存儲節點以及代理服務節點的/etc/swift 目錄。在每個存儲節點

或代理服務節點執行以下指令:

scp root@controller:/etc/swift/swift.conf /etc/swift

④ 在所有存儲節點和代理服務節點上設定swift配置目錄所有權

chown  -R root:swift /etc/swift

在Controller節點和其他Swift代理服務節點上執行

systemctl enable openstack-swift-proxy.service memcached.service

systemctl start openstack-swift-proxy.service memcached.service

在所有對象存儲節點上執行

systemctl enable openstack-swift-account.service openstack-swift-account-auditor.service openstack-swift-account-reaper.service openstack-swift-account-replicator.service

systemctl start openstack-swift-account.service openstack-swift-account-auditor.service openstack-swift-account-reaper.service openstack-swift-account-replicator.service

systemctl enable openstack-swift-container.service openstack-swift-container-auditor.service openstack-swift-container-replicator.service  openstack-swift-container-updater.service

systemctl start openstack-swift-container.service openstack-swift-container-auditor.service openstack-swift-container-replicator.service  openstack-swift-container-updater.service

systemctl enable openstack-swift-object.service openstack-swift-object-auditor.service openstack-swift-object-replicator.service openstack-swift-object-updater.service

systemctl start openstack-swift-object.service openstack-swift-object-auditor.service openstack-swift-object-replicator.service openstack-swift-object-updater.service

swift stat

本文轉自 295631788 51CTO部落格,原文連結:http://blog.51cto.com/hequan/1846096,如需轉載請自行聯系原作者

繼續閱讀