OpenStack部署-9.cinder控制节点部署 作者: sysit 分类: d 发表于 2018-12-04 159人围观 ## 9.1 创建cinder数据库 ``` 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'; ``` ## 9.2 创建cinder-api ``` # 在任意控制节点操作,以controller1节点为例; # 调用cinder服务需要认证信息,加载环境变量脚本即可 [root@controller1 ~]# . admin-openrc ``` * 创建cinder用户 ``` # service项目已在glance章节创建; # neutron用户在“default” domain中 [root@controller1 ~]# openstack user create --domain default --password-prompt cinder User Password: Repeat User Password: +---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | domain_id | default | | enabled | True | | id | 692c3d6a207043cc9093751212c2dddb | | name | cinder | | options | {} | | password_expires_at | None | +---------------------+----------------------------------+ ``` * cinder赋权 ``` # 为cinder用户赋予admin权限 [root@controller1 ~]# openstack role add --project service --user cinder admin ``` * 创建cinder服务实体 ``` # cinder服务实体类型“volume”; # 创建v2/v3两个服务实体 [root@controller1 ~]# openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2 +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Block Storage | | enabled | True | | id | 15d869d2ffd5479797059f5300c5a006 | | name | cinderv2 | | type | volumev2 | +-------------+----------------------------------+ [root@controller1 ~]# openstack service create --name cinderv3 --description "OpenStack Block Storage" volumev3 +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Block Storage | | enabled | True | | id | 700a2059cf874b78918c580f4a4a397e | | name | cinderv3 | | type | volumev3 | +-------------+----------------------------------+ ``` * 创建cinder-api ``` # 注意--region与初始化admin用户时生成的region一致; # api地址统一采用vip,如果public/internal/admin分别使用不同的vip,请注意区分; # cinder-api 服务类型为volume; # cinder-api后缀为用户project-id,可通过“openstack project list”查看 # v2 public api [root@controller1 ~]# openstack endpoint create --region RegionOne volumev2 public http://10.29.32.10:8776/v2/%\(project_id\)s +--------------+------------------------------------------+ | Field | Value | +--------------+------------------------------------------+ | enabled | True | | id | 179c7ea65827475cad3c20a82c067a51 | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | 15d869d2ffd5479797059f5300c5a006 | | service_name | cinderv2 | | service_type | volumev2 | | url | http://10.29.32.10:8776/v2/%(project_id)s | +--------------+------------------------------------------+ # v2 internal api [root@controller1 ~]# openstack endpoint create --region RegionOne volumev2 internal http://10.29.32.10:8776/v2/%\(project_id\)s +--------------+------------------------------------------+ | Field | Value | +--------------+------------------------------------------+ | enabled | True | | id | 185d9ba1d40d4c599f85e5a9728e9345 | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | 15d869d2ffd5479797059f5300c5a006 | | service_name | cinderv2 | | service_type | volumev2 | | url | http://10.29.32.10:8776/v2/%(project_id)s | +--------------+------------------------------------------+ # v2 admin api [root@controller1 ~]# openstack endpoint create --region RegionOne volumev2 admin http://10.29.32.10:8776/v2/%\(project_id\)s +--------------+------------------------------------------+ | Field | Value | +--------------+------------------------------------------+ | enabled | True | | id | 7923b1b2b8a840429cf765475d5211d3 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | 15d869d2ffd5479797059f5300c5a006 | | service_name | cinderv2 | | service_type | volumev2 | | url | http://10.29.32.10:8776/v2/%(project_id)s | +--------------+------------------------------------------+ # v3 public api [root@controller1 ~]# openstack endpoint create --region RegionOne volumev3 public http://10.29.32.10:8776/v3/%\(project_id\)s +--------------+------------------------------------------+ | Field | Value | +--------------+------------------------------------------+ | enabled | True | | id | ba35bb11b5e743e0bae7890dd0193179 | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | 700a2059cf874b78918c580f4a4a397e | | service_name | cinderv3 | | service_type | volumev3 | | url | http://10.29.32.10:8776/v3/%(project_id)s | +--------------+------------------------------------------+ # v3 internal api [root@controller1 ~]# openstack endpoint create --region RegionOne volumev3 internal http://10.29.32.10:8776/v3/%\(project_id\)s +--------------+------------------------------------------+ | Field | Value | +--------------+------------------------------------------+ | enabled | True | | id | 55c818f6799545d083f09434b17b39b9 | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | 700a2059cf874b78918c580f4a4a397e | | service_name | cinderv3 | | service_type | volumev3 | | url | http://10.29.32.10:8776/v3/%(project_id)s | +--------------+------------------------------------------+ # v3 admin api [root@controller1 ~]# openstack endpoint create --region RegionOne volumev3 admin http://10.29.32.10:8776/v3/%\(project_id\)s +--------------+------------------------------------------+ | Field | Value | +--------------+------------------------------------------+ | enabled | True | | id | bb69148e68ad4c78b2654e8808704fc2 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | 700a2059cf874b78918c580f4a4a397e | | service_name | cinderv3 | | service_type | volumev3 | | url | http://10.29.32.10:8776/v3/%(project_id)s | +--------------+------------------------------------------+ ``` ## 9.3 安装cinder ``` # 在全部控制节点安装cinder服务,以controller1节点为例 # centos8同 [root@controller1 ~]# yum install openstack-cinder ``` ## 9.4 配置cinder.conf ``` # 在全部控制节点操作,以controller1节点为例; # 注意”my_ip”参数,根据节点修改; # 注意cinder.conf文件的权限:root:cinder [root@controller1 ~]# cp /etc/cinder/cinder.conf /etc/cinder/cinder.conf.bak [root@controller1 ~]# egrep -v "^$|^#" /etc/cinder/cinder.conf [DEFAULT] debug = False log_dir = /var/log/cinder use_forwarded_for = true use_stderr = False my_ip = 10.29.32.7 osapi_volume_workers = 16 glance_api_servers = http://10.29.32.10:9292 glance_num_retries = 3 glance_api_version = 2 glance_ca_certificates_file = os_region_name = RegionOne osapi_volume_listen = 10.29.32.7 osapi_volume_listen_port = 8776 api_paste_config = /etc/cinder/api-paste.ini auth_strategy = keystone transport_url = rabbit://openstack:password@10.29.32.7:5672,openstack:password@10.29.32.8:5672,openstack:password@10.29.32.9:5672// no_snapshot_gb_quota = true [oslo_middleware] enable_proxy_headers_parsing = True [nova] interface = internal auth_url = http://10.29.32.10:35357 auth_type = password project_domain_id = default user_domain_id = default region_name = RegionOne project_name = service username = nova password = novapassword [database] connection = mysql+pymysql://cinder:cinderpassword@10.29.32.10:3306/cinder max_retries = -1 [keystone_authtoken] www_authenticate_uri = http://10.29.32.10:5000 auth_url = http://10.29.32.10:35357 auth_type = password project_domain_id = default user_domain_id = default project_name = service username = cinder password = cinderpassword memcached_servers = 10.29.32.7:11211,10.29.32.8:11211,10.29.32.9:11211 [oslo_concurrency] lock_path = /var/lib/cinder/tmp [privsep_entrypoint] helper_command = sudo cinder-rootwrap /etc/cinder/rootwrap.conf privsep-helper --config-file /etc/cinder/cinder.conf [coordination] ``` ## 9.5 配置nova.conf ``` # 在全部控制节点操作,以controller1节点为例; # 配置只涉及nova.conf的[cinder]字段; # 加入对应region [root@controller1 ~]# vim /etc/nova/nova.conf [cinder] catalog_info = volumev3:cinderv3:internalURL os_region_name = RegionOne auth_url = http://10.29.32.10:35357 auth_type = password project_domain_name = Default user_domain_id = default project_name = service username = cinder password = cinderpassword ``` ## 9.6 同步cinder数据库 ``` # 任意控制节点操作; # 忽略部分“recation”信息 [root@controller1 ~]# su -s /bin/sh -c "cinder-manage db sync" cinder #验证 [root@controller1 ~]# mysql -h controller -ucinder -pcinder -e "use cinder;show tables;" ``` ## 9.7 启动服务 ``` # 全部控制节点操作; # 变更nova配置文件,首先需要重启nova服务 [root@controller1 ~]# systemctl restart openstack-nova-api.service [root@controller1 ~]# systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service [root@controller1 ~]# systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service ``` ## 9.8 验证 ``` [root@controller1 ~]# . admin-openrc # 查看agent服务; # 或:cinder service-list [root@controller1 ~]# openstack volume service list +------------------+------------------+------+---------+-------+----------------------------+ | Binary | Host | Zone | Status | State | Updated At | +------------------+------------------+------+---------+-------+----------------------------+ | cinder-scheduler | controller1.sysit.cn | nova | enabled | up | 2018-08-15T06:28:23.000000 | | cinder-scheduler | controller2.sysit.cn | nova | enabled | up | 2018-08-15T06:28:23.000000 | | cinder-scheduler | controller3.sysit.cn | nova | enabled | up | 2018-08-15T06:28:23.000000 | +------------------+------------------+------+---------+-------+----------------------------+ ``` ## 9.9 设置pcs资源 ``` # 在任意控制节点操作; # 添加资源cinder-api与cinder-scheduler [root@controller1 ~]# pcs resource create openstack-cinder-api systemd:openstack-cinder-api --clone interleave=true [root@controller1 ~]#pcs resource create openstack-cinder-scheduler systemd:openstack-cinder-scheduler --clone interleave=true [root@controller1 ~]# pcs resource vip (ocf::heartbeat:IPaddr2): Started controller1 Clone Set: lb-haproxy-clone [lb-haproxy] Started: [ controller1 ] Stopped: [ controller2 controller3 ] Clone Set: openstack-keystone-clone [openstack-keystone] Started: [ controller1 controller3 ] Stopped: [ controller2 ] Clone Set: openstack-glance-api-clone [openstack-glance-api] Started: [ controller1 controller2 controller3 ] Clone Set: openstack-glance-registry-clone [openstack-glance-registry] Started: [ controller1 controller2 controller3 ] Clone Set: openstack-nova-api-clone [openstack-nova-api] Started: [ controller1 controller2 controller3 ] Clone Set: openstack-nova-consoleauth-clone [openstack-nova-consoleauth] Started: [ controller1 controller2 controller3 ] Clone Set: openstack-nova-scheduler-clone [openstack-nova-scheduler] Started: [ controller1 controller2 controller3 ] Clone Set: openstack-nova-conductor-clone [openstack-nova-conductor] Started: [ controller1 controller2 controller3 ] Clone Set: openstack-nova-novncproxy-clone [openstack-nova-novncproxy] Started: [ controller1 controller2 controller3 ] Clone Set: neutron-server-clone [neutron-server] Started: [ controller1 controller2 controller3 ] Clone Set: neutron-linuxbridge-agent-clone [neutron-linuxbridge-agent] Started: [ controller1 controller2 controller3 ] Clone Set: neutron-l3-agent-clone [neutron-l3-agent] Started: [ controller1 controller2 controller3 ] Clone Set: neutron-dhcp-agent-clone [neutron-dhcp-agent] Started: [ controller1 controller2 controller3 ] Clone Set: neutron-metadata-agent-clone [neutron-metadata-agent] Started: [ controller1 controller2 controller3 ] Clone Set: openstack-cinder-api-clone [openstack-cinder-api] Started: [ controller1 controller2 controller3 ] Clone Set: openstack-cinder-scheduler-clone [openstack-cinder-scheduler] Started: [ controller1 controller2 controller3 ] ``` 如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作! 赞赏支持