设为首页 收藏本站
查看: 1341|回复: 0

[经验分享] openstack-ocata-计算服务4

[复制链接]

尚未签到

发表于 2017-6-24 23:12:47 | 显示全部楼层 |阅读模式
一、  计算服务概览
        使用OpenStack计算服务来托管和管理云计算系统。OpenStack计算服务是基础设施即服务(IaaS)系统的主要部分,模块主要由Python实现。
    OpenStack计算组件请求OpenStack Identity服务进行认证;请求OpenStack Image服务提供磁盘镜像;为OpenStack dashboard提供用户与管理员接口。磁盘镜像访问限制在项目与用户上;配额以每个项目进行设定(例如,每个项目下可以创建多少实例)。OpenStack组件可以在标准硬件上水平大规模扩展,并且下载磁盘镜像启动虚拟机实例。

    OpenStack计算服务由下列组件所构成:
        nova-api 服务
            接收和响应来自最终用户的计算API请求。此服务支持OpenStack计算服务API,Amazon EC2 API,以及特殊的管理API用于赋予用户做一些管理的操作。它会强制实施一些规则,发起多数的编排活动,例如运行一个实例。
        nova-api-metadata 服务
            接受来自虚拟机发送的元数据请求。nova-api-metadata服务一般在安装nova-network服务的多主机模式下使用。更详细的信息,请参考OpenStack管理员手册中的链接`Metadata service <http://docs.openstack.org/admin-guide/compute-networking-nova.html#metadata-service>`__ in the OpenStack Administrator Guide。
        nova-compute服务
            一个持续工作的守护进程,通过Hypervior的API来创建和销毁虚拟机实例。
            例如:
            XenServer/XCP 的 XenAPI
            KVM 或 QEMU 的 libvirt
            VMware 的 VMwareAPI
            过程是蛮复杂的。最为基本的,守护进程同意了来自队列的动作请求,转换为一系列的系统命令如启动一个KVM实例,然后,到数据库中更新它的状态。
        nova-placement-api 服务
            跟踪每个提供者的库存和使用情况。see Placement API。
        nova-scheduler服务
            拿到一个来自队列请求虚拟机实例,然后决定那台计算服务器主机来运行它。
        nova-conductor模块
            媒介作用于nova-compute服务与数据库之间。它排除了由nova-compute服务对云数据库的直接访问。nova-conductor模块可以水平扩展。但是,不要将它部署在运行nova-compute服务的主机节点上。参考Configuration Reference Guide <http://docs.openstack.org/mitaka/config-reference/compute/conductor.html> 。
        nova-cert模块
            服务器守护进程向Nova Cert服务提供X509证书。用来为euca-bundle-image生成证书。仅仅是在EC2 API的请求中使用
        nova-consoleauth 守护进程
            授权控制台代理所提供的用户令牌。详情可查看``nova-novncproxy``和 nova-xvpvncproxy。该服务必须为控制台代理运行才可奏效。在集群配置中你可以运行二者中任一代理服务而非仅运行一个nova-consoleauth服务。更多关于nova-consoleauth的信息,请查看`About nova-consoleauth <http://docs.openstack.org/admin-guide/compute-remote-console-access.html#about-nova-consoleauth>。
        nova-novncproxy 守护进程
            提供一个代理,用于访问正在运行的实例,通过VNC协议,支持基于浏览器的novnc客户端。
        nova-spicehtml5proxy 守护进程
            提供一个代理,用于访问正在运行的实例,通过 SPICE 协议,支持基于浏览器的 HTML5 客户端。
        nova-xvpvncproxy 守护进程
            提供一个代理,用于访问正在运行的实例,通过VNC协议,支持OpenStack特定的Java客户端。
        The queue队列
             守护进程间传递信息的中心。通常用RabbitMQ实现,也可以使用另一个AMQP消息队列来实现,比如ZeroMQ。
        SQL database (SQL数据库)
            存储构建时和运行时的状态,为云基础设施,包括有:
                可用实例类型
                使用中的实例
                可用网络
                项目
            理论上,OpenStack计算可以支持任何和SQL-Alchemy所支持的后端数据库,通常使用SQLite3来做测试可开发工作,MySQL和PostgreSQL 作生产环境。
二、 安装并配置控制节点
    这个部分将描述如何在控制节点上安装和配置 Compute 服务,即 nova。
    1. 先决条件
    在安装和配置 Compute 服务前,你必须创建数据库服务的凭据以及 API endpoints。
        ①  为了创建数据库,必须完成这些步骤:
        mysql -u root -p
        create database nova_api;
        create database nova;
        create database nova_cell0;
        grant all privileges on nova_api.* to 'nova'@'localhost' identified by 'nova';
        grant all privileges on nova_api.* to 'nova'@'%' identified by 'nova';
        grant all privileges on nova.* to 'nova'@'localhost' identified by 'nova';
        grant all privileges on nova.* to 'nova'@'%' identified by 'nova';
        grant all privileges on nova_cell0.* to 'nova'@'localhost' identified by 'nova';
        grant all privileges on nova_cell0.* to 'nova'@'%' identified by 'nova';
        flush privileges ;
        exit
DSC0000.png


        ②  获得admin凭证来获取只有管理员能执行的命令的访问权限
        . admin-openrc
        ③  创建计算服务凭证
        创建nova用户:
        openstack user create --domain default --password-prompt nova
DSC0001.png


        给nova用户添加 admin 角色:
        openstack role add --project service --user nova admin
        创建nova服务实体
        openstack service create --name nova --description "OpenStack Computr" compute
DSC0002.png


        ④  创建计算API服务端点
        openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1
DSC0003.png


        openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1
DSC0004.png


        openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1
DSC0005.png


        ⑤  创建placement service的一个用户placement
        openstack user create --domain default --password-prompt placement
DSC0006.png


        ⑥  增加placement用户到service project和admin角色
        openstack role add --project service --user placement admin
        ⑦  创建placement API服务目录
        openstack service create --name placement --description "Placement API" placement
DSC0007.png


        ⑧  创建placement API 服务端点
        openstack endpoint create --region RegionOne placement public http://http://controller:8778
        openstack endpoint create --region RegionOne placement internal http://controller:8778
        openstack endpoint create --region RegionOne placement admin http://controller:8778
DSC0008.png    

  2. 安装并配置组件

        ①  安装数据包
            yum install openstack-nova-api openstack-nova-conductor   openstack-nova-console openstack-nova-novncproxy   openstack-nova-scheduler openstack-nova-placement-api
        ②  编辑/etc/nova/nova.conf文件完成以下操作。
            在[DEFAULT]部分下,只激活compute和metadata API
            [DEFAULT]
            enabled_apis = osapi_compute,metadata
            在[api_database]和[database]部分下,配置数据库连接
            [api_database]
            connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api
            [database]
            connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova
            在 “[DEFAULT]”部分,配置 “RabbitMQ” 消息队列访问:
            [DEFAULT]
            transport_url = rabbit://openstack:RABBIT_PASS@controller
            #RABBIT_PASS:也就是安装rabbitmq时候创建的openstack的用户名和密码

            在 “[api]” 和 “[keystone_authtoken]” 部分,配置认证服务访问:
            [api]
            auth_strategy = keystone
            [keystone_authtoken]
            auth_uri = http://controller:5000
            auth_url = http://controller:35357
            memcached_servers = controller:11211
            auth_type = password
            project_domain_name = default
            user_domain_name = default
            project_name = service
            username = nova
            password = NOVA_PASS
            在 [DEFAULT 部分,配置my_ip来使用控制节点的管理接口的IP 地址。
            [DEFAULT]
            my_ip = 10.0.0.11
            在 [DEFAULT] 部分,激活支持Networking 服务:
            [DEFAULT]
            use_neutron = True
            firewall_driver = nova.virt.firewall.NoopFirewallDriver
            注意:
            默认情况下,计算服务使用内置的防火墙服务。由于网络服务包含了防火墙服务,你必须使用nova.virt.firewall.NoopFirewallDriver防火墙服务来禁用掉计算服务内置的防火墙服务。

            在[vnc]部分,配置VNC代理使用控制节点的管理接口IP地址 :
            [vnc]
            enabled = true
            vncserver_listen = $my_ip
            vncserver_proxyclient_address = $my_ip
            在 [glance] 区域,配置镜像服务 API 的位置:
            [glance]
            api_servers = http://controller:9292
            在 [oslo_concurrency] 部分,配置锁路径:
            [oslo_concurrency]
            lock_path = /var/lib/nova/tmp
            在[placement]部分,配置placement API:
                [placement]
            os_region_name = RegionOne
            project_domain_name = Default
            project_name = service
            auth_type = password
            user_domain_name = Default
            auth_url = http://controller:35357/v3
            username = placement
            password = PLACEMENT_PASS
            由于数据包bug,必须启用访问位置API通过添加以下配置/etc/httpd/conf.d/00-nova-placement-api.conf:
            <Directory /usr/bin>
               <IfVersion >= 2.4>
                  Require all granted
               </IfVersion>
               <IfVersion < 2.4>
                  Order allow,deny
                  Allow from all
               </IfVersion>
            </Directory>
        ③  填充nova-api数据库(同步compute数据库)
            su -s /bin/sh -c "nova-manage api_db sync" nova
        ④  注册cell0数据库
            su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
        ⑤  创建cell1 cell
            su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova 109e1d4b-536a-40d0-83c6-5f121b82b650
        ⑥  填充nova数据库
             su -s /bin/sh -c "nova-manage db sync" nova

DSC0009.png


        ⑦  核查nova cell0和cell1 是否注册成功
            nova-manage cell_v2 list_cells
DSC00010.png


    3. 完成安装
        启动compute服务和设置开机自动启动
        systemctl enable openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
        systemctl start openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
三、 安装和配置一个计算节点
    本节描述如何安装和配置在一个计算节点的计算服务。服务支持多种虚拟机监控程序或vm部署实例。为简单起见,这个配置使用QEMU虚拟机监控程序在计算节点上通过KVM扩展,支持虚拟机的硬件加速。在传统硬件,这个配置使用通用QEMU虚拟机监控程序。您可以遵循这些指令和少量修改与额外的计算节点横向扩展您的环境。
    这部分假设您遵循本指南中的说明一步一步配置第一个计算节点。如果你想配置额外的计算节点,他们准备以类似的方式对第一个计算节点在示例架构部分。每个额外的计算节点需要一个唯一的IP地址。
    接下来操作在计算节点上操作
    1. 安装和配置组件
        ①  安装数据包
             yum install openstack-nova-compute -y
        ②  编辑/etc/nova/nova.conf文件完成以下操作。
            在[DEFAULT]部分,仅仅激活compute和metadata APIS:
            [DEFAULT]
            enabled_apis = osapi_compute,metadata
            在[DEFAULT]部分,配置RabbitMQ信息队列接入:
            [DEFAULT]
            transport_url = rabbit://openstack:RABBIT_PASS@controller
            在[api]和[keystone_authtoken]部分,配置身份服务接入:
                [api]
            auth_strategy = keystone
            [keystone_authtoken]
            auth_uri = http://controller:5000
            auth_url = http://controller:35357
            memcached_servers = controller:11211
            auth_type = password
            project_domain_name = default
            user_domain_name = default
            project_name = service
            username = nova
            password = NOVA_PASS

            在[DEFAULT]部分,配置my_ip选项:(ip是计算节点的管理段ip:10.0.0.31)
                [DEFAULT]
            my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
            在[DEFAULT]部分,激活支持networking服务:
                [DEFAULT]
            use_neutron = True
            firewall_driver = nova.virt.firewall.NoopFirewallDriver
                    通知:
                    默认情况下,计算使用内部防火墙服务。因为网络包含防火墙服务,您必须使用nova.virt.firewall禁用防火墙计算服务 通过nova.virt.firewall.NoopFirewallDriver firewall driver

            在[vnc]部分,激活和配置远程console接入:
            [vnc]
            enabled = True
            vncserver_listen = 0.0.0.0
            vncserver_proxyclient_address = $my_ip
            novncproxy_base_url = http://controller:6080/vnc_auto.html
                    服务器组件监听所有IP地址和代理组件只监听管理界面计算节点的IP地址。基URL显示的位置你可以使用一个web浏览器来访问远程主机的实例计算节点。

            在[glance]部分,配置镜像服务的API位置:
            [glance]
            api_servers = http://controller:9292
            在[oslo_concurrency]部分,配置锁定路径:
            [oslo_concurrency]
            lock_path = /var/lib/nova/tmp
            在[placement]部分,配置placement API:
            [placement]
            os_region_name = RegionOne
            project_domain_name = Default
            project_name = service
            auth_type = password
            user_domain_name = Default
            auth_url = http://controller:35357/v3
            username = placement
            password = PLACEMENT_PASS
    2. 完成安装
        ①  确定您的计算节点支持虚拟机的硬件加速:
            egrep -c '(vmx|svm)' /proc/cpuinfo
            如果这个命令的返回值是1或者更大,则代表支持虚拟化。
            如果这个命令的返回值为零,计算节点不支持硬件加速,您必须配置libvirt KVM使用QEMU。
                    编辑/etc/nova/nova.conf,在[libvirt]部分,virt_type = qemu
        ②  启动计算服务包括依赖项和开机自动启动
            systemctl enable libvirtd.service openstack-nova-compute.service
            systemctl start libvirtd.service openstack-nova-compute.service
            注意:
                    如果nova-compute服务启动失败,检查/var/log/nova/nova-compute.log。错误消息:The error message AMQP server on controller:5672 is unreachable likely indicates that the firewall on the controller node is preventing access to port 5672,表明控制器节点上的防火墙阻止访问端口5672。在控制节点配置防火墙打开5672端口控制器节点和计算节点重启nova-compute服务。
    3. 增加一个计算节点到cell数据库
      接下来操作在控制节点上操作
        1. 获得 admin 凭证来获取只有管理员能执行的命令的访问权限,并确认1个计算节点是在主机列表中:
          . admin-openrc
          openstack hypervisor list
DSC00011.png


        2. 发现compute主机列表:
        su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
DSC00012.png


        注意:
                当你添加新的计算节点,您必须运行nova-manage cell_v2  discover_hosts控制器节点上注册新计算节点
四、 验证操作
    接下来操作在控制节点上操作
    1. 获得 admin 凭证来获取只有管理员能执行的命令的访问权限,
         . admin-openrc
    2. 列出服务组件:
DSC00013.png


        该输出显示三个服务组件在控制节点上启用,一个服务组件在计算节点上启用。
    3. 在标识服务API端点列表与身份验证连接服务:
        注意:下面端点列表可能不同,这取决于OpenStack的安装组件。在这个输出忽略任何警告。
        openstack catalog list
DSC00014.png


    4. 验证镜像服务和镜像列表:
        openstack image list
DSC00015.png



计算服务安装完成!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-387760-1-1.html 上篇帖子: CentOS系统挂载FAT32的U盘 下篇帖子: linux下的KSM内存共享机制分析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表