OpenStack安装(六)-Cinder模块

一、安装Cinder前的准备

1. 为Cinder创建数据库(在控制节点)

提示:以下操作在控制节点完成,为块存储服务创建数据库、服务认证和API端点

  1. 使用数据库客户端,以root用户连接到数据库中:mysql -u root -p
  2. 创建Cinder数据库:CREATE DATABASE cinder;
  3. 为Cinder用户授予数据库权限:
    GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'CINDER_DBPASS';
    GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'CINDER_DBPASS';

2. 创建Cinder的身份认证证书

  1. 加载admin用户的客户端脚本:source admin-openrc.sh
  2. 创建cinder用户:openstack user create --password-prompt cinder
  3. 将admin角色添加给cinder用户:openstack role add --project service --user cinder admin
  4. 创建cinder的服务实体(volume和volumev2两个服务实体):
    openstack service create --name cinder --description "OpenStack Block Storage" volume
    openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2
  5. 创建计算服务的API endpoint(volume和volumev2两个端点:
    openstack endpoint create --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 volume
    openstack endpoint create --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 volumev2

二、在控制节点上安装和配置Cinder

1. 安装Cinder

  1. 安装Cinder:apt-get install cinder-api cinder-scheduler python-cinderclient

2. 配置Cinder

编辑文件:/etc/cinder/cinder.conf
小助手:删除#和空格的命令:cat file | grep -v '^#' | grep -v '^$' > newfile

  1. 修改[database]部分,配置数据库的连接:connection = mysql://cinder:CINDER_DBPASS@controller/cinder
    记得密码替换为自己设置密码,这是mysql的密码,并非cinder用户的密码

  2. 修改[DEFAULT]和[oslo_messaging_rabbit]两部分, 配置RabbitMQ消息队列的访问:

    rpc_backend = rabbit
    
    rabbit_host = controller
    rabbit_userid = openstack
    rabbit_password = RABBIT_PASS
    
  3. 在[DEFAULT]和[keystone_authtoken]两部分,配置身份认证服务的访问:

    auth_strategy = keystone
    

    注意:修改[keystone_authtoken]部分要注释掉本部分其他的参数

    auth_uri = http://controller:5000
    auth_url = http://controller:35357
    auth_plugin = password
    project_domain_id = default
    user_domain_id = default
    project_name = service
    username = cinder
    password = CINDER_PASS
    
  4. 修改[DEFAULT]部分的my_ip参数,配置控制节点的管理IP地址:

    my_ip = 10.0.0.11
    
  5. 修改[oslo_concurrency]部分,配置锁路径:

    lock_path = /var/lock/cinder
    
  6. 可选:在[DEFAULT]部分启用日志信息详细记录:

    verbose = True
    

3. 配置Cinder数据库

  1. 为块存储服务数据库添加数据:su -s /bin/sh -c "cinder-manage db_sync" cinder

4. 完成在控制节点上安装和配置Cinder

  1. 重启块存储服务Cinder:service cinder-scheduler restart service cinder-api restart
  2. 删除ubuntu默认创建的SQLite数据库:rm -f /var/lib/cinder/cinder.sqlite

三、在块存储节点上安装和配置Cinder

1. 配置块存储的操作系统环境

编辑文件:/etc/hosts

  1. 配置管理接口:IP地址:10.0.0.41和10.0.2.41

  2. 配置主机名:block1

  3. 将blcok主机的/etc/hosts内容同步到其他所有节点:``

  4. 为主机添加新的磁盘,并创建分区:fdisk /dev/sdb

  5. 安装LVM包:apt-get install lvm2

  6. 配置LVM的物理卷:pvcreate /dev/sdb1

  7. 创建LVM的卷组cinder-volumes:vgcreate cinder-volumes /dev/sdb1

  8. 配置LVM仅仅扫描含有cinder-volume的卷组,编辑/etc/lvm/lvm.conf:
    在devices部分,添加一个筛选器,仅仅允许/dev/sdb设备并拒绝所有其他设备:

    devices {
    ...
    filter = [ "a/sdb/", "r/.*/"]
    
  9. 检查过滤器是否起作用:vgs -vvvv

2. 安装Cinder(在block1节点上)

  1. 安装Cinder:apt-get install -y cinder-volume python-mysqldb

3. 配置Cinder

编辑Cinder的配置文件:/etc/cinder/cinder.conf
小助手:删除#和空格的命令:cat file | grep -v '^#' | grep -v '^$' > newfile

  1. 在[database]部分,配置数据库访问:

    connection = mysql://cinder:CINDER_DBPASS@controller/cinder
    
  2. 在[DEFAULT]和[oslo_messaging_rabbit]两部分, 配置RabbitMQ消息队列的访问:

    rpc_backend = rabbit
    
    rabbit_host = controller
    rabbit_userid = openstack
    rabbit_password = RABBIT_PASS
    
  3. 在[DEFAULT]和[keystone_authtoken]两部分,配置身份认证服务的访问:

    auth_strategy = keystone
    

    注意:修改[keystone_authtoken]部分要注释掉本部分其他的参数

    auth_uri = http://controller:5000
    auth_url = http://controller:35357
    auth_plugin = password
    project_domain_id = default
    user_domain_id = default
    project_name = service
    username = cinder
    password = CINDER_PASS
    
  4. 修改[DEFAULT]部分的my_ip参数,配置块存储节点的管理IP地址:

    my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS(10.0.0.41)
    
  5. 在[lvm]部分,配置LVM驱动,卷组,iscsi的协议和helper:

    volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
    volume_group = cinder-volumes
    iscsi_protocol = iscsi
    iscsi_helper = tgtadm
    
  6. 在[DEFAULT]部分,启用LVM作为后端存储系统:

    enabled_backends = lvm
    
  7. 在[DEFAULT]部分,配置镜像服务运行的节点:

    glance_host = controller
    
  8. 在[oslo_concurrency]部分,配置锁路径:

    lock_path = /var/lock/cinder
    
  9. 可选:在[DEFAULT]部分启用日志信息详细记录:

    verbose = True
    

4. 完成安装和配置Cinder

  1. 重启块存储服务Cinder:service tgt restart service cinder-volume restart
  2. 删除ubuntu默认创建的SQLite数据库:rm -f /var/lib/cinder/cinder.sqlite

四、校验Cinder的安装

1. 校验Cinder的安装

提示:在控制节点上进行校验,尝试创建一个卷

  1. 在admin-openrc.sh和demo-openrc.sh两个脚本里添加块存储的客户端使用API v2.0:
    echo "export OS_VOLUME_API_VERSION=2" | tee -a admin-openrc.sh demo-openrc.sh
  2. 加载admin客户端脚本:source admin-openrc.sh
  3. 检查块存储服务启动的服务组件:cinder service-list
    应该有两个服务:controller和block1@lvm
  4. 加载demo脚本:source demo-openrc.sh
  5. 创建1GB的一个卷:cinder create --name demo-volume1 1
  6. 创建卷是否创建成功,检查状态是否为可用,否则查看日志文件/var/log/cinder:cinder list

2. 将卷添加到实例中

  1. 查看现有的实例,注意查看实例名和确保实例状态是active:nova list
  2. 查看可用的卷,注意查看卷ID:nova volume-list
  3. 查看连接实例的VNC URL:nova get-vnc-console demo-instance1 novnc
  4. 在浏览器中连接实例
  5. 查看实例中的现有卷:sudo fdisk -l
  6. 将查看到的卷添加到实例中:nova volume-attach demo-instance1 158bea89-07db-4ac2-8115-66c0d6a4bb48
  7. 查看卷的状态,status应该是in-use:nova volume-list
  8. 在浏览器中连接实例
  9. 在实例中验证卷是否添加到实例中:sudo fdisk -l

你可能感兴趣的:(OpenStack安装(六)-Cinder模块)