Cinder介紹
OpenStack塊存儲服務(cinder)為虛擬機添加持久的存儲,塊存儲提供一個基礎設施為了管理卷,以及和OpenStack計算服務交互,為實例提供卷。此服務也會激活管理卷的快照和卷類型的功能。
塊存儲服務通常包含下列組件:
- cinder-api:接受API請求,並將其路由到cinder-volume執行。
- cinder-volume:與塊存儲服務和cinder-scheduler的進程進行直接交互。它也可以與這些進程通過一個消息隊列進行交互。cinder-volume服務響應送到塊存儲服務的讀寫請求來維持狀態。它也可以和多種存儲提供者在驅動架構下進行交互。
- cinder-scheduler守護進程:選擇最優存儲提供節點來創建卷。其與nova-scheduler組件類似。
- cinder-backup守護進程:cinder-backup服務提供任何種類備份卷到一個備份存儲提供者。就像cinder-volume服務,它與多種存儲提供者在驅動架構下進行交互。
- 消息隊列:在塊存儲的進程之間路由信息。
使用模式三種:
- 本地硬盤,優點:IOPS性能最好,缺點:容量限制,遷移麻煩
- 本地硬盤+雲硬盤,系統使用本地硬盤,數據目錄使用雲硬盤
- 雲硬盤
后端存儲:NFS、ISCSI、Glusterfs、ceph都支持。
Cinder控制節點部署
1、數據庫創建
mysql -u root -p CREATE DATABASE cinder; GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'cinder'; GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'cinder';
2、創建cinder用戶
source /root/admin-openstack.sh openstack user create --domain default --password-prompt cinder
添加 admin 角色到 cinder 用戶上
openstack role add --project service --user cinder admin
3、創建 cinder 和 cinderv2 服務實體
openstack service create --name cinder \ --description "OpenStack Block Storage" volume
openstack service create --name cinderv2 \ --description "OpenStack Block Storage" volumev2
4、創建塊設備存儲服務的 API 入口點
- volume服務注冊
openstack endpoint create --region RegionOne \ volume public http://192.168.137.11:8776/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne \ volume internal http://192.168.137.11:8776/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne \ volume admin http://192.168.137.11:8776/v1/%\(tenant_id\)s
- volumev2服務注冊
openstack endpoint create --region RegionOne \ volumev2 public http://192.168.137.11:8776/v2/%\(tenant_id\)s
openstack endpoint create --region RegionOne \ volumev2 internal http://192.168.137.11:8776/v2/%\(tenant_id\)s
openstack endpoint create --region RegionOne \ volumev2 admin http://192.168.137.11:8776/v2/%\(tenant_id\)s
5、安裝軟件包
yum install openstack-cinder
6、編輯 /etc/cinder/cinder.conf,同時完成如下動作:
- 配置數據庫
[database] connection = mysql+pymysql://cinder:cinder@192.168.137.11/cinder
- 消息隊列配置
[DEFAULT] rpc_backend = rabbit [oslo_messaging_rabbit] rabbit_host = 192.168.137.11 rabbit_userid = openstack rabbit_password = openstack
- keystone配置
[DEFAULT] auth_strategy = keystone [keystone_authtoken] auth_uri = http://192.168.137.11:5000 auth_url = http://192.168.137.11:35357 memcached_servers = 192.168.137.11:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = cinder password = cinder
- 配置鎖路徑
[oslo_concurrency] lock_path = /var/lib/cinder/tmp
- glance地址
glance_host = 192.168.137.11
- iscsi地址
iscsi_ip_address = 192.168.137.12
7、同步數據庫
su -s /bin/sh -c "cinder-manage db sync" cinder
8、配置nova計算服務使用塊設備存儲
編輯文件 /etc/nova/nova.conf 並添加如下到其中:
[cinder] os_region_name = RegionOne
9、重啟nova計算API 服務
systemctl restart openstack-nova-api.service
10、啟動cinder塊設備存儲服務,並將其配置為開機自啟
systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service systemctl restart openstack-cinder-api.service openstack-cinder-scheduler.service