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

[经验分享] OpenStack部署应用第三篇:计算服务Nova(转)

[复制链接]

尚未签到

发表于 2017-6-24 22:17:10 | 显示全部楼层 |阅读模式
1、计算服务介绍
  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>`。
  ``nova-compute``服务
  一个持续工作的守护进程,通过Hypervior的API来创建和销毁虚拟机实例。例如:


  • XenServer/XCP 的 XenAPI
  • KVM 或 QEMU 的 libvirt
  • VMware 的 VMwareAPI
  过程是蛮复杂的。最为基本的,守护进程同意了来自队列的动作请求,转换为一系列的系统命令如启动一个KVM实例,然后,到数据库中更新它的状态。
  ``nova-scheduler``服务
  拿到一个来自队列请求虚拟机实例,然后决定那台计算服务器主机来运行它。
  ``nova-conductor``模块
  Mediates interactions between the nova-compute service and the database. It eliminates direct accesses to the cloud database made by the nova-compute service. The nova-conductor module scales horizontally. However, do not deploy it on nodes where the nova-compute service runs. For more information, see Configuration Reference Guide.
nova-cert 模块
  服务器守护进程向Nova Cert服务提供X509证书。用来为``euca-bundle-image``生成证书。仅仅是在EC2 API的请求中使用
  nova-network worker 守护进程
  与``nova-compute``服务类似,从队列中接受网络任务,并且操作网络。执行任务例如创建桥接的接口或者改变IPtables的规则。
  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客户端。
  nova-cert 守护进程
  X509 证书。
  nova 客户端
  用于用户作为租户管理员或最终用户来提交命令。
  队列
  A central hub for passing messages between daemons. Usually implemented with RabbitMQ, also can be implemented with another AMQP message queue, such as ZeroMQ.
SQL数据库
  存储构建时和运行时的状态,为云基础设施,包括有:


  • 可用实例类型
  • 使用中的实例
  • 可用网络
  • 项目
  理论上,OpenStack计算可以支持任何和SQL-Alchemy所支持的后端数据库,通常使用SQLite3来做测试可开发工作,MySQL和PostgreSQL 作生产环境。

2、环境准备
  Nova 复杂 5个组件 数据库->keystone->rabbit->同步数据库->注册keystone->启动服务器->验证服务


  • API
  • cert 暂时不用
  • scheduler 决策节点
  • conductor数据库中间件
  • consoleauth  vnc认证
  • novncproxy vnc代理  网页vnc
  1)创建数据库(第一篇中已经完成)
  2)安装软件及配置服务



yum install -y openstack-nova-api openstack-nova-conductor \
openstack-nova-console openstack-nova-novncproxy \
openstack-nova-scheduler
# 配置服务
[iyunv@linux-node1 nova]# grep -n '^[a-z]' nova.conf
14:auth_strategy=keystone
2062:use_neutron=True
3052:enabled_apis=osapi_compute,metadata
3266:firewall_driver = nova.virt.firewall.NoopFirewallDriver
3662:connection=mysql+pymysql://nova:nova@192.168.56.11/nova_api
4679:connection=mysql+pymysql://nova:nova@192.168.56.11/nova
4814:api_servers=http://192.168.56.11:9292
5431:auth_uri = http://192.168.56.11:5000
5432:auth_url = http://192.168.56.11:35357
5433:memcached_servers = 192.168.56.11:11211
5434:auth_type = password
5435:project_domain_name = default
5436:user_domain_name = default
5437:project_name = service
5438:username = nova
5439:password = nova
6706:lock_path=/var/lib/nova/tmp
6885:transport_url=rabbit://openstack:openstack@192.168.56.11
8385:vncserver_listen=0.0.0.0
8397:vncserver_proxyclient_address=192.168.56.11
# 同步Compute 数据库
su -s /bin/sh -c "nova-manage api_db sync" nova
su -s /bin/sh -c "nova-manage db sync" nova
# 验证同步结果
mysql -h 192.168.56.11 -u nova -pnova -e "use nova;show tables;"
mysql -h 192.168.56.11 -u nova -pnova -e "use nova_api;show tables;"
# 启动服务
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
  3)创建用户、glance服务实体、镜像服务的 API 端点



# 创建nova用户
openstack service create --name nova --description "OpenStack Compute" compute
openstack endpoint create --region RegionOne compute public http://192.168.56.11:8774/v2.1/%\(tenant_id\)s
openstack endpoint create --region RegionOne compute internal http://192.168.56.11:8774/v2.1/%\(tenant_id\)s
openstack endpoint create --region RegionOne compute admin http://192.168.56.11:8774/v2.1/%\(tenant_id\)s
# 验证服务是否正常

openstack endpoint list
  3)启动服务



# systemctl enable  openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
# systemctl restart openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
3、计算节点服务安装(node2部署)
  1)确定您的计算节点是否支持虚拟机的硬件加速



$ egrep -c '(vmx|svm)' /proc/cpuinfo
# 如果这个命令返回了 one or greater 的值,那么你的计算节点支持硬件加速且不需要额外的配置。如果这个命令返回了 zero 值,那么你的计算节点不支持硬件加速。你必须配置 libvirt 来使用 QEMU 去代替 KVM
在 /etc/nova/nova.conf 文件的 [libvirt] 区域做出如下的编辑:
[libvirt]
...
virt_type = qemu
  2)启动计算服务及其依赖,并将其配置为随系统自动启动



yum install -y openstack-nova-compute
[iyunv@linux-node2 ~]# grep -n '^[a-z]' /etc/nova/nova.conf
3:transport_url=rabbit://openstack:openstack@192.168.56.11
15:auth_strategy=keystone
2063:use_neutron=True
3053:enabled_apis=osapi_compute,metadata
3267:firewall_driver=nova.virt.firewall.NoopFirewallDriver
4813:api_servers=http://192.168.56.11:9292
5430:auth_uri = http://192.168.56.11:5000
5431:auth_url = http://192.168.56.11:35357
5432:memcached_servers = 192.168.56.11:11211
5433:auth_type = password
5434:project_domain_name = default
5435:user_domain_name = default
5436:project_name = service
5437:username = nova
5438:password = nova
5673:virt_type=kvm
6469:url = http://192.168.56.11:9696
6470:auth_url = http://192.168.56.11:35357
6471:auth_type = password
6472:project_domain_name = default
6473:user_domain_name = default
6474:region_name = RegionOne
6475:project_name = service
6476:username = neutron
6477:password = neutron
6713:lock_path=/var/lib/nova/tmp
8368:enabled=true
8384:keymap=en-us
8391:vncserver_listen=0.0.0.0
8403:vncserver_proxyclient_address=192.168.56.12                               # vncserver_proxyclient_address每个计算节点不同
8422:novncproxy_base_url=http://192.168.56.11:6080/vnc_auto.html
# 启动服务
systemctl enable libvirtd.service openstack-nova-compute.service
systemctl start libvirtd.service openstack-nova-compute.service


# 控制节点执行如下命令,确定控制节点已经识别到计算节点
[iyunv@linux-node1 ~]#  openstack compute service list
+----+------------------+-------------------------+----------+---------+-------+----------------------------+
| ID | Binary           | Host                    | Zone     | Status  | State | Updated At                 |
+----+------------------+-------------------------+----------+---------+-------+----------------------------+
|  1 | nova-scheduler   | linux-node1.example.com | internal | enabled | up    | 2017-01-13T13:27:45.000000 |
|  2 | nova-conductor   | linux-node1.example.com | internal | enabled | up    | 2017-01-13T13:27:49.000000 |
|  3 | nova-consoleauth | linux-node1.example.com | internal | enabled | up    | 2017-01-13T13:27:45.000000 |
|  6 | nova-compute     | linux-node2.example.com | nova     | enabled | up    | 2017-01-13T13:27:47.000000 |
+----+------------------+-------------------------+----------+---------+-------+----------------------------+

运维网声明 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-387715-1-1.html 上篇帖子: windbg遍历进程页表查看内存 下篇帖子: libguestfs-tools 虚拟机磁盘管理工具
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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