• CentOS7安装OpenStack-09.安装Cinder存储服务组件


    9.0.Cinder概述

    • OpenStack块存储服务(cinder)为虚拟机添加持久的存储,块存储提供一个基础设施为了管理卷,以及和OpenStack计算服务交互,为实例提供卷。此服务也会激活管理卷的快照和卷类型的功能。

    块存储服务通常包含下列组件:

    1. cinder-api:接受API请求,并将其路由到``cinder-volume``执行。
    2. cinder-volume:与块存储服务和例如``cinder-scheduler``的进程进行直接交互。它也可以与这些进程通过一个消息队列进行交互。``cinder-volume``服务响应送到块存储服务的读写请求来维持状态。它也可以和多种存储提供者在驱动架构下进行交互。
    3. cinder-scheduler守护进程:选择最优存储提供节点来创建卷。其与``nova-scheduler``组件类似。
    4. cinder-backup守护进程:``cinder-backup``服务提供任何种类备份卷到一个备份存储提供者。就像``cinder-volume``服务,它与多种存储提供者在驱动架构下进行交互。
    5. 消息队列:在块存储的进程之间路由信息。

    9.1.在控制节点安装cinder存储服务

    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';
    flush privileges;

    2)在keystone上面注册cinder服务(创建服务证书)

    # 在keystone上创建cinder用户

    cd /server/tools
    source keystone-admin-pass.sh
    openstack user create --domain default --password=cinder cinder
    openstack user list

    # 在keystone上将cinder用户配置为admin角色并添加进service项目,以下命令无输出

    openstack role add --project service --user cinder admin

    # 创建cinder服务的实体

    openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2
    openstack service create --name cinderv3 --description "OpenStack Block Storage" volumev3
    openstack service list

    # 创建cinder服务的API端点(endpoint)

    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
    
    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
    openstack endpoint list

    3)安装cinder相关软件包

    yum install openstack-cinder -y

    4)快速修改cinder配置

    openstack-config --set  /etc/cinder/cinder.conf database connection  mysql+pymysql://cinder:cinder@controller/cinder
    openstack-config --set  /etc/cinder/cinder.conf DEFAULT transport_url  rabbit://openstack:openstack@controller
    openstack-config --set  /etc/cinder/cinder.conf DEFAULT auth_strategy  keystone 
    openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken auth_uri  http://controller:5000
    openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken auth_url  http://controller:5000
    openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken memcached_servers  controller:11211
    openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken auth_type  password
    openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken project_domain_name  default 
    openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken user_domain_name  default
    openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken project_name  service 
    openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken username  cinder
    openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken password  cinder
    openstack-config --set  /etc/cinder/cinder.conf DEFAULT my_ip 192.168.182.143
    openstack-config --set  /etc/cinder/cinder.conf oslo_concurrency lock_path  /var/lib/nova/tmp 

    # 检查生效的cinder配置

    egrep -v "^#|^$" /etc/cinder/cinder.conf
    grep '^[a-z]' /etc/cinder/cinder.conf

    5)同步cinder数据库

    su -s /bin/sh -c "cinder-manage db sync" cinder

    # 验证数据库

    mysql -h192.168.182.143 -ucinder -pcinder -e "use cinder;show tables;"

    6)修改nova配置文件

    # 配置nova调用cinder服务

    openstack-config --set  /etc/nova/nova.conf cinder os_region_name  RegionOne

    # 检查生效的nova配置

    grep '^[a-z]' /etc/nova/nova.conf |grep os_region_name

    7)重启nova-api服务

    systemctl restart openstack-nova-api.service
    systemctl status openstack-nova-api.service

    8)启动cinder存储服务

    systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
    systemctl status openstack-cinder-api.service openstack-cinder-scheduler.service
    
    systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
    systemctl list-unit-files |grep openstack-cinder |grep enabled

    # 至此,控制端的cinder服务安装完毕,在dashboard上面可以看到项目目录中多了一个卷服务

    # 接下来安装块存储节点服务器storage node

    9.2.在存储节点服务器安装cinder存储服务

    # 存储节点建议单独部署服务器(最好是物理机),测试时也可以部署在控制节点或者计算节点
    # 在本文,存储节点使用LVM逻辑卷提供服务,需要提供一块空的磁盘用以创建LVM逻辑卷
    # 我这里在VMware虚拟机增加一块20GB的磁盘

    1)安装LVM相关软件包

    yum install lvm2 device-mapper-persistent-data -y

    2)启动LVM的metadata服务并配置开机自启动

    systemctl start lvm2-lvmetad.service
    systemctl status lvm2-lvmetad.service
    
    systemctl enable lvm2-lvmetad.service
    systemctl list-unit-files |grep lvm2-lvmetad |grep enabled

    3)创建LVM逻辑卷

    # 检查磁盘状态

    fdisk -l

    如果看不到/dev/sdb设备,则重启虚拟机;或者执行下面命令重新扫描一下磁盘,注意查看/sys/class/scsi_host/目录下有几个host文件

    echo '- - -' > /sys/class/scsi_host/host{0,1,2}/scan

    # 创建LVM 物理卷 /dev/sdb

    pvcreate /dev/sdb

    # 创建 LVM 卷组 cinder-volumes,块存储服务会在这个卷组中创建逻辑卷

    vgcreate cinder-volumes /dev/sdb

    4)配置过滤器,防止系统出错

    # 默认只会有openstack实例访问块存储卷组,不过,底层的操作系统也会管理这些设备并尝试将逻辑卷与系统关联。
    # 默认情况下LVM卷扫描工具会扫描整个/dev目录,查找所有包含lvm卷的块存储设备。如果其他项目在某个磁盘设备sda,sdc等上使用了lvm卷,那么扫描工具检测到这些卷时会尝试缓存这些lvm卷,可能导致底层操作系统或者其他服务无法正常调用他们的lvm卷组,从而产生各种问题,需要手动配置LVM,让LVM卷扫描工具只扫描包含"cinder-volume"卷组的设备/dev/sdb,我这边磁盘分区都是格式化的手工分区,目前不存在这个问题,以下是配置演示

    vim /etc/lvm/lvm.conf
    -----------------------------
    devices {
    filter = [ "a/sdb/", "r/.*/"]
    }
    -----------------------------

    # 配置规则:

    # 每个过滤器组中的元素都以a开头accept接受,或以 r 开头reject拒绝,后面连接设备名称的正则表达式规则。
    # 过滤器组必须以"r/.*/"结束,过滤所有保留设备。
    # 可以使用命令:vgs -vvvv来测试过滤器。

    # 注意:

    # 如果存储节点的操作系统磁盘/dev/sda使用的是LVM卷组,也需要将该设备添加到过滤器中,例如:
    filter = [ "a/sda/", "a/sdb/", "r/.*/"]
    # 如果计算节点的操作系统磁盘/dev/sda使用的是LVM卷组,也需要修改这些节点的/etc/lvm/lvm.conf,在过滤器中增加该类型的磁盘设备,例如:
    filter = [ "a/sda/", "r/.*/"]

    5)在存储节点安装配置cinder组件

    yum install openstack-cinder targetcli python-keystone -y

    6)在存储节点快速修改cinder配置

    openstack-config --set  /etc/cinder/cinder.conf database connection  mysql+pymysql://cinder:cinder@controller/cinder
    openstack-config --set  /etc/cinder/cinder.conf DEFAULT transport_url  rabbit://openstack:openstack@controller
    openstack-config --set  /etc/cinder/cinder.conf DEFAULT auth_strategy  keystone 
    openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken www_authenticate_uri  http://controller:5000
    openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken auth_url  http://controller:5000
    openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken memcached_servers  controller:11211
    openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken auth_type  password
    openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken project_domain_name  default 
    openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken user_domain_name  default
    openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken project_name  service 
    openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken username  cinder
    openstack-config --set  /etc/cinder/cinder.conf keystone_authtoken password  cinder
    openstack-config --set  /etc/cinder/cinder.conf DEFAULT my_ip 192.168.182.143
    openstack-config --set  /etc/cinder/cinder.conf lvm volume_driver cinder.volume.drivers.lvm.LVMVolumeDriver
    openstack-config --set  /etc/cinder/cinder.conf lvm volume_group cinder-volumes
    openstack-config --set  /etc/cinder/cinder.conf lvm iscsi_protocol  iscsi
    openstack-config --set  /etc/cinder/cinder.conf lvm iscsi_helper  lioadm
    openstack-config --set  /etc/cinder/cinder.conf DEFAULT enabled_backends  lvm
    openstack-config --set  /etc/cinder/cinder.conf DEFAULT glance_api_servers  http://controller:9292
    openstack-config --set  /etc/cinder/cinder.conf oslo_concurrency lock_path  /var/lib/cinder/tmp

    # 如果存储节点是双网卡,选项my_ip需要配置存储节点的管理IP,否则配置本机IP
    # 检查生效的cinder配置

    egrep -v "^#|^$" /etc/cinder/cinder.conf
    grep '^[a-z]' /etc/cinder/cinder.conf

    7)在存储节点启动cinder服务并配置开机自启动

    systemctl start openstack-cinder-volume.service target.service
    systemctl status openstack-cinder-volume.service target.service
    
    systemctl enable openstack-cinder-volume.service target.service
    systemctl list-unit-files |grep openstack-cinder |grep enabled
    systemctl list-unit-files |grep target.service |grep enabled

    # 至此,在存储节点安装cinder服务就完成了

    9.3.在控制节点进行验证

    1)获取管理员变量

    cd /server/tools/
    source keystone-admin-pass.sh 

    2)查看存储卷列表

    openstack volume service list

    9.4.cinder云磁盘使用建议

    1)云磁盘可以进行磁盘迁移,扩容,缩容等操作,但不建议在生产环境进行尝试,测试环境可以尝试,但也要注意备份数据

    2)涉及重要数据的话尽量还是不使用云磁盘,而采用本地磁盘存储数据,如果出现问题至少各个磁盘数据是分开的,磁盘文件还在

    3)总的来说,使用openstack部署企业私有云,生产环境用本地磁盘就好,测试环境可以以尝试使用云磁盘

    ~~~cinder安装配置完成~~~

  • 相关阅读:
    python 发送邮件 email
    python 日志 logging
    python 判断当前环境是什么系统 platform 模块
    pandas to_excel 添加颜色
    Pandas excel 双标题 多级索引 层次化索引 MultiIndex
    windows10 安装 pyltp python3.6
    Python的内存管理
    pandas 中 DataFramt 改变 列的顺序
    元组
    基本语法
  • 原文地址:https://www.cnblogs.com/liugp/p/12491499.html
Copyright © 2020-2023  润新知