Nova计算服务(计算节点)

 参考

本页内容依照官方安装文档进行,具体参见Configure a compute node(nova service)

前置工作

数据库

由于我们在Nova(计算管理)部署配置中使用了mysql数据库,所以移除本地sqlite数据库

sudo rm /var/lib/nova/nova.sqlite

修改vmlinuz权限

For security reasons, the Linux kernel is not readable by normal users which restricts hypervisor services such as qemu and libguestfs. For details, see this bug. To make the current kernel readable, run:

sudo dpkg-statoverride  --update --add root root 0644 /boot/vmlinuz-$(uname -r)

为了以后在内核升级vmlinuz重新生成后还能保持可读状态,创建一个脚本/etc/kernel/postinst.d/statoverride,包含以下内容:

#!/bin/sh
version="$1"
# passing the kernel version is required
[ -z "${version}" ] && exit 0
dpkg-statoverride --update --add root root 0644 /boot/vmlinuz-${version}

修改脚本权限

sudo chmod +x /etc/kernel/postinst.d/statoverride

安装

# apt-get install nova-compute-kvm python-guestfs

配置

涉及的配置文件包含两个:

/etc/nova/nova.conf
配置与controller节点nova服务通信
/etc/nova/nova-compute.conf
配置nova-compute服务,即计算节点的虚拟化方面的配置,比如指定使用扫描虚拟化技术

数据库

编辑/etc/nova/nova.conf,修改[database]小节中的数据库连接字符串(没有则添加)如下:

[database]
connection = mysql://nova:nova_dbpass@controller/nova

这里假定在控制节点的Nova(计算管理)部署配置时设定的数据库帐号nova的密码为nova_dbpass

keystone对接

编辑/etc/nova/nova.conf,首先配置文件中的[DEFAULT]小节,指定使用keystone作为验证后台:

[DEFAULT]
...
auth_strategy = keystone

然后配置[keystone_authtoken]小节(没有则添加),如下

[keystone_authtoken]
auth_uri = http://controller:5000
auth_host = controller
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = nova
admin_password = nova_pass

rabbitmq对接

编辑/etc/nova/nova.conf,在[DEFAULT]节中修改为如下

[DEFAULT]
...
# rpc_backend = rabbit
rabbit_host = controller
rabbit_password = RABBIT_PASS

其中"rpc_backend = rabbit"为官方配中给出,但是我们在实际配置发现,加入该字段后计算节点的nova服务无法启动,提示找不到"rabbit"模块.因此此处我们将其注释掉,服务仍然可以正常启动.

VNC对接

编辑/etc/nova/nova.conf,修改其中的[DEFAULT]小节,加入以下内容

[DEFAULT]
...
my_ip = 10.14.39.196
vnc_enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = 10.14.39.196
novncproxy_base_url = http://controller:6080/vnc_auto.html

其中10.14.39.196为本计算节点的ip,controller为/etc/hosts文件中控制节点的主机名

glance对接

创建虚拟机时需要把映像从glance服务中获取到计算节点上,所以在/etc/nova/nova.conf文件的[DEFAULT]小节中配置提供glance服务的主机(在我们的部署中由控制节点提供)

[DEFAULT]
...
glance_host = controller

虚拟化技术

需要根据硬件情况决定nova-compute使用的虚拟化技术 通过以下命令检测cpu是否支持硬件虚拟化

$ egrep -c '(vmx|svm)' /proc/cpuinfo

其中vmx为intel提供的虚拟化技术,svm为amd提供的对应技术[1],如果上述命令输出为0,则该节点硬件不支持硬件虚拟化,需要修改/etc/nova/nova-compute.conf配置文件,指定使用qemu软件模拟

[libvirt]
...
virt_type = qemu

如果输出大于0,则不需要进行配置,nova默认使用kvm技术[2][3]加速

更新服务

为了日后管理方便,在admin的home目录下创建一个脚本文件nova_compute_restart.sh,内如如下:

#! /bin/bash
service nova-compute restart

修改脚本权限

chmod +x nova_compute_restart.sh

执行脚本应用刚刚的配置

sudo ./nova_compute_restart.sh

验证

运行如下命令:

admin@compute1:~$ . admin-openrc.sh
admin@compute1:~$ sudo nova-manage host list
host zone
controller internal
compute1 nova

在host中可以看到本计算节点(compute1)

Neutron网络服务(计算节点)

 参考

本页内容依照官方部署指导[1]进行

前置工作

关闭反向路径过滤

有关linux反向路径过滤参考[2],编辑/etc/sysctl.conf对内核做相应的配置变更如下:

net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0

应用变更

sudo sysctl -p

安装

sudo apt-get install neutron-common neutron-plugin-ml2 neutron-plugin-openvswitch-agent openvswitch-datapath-dkms

注意:Ubuntu installations using Linux kernel version 3.11 or newer do not require the openvswitch-datapath-dkms package.

配置

涉及的配置文件如下

/etc/neutron/neutron.conf
计算节点的neutron网络服务
/etc/neutron/plugins/ml2/ml2_conf.ini
ml2插件配置
/etc/nova/nova.conf
计算节点的nova服务,因为nova中的虚拟机通信通过neutron提供的网络实现,所以要进行必要的配置,是他们能够协同工作

keystone对接

修改/etc/neutron/neutron.conf配置文件中的[DEFAULT]小节,指定使用keystone作为身份验证后台:

[DEFAULT]
...
auth_strategy = keystone

然后修改(添加)配置文件中的[keystone_authtoken]小节:

[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_host = controller
auth_protocol = http
auth_port = 35357
admin_tenant_name = service
admin_user = neutron
admin_password = neutron_pass

这里假定在Neutron(网络管理)部署配置中配置的neutron服务的keystone帐号的密码为neutron为neutron_pass

rabbitmq对接

在配置文件/etc/neutron/neutron.conf中的[DEFAULT]小节中添加以下内容

[DEFAULT]
...
rpc_backend = neutron.openstack.common.rpc.impl_kombu
rabbit_host = controller
rabbit_password = rabbit123

这里假定控制节点上rabbitmq消息队列服务的默认用户(guest)使用的密码时rabbit123

ml2插件配置

/etc/neutron/neutron.conf

首先修改配置文件中的[DEFAULT]小节中添加以下内容:

[DEFAULT]
...
core_plugin = ml2
service_plugins = router
allow_overlapping_ips = True

/etc/neutron/plugins/ml2/ml2_conf.ini

然后修改ml2专有的配置文件,编辑各个小节的相关字段如下:

[ml2]
...
type_drivers = gre
tenant_network_types = gre
mechanism_drivers = openvswitch [ml2_type_gre]
...
tunnel_id_ranges = 1:1000 [ovs]
...
local_ip = 10.14.39.196
tunnel_type = gre
enable_tunneling = True [securitygroup]
...
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
enable_security_group = True

其中[ovs]小节中的local_ip为用来作为GRE传输隧道的网络接口所拥有的ip地址,由于实验室中的台式机只有一个网卡,因此我们将使用与管理网络相同的接口作为的GRE隧道所用的网络接口(即计算节点上的eth0,ip=10.14.39.196).

添加桥接接口

添加一个名为br-int(系统默认使用该名,可以修改)的桥接,实际是对计算节点上各个虚拟网络的桥接并且有连接了br-tun隧道桥接,使得其上的流量能够通过GRE隧道到达其他的网络节点[3].

# service openvswitch-switch restart
# ovs-vsctl add-br br-int

这个桥接是openswitch桥接,不是linux bridge.

nova对接

为了使得nova中的虚拟机使用neutron提供的网络服务,必须对计算节点上的nova服务也进行配置.

修改配置文件/etc/nova/nova.conf 中的相关字段如下:

[DEFAULT]
...
network_api_class = nova.network.neutronv2.api.API
neutron_url = http://controller:9696
neutron_auth_strategy = keystone
neutron_admin_tenant_name = service
neutron_admin_username = neutron
neutron_admin_password = neutron_pass
neutron_admin_auth_url = http://controller:35357/v2.0
linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver
firewall_driver = nova.virt.firewall.NoopFirewallDriver
security_group_api = neutron

这里假定neutron的keystone用户的密码为neutron_pass

更新服务

为了方便管理,在admin用户的home目录下创建一个脚本:neutron_and_vswitch_restart.sh,内容如下:

#! /bin/bash
service openvswitch-switch restart \
&& service neutron-plugin-openvswitch-agent restart

修改脚本权限

chmod +x neutron_and_vswitch_restart.sh

执行脚本以应用刚刚修改的各个配置项:

# ./neutron_and_vswitch_restart.sh
# ./nova_compute_restart.sh

注意:nova_compute_restart.sh为在配置Nova计算服务(计算节点)时创建的脚本

OpenStack IceHouse 部署 - 4 - 计算节点部署的更多相关文章

  1. Openstack 网络服务 Neutron计算节点部署(十)

    Neutron计算节点部署 安装组件,安装的服务器是192.168.137.12 1.安装软件包 yum install -y openstack-neutron-linuxbridge ebtabl ...

  2. Openstack 网络服务 Neutron计算节点部署 (十一)

    一) Neutron计算节点部署 1.安装软件包 # yum install -y openstack-neutron-linuxbridge ebtables ipset 2.配置文件neutron ...

  3. install-newton部署安装--------计算节点部署安装

    #################################################################################################### ...

  4. OpenStack 计算服务 Nova计算节点部署(八)

    如果使用vmware虚拟机进行部署,需要开启虚拟化:如果是服务器需要在bios上开启. nova计算节点IP是192.168.137.12 环境准备 安装时间同步 yum install ntpdat ...

  5. openstack中彻底删除计算节点的操作记录

    在使用openstack的过程中,我们经常会添加好几台计算节点来部署虚拟机,在后续使用中由于某些原因,一些计算节点出现了问题,需要将这些出了问题的计算节点从openstack的控制节点中踢出去!但是很 ...

  6. OpenStack 计算服务 Nova计算节点部署 (九)

    如果使用vmware虚拟机进行部署,需要开启虚拟化:如果是服务器需要在bios上开启. Nova Compute nova-compute 一般运行在计算节点上,通过Messages Queue接收并 ...

  7. OpenStack IceHouse 部署 - 5 - 网络节点部署

    Neutron网络服务(网络节点)     目录 [隐藏]  1 参考 2 前置工作 2.1 调整内核参数 3 安装 4 配置 4.1 keystone对接 4.2 rabbitmq对接 4.3 me ...

  8. openstack学习-nove计算节点部署(五)

    nova-compute一般运行在计算节点上,通过message Queue接收管理VM的生命周期 nova-compute通过Libvirt管理KVM,通过XenAPI管理Xen等 一.安装Open ...

  9. OpenStack 存储服务 Cinder存储节点部署NFS(十七)

    Cinder存储节点部署 1.安装软件包 yum install -y nfs-utils rpcbind 提示:早期版本安装portmap nfs-utils :包括基本的NFS命令与监控程序 rp ...

随机推荐

  1. 【微信小程序】——wxss引用外部CSS文件及iconfont

    小程序引入外部文件的方式是:@import "*/*.wxss"; 因为业务需要,正在开发的小程序中需要使用iconfont,很容易想到了H5的引入方式: ```` @font-f ...

  2. 终于搞定在VS2010中将CString转换为const char*

    最近碰到了CString 转 const char *的问题. 以前只要简单的一个强制转换就OK了,可现在是不行了,搜索了很多资料,终于搞定,主要是Unicode和ANSI的问题,只要做一个转换就可以 ...

  3. Express-及中间件的简单理解

    Express Express 是一个基于node平台,保持最小规模的灵活的 Node.js Web 应用程序开发框架,在Node.js基础上扩展对了web应用开发所需要的基础功能为 Web 和移动应 ...

  4. 实验二 输出“Hello Word!”,测试主方法的输入参数和心得体会

    实验二 一.输出“Hello World!” 1.首先打开eclipse,如下图所示. 2.选择一个工作空间,如下图所示. 3.接下来,点击[Java项目]创建一个Java项目,如下图所示. 4.然后 ...

  5. 【性能测试】:关于Sockets协议的脚本的开发

    一,关于Sockets协议的脚本,首先对报文的解析是一个关键, 报文的解析一般对着接口文档,弄清楚每个字段代表什么意思,如下一段报文,放在data.ws中 "\x00\x00\x01\x5C ...

  6. 通过数据库绑定的dropdownlist,如何让其第一条默认显示"--请选择--"

    第一种方法 DropDownList1.Items.Insert(0,"请选择XXX"); 第二种方法 在第一个位置插入一个项就可以 DropDownList1.Items.Ins ...

  7. PowerDesigner新建CDM设置相同属性

    在 PowerDesigner设计逻辑模型CDM时,在一个包的一个域中,考虑到主外键名称可能冲突的问题,默认两个不同的实体中不能有相同的属性 但实际设计的时候,通常要在两个实体中使用相同的属性名, 比 ...

  8. shiro学习笔记_0400_自定义realm实现身份认证

     自定义Realm实现身份认证 先来看下Realm的类继承关系: Realm接口有三个方法,最重要的是第三个方法: a) String getName():返回此realm的名字 b) boolean ...

  9. ListenableFuture in Guava

    ListenableFuture的说明 并发编程是一个难题,但是一个强大而简单的抽象可以显著的简化并发的编写.出于这样的考虑,Guava 定义了 ListenableFuture接口并继承了JDK c ...

  10. amazeui笔记-CSS 布局相关

    CSS 等分网格: 说明:.am-avg-sm-2  数字表示几等分 会将子元素 <li>的宽度设置为 50%. 只能用于 <ul> / <ol> 结构 辅助类: ...