之前的篇章提到了对OpenStack控制节点的简单安装。并且已经可以进入可视化界面。这样的花控制节点的虚拟机已经可以协同工作了。接下来我们需要给与他一个资源池,我们以后云平台的所有资源都将在资源池获取。控制节点只是作为一个对云平台的管理节点。计算节点我们需要用到3张网卡。我的电脑装上了Ubuntu Server 我的网卡显示是第一上em2 第二张em3 以此类推。名字只是代号而已。用户配置文件处识别使用。
我们需要网卡 em2 作为API节点的通信端口。也就是说em2作为通信,设置为与控制节点eth0网卡相同的子网掩码让两个网卡接口可以相互通信。这也是整个云平台的通信端口。em3作为上网端口。我的计算节点装上的Ubuntu系统要通过这个网卡来连接互联网。em4用来管理端口。
以下是我的网卡配置文件。
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto em2
auto em3
auto em4
iface em2 inet static
address 192.168.1.133
netmask 255.255.255.0
iface em3 inet dhcp
iface em4 inet static
address 192.168.137.222
netmask 255.255.255.0
gateway 192.168.137.249
dns-nameservers 140.207.198.6
下面是张子凡先生的教程。
首先配置IP转发安装时间
修改/etc/sysctl.conf
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.rp_filter=0
/etc/init.d/networking restart
应用syctl设置
syctl -e -p /etc/sysctl.conf
service ntp stop
ntpdate 210.72.145.44
hwclock -w
service ntp start
接着就开始安装需要的组件
下面是我的脚本。
apt-get install -y nova-api nova-compute nova-network nova-compute-kvm python-nova python-keystone python-glance python-mysqldb
python-novaclient
我们需要删除系统的virbr0据说是kvm安装时候自动安装上去的。
ifconfig virbr0 down
brctl delbr virbr0
virsh net-destroy default
virsh net-undefine default
接下来就是配置文件的时候了。
首先是/etc/nova/api-paste.ini
添加认证。这里跟控制节点的配置是一样的。
接着是重要文件。/etc/nova/nova.conf
下面是我的配置文件。
[DEFAULT]
#debug=True
logdir = /var/log/nova
state_path = /var/lib/nova
lock_path = /var/lib/nova/tmp
verbose=True
libvirt_type = kvm
#volumes_dir = /etc/nova/volumes
#iscsi_helper = tgtadm
#connect to mysql
sql_connection = mysql://novaUser:[email protected]:3306/nova
#rpc_backend = nova.openstack.common.rpc.impl_qpid
rootwrap_config = /etc/nova/rootwrap.conf
#my_ip=192.168.137.104
#instances_path=/state/partition1/openstack/instance
#Image Service
glance_api_servers=192.168.1.105:9292
image_server=nova.image.glance.GlanceImageService
#RabbitMQ
compute_scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler
rabbit_host=192.168.1.103
rabbit_port=5672
rabbit_userid=guest
rabbit_password=myrabbitmqpassword
api_paste_config=/etc/nova/api-paste.ini
#Nova
cc_host=192.168.1.106
osapi_host=192.168.1.106
osapi_port=8774
#NETWORK
dhcpbridge = /usr/bin/nova-dhcpbridge
dhcpbridge_flagfile = /etc/nova/nova.conf
force_dhcp_release = True
#libvirt_inject_partition = -1
#injected_network_template = /usr/share/nova/interfaces.template
#libvirt_nonblocking = True
firewall_driver = nova.virt.libvirt.firewall.IptablesFirewallDriver
network_manager = nova.network.manager.FlatDHCPManager
fixed_range=192.168.100.0/24
flat_network_bridge = br100
public_interface=em4
#flat_interface=eth2
flat_network_dhcp_start=192.168.100.2
floating_range=60.12.206.32/27
network_size = 1
multi_host = true
#Metadata
enabled_apis=metadata
metadata_listen=0.0.0.0
metadata_listen_port=8775
#VNC
novnc_enabled=true
novncproxy_base_url=http://192.168.1.106:6080/vnc_auto.html
novncproxy_port = 6080
#这个要用的是所在主机的IP地址
vncserver_proxyclient_address = 192.168.1.133
vncserver_listen = 0.0.0.0
#AUTH
auth_strategy = keystone
#Must Have
[keystone_authtoken]
admin_tenant_name = serviceTenant
admin_user = nova
admin_password = Nova_Pass
auth_host = 192.168.1.104
auth_port = 35357
auth_protocol = http
signing_dir = /tmp/keystone-signing-nova
#Compute
compute_driver = libvirt.LibvirtDriver
其中要注意的
#这个要用的是所在主机的IP地址
vncserver_proxyclient_address = 192.168.1.133
然后我们重启服务。
当然这里也要注意配置文件夹还有日志文件夹的权限。
使用chown -R nova:nova 使得/etc/nova /var/log/nova 两个文件夹都属于nova用户还有nova组
然后重新启动服务。
下面是重启脚本。restart_compute.sh
service nova-api restart
service nova-network restart
service nova-compute restart
然后查看进程
如果配置文件没错的话应该都是正常启动的。
接下来我们查看服务状况。
nova-manage service list
这里就会出现这样一个问题。
大家都可以看到状态那里全是XXX。但是我回到控制节点的nova虚拟机上。查看服务状态。
却是全部都是笑脸
这就很奇怪了。
我进入我的horizon页面
大家可以看到云资源已经可以用了。我也创建了虚拟机。
之所以造成服务状态不一致的原因是控制节点与计算节点的时间相差太多。
接下来我调整下时间。
都变成笑脸了。
然后就可以通过horizon界面在计算节点Host2上创建虚拟机了。
我使用了一个Fedora官方的云镜像就100多MB 创建了一个虚拟机。结果如下。
尴尬的说我并没有他的用户名还有密码。我也刚创建成功没几天。正在琢磨着要如何使用镜像。希望上面的教程对大家有用吧。本来是打算用上FlatDHCPManager 的网络方式。不过这里就只有一个计算节点就暂时不需要nova-network。