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

[经验分享] openstack计算服务nova

[复制链接]

尚未签到

发表于 2018-5-31 13:26:03 | 显示全部楼层 |阅读模式
一、环境准备
1、虚拟机准备
IP地址主机名操作系统
192.168.56.11linux-node1CentOS7
192.168.56.12linux-node2CentOS7其中,linux-node1当作控制节点
linux-node2当作计算节点
二、nova服务
我们把除了nova-compute组件之外的节点都安装在一台主机上,称为控制节点;把nava-compute安装在另外一台主机上,称为计算节点;计算节点是用来创建虚拟机的
nova有很多服务
- API:负责接收和响应外部请求,支持OpenStack API,EC2 API
- Cert:负责身份认证EC2
- Schedule:用于云主机调度
- Conductor:计算节点访问数据的中间件
- Consoleauth:用于控制台的授权验证
- Novncproxy:VNC代理scheduler模块在openstack中的作用就是决策虚拟机创建在哪个主机(计算节点)上。
决策一个虚拟机应该调度到某物理节点,需要分两个步骤:
- 过滤(Filter)
- 计算权值(Weight)1、nova安装
在控制节点上
[root@linux-node1 ~]# yum install -y openstack-nova-api openstack-nova-cert \
  openstack-nova-conductor openstack-nova-console \
  openstack-nova-novncproxy openstack-nova-scheduler2、配置
先决条件
(1)创建nova和nova-api数据库
已在安装mariadb后创建完成
(2)获得 admin 凭证来获取只有管理员能执行的命令的访问权限
创建用户
(3)修改nova.conf
配置数据库连接
vim /etc/nova/nova.conf
[api_database]
connection=mysql+pymysql://nova:nova@192.168.56.11/nova_api
[database]
connection=mysql+pymysql://nova:nova@192.168.56.11/nova3、同步数据库
[root@linux-node1 ~]# su -s /bin/sh -c "nova-manage api_db sync" nova
[root@linux-node1 ~]# su -s /bin/sh -c "nova-manage db sync" nova验证是否同步成功
mysql -h 192.168.56.11 -unova -pnova -e "use nova;show tables;"
mysql -h 192.168.56.11 -unova -pnova -e "use nova_api;show tables;"4、配置keystone
vim /etc/nova/nova.conf
#打开注释,认证方式选择keystone
auth_strategy=keystone
#在[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 = nova5、配置rabbitmq
[root@linux-node1 ~]# grep '^r' /etc/nova/nova.conf
rabbit_host=192.168.56.11
rabbit_port=5672
rabbit_userid=openstack
rabbit_password=openstack
rpc_backend=rabbit6、修改nova自身的配置
vim /etc/nova/nova.conf
#在[DEFAULT]部分,只使用计算和元数据API
enabled_apis=osapi_compute,metadata
#和网络相关,使用neutron
use_neutron=true
#使用nova的防火墙,并且关闭
firewall_driver=nova.virt.firewall.NoopFirewallDriver
#在[vnc]部分,配置VNC代理使用控制节点的管理接口IP地址
vncserver_listen=192.168.56.11
vncserver_proxyclient_address=192.168.56.11
#在 [glance] 区域,配置镜像服务 API 的位置:
api_servers=http://192.168.56.11:9292
#在 [oslo_concurrency] 部分,配置锁路径:
lock_path=/var/lib/nova/tmp7、启动nova
[root@linux-node1 ~]# systemctl enable openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-nova-api.service to /usr/lib/systemd/system/openstack-nova-api.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-nova-consoleauth.service to /usr/lib/systemd/system/openstack-nova-consoleauth.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-nova-scheduler.service to /usr/lib/systemd/system/openstack-nova-scheduler.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-nova-conductor.service to /usr/lib/systemd/system/openstack-nova-conductor.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-nova-novncproxy.service to /usr/lib/systemd/system/openstack-nova-novncproxy.service.
[root@linux-node1 ~]# systemctl start openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service8、在keystone上做服务注册
在创建之前,要先执行环境变量脚本
[root@linux-node1 ~]# source admin-openstack.sh再创建nova服务实体
[root@linux-node1 ~]# openstack service create --name nova --description "OpenStack Compute" compute
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Compute                |
| enabled     | True                             |
| id          | 4d3ec9545a5549598a0b7e458b8f7bcd |
| name        | nova                             |
| type        | compute                          |
+-------------+----------------------------------+创建镜像服务的API endpoint
[root@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           | b3e8878ea8964039897bb56367364484             |
| interface    | public                                       |
| region       | RegionOne                                    |
| region_id    | RegionOne                                    |
| service_id   | 4d3ec9545a5549598a0b7e458b8f7bcd             |
| service_name | nova                                         |
| service_type | compute                                      |
| url          | http://192.168.56.11:8774/v2.1/%(tenant_id)s |
+--------------+----------------------------------------------+
[root@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           | 59b33390ae474bc5bd04fb8bc3affa90             |
| interface    | admin                                        |
| region       | RegionOne                                    |
| region_id    | RegionOne                                    |
| service_id   | 4d3ec9545a5549598a0b7e458b8f7bcd             |
| service_name | nova                                         |
| service_type | compute                                      |
| url          | http://192.168.56.11:8774/v2.1/%(tenant_id)s |
+--------------+----------------------------------------------+
[root@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           | 0d8ed49cdded436bb2faadc133017049             |
| interface    | internal                                     |
| region       | RegionOne                                    |
| region_id    | RegionOne                                    |
| service_id   | 4d3ec9545a5549598a0b7e458b8f7bcd             |
| service_name | nova                                         |
| service_type | compute                                      |
| url          | http://192.168.56.11:8774/v2.1/%(tenant_id)s |
+--------------+----------------------------------------------+验证控制节点是否部署成功
[root@linux-node1 ~]# openstack host list
+-------------+-------------+----------+
| Host Name   | Service     | Zone     |
+-------------+-------------+----------+
| linux-node1 | consoleauth | internal |
| linux-node1 | conductor   | internal |
| linux-node1 | scheduler   | internal |
+-------------+-------------+----------+三、nova-compute
1、基础软件包安装
(1)安装EPEL源
rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm(2)安装OpenStack仓库
yum install -y centos-release-openstack-mitaka(3)安装OpenStack客户端
yum install -y python-openstackclient(4)安装OpenStack SELinux管理包
yum install -y openstack-selinux2、nova-compute配置
[root@linux-node2 ~]# grep '^[a-Z]' /etc/nova/nova.conf
enabled_apis=osapi_compute,metadata
auth_strategy=keystone
firewall_driver=nova.virt.firewall.NoopFirewallDriver
use_neutron=true
rpc_backend=rabbit
api_servers=http://192.168.56.11:9292
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
virt_type=kvm
lock_path=/var/lib/nova/tmp
rabbit_host=192.168.56.11
rabbit_port=5672
rabbit_userid=openstack
rabbit_password=openstack
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.html3、启动计算服务及其依赖,并设置开机启动
systemctl enable libvirtd.service openstack-nova-compute.service
systemctl start libvirtd.service openstack-nova-compute.service4、验证计算服务是否配置成功
在控制节点上执行
[root@linux-node1 ~]# source admin-openstack.sh
[root@linux-node1 ~]# openstack host list
+-------------+-------------+----------+
| Host Name   | Service     | Zone     |
+-------------+-------------+----------+
| linux-node1 | consoleauth | internal |
| linux-node1 | conductor   | internal |
| linux-node1 | scheduler   | internal |
| linux-node2 | compute     | nova     |
+-------------+-------------+----------+
可以看到在计算节点上有compute服务,则说明配置成功
[root@linux-node1 ~]# nova service-list
+----+------------------+-------------+----------+---------+-------+----------------------------+-----------------+
| Id | Binary           | Host        | Zone     | Status  | State | Updated_at                 | Disabled Reason |
+----+------------------+-------------+----------+---------+-------+----------------------------+-----------------+
| 1  | nova-consoleauth | linux-node1 | internal | enabled | up    | 2016-10-28T13:22:42.000000 | -               |
| 2  | nova-conductor   | linux-node1 | internal | enabled | up    | 2016-10-28T13:22:49.000000 | -               |
| 3  | nova-scheduler   | linux-node1 | internal | enabled | up    | 2016-10-28T13:22:42.000000 | -               |
| 6  | nova-compute     | linux-node2 | nova     | enabled | up    | 2016-10-28T13:22:44.000000 | -               |
+----+------------------+-------------+----------+---------+-------+----------------------------+-----------------+如果能列出我们已经上传的镜像,则证明nova与glance之间配置成功
[root@linux-node1 ~]# nova image-list
+--------------------------------------+--------+--------+--------+
| ID                                   | Name   | Status | Server |
+--------------------------------------+--------+--------+--------+
| 29d99654-ba91-4d04-8808-e1b8d16861fb | cirros | ACTIVE |        |
+--------------------------------------+--------+--------+--------+  

运维网声明 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-486191-1-1.html 上篇帖子: openstack学习笔记1 下篇帖子: 跨云协作,看OpenStack起舞
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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