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

[经验分享] OpenStack 计算服务Nova [四]

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-29 08:55:37 | 显示全部楼层 |阅读模式
Nova简介:
  Nova是openstack最早的两块模块之一,另一个是对象存储swift。在openstack体系中一个叫做计算节点,一个叫做控制节点。这个主要和nova相关,我们把安装为计算节点nova-compute,把除了nova-compute叫做控制节点。nova-compute是创建虚拟机的,只是创建虚拟机,所有的控制都在另一台上。
nova有非常多的组件(服务)
Nova服务介绍
API:负责接受和响应外部请求。支持OpenStack API,EC2 API
Cert:负责身份认证EC 2
Scheduler:用于云主机调度
Conductor:计算节点访问数据的中间件
Consoleauth:用于控制台的授权验证
Novncproxy:VNC代理
提示:EC 2是亚马逊云主机的意思
Nova scheduler
  Nova scheduler模块在openstack中的作用就是决策虚拟机创建在那个主机(计算节点)上
决策一个虚拟机应该调度到那个物理节点,需要分两个步骤:
1、过滤(Fliter)
2、计算权值(Weight)
提示:我们经常会出现找不到有效的主机?为什么?
 因为nova scheduler认为没有资源创建虚拟机,即使你有100G内存,如果nova scheduler认为你没有资格照样无法进行创建。scheduler作用就是决策虚拟机创建在那个主机上
image_1b2kgrl8f1sje1euatfcpohlhd9.png
经过主机过滤后,需要对主机进行权值的计算,根据策略选择相应的某一台主机(对于每一个要创建的虚拟机而言)
image_1b2kgs83p1tajtsb18pn14ni1gqgm.png
控制节点设置:
数据库以及keystone修改我们在前面已经完成,所以在此跳过
安装软件包
  • [iyunv@linux-node1 ~]# yum install openstack-nova-api openstack-nova-conductor
  • >   openstack-nova-console openstack-nova-novncproxy
  • >   openstack-nova-scheduler
在配置文件中修改数据库的连接地址
  • [iyunv@linux-node1 ~]# vim /etc/nova/nova.conf
  • [database]
  • connection=mysql+pymysql://nova:nova@192.168.56.11/nova
  • [api_database]
  • connection=mysql+pymysql://nova:nova@192.168.56.11/nova_api
提示:不要修改错了,每个都在在相对应的模块下面进行修改
同步数据库
  • [iyunv@linux-node1 ~]# su -s /bin/sh -c "nova-manage api_db sync" nova
  • [iyunv@linux-node1 ~]# su -s /bin/sh -c "nova-manage db sync" nova
提示:db的有警告可以忽略
检查是否有表结构
  • [iyunv@linux-node1 ~]# mysql -h 192.168.56.11 -unova -pnova -e "use nova;show tables;"
  • [iyunv@linux-node1 ~]# mysql -h 192.168.56.11 -unova_api -pnova_api -e "use nova_api;show tables;"
配置keystone
  • [iyunv@linux-node1 ~]# vim /etc/nova/nova.conf
  • [keystone_authtoken]
  • auth_uri = http://192.168.56.11:5000
  • auth_url = http://192.168.56.11:35357
  • memcached_servers = 192.168.56.11:11211
  • auth_type = password
  • project_domain_name = default
  • user_domain_name = default
  • project_name = service
  • username = nova
  • password = nova
  • [DEFAULT]
  • auth_strategy=keystone
  • #打开注释,此行代表使用keystone进行认证
RabbitMq(消息队列配置)
因为nova服务之间使用消息队列进行沟通,所以我们需要配置rabbitmq
  • [iyunv@linux-node1 ~]# vim /etc/nova/nova.conf
  • [DEFAULT]
  • rpc_backend=rabbit
  • #搜索rpc_backend打开注释
  • rabbit_host=192.168.56.11
  • 将localhost修改为IP地址
  • rabbit_port=5672
  • 端口我们可以开启也可以不开启默认就好
  • rabbit_userid=openstack
  • rabbit_password=openstack
  • 这个是我们在rabbitmq上配置的用户
配置nova自己的一些功能
  • 设置启用的元数据API
  • [iyunv@linux-node1 ~]# vim /etc/nova/nova.conf
  • [DEFAULT]
  • enabled_apis=osapi_compute,metadata
  • 启动网络服务支持
  • use_neutron=true
  • 关闭防火墙
  • firewall_driver=nova.virt.firewall.NoopFirewallDriver
提示:默认情况下,计算服务使用内置的防火墙服务。由于网络服务包含了防火墙服务,你必须使用nova.virt.firewall.NoopFirewallDriver防火墙服务来禁用掉计算服务内置的防火墙服务
我们不配置my IP,因为My IP是一个大坑
配置VNC代理使用控制节点的管理接口IP地址
  • [iyunv@linux-node1 ~]# vim /etc/nova/nova.conf
  • vncserver_listen=192.168.56.11
  • vncserver_proxyclient_address=192.168.56.11
配置glance镜像服务API
  • [iyunv@linux-node1 ~]# vim /etc/nova/nova.conf
  • [glance]
  • api_servers=http://192.168.56.11:9292
配置锁路径
  • [oslo_concurrency]
  • lock_path=/var/lib/nova/tmp
nova配置说明
  • [iyunv@linux-node1 ~]# grep '^[a-z]' /etc/nova/nova.conf
  • enabled_apis=osapi_compute,metadata             #启动api
  • auth_strategy=keystone                          #设置keystone
  • firewall_driver=nova.virt.firewall.NoopFirewallDriver       #关闭防火墙
  • use_neutron=true                                    #使用neutron
  • rpc_backend=rabbit                              #使用rabbitmq
  • connection = mysql+pymysql://nova:nova@192.168.56.11/nova_api  #数据库地址
  • connection = mysql+pymysql://nova:nova@192.168.56.11/nova       #数据库地址
  • api_servers=http://192.168.56.11:9292               #glance api地址
  • auth_uri = http://192.168.56.11:5000              #keystone
  • auth_url = http://192.168.56.11:35357              #keystone
  • memcached_servers = 192.168.56.11:11211              #keystone
  • auth_type = password                           #keystone
  • project_domain_name = default               #keystone
  • user_domain_name = default                #keystone
  • project_name = service                    #keystone
  • username = nova                       #keystone
  • password = nova                       #keystone
  • lock_path=/var/lib/nova/tmp             #锁路径
  • rabbit_host=192.168.56.11                #rabbitmq
  • rabbit_port=5672                         #rabbitmq
  • rabbit_userid=openstack              #rabbitmq
  • rabbit_password=openstack            #rabbitmq
  • vncserver_listen=192.168.56.11           #VNC
  • vncserver_proxyclient_address=192.168.56.11 #VNC
设置开机启动,并启动服务
  • # 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
nova启动成功之后还需要去keystone上进行注册,否则别人无法进行连接
创建nova服务
  • [iyunv@linux-node1 ~]# source  admin-openstack.sh
  • [iyunv@linux-node1 ~]# openstack service create --name nova --description "Openstack Compute " compute
  • +-------------+----------------------------------+
  • | Field       | Value                            |
  • +-------------+----------------------------------+
  • | description | Openstack Compute                |
  • | enabled     | True                             |
  • | id          | c9aca55493924f2ba9cb5b304cb1322f |
  • | name        | nova                             |
  • | type        | compute                          |
  • +-------------+----------------------------------+
创建Compute服务api端点
  • [iyunv@linux-node1 ~]# openstack endpoint create --region RegionOne
  • >   compute public http://192.168.56.11:8774/v2.1/%(tenant_id)s
  • +--------------+----------------------------------------------+
  • | Field        | Value                                        |
  • +--------------+----------------------------------------------+
  • | enabled      | True                                         |
  • | id           | 71414f00b2834e8190ee25c219e3d3c4             |
  • | interface    | public                                       |
  • | region       | RegionOne                                    |
  • | region_id    | RegionOne                                    |
  • | service_id   | c9aca55493924f2ba9cb5b304cb1322f             |
  • | service_name | nova                                         |
  • | service_type | compute                                      |
  • | url          | http://192.168.56.11:8774/v2.1/%(tenant_id)s |
  • +--------------+----------------------------------------------+
  • [iyunv@linux-node1 ~]# openstack endpoint create --region RegionOne   compute admin http://192.168.56.11:8774/v2.1/%(tenant_id)s
  • +--------------+----------------------------------------------+
  • | Field        | Value                                        |
  • +--------------+----------------------------------------------+
  • | enabled      | True                                         |
  • | id           | 9162f57b72e244f799086eeca3b7df6c             |
  • | interface    | admin                                        |
  • | region       | RegionOne                                    |
  • | region_id    | RegionOne                                    |
  • | service_id   | c9aca55493924f2ba9cb5b304cb1322f             |
  • | service_name | nova                                         |
  • | service_type | compute                                      |
  • | url          | http://192.168.56.11:8774/v2.1/%(tenant_id)s |
  • +--------------+----------------------------------------------+
  • [iyunv@linux-node1 ~]# openstack endpoint create --region RegionOne   compute internal http://192.168.56.11:8774/v2.1/%(tenant_id)s
  • +--------------+----------------------------------------------+
  • | Field        | Value                                        |
  • +--------------+----------------------------------------------+
  • | enabled      | True                                         |
  • | id           | 8fb3d0da5ee64ed693b7b4608844d5ff             |
  • | interface    | internal                                     |
  • | region       | RegionOne                                    |
  • | region_id    | RegionOne                                    |
  • | service_id   | c9aca55493924f2ba9cb5b304cb1322f             |
  • | service_name | nova                                         |
  • | service_type | compute                                      |
  • | url          | http://192.168.56.11:8774/v2.1/%(tenant_id)s |
  • +--------------+----------------------------------------------+
检查控制节点是否成功
  • [iyunv@linux-node1 ~]# openstack host list
  • +---------------------------+-------------+----------+
  • | Host Name                 | Service     | Zone     |
  • +---------------------------+-------------+----------+
  • | linux-node1.abcdocker.com | consoleauth | internal |
  • | linux-node1.abcdocker.com | conductor   | internal |
  • | linux-node1.abcdocker.com | scheduler   | internal |
  • +---------------------------+-------------+----------+
nova计算节点配置
 我们在架构中想构建几个虚拟机就要看计算节点的配置,虚拟化工具我们只能使用VMware,因为VMware支持嵌套虚拟化,其他的虚拟化软件不支持
image_1b2khh2tp1bjikcr1q851mo6hot13.png
我们nova计算节点IP是192.168.56.12
需要开启虚拟化技术
因为需要使用kvm来创建虚拟机,所以我们需要开启虚拟化。如果是服务器需要在bios上开启
image_1b2khjgc4931a216vg1b1j1tso1g.png
环境准备
  • [iyunv@linux-node2 ~]# cat /etc/redhat-release
  • CentOS Linux release 7.2.1511 (Core)
  • [iyunv@linux-node2 ~]# uname -r
  • 3.10.0-327.36.2.el7.x86_64
时间同步
安装openstack仓库
  • [iyunv@linux-node2 ~]# yum install -y centos-release-openstack-mitaka
安装openstack客户端
  • [iyunv@linux-node1 ~]# yum install -y python-openstackclient
因为控制节点的nova和计算节点的配置除了没有数据库其他的都是相同的,这里我们采取scp的形式进行修改
安装openstack SELinux管理包
  • [iyunv@linux-node2 ~]# yum install -y openstack-selinux
安装nova
  • [iyunv@linux-node2 ~]# yum install -y openstack-nova-compute
步骤:
1、从控制节点scp nova.conf
2、  删除数据库的配置
3、  vnc的配置进行变更
4、  设置一个虚拟化的选项
提示:要注意nova.conf文件的权限
时间必须同步!!!!
1.将控制节点的nova.conf 复制到计算节点上
  • [iyunv@linux-node1 ~]# scp /etc/nova/nova.conf 192.168.56.12:/etc/nova/
  • The authenticity of host '192.168.56.12 (192.168.56.12)' can't be established.
  • ECDSA key fingerprint is 43:50:3c:fa:03:29:7c:3c:5f:aa:d2:76:b5:8e:d9:54.
  • Are you sure you want to continue connecting (yes/no)? yes
  • Warning: Permanently added '192.168.56.12' (ECDSA) to the list of known hosts.
  • root@192.168.56.12's password:
  • nova.conf                                                                                                 100%  180KB 180.0KB/s   00:00
2.进入计算节点进行修改
  • 首先保证权限一致
  • [iyunv@linux-node2 nova]# ll /etc/nova/nova.conf
  • -rw-r----- 1 root nova 184332 Nov 18 17:02 /etc/nova/nova.conf
3.修改配置文件
  • [iyunv@linux-node2 nova]# vim /etc/nova/nova.conf
  • #connection =
  • #connection =
  • 搜索mysql将mysql路径注释掉
配置vnc
  • novncproxy_base_url=http://192.168.56.11:6080/vnc_auto.html
  • vncserver_listen=0.0.0.0
  • vncserver_proxyclient_address=192.168.56.12
  • 5384行enabled=true
提示:服务器组件监听所有的 IP 地址,而代理组件仅仅监听计算节点管理网络接口的 IP 地址。基本的 URL 指示您可以使用 web 浏览器访问位于该计算节点上实例的远程控制台的位置。
选择虚拟化类型
确定您的计算节点是否支持虚拟化的硬件加速。
egrep -c '(vmx|svm)' /proc/cpuinfo
如果这个命令返回了1或不等于0的值,那么你的计算节点支持硬件加速且不需要额外的配置。
如果这个命令返回了 0 值,那么你的计算节点不支持硬件加速。你必须配置 libvirt 来使用 QEMU 去代替 KVM
在 /etc/nova/nova.conf文件的 [libvirt] 区域做出如下的编辑:
  • [libvirt]
  • virt_type=kvm
  • #配置虚拟化类型
总结
nova.conf修改了如下五行
  • [iyunv@linux-node2 nova]# grep '^[a-z]' /etc/nova/nova.conf
  • enabled=true
  • vncserver_listen=0.0.0.0
  • vncserver_proxyclient_address=192.168.56.12
  • novncproxy_base_url=http://192.168.56.11:6080/vnc_auto.html
  • virt_type=kvm
设置开机启动
  • [iyunv@linux-node2 ~]# systemctl enable libvirtd openstack-nova-compute
  • [iyunv@linux-node2 ~]# systemctl start libvirtd openstack-nova-compute
列出服务组件,以验证是否成功启动并注册了每个进程:
  • [iyunv@linux-node1 ~]# source admin-openstack.sh
  • [iyunv@linux-node1 ~]# openstack host list
  • +---------------------------+-------------+----------+
  • | Host Name                 | Service     | Zone     |
  • +---------------------------+-------------+----------+
  • | linux-node1.abcdocker.com | consoleauth | internal |
  • | linux-node1.abcdocker.com | conductor   | internal |
  • | linux-node1.abcdocker.com | scheduler   | internal |
  • | linux-node2.abcdocker.com | compute     | nova     |
  • +---------------------------+-------------+----------+
  • 该输出应该显示三个服务组件在控制节点上启用,一个服务组件在计算节点上启用。
查看nova和keystone是否正常
  • [iyunv@linux-node1 ~]# nova service-list
  • +----+------------------+---------------------------+----------+---------+-------+----------------------------+-----------------+
  • | Id | Binary           | Host                      | Zone     | Status  | State | Updated_at                 | Disabled Reason |
  • +----+------------------+---------------------------+----------+---------+-------+----------------------------+-----------------+
  • | 1  | nova-consoleauth | linux-node1.abcdocker.com | internal | enabled | up    | 2016-11-18T09:24:23.000000 | -               |
  • | 2  | nova-conductor   | linux-node1.abcdocker.com | internal | enabled | up    | 2016-11-18T09:24:22.000000 | -               |
  • | 3  | nova-scheduler   | linux-node1.abcdocker.com | internal | enabled | up    | 2016-11-18T09:24:23.000000 | -               |
  • | 6  | nova-compute     | linux-node2.abcdocker.com | nova     | enabled | up    | 2016-11-18T09:24:23.000000 | -               |
  • +----+------------------+---------------------------+----------+---------+-------+----------------------------+-----------------+
查看nova和glance服务相互是否正常
  • [iyunv@linux-node1 ~]# nova image-list
  • +--------------------------------------+--------+--------+--------+
  • | ID                                   | Name   | Status | Server |
  • +--------------------------------------+--------+--------+--------+
  • | fc67361d-ad30-40b2-9d96-941e50fc17f5 | cirros | ACTIVE |        |
  • +--------------------------------------+--------+--------+--------+
再次提示:时间必须同步!!!
nova安装到此截止!


运维网声明 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-306957-1-1.html 上篇帖子: OpenStack 镜像服务Glance [三] 下篇帖子: Openstack 网络服务Neutron [五]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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