Openstack学习总结之四(计算组件部署)

前言

这部分内容主要介绍如何部署nova-compute组件。

一、介绍

nova-compute是openstack里面一个非常重要的服务,它负责对VM实例生命周期的各个过程进行管理,它作为一组守护进程运行在linux服务器上。

nova-compute主要由下面几部分组成:

  • api组件:
组件名称功能
nova-api过REST API与外部进行交互
nova-api-metadatanova-api的子服务,为VM实例的创建提供元信息
  • core组件:
组件名称功能
nova-scheduler负责VM实例的资源调度
nova-compute管理VM实例,借助于nova-conductor实现db访问
nova-Conductor负责db的访问
  • console interface组件:
组件名称功能
nova-cert负责身份认证
nova-consoleauth控制台授权认证
nova-novncproxyVNC代理,支持浏览器VNC客户端
  • scheduler组件:
组件名称功能
nova-scheduler通过过滤和权重计算,来决定在哪个计算节点上创建VM实例。默认情况下nova-scheduler根据空闲内存计算节点的权重值,空闲内存越多,权重越大
  • placement组件:
组件名称功能
placement负责资源记录的变动跟踪

如果要使用nova-compute的基本功能,还需要额外提供以下四种服务:

服务名功能
keystone它为所有OpenStack服务提供身份认证
glance镜像仓库,所有VM实例都是基于镜像文件启动起来
neutron为VM实例提供网络支持
placement监控VM实例资源变动情况,并在创建VM时选择哪些资源提供商提供帮助

二、准备工作

1. 创建数据库

  • 创建数据库:nova-api、nova、nova_cell0、placement
  • 给nova和placement用户授权访问数据库
mysql -u root -proot

# 创建数据库
CREATE DATABASE nova_api;
CREATE DATABASE nova;
CREATE DATABASE nova_cell0;
CREATE DATABASE placement;

# 数据库授权
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';
GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY 'placement';
GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY 'placement';
exit;

# 验证 
mysql -h 192.168.88.14 -unova -pnova -e "show databases;";
mysql -h 192.168.88.14 -uplacement -pplacement -e "show databases;";
exit

2. 安装软件

yum install -y openstack-nova-api  --nogpgchec 
yum install -y openstack-nova-conductor  --nogpgchec
yum install -y openstack-nova-console  --nogpgchec
yum install -y openstack-nova-novncproxy  --nogpgchec
yum install -y openstack-nova-scheduler  --nogpgchec
yum install -y openstack-placement-api --nogpgchec

三、配置服务

1. 配置nova

  • 配置数据库连接
  • 配置rabbitmq
  • 配置keystone认证
  • 配置网络
  • 配置vnc
  • 配置placement
cp /etc/nova/nova.conf{,bak}
vim /etc/nova/nova.conf

[DEFAULT]
use_neutron=true
firewall_driver=nova.virt.firewall.NoopFirewallDriver
enabled_apis=osapi_compute,metadata
transport_url=rabbit://openstack:openstack@192.168.88.14:5672

[api]
auth_strategy=keystone

[api_database]
connection=mysql+pymysql://nova:nova@192.168.88.14/nova_api

[database]
connection=mysql+pymysql://nova:nova@192.168.88.14/nova

[glance]
api_servers=http://192.168.88.14:9292

[keystone_authtoken]
auth_uri=http://192.168.88.14:5000
auth_url=http://192.168.88.14:35357
memcached_servers=192.168.88.14:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=nova
password=nova

[oslo_concurrency]
lock_path=/var/lib/nova/tmp

[placement]
region_name=RegionOne
project_domain_name=default
project_name=service
auth_type=password
user_domain_name=default
auth_url=http://192.168.88.14:35357/v3
username=placement
password=placement

[vnc]
enabled=true
server_listen=192.168.88.14
server_proxyclient_address=192.168.88.14

2. 配置placement-api

cp /etc/httpd/conf.d/00-placement-api.conf{,.bak}
vim /etc/httpd/conf.d/00-placement-api.conf

# 在<VirtualHost *:8778>节点中添加:
<Directory /usr/bin>
  <IfVersion >= 2.4>
    Require all granted
  </IfVersion>
  <IfVersion < 2.4>
    Order allow,deny
    Allow from all
  </IfVersion>
</Directory>

配置完成后,重启一下httpd服务。

systemctl restart httpd

3. 配置placement

  • 配置数据库连接
  • 配置keystone认证
cp /etc/placement/placement.conf{,.bak}
vim /etc/placement/placement.conf

[api]
auth_strategy = keystone

[keystone_authtoken]
memcached_servers=192.168.88.14/11211
region_name=RegionOne
project_domain_name=default
project_name=service
auth_type=password
user_domain_name=default
auth_url=http://192.168.88.14:35357/v3
username=placement
password=placement

[placement_database]
connection = mysql+pymysql://placement:placement@192.168.88.14/placement

4. 信息初始化

# 同步nova-api数据库信息
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记录
su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
# 同步nova数据库信息
su -s /bin/sh -c "nova-manage db sync" nova
# 同步placement数据库信息
su -s /bin/sh -c "placement-manage db sync" placement
# 验证效果
nova-manage cell_v2 list_cells

执行完成后,分别查看nova、nova_api、nova_cell0、placement数据库,可以看到下面会自动生成一些数据库表。

# 数据库验证结果
mysql -h 192.168.88.14 -u nova -pnova -e "use nova; show tables"
mysql -h 192.168.88.14 -u nova -pnova -e "use nova_api; show tables"
mysql -h 192.168.88.14 -u nova -pnova -e "use nova_cell0; show tables"
mysql -h 192.168.88.14 -u placement -pplacement -e "use placement; show tables"

5. 创建service和endpoint

# 创建nova服务
openstack service create --name nova --description "OpenStack Compute" compute
# 配置nova服务的api地址记录
openstack endpoint create --region RegionOne compute public http://192.168.88.14:8774/v2.1
openstack endpoint create --region RegionOne compute internal http://192.168.88.14:8774/v2.1
openstack endpoint create --region RegionOne compute admin http://192.168.88.14:8774/v2.1

6. 创建用户

# 增加用户nova
openstack user create --domain default --password nova nova
# 将nova用户加入到Service项目的admin角色组
openstack role add --project service --user nova admin

四、计算节点部署

1. 安装软件

yum install -y openstack-nova-compute --nogpgchec
yum install -y libguestfs-tools --nogpgchec

安装openstack-nova-compute时候可能出现的问题:

Error: Package: 1:openstack-nova-compute-16.1.1-1.el7.noarch (centos-openstack-pike)
Requires: qemu-kvm-rhev >= 2.9.0
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest

导致上面问题的原因是之前设置源时有些地址是国外导致有些软件安装失败,系统自动删除了一些源文件,其中就有包含一个CentOS-QENU-EV.repo。

解决办法:重新下载CentOS-QENU-EV.repo源文件。

# replacepkgs参数代表重装软件,否则因为之前已安装过会报错。
rpm -ivh http://mirrors.163.com/centos/7/extras/x86_64/Packages/centos-release-virt-common-1-1.el7.centos.noarch.rpm  --replacepkgs
rpm -ivh http://mirrors.163.com/centos/7/extras/x86_64/Packages/centos-release-qemu-ev-1.0-4.el7.centos.noarch.rpm  --replacepkgs

安装完成后,还需要检查一下主机是否支持虚拟化技术。

egrep '(vmx|svm)' /proc/cpuinfo

如果有出现vmx关键字,代表CPU支持虚拟化。

2. 修改nova配置

  • 配置rabbitmq连接
  • 配置keystone认证
  • 配置网络类型
  • 配置vnc
  • 配置placment
cp /etc/nova/nova.conf{,.bak}
vim /etc/nova/nova.conf

[DEFAULT]
# 调整计算节点提供的资源参数
vif_plugging_is_fatal=false
vif_plugging_timeout=10
# 配置网络功能
use_neutron=true
firewall_driver=nova.virt.firewall.NoopFirewallDriver
# 开启 nova-api 的功能
enabled_apis=osapi_compute,metadata
# 配置 rabbitmq 的连接地址
transport_url=rabbit://openstack:openstack@192.168.88.14:5672

[api]
auth_strategy=keystone

[glance]
api_servers=http://192.168.88.14:9292

[keystone_authtoken]
api_servers=http://192.168.88.14:9292
auth_uri=http://192.168.88.14:5000
auth_url=http://192.168.88.14:35357
memcached_servers=192.168.88.14:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=nova
password=nova

[libvirt]
# 生产中用kvm
virt_type=qemu

[oslo_concurrency]
lock_path=/var/lib/nova/tmp

[placement]
region_name=RegionOne
project_domain_name=default
project_name=service
auth_type=password
user_domain_name=default
auth_url=http://192.168.88.14:35357/v3
username=placement
password=placement

[vnc]
enabled=true
server_listen=0.0.0.0
server_proxyclient_address=192.168.88.15
novncproxy_base_url=http://192.168.88.14:6080/vnc_auto.html

配置完成后,先启动控制节点,然后再重启libvirtd和openstack-nova-compute服务。

# 重启服务
systemctl start libvirtd openstack-nova-compute
systemctl status libvirtd openstack-nova-compute
systemctl enable libvirtd openstack-nova-compute

3. 测试效果

# 切换到control节点上检查效果
source openstack-admin.sh
# 重点关注nova-compute记录是否正常
openstack compute service list
# 新增计算节点记录,增加到nova数据库中
su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
# 验证所有API是否正常
nova-status upgrade check
# 检查日志
egrep ERROR /var/log/nova/nova-compute.log

总结

这部分介绍了nova-compute组件的部署。接下来介绍另外一个非常重要的组件,网络组件的部署。

一、Virtual Box的安装 1、安装Virtual Box 2、 Virtual Box网络设定 3、 安装操作系统 二、 环境预配置 1、 网路设置 2、 分别修改三个虚拟机的主机名 3、 主机地址映射配置 4、 禁用selinux 5、 CentOS6本地yum源配置 注:先加载镜像 6、 NTP安装服务 三、 本地源制作 1. Centos6.6本地base、extra源制作 2. 本地base、extra源制作 3. 本地epel、openstack源制作 4. ftp服务安装 5. 修改yum源仓库指向文件 、 keystone安装(上) 1. 安装Mysql服务 2. 安装rabbitmq消息队列 3. 为nova,neutron,cinder.heat创建用户并授权 五、 keystone安装(下) 1. 创建库和授权 2. 创建库和授权 3. 生成PKI认证所需要的证书文件 4. 同步keystone数据库,生成keystone所需的表 5. 启动keystone服务和校验服务状态 6. 创cron任务,配置定期清理过期的token 7. keystone创建user,tenant,role和endpoint 六、 Glance安装 1. Glance的安装 2. 配置glance-api服务 3. 配置glance-registry服务 4. 启动并校验glance服务 57 七、 Nova安装 59 1. nova的安装与配置 59 2. 安装和配置nova 60 八、 Neutron安装 63 1. neutron的安装与配置 63 2.Neutron使用二层组件 66 3. 配置OVS二层插件 67 4. 配置nova支持neutron 67 5. 启动neutron-server服务 68 6. 重启nova服务和neutron联动 69 7. 重启neutron-server 69 8. controller0上校验neutron的配置 69 九、 Horizon安装 71 1. Horizon组件的安装与配置 71 十、 Compute0安装nova 74 1. nova的安装与配置(compute0-10.20.0.30) 74 2. nova的安装与配置 75 十一、 Compute0安装neutron 78 1. neutron的安装与配置(compute0) 78 十二、 Network0安装neutron 83 1. neutron的安装与配置 83 十三、 新建网络 91 1. 配置安全组规则 91 2. 新建网络 92 3 .创建云主机 99 4 .分配浮动ip 101 十、 心得体会 107
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值