OpenStack IceHouse 部署 - 4 - 計算節點部署

Nova計算服務(計算節點)

  參考

本頁內容依照官方安裝文檔進行,具體參見Configure a compute node(nova service)php

前置工做

數據庫

因爲咱們在Nova(計算管理)部署配置中使用了mysql數據庫,因此移除本地sqlite數據庫html

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:node

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

爲了之後在內核升級vmlinuz從新生成後還能保持可讀狀態,建立一個腳本/etc/kernel/postinst.d/statoverride,包含如下內容:python

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

修改腳本權限mysql

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

安裝

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

配置

涉及的配置文件包含兩個:linux

/etc/nova/nova.conf
配置與controller節點nova服務通訊
/etc/nova/nova-compute.conf
配置nova-compute服務,即計算節點的虛擬化方面的配置,好比指定使用掃描虛擬化技術

數據庫

編輯/etc/nova/nova.conf,修改[database]小節中的數據庫鏈接字符串(沒有則添加)以下:sql

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

這裏假定在控制節點的Nova(計算管理)部署配置時設定的數據庫賬號nova的密碼爲nova_dbpass數據庫

keystone對接

編輯/etc/nova/nova.conf,首先配置文件中的[DEFAULT]小節,指定使用keystone做爲驗證後臺:api

[DEFAULT]
...
auth_strategy = keystone

而後配置[keystone_authtoken]小節(沒有則添加),以下bash

[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計算服務(計算節點)時建立的腳本

相關文章
相關標籤/搜索