鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

安装配置并验证Cinder

Cinder块存储,为虚拟机实例提供持久化存储。它的存在简化了块存储设备的创建和管理。

创建Cinder数据库

在控制节点执行以下操作。

  1. 以root用户访问数据库。
    1
    mysql -u root -p
    
  2. 创建Cinder数据库,并授予对Cinder数据库的适当访问权限。
    1
    2
    3
    4
    CREATE DATABASE cinder;
    GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY '<PASSWORD>';
    GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY '<PASSWORD>';
    exit
    

    为方便理解,本文将涉及到的密码全部以“<PASSWORD>”代替,请用户根据实际情况进行修改。此处<PASSWORD>为cinder数据库的密码。

  3. 使用admin用户登录OpenStack命令行,创建服务凭据和Cinder用户。
    1
    2
    source /etc/keystone/admin-openrc
    openstack user create --domain default --password-prompt cinder
    
  4. 将admin角色添加到Cinder用户。
    1
    openstack role add --project service --user cinder admin
    
  5. 创建cinderv2和cinderv3服务实体。
    1
    2
    openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2
    openstack service create --name cinderv3 --description "OpenStack Block Storage" volumev3
    

    Cinder服务需要创建两个服务实体。

  6. 创建Block Storage服务API端点。
    1
    2
    3
    openstack endpoint create --region RegionOne volumev2 public http://controller:8776/v2/%\(project_id\)s
    openstack endpoint create --region RegionOne volumev2 internal http://controller:8776/v2/%\(project_id\)s
    openstack endpoint create --region RegionOne volumev2 admin http://controller:8776/v2/%\(project_id\)s
    

    1
    2
    3
    openstack endpoint create --region RegionOne volumev3 public http://controller:8776/v3/%\(project_id\)s
    openstack endpoint create --region RegionOne volumev3 internal http://controller:8776/v3/%\(project_id\)s
    openstack endpoint create --region RegionOne volumev3 admin http://controller:8776/v3/%\(project_id\)s
    

安装和配置Cinder

在控制节点执行以下操作。

  1. 安装软件包。
    1
    yum -y install openstack-cinder
    
  2. 编辑配置文件“/etc/cinder/cinder.conf”。
    1
    vim /etc/cinder/cinder.conf
    

    并且完成以下操作:

    1. 配置数据库访问,替换<PASSWORD>为合适的密码。
      1
      2
      [database]
      connection = mysql+pymysql://cinder:<PASSWORD>@controller/cinder
      
    2. 配置RabbitMQ消息队列访问,替换<PASSWORD>为合适的密码。
      1
      2
      [DEFAULT]
      transport_url = rabbit://openstack:<PASSWORD>@controller
      
    3. 配置身份服务访问,替换<PASSWORD>为cinder在Identity服务中为用户选择的密码。

      DEAULT模块:

      1
      2
      [DEFAULT]
      auth_strategy = keystone
      
      keystone_authtoken模块:
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      [keystone_authtoken]
      www_authenticate_uri = http://controller:5000
      auth_url = http://controller:5000
      memcached_servers = controller:11211
      auth_type = password
      project_domain_name = default
      user_domain_name = default
      project_name = service
      username = cinder
      password = <PASSWORD>
      
    4. 配置my_ip选项以使用控制器节点的管理接口IP地址。
      1
      2
      [DEFAULT]
      my_ip = 172.168.201.11
      
    5. 配置锁定路径。
      1
      2
      [oslo_concurrency]
      lock_path = /var/lib/cinder/tmp
      
  3. 填充块存储数据库。
    1
    su -s /bin/sh -c "cinder-manage db sync" cinder
    

    请忽略此处输出中的任何abandoned弃用消息,由于OpenStack项目迭代较快,在Stein版本已经弃用了某些内容,这个命令行会输出一些弃用信息,属于正常的输出。

配置计算使用块存储

在控制节点执行以下操作。

  1. 编辑“/etc/nova/nova.conf”配置文件。
    1
    vim /etc/nova/nova.conf
    
  2. 完成以下操作:
    1
    2
    [cinder]
    os_region_name = RegionOne
    

完成控制节点的安装

在控制节点执行以下操作。

  1. 重新启动Compute API服务。
    1
    systemctl restart openstack-nova-api.service
    
  2. 启动Block Storage服务并将其配置为在系统引导时启动。
    1
    2
    systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
    systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
    

  3. 验证控制节点的安装,state为up,即为状态正常。
    1
    openstack volume service list
    

安装和配置LVM卷

在存储节点执行以下操作。

  1. 安装LVM包。
    1
    yum -y install lvm2 device-mapper-persistent-data
    

    一些发行版默认包含LVM,不需要安装。

  2. 启动LVM元数据服务并将其配置为在系统引导时启动。
    1
    2
    systemctl enable lvm2-lvmetad.service
    systemctl start lvm2-lvmetad.service
    
  3. 创建LVM物理卷“/dev/sdb”。
    1
    pvcreate /dev/sdb
    
  4. 创建LVM卷组“cinder-volumes”。
    1
    vgcreate cinder-volumes /dev/sdb
    

在计算节点执行以下操作。

  1. 编辑配置文件“/etc/lvm/lvm.conf”。
    1
    vim /etc/lvm/lvm.conf
    
  2. 在devices部分中,添加一个接受“/dev/sdb”设备的过滤器并拒绝所有其他设备。
    1
    2
    devices {
    filter = [ "a/sda/", "a/sdb/", "r/.*/"]
    

    filter过滤器阵列中的每个项目开头为“a”或者“r”,用于接受或用于拒绝某个设备,如果存储节点在操作系统磁盘上使用LVM,则还必须将关联的系统盘设备添加到过滤器。同样,如果计算节点在操作系统磁盘上使用LVM,也需要修改这些节点上“/etc/lvm/lvm.conf”文件中的过滤器以包括操作系统磁盘。例如,如果“/dev/sda”设备包含操作系统,则需要将“sda”添加到过滤器。

安装和配置存储节点

在存储节点执行以下操作。

  1. 安装软件包。
    1
    yum -y install openstack-cinder targetcli python-keystone
    
  2. 编辑配置文件“/etc/cinder/cinder.conf”。
    1
    vim /etc/cinder/cinder.conf
    

    并完成以下操作:

    1. 配置数据库访问。
      1
      2
      [database]
      connection = mysql+pymysql://cinder:<PASSWORD>@controller/cinder
      

      <PASSWORD>为Block Storage数据库选择的密码。

    2. 配置RabbitMQ消息队列访问。
      1
      2
      [DEFAULT]
      transport_url = rabbit://openstack:<PASSWORD>@controller
      

      <PASSWORD>为openstack账户选择的密码rabbitmq。

    3. 配置身份服务访问。
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      [DEFAULT]
      auth_strategy = keystone
      [keystone_authtoken]
      www_authenticate_uri = http://controller:5000
      auth_url = http://controller:5000
      memcached_servers = controller:11211
      auth_type = password
      project_domain_name = default
      user_domain_name = default
      project_name = service
      username = cinder
      password = <PASSWORD>
      

      <PASSWORD>为Cinder在Identity服务中为用户选择的密码 。

    4. 配置my_ip为存储节点上管理网络接口的IP地址。
      1
      2
      [DEFAULT]
      my_ip = 172.168.201.12
      
    5. 新增[lvm]配置,使用LVM驱动程序,cinder-volumes卷组, iSCSI 协议和相应的iSCSI服务配置LVM后端。
      1
      2
      3
      4
      5
      [lvm]
      volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
      volume_group = cinder-volumes
      target_protocol = iscsi
      target_helper = lioadm
      
    6. 启用LVM后端。
      1
      2
      [DEFAULT]
      enabled_backends = lvm
      
    7. 配置Image服务API的位置。
      1
      2
      [DEFAULT]
      glance_api_servers = http://controller:9292
      
    8. 配置锁定路径。
      1
      2
      [oslo_concurrency]
      lock_path = /var/lib/cinder/tmp
      

完成安装

在存储节点系以下操作。

启动Block Storage卷服务(包括其依赖项)并将其配置为在系统引导时启动。

1
2
systemctl enable openstack-cinder-volume.service target.service
systemctl start openstack-cinder-volume.service target.service

验证

在控制节点执行以下操作。

  1. 使用admin用户登录OpenStack命令行。
    1
    source /etc/keystone/admin-openrc
    
  2. 列出服务组件以验证每个进程的成功启动。
    1
    openstack volume service list
    

Cinder常用命令

命令行

功能描述

openstack volume create --size 1 volume1

创建存储卷

openstack volume list

显示存储卷列表

openstack volume delete VOLNAME-OR-ID

删除所选存储卷

openstack volume snapshot create --volume VOLNAME-OR-ID SNAPSHOT-VOLNAME

创建存储卷 快照

openstack volume snapshot list

显示存储卷快照

nova volume-attach VM_ID VOLUME_ID /dev/vdb

虚拟机挂载卷

nova volume-detach VM_ID VOLUME_ID

虚拟机卸载卷