内容简介:使用OpenStack Compute来托管和管理云计算系统。OpenStack Compute是基础架构即服务(IaaS)系统的主要部分。主要模块用Python实现。OpenStack Compute与OpenStack Identity交互以进行身份验证;OpenStack 镜像服务用于磁盘和镜像管理;OpenStack Dashboard用于用户界面和管理界面。镜像访问受项目和用户的限制;配额受每个项目限制(例如,实例数)。OpenStack Compute可以在标准硬件上水平扩展,下载镜像,然
使用OpenStack Compute来托管和管理云计算系统。OpenStack Compute是基础架构即服务(IaaS)系统的主要部分。主要模块用 Python 实现。
OpenStack Compute与OpenStack Identity交互以进行身份验证;OpenStack 镜像服务用于磁盘和镜像管理;OpenStack Dashboard用于用户界面和管理界面。镜像访问受项目和用户的限制;配额受每个项目限制(例如,实例数)。OpenStack Compute可以在标准硬件上水平扩展,下载镜像,然后启动实例。
OpenStack Compute包含以下组件:
nova-api service
接受并响应终端用户compute API调用。该服务支持OpenStack Compute API。它强制执行某些策略并启动大多数活动,例如运行实例。
nova-api-metadata service
接受来自实例的元数据请求。在nova-network的多主机模式下运行时,通常会使用nova-api-metadata服务。
nova-compute service
通过虚拟机管理程序API,创建和终止虚拟机实例。例如:
- XenAPI for XenServer/XCP
- libvirt for KVM or QEMU
- VMwareAPI for VMware
处理相当复杂。基本上,nova-compute守护程序接受来自队列的操作,并执行一系列系统命令,例如启动KVM实例并更新其在数据库中的状态。
nova-placement-api service
跟踪每个provider的库存和使用情况。
nova-scheduler service
从队列中获取虚拟机实例请求,并确定它运行的计算服务器主机。
nova-conductor module
负责nova-compute服务和数据库之间的交互。它消除了nova-compute服务对云数据库的直接访问。nova-conductor module可以水平伸缩。不要将其部署在运行nova-compute服务的节点上。
nova-consoleauth daemon
在控制台代理为用户授权tokens,参见nova-novncproxy和nova-xvpvncproxy。必须运行此服务才能使控制台代理生效。可以针对群集配置中的单个nova-consoleauth服务运行任一类型的代理。
nova-novncproxy daemon
提供正在运行的实例的代理,该代理通过VNC连接访问。支持基于浏览器的novnc客户端。
nova-spicehtml5proxy daemon
提供正在运行的实例的代理,该代理通过SPICE连接访问。支持基于浏览器的HTML5客户端。
nova-xvpvncproxy daemon
提供正在运行的实例的代理,该代理通过VNC连接访问。支持OpenStack特定的 Java 客户端。
The queue
用于在守护进程之间传递消息的中央集线器。通常用RabbitMQ实现,也可以用另一个AMQP消息队列实现,比如ZeroMQ。
SQL database
存储云基础架构的大多数构建时和运行时状态,包括:
- Available instance types
- Instances in use
- Available networks
- Projects
从理论上讲,OpenStack Compute可以支持SQLAlchemy支持的任何数据库。常见的数据库是用于测试和开发工作的 SQLite 3,MySQL,MariaDB和PostgreSQL。
控制节点
root用户
为了避免权限问题,建议切换到root用户进行操作(否则要加很多sudo)。
sudo -i
数据库
1、登录数据库
mysql -uroot -p
,密码为openstack。
2、创建nova_api,nova,nova_placement和nova_cell0数据库
CREATE DATABASE nova_api; CREATE DATABASE nova; CREATE DATABASE nova_placement; CREATE DATABASE nova_cell0;
3、授权
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'openstack'; GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'openstack'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'openstack'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'openstack'; GRANT ALL PRIVILEGES ON nova_placement.* TO 'nova'@'localhost' IDENTIFIED BY 'openstack'; GRANT ALL PRIVILEGES ON nova_placement.* TO 'nova'@'%' IDENTIFIED BY 'openstack'; GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY 'openstack'; GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'openstack';
4、退出数据库
exit;
服务证书和端点
1、使admin环境生效
. admin-openrc
2、创建nova用户
openstack user create --domain default --password-prompt nova
根据提示设置密码为openstack。
3、添加admin角色给nova用户
openstack role add --project service --user nova admin
4、创建nova服务实体
openstack service create --name nova --description "OpenStack Compute" compute
5、创建计算服务API endpoints
openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1 openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1 openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1
服务证书和端点2
1、创建Placement service user
openstack user create --domain default --password-prompt placement
按照提示设置密码为openstack。
2、添加Placement user到service project,并且赋予admin角色
openstack role add --project service --user placement admin
3、创建placement服务实体
openstack service create --name placement --description "Placement API" placement
4、创建Placement API服务端点
openstack endpoint create --region RegionOne placement public http://controller:8778 openstack endpoint create --region RegionOne placement internal http://controller:8778 openstack endpoint create --region RegionOne placement admin http://controller:8778
安装配置组件
1、安装组件
apt-get -y install nova-api nova-placement-api nova-conductor nova-consoleauth nova-scheduler nova-novncproxy python-novaclient
2、备份nova.conf
mv /etc/nova/nova.conf /etc/nova/nova.conf.bak
3、 vim /etc/nova/nova.conf
,新建nova.conf内容为:
[DEFAULT] # define own IP my_ip = 192.168.56.110 state_path = /var/lib/nova enabled_apis = osapi_compute,metadata log_dir = /var/log/nova # RabbitMQ connection info transport_url = rabbit://openstack:openstack@controller [api] auth_strategy = keystone # Glance connection info [glance] api_servers = http://controller:9292 [oslo_concurrency] lock_path = $state_path/tmp # MariaDB connection info [api_database] connection = mysql+pymysql://nova:openstack@controller/nova_api [database] connection = mysql+pymysql://nova:openstack@controller/nova # Keystone auth info [keystone_authtoken] www_authenticate_uri = http://controller:5000 auth_url = http://controller:5000 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = nova password = openstack [placement] auth_url = http://controller:5000 os_region_name = RegionOne auth_type = password project_domain_name = default user_domain_name = default project_name = service username = placement password = openstack [placement_database] connection = mysql+pymysql://nova:openstack@controller/nova_placement [wsgi] api_paste_config = /etc/nova/api-paste.ini
4、更改权限
chmod 640 /etc/nova/nova.conf
chgrp nova /etc/nova/nova.conf
5、生成数据库表结构
su -s /bin/bash nova -c "nova-manage api_db sync" su -s /bin/bash nova -c "nova-manage cell_v2 map_cell0" su -s /bin/bash nova -c "nova-manage db sync" su -s /bin/bash nova -c "nova-manage cell_v2 create_cell --name cell1"
完成后查看日志: tail /var/log/nova/nova-manage.log
不放心的话,就登录数据库查看数据。
6、验证一下cell0和cell1是否被正确注册
nova-manage cell_v2 list_cells
7、重启服务,完成安装
for service in api conductor scheduler consoleauth novncproxy; do systemctl restart nova-$service done
8、查看计算服务列表
openstack compute service list
计算节点
本节介绍如何在计算节点上安装和配置Compute服务,该服务支持多个虚拟机管理程序来部署实例或虚拟机(VM)。为简单起见,此配置使用Quick EMUlator(QEMU)虚拟机管理程序,和支持虚拟机硬件加速的KVM扩展。可以按照教程进行小改,以便水平扩展计算节点。
安装方法主要参考 OpenStack Queens : Add Compute Nodes 。
root用户
为了避免权限问题,建议切换到root用户进行操作(否则要加很多sudo)。
sudo -i
安装配置
1、安装组件
apt-get -y install nova-compute-kvm
2、备份nova.conf
mv /etc/nova/nova.conf /etc/nova/nova.conf.bak
3、 vim /etc/nova/nova.conf
,新建nova.conf内容为:
[DEFAULT] # define own IP address my_ip = 192.168.56.111 state_path = /var/lib/nova enabled_apis = osapi_compute,metadata log_dir = /var/log/nova # RabbitMQ connection info transport_url = rabbit://openstack:openstack@controller [api] auth_strategy = keystone # enable VNC [vnc] enabled = True server_listen = 0.0.0.0 server_proxyclient_address = $my_ip novncproxy_base_url = http://controller:6080/vnc_auto.html # Glance connection info [glance] api_servers = http://controller:9292 [oslo_concurrency] lock_path = $state_path/tmp # Keystone auth info [keystone_authtoken] www_authenticate_uri = http://controller:5000 auth_url = http://controller:5000 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = nova password = openstack [placement] auth_url = http://controller:5000 os_region_name = RegionOne auth_type = password project_domain_name = default user_domain_name = default project_name = service username = placement password = openstack [wsgi] api_paste_config = /etc/nova/api-paste.ini
4、设置权限
chmod 640 /etc/nova/nova.conf
chgrp nova /etc/nova/nova.conf
5、硬件加速(可选)
egrep -c '(vmx|svm)' /proc/cpuinfo
如果看到大于等于1的数字,说明主机支持硬件加速,不需要额外的配置。
如果此命令返回零值,则计算节点不支持硬件加速,您必须将libvirt配置为使用QEMU而不是KVM。
编辑/etc/nova/nova-compute.conf文件,libvirt部分修改为:
[libvirt] # ... virt_type = qemu
6、重启nova-compute服务
systemctl restart nova-compute
添加计算节点到数据库
以下操作在controller节点操作。
1、使admin环境生效
. admin-openrc
2、查看计算服务列表
openstack compute service list
发现,此时已经多了nova-compute服务。
3、查看计算节点
openstack compute service list --service nova-compute
4、如果没有看到计算节点,那么需要查找计算节点,并且进行注册
su -s /bin/bash nova -c "nova-manage cell_v2 discover_hosts"
添加新的compute节点时,必须在控制器节点上运行 nova-manage cell_v2 discover_hosts
以注册这些新计算节点。或者,可以在/etc/nova/nova.conf中设置适当的间隔来自动发现和注册节点:
[scheduler] discover_hosts_in_cells_interval = 300
验证操作
以下操作在controller节点操作。
1、使admin环境生效
. admin-openrc
2、列出服务组件,以验证每个进程的成功启动和注册
openstack compute service list
成功的话可以看到四个服务:nova-scheduler、nova-consoleauth、nova-conductor和nova-compute。
3、列出Identity服务中的API端点,以验证与Identity服务的连接
openstack catalog list
4、列出镜像服务中的镜像,以验证与镜像服务的连接
openstack image list
5、检查cells and placement API是否工作正常
nova-status upgrade check
控制节点安装计算服务
1、安装组件
apt -y install nova-compute-kvm
2、 vim /etc/nova/nova.conf
,添加vnc配置:
# enable VNC [vnc] enabled = True server_listen = 0.0.0.0 server_proxyclient_address = $my_ip novncproxy_base_url = http://controller:6080/vnc_auto.html
3、硬件加速(可选)
egrep -c '(vmx|svm)' /proc/cpuinfo
如果看到大于等于1的数字,说明主机支持硬件加速,不需要额外的配置。
如果此命令返回零值,则计算节点不支持硬件加速,您必须将libvirt配置为使用QEMU而不是KVM。
编辑/etc/nova/nova-compute.conf文件,libvirt部分修改为:
[libvirt] # ... virt_type = qemu
4、重启nova-compute服务
systemctl restart nova-compute
5、查看计算节点
openstack compute service list --service nova-compute
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 越狱手记:手动编译安装 Electra
- Ubuntu16手动安装OpenStack——修改镜像
- Ubuntu16手动安装OpenStack——horizon篇
- Ubuntu16手动安装OpenStack——neutron篇
- Ubuntu16手动安装OpenStack——glance篇
- rock64手动安装nextcloud并恢复数据
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Java编程思想
[美] Bruce Eckel / 陈昊鹏、饶若楠 / 机械工业出版社 / 2005-9 / 95.00元
本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel的文字亲和力和小而直接的编程示例面前也会化解于无形。从Java的基础语法到最高级特性(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌握。 从本书获得的各项大奖以及来自世界各地的读者评论中,不难看出这是一本经典之作。本书的作者拥有多年教学经验,对C、C++以及Java语言都有独到......一起来看看 《Java编程思想》 这本书的介绍吧!
Base64 编码/解码
Base64 编码/解码
MD5 加密
MD5 加密工具