zoukankan      html  css  js  c++  java
  • Openstack块存储cinder安装配置

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

      

    参考安装文档https://docs.openstack.org/newton/zh_CN/install-guide-rdo/cinder.html

      块存储服务(cinder)为实例提供块存储。存储的分配和消耗是由块存储驱动器,或者多后端配置的驱动器决定的。还有很多驱动程序可用:NAS/SAN,NFS,ISCSI,Ceph等。

      

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

    cinder-api

    接受API请求,并将其路由到``cinder-volume``执行。

    cinder-volume

    与块存储服务和例如``cinder-scheduler``的进程进行直接交互。它也可以与这些进程通过一个消息队列进行交互。``cinder-volume``服务响应送到块存储服务的读写请求来维持状态。它也可以和多种存储提供者在驱动架构下进行交互。

    cinder-scheduler守护进程

    选择最优存储提供节点来创建卷。其与``nova-scheduler``组件类似。

    cinder-backup daemon

    ``cinder-backup``服务提供任何种类备份卷到一个备份存储提供者。就像``cinder-volume``服务,它与多种存储提供者在驱动架构下进行交互。

    消息队列
       在块存储的进程之间路由信息。
    安装配置控制节点

    PS:生产可以安装多个存储节点

    之前已经建立过数据库和用户

    安装软件包

    yum install openstack-cinder

     编辑 /etc/cinder/cinder.conf,同时完成如下动作:

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

    [database]
    connection = mysql+pymysql://cinder:cinder@192.168.0.112/cinder
    

    在``[DEFAULT]``部分,配置``RabbitMQ``消息队列访问权限:

    [DEFAULT]
    transport_url = rabbit://openstack:openstack@192.168.0.112
    

    在 “[DEFAULT]” 和 “[keystone_authtoken]” 部分,配置认证服务访问:

    [DEFAULT]
    auth_strategy = keystone
    
    [keystone_authtoken]
    auth_uri = http://192.168.0.112:5000
    auth_url = http://192.168.0.112:35357
    memcached_servers = 192.168.0.112:11211
    auth_type = password
    project_domain_name = Default
    user_domain_name = Default
    project_name = service
    username = cinder
    password = cinder
    

    PS:不按照官方安装文档配置my_Ip

    在 [oslo_concurrency] 部分,配置锁路径:

    [oslo_concurrency]
    ...
    lock_path = /var/lib/cinder/tmp
    

    过滤配置文件

    初始化块设备服务的数据库:

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

    有info信息没有waring及error信息

    验证数据库创建是否成功

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

    配置计算服务使用块设备存储

    编辑文件 /etc/nova/nova.conf 并添加如下到其中:

    [cinder]
    os_region_name = RegionOne
    

    重启计算API 服务:

     systemctl restart openstack-nova-api.service
    

    启动块设备存储服务,并将其配置为开机自启:

    systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
    systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
    

    监听端口为8776

    创建 cinder 和 cinderv2 服务实体:

    openstack service create --name cinder 
      --description "OpenStack Block Storage" volume
    

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

    创建块设备存储服务的 API 入口点:

    openstack endpoint create --region RegionOne 
      volume public http://192.168.0.112:8776/v1/%(tenant_id)s
      openstack endpoint create --region RegionOne 
      volume internal http://192.168.0.112:8776/v1/%(tenant_id)s
      openstack endpoint create --region RegionOne 
      volume admin http://192.168.0.112:8776/v1/%(tenant_id)s
    

    V2的

    openstack endpoint create --region RegionOne 
      volumev2 public http://192.168.0.112:8776/v2/%(tenant_id)s
      openstack endpoint create --region RegionOne 
      volumev2 internal http://192.168.0.112:8776/v2/%(tenant_id)s
      openstack endpoint create --region RegionOne 
      volumev2 admin http://192.168.0.112:8776/v2/%(tenant_id)s
    

    验证

    安装并配置一个存储节点(类似于计算节点)

    没有存储节点默认存储在计算节点的本地硬盘,目录为/var/lib/nova/instances

    本地硬盘的优势是性能好,缺点是不灵活

    本次试验还是安装在控制节点上面(对于cinder来说就是一个存储节点)

    安装支持的工具包:

    安装 LVM 包:

    yum -y install lvm2
    

    启动LVM的metadata服务并且设置该服务随系统启动:

    systemctl enable lvm2-lvmetad.service
    systemctl start lvm2-lvmetad.service
    

    关闭主机添加一块硬盘

    开机查看一下

    创建LVM 物理卷 /dev/sdb

    pvcreate /dev/sdb
    

    创建 LVM 卷组 cinder-volumes:(名称不能错因为配置需要使用此名称)

    vgcreate cinder-volumes /dev/sdb
    

     

    块存储服务会在这个卷组中创建逻辑卷

    创建完毕使用命令查看

    vgdisplay 
    

    只有实例可以访问块存储卷组。但是,底层的操作系统管理着与这些卷相关联的设备。默认情况下,LVM卷扫描工具会扫描``/dev`` 目录,查找包含卷的块存储设备。如果项目在他们的卷上使用了LVM,扫描工具便会在检测到这些卷时尝试缓存它们,这可能会在底层操作系统和项目卷上产生各种问题。所以您必须重新配置LVM,让它扫描仅包含``cinder-volume``卷组的设备。编辑``/etc/lvm/lvm.conf``文件并完成下面的操作:

    在``devices``部分,添加一个过滤器,只接受``/dev/sdb``设备,拒绝其他所有设备:

    devices {
    ...
    filter = [ "a/sdb/", "r/.*/"]
    

    如果您的存储节点在操作系统磁盘上使用了 LVM,您还必需添加相关的设备到过滤器中。例如,如果 /dev/sda 设备包含操作系统:

    把以上修改成

    filter = [ "a/sda/", "a/sdb/", "r/.*/"]
    

    安装并配置组件

    安装软件包:

    yum install openstack-cinder targetcli python-keystone
    

    编辑 /etc/cinder/cinder.conf(因为控制节点和存储节点在一台机器配置相同不需要再次配置数据库,消息队列,keystone认证等)

    在``[lvm]``部分中,配置LVM后端,包括LVM驱动,``cinder-volumes``卷组 ,iSCSI 协议和适当的 iSCSI服务。如果``[lvm]``部分不存在,则创建它:

    [lvm]
    volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
    volume_group = cinder-volumes
    iscsi_protocol = iscsi
    iscsi_helper = lioadm
    

    在文件末尾添加,其他存储设备也是差不多这样配置,之前驱动有所不同

    在 [DEFAULT] 部分,启用 LVM 后端:

    [DEFAULT]
    enabled_backends = lvm
    

    注意这是一个列表可以写多个用逗号分割

    在 [DEFAULT] 区域,配置镜像服务 API 的位置:

    [DEFAULT]
    ...
    glance_api_servers = http://192.168.0.112:9292
    

    在 [oslo_concurrency] 部分,配置锁路径:(前面已经配置)

    配置my_ip

    [DEFAULT]

    iscsi_ip_address = 192.168.0.112

    启动块存储卷服务及其依赖的服务,并将其配置为随系统启动:

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

    验证

    source admin-openstack 
    openstack volume service list
    

    PS:为了保证成功,同步一下时间

     也可以重启一下服务

     systemctl restart openstack-nova-api
    

      

     创建磁盘

     使用demo用户登录web界面

    在计算-卷-创建卷

    把硬盘挂在到云主机

    PS: 如果挂载出现问题可以查看日志/var/log/nova/nova-compute.log查找原因

       ssh登录到那台云主机查看

      

      可以正常格式化并且挂载mount

      挂载以后当着数据盘使用,如果系统盘出现问题可以把数据盘挂载到其他的主机上面

      

      

      和使用工有云是一样的

      PS:卷相当于一块网络硬盘(云硬盘),生产中一般使用本地硬盘作为系统盘,云硬盘作为数据盘。其实卷也可以作为系统盘,在创建主机的时候如下选择

      

      

      卷可以扩大

      

      

      在存储节点查看

      

       PS:生产可以使用ISCSI,NFS,GlusterFS,Ceph(建议使用GlusterFS测试建议使用ISCSI和NFS因为配置更加简单)

  • 相关阅读:
    使用IDEA进行远程调试
    看实习生需求文档有感
    企业应用系统设计分享PPT
    tmux/screen里面如何用鼠标滚轮来卷动窗口内容
    Error: cannot find a valid baseurl for repo: rpmfusion-free 解决办法
    pom中定义某jar包的依赖,但并不使用该jar包,那最后部署的应用中会有这个jar包么?
    U盘容量减少的解决办法
    使用注解属性绑定
    RESTful的理解
    Spring 文件上传功能
  • 原文地址:https://www.cnblogs.com/minseo/p/8504756.html
Copyright © 2011-2022 走看看