添加塊存儲服務node
安裝和配置控制器節點python
建立數據庫mysql
mysql -uroot -ptoyo123 CREATE DATABASE cinder; GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \ IDENTIFIED BY 'toyo123'; GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' \ IDENTIFIED BY 'toyo123'; exit
建立服務憑據git
source admin-openrc.sh keystone user-create --name cinder --pass Abcd1234 keystone user-role-add --user cinder --tenant service --role admin keystone service-create --name cinder --type volume \ --description "OpenStack Block Storage" keystone service-create --name cinderv2 --type volumev2 \ --description "OpenStack Block Storage" keystone endpoint-create \ --service-id $(keystone service-list | awk '/ volume / {print $2}') \ --publicurl http://controller:8776/v1/%\(tenant_id\)s \ --internalurl http://controller:8776/v1/%\(tenant_id\)s \ --adminurl http://controller:8776/v1/%\(tenant_id\)s \ --region regionOne keystone endpoint-create \ --service-id $(keystone service-list | awk '/ volumev2 / {print $2}') \ --publicurl http://controller:8776/v2/%\(tenant_id\)s \ --internalurl http://controller:8776/v2/%\(tenant_id\)s \ --adminurl http://controller:8776/v2/%\(tenant_id\)s \ --region regionOne
安裝和配置塊存儲控制器組件github
yum install -y openstack-cinder python-cinderclient python-oslo-db
編輯/etc/cinder/cinder.confsql
mv /etc/cinder/cinder.conf /etc/cinder/cinder.conf_bak vim /etc/cinder/cinder.conf [database] connection = mysql://cinder:toyo123@controller/cinder [DEFAULT] my_ip = 192.168.116.8 rpc_backend = rabbit rabbit_host = controller rabbit_password = Abcd1234 auth_strategy = keystone verbose = True [keystone_authtoken] auth_uri = http://controller:5000/v2.0 identity_uri = http://controller:35357 admin_tenant_name = service admin_user = cinder admin_password = Abcd1234
完成安裝數據庫
su -s /bin/sh -c "cinder-manage db sync" cinder systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
安裝和配置存儲節點swift
安裝LVM與啓動lvm並設置爲開機自啓動vim
yum -y install lvm2 systemctl enable lvm2-lvmetad.service systemctl start lvm2-lvmetad.service
磁盤分區api
fdisk /dev/sda n p Enter +100G t 8e w
檢查分區信息是否寫入內核(檢測到了則不用添加)
cat /proc/partitions major minor #blocks name 8 0 488386584 sda 8 1 512000 sda1 8 2 104857600 sda2 8 3 4063232 sda3 partx -a /dev/sda5 /dev/sda cat /proc/partitions major minor #blocks name 8 0 488386584 sda 8 1 512000 sda1 8 2 104857600 sda2 8 3 4063232 sda3 8 5 104857600 sda5
創建lvm分區
pvcreate /dev/sda5 Physical volume "/dev/sda5" successfully created vgcreate cinder-volumes /dev/sda5 Volume group "cinder-volumes" successfully created
編輯/etc/lvm/lvm.conf
vim /etc/lvm/lvm.conf devices { filter = [ "a/sda/", "r/.*/"]
安裝和配置塊存儲卷組件
yum install -y openstack-cinder targetcli python-oslo-db MySQL-python
編輯/etc/cinder/cinder.conf
mv /etc/cinder/cinder.conf /etc/cinder/cinder.conf_bak vim /etc/cinder/cinder.conf [database] connection = mysql://cinder:toyo123@controller/cinder [DEFAULT] rpc_backend = rabbit rabbit_host = controller rabbit_password = Abcd1234 uth_strategy = keystone my_ip = 192.168.116.8 glance_host = controller iscsi_helper = lioadm verbose = True [keystone_authtoken] auth_uri = http://controller:5000/v2.0 identity_uri = http://controller:35357 admin_tenant_name = service admin_user = cinder admin_password = Abcd1234
完成安裝
systemctl enable openstack-cinder-volume.service target.service
systemctl start openstack-cinder-volume.service target.service
驗證
source admin-openrc.sh cinder service-list
建立雲磁盤
source demo-openrc.sh cinder create --display-name demo-volume1 1 cinder list
安裝對象存儲
安裝和配置控制節點
建立身份服務憑據
source admin-openrc.sh keystone user-create --name swift --pass Abcd1234 keystone user-role-add --user swift --tenant service --role admin keystone service-create --name swift --type object-store \ --description "OpenStack Object Storage" keystone endpoint-create \ --service-id $(keystone service-list | awk '/ object-store / {print $2}') \ --publicurl 'http://controller:8080/v1/AUTH_%(tenant_id)s' \ --internalurl 'http://controller:8080/v1/AUTH_%(tenant_id)s' \ --adminurl http://controller:8080 \ --region regionOne
安裝和配置控制器節點組件
yum install -y openstack-swift-proxy python-swiftclient python-keystone-auth-token \ python-keystonemiddleware memcached
下載並編輯proxy-server.conf
curl -o /etc/swift/proxy-server.conf \ https://raw.githubusercontent.com/openstack/swift/stable/juno/etc/proxy-server.conf-sample vim /etc/swift/proxy-server.conf [DEFAULT] bind_port = 8080 user = swift swift_dir = /etc/swift [pipeline:main] pipeline = authtoken cache healthcheck keystoneauth proxy-logging proxy-server [app:proxy-server] allow_account_management = true account_autocreate = true [filter:keystoneauth] use = egg:swift#keystoneauth operator_roles = admin,_member_ [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 = Abcd1234 delay_auth_decision = true [filter:cache] memcache_servers = 127.0.0.1:11211
安裝和配置存儲節點
安裝xfsprog
yum install -y xfsprogs rsync
建立分區
fdisk /dev/sda n e ENTER ENTER n ENTER +100G N ENTER ENTER W cat /proc/partitions partx -a /dev/sda5 /dev/sda partx -a /dev/sda6 /dev/sda
格式化並建立掛載點目錄
mkfs.xfs /dev/sda5 mkfs.xfs /dev/sda6 mkdir -p /srv/node/sda5 mkdir -p /srv/node/sda6
編輯 /etc/fstab
,並掛載
vim /etc/fstab /dev/sda5 /srv/node/sda5 xfs noatime,nodiratime,nobarrier,logbufs=8 0 2 /dev/sda6 /srv/node/sda6 xfs noatime,nodiratime,nobarrier,logbufs=8 0 2 mount /srv/node/sda5 mount /srv/node/sda6
編輯/etc/rsyncd.conf
mv /etc/rsyncd.conf /etc/rsyncd.conf_bak vim /etc/rsyncd.conf uid = swift gid = swift log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid address =192.168.116.7 [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
啓動服務並配置爲開機自啓動
systemctl enable rsyncd.service
systemctl start rsyncd.service
安裝和配置存儲節點組件
yum install -y openstack-swift-account openstack-swift-container openstack-swift-object
下載配置文件
curl -o /etc/swift/account-server.conf \ https://raw.githubusercontent.com/openstack/swift/stable/juno/etc/account-server.conf-sample curl -o /etc/swift/container-server.conf \ https://raw.githubusercontent.com/openstack/swift/stable/juno/etc/container-server.conf-sample curl -o /etc/swift/object-server.conf \ https://raw.githubusercontent.com/openstack/swift/stable/juno/etc/object-server.conf-sample
編輯/etc/swift/account-server.conf
vim /etc/swift/account-server.conf [DEFAULT] bind_ip = 192.168.116.7 bind_port = 6002 user = swift swift_dir = /etc/swift devices = /srv/node [pipeline:main] pipeline = healthcheck recon account-server [filter:recon] recon_cache_path = /var/cache/swift
編輯/etc/swift/container-server.conf
vim /etc/swift/container-server.conf [DEFAULT] bind_ip = 192.168.116.7 bind_port = 6001 user = swift swift_dir = /etc/swift devices = /srv/node [pipeline:main] pipeline = healthcheck recon container-server [filter:recon] recon_cache_path = /var/cache/swift
編輯/etc/swift/object-server.conf
vim /etc/swift/object-server.conf [DEFAULT] bind_ip = 192.168.116.7 bind_port = 6000 user = swift swift_dir = /etc/swift devices = /srv/node [pipeline:main] pipeline = healthcheck recon object-server [filter:recon] recon_cache_path = /var/cache/swift
確保掛載點的目錄擁有全部權,建立偵察
目錄,並確保它的正確的全部權
chown -R swift:swift /srv/node mkdir -p /var/cache/swift chown -R swift:swift /var/cache/swift
建立帳戶環
cd /etc/swift swift-ring-builder account.builder create 10 3 1 swift-ring-builder account.builder \ add r1z1-192.168.116.7:6002/sda5 100 swift-ring-builder account.builder \ add r1z1-192.168.116.7:6002/sda6 100 swift-ring-builder account.builder \ add r1z1-192.168.116.10:6002/sda5 100 swift-ring-builder account.builder \ add r1z1-192.168.116.10:6002/sda6 100
平衡環
swift-ring-builder account.builder rebalance
驗證
swift-ring-builder account.builder
建立容器環
cd /etc/swift swift-ring-builder container.builder create 10 3 1 swift-ring-builder container.builder \ add r1z1-192.168.116.7:6001/sda5 100 swift-ring-builder container.builder \ add r1z1-192.168.116.7:6001/sda6 100 swift-ring-builder container.builder \ add r1z1-192.168.116.10:6001/sda5 100 swift-ring-builder container.builder \ add r1z1-192.168.116.10:6001/sda6 100
建立環對象
cd /etc/swift swift-ring-builder object.builder create 10 3 1 swift-ring-builder object.builder \ add r1z1-192.168.116.7:6000/sda5 100 swift-ring-builder object.builder \ add r1z1-192.168.116.7:6000/sda6 100 swift-ring-builder object.builder \ add r1z1-192.168.116.10:6000/sda5 100 swift-ring-builder object.builder \ add r1z1-192.168.116.10:6000/sda6 100
平衡環
swift-ring-builder object.builder rebalance
驗證
swift-ring-builder object.builder
將account.ring.gz, container.ring.gz, 和 object.ring.gz複製到節點存儲服務器/etc/swift下
下載並編輯swift.conf,編輯完成後複製到每一個存儲節點與代理服務器上
curl -o /etc/swift/swift.conf \ https://raw.githubusercontent.com/openstack/swift/stable/juno/etc/swift.conf-sample vim /etc/swift/swift.conf [swift-hash] swift_hash_path_prefix = xrfuniounenqjnw swift_hash_path_suffix = fLIbertYgibbitZ [storage-policy:0] name = Policy-0 default = yes
修改目錄擁有者並啓動服務與配置開機自啓動,每一個存儲節點與代理服務器同樣操做
chown -R swift:swift /etc/swift systemctl enable openstack-swift-proxy.service memcached.service systemctl restart 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 enable 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 swift-init all start
驗證
source demo-openrc.sh swift stat Account: AUTH_2e6cfee73a0e42e3ad67affb9f042484 Containers: 0 Objects: 0 Bytes: 0 X-Put-Timestamp: 1431246736.74462 X-Timestamp: 1431246736.74462 X-Trans-Id: tx99c4c6fa0ade4314aec8d-00554f1790 Content-Type: text/plain; charset=utf-8