OpenStack Hands on lab 4-2: Nova安装和配置

OpenStack已经发布Essex版本了, 看来我的速度远远不及现在OpenStack的开发进度, 也正因为如此, 在我写这个系列的时候, 他们已经修改了很多东西, 我也在尽量的根据读者的反馈修改了前面的内容。 这篇文章是接着Nova介绍的第二部分, 所以如果你对Nova的概念还不是很清晰, 我建议你看一下第一部分。 所以这篇开始, 我就不多说Nova是神马了, 就直接开始我们的动手试验。

相关阅读:

准备环境

由于我的试验环境有限, 所以这次我选择在一台虚机上安装Nova组件, 而没有使用多Compute节点的方式来部署, 据说那也是挺挑战的, 等我有闲置的机器我会去尝试一下。

os: Ubuntu server 11.10
hostname: os-nova-01
ip address:10.172.7.86
role: nova-api nova-compute nova-scheduler nova-network nova-volume
nic: single
#由于我的cpu是比较老的i3, 物理机总共就4G内存, 我还跑了一个nexentastor, 所以这里就委屈一下nova了, 给了1G内存, 不能跑kvm, virtlib-type设置的是qemu

安装Nova

照例安装必要的软件和Python的依赖项, 其他的依赖项等后面遇到的时候再装。

sudo apt-get install build-essential git python-dev python-setuptools python-pip python-mysqldb libxml2-dev libxslt-dev
sudo apt-get install rabbitmq-server bridge-utils
sudo rabbitmqctl change_password guest openstack
sudo apt-get install lvm2 iscsitarget open-iscsi iscsitarget-source iscsitarget-dkms tgt #用于配置nova-volume
sudo apt-get install libhivex0 btrfs-tools cryptsetup diff libaugeas0 reiserfsprogs zfs-fuse jfsutils scrub xfsprogs zerofree libfuse2
sudo /etc/init.d/tgt start

可以看出, Nova的依赖项还挺多的。 OpenStack Hands on lab 4-2: Nova安装和配置 吐槽一下, 我们继续,签出代码, 并安装到Python dist package

cd ~ 
git clone git://github.com/openstack/nova.git#nova-api需要使用到keystone, 所以还需要安装一下keystone
git clone git://github.com/openstack/keystone.git#still, 它需要Glance的一些功能
git clone git://github.com/openstack/glance.git
cd ~/nova
sudo pip install -r tools/pip-requires
sudo python setup.py install
cd ~keystone 
sudo pip install -r tools/pip-requires
sudo python setup.py install
cd ~/glance
sudo pip install -r tools/pip-requires
sudo python setup.py install

修改网络设置

sudo vi /etc/network/interfaces
#如果你是只有一个网卡,那么你直接改成下面这段就可以了, 如果你是多网卡的话, 将不适用于本文的单网卡设置试验, 你可以忽略第二块网卡, 我假设你只有一块网卡, 并且设备名称是eth0# This file describes the network interfaces available on your system# and how to activate them. For more information, see interfaces(5).# The loopback network interfaceauto lo
iface lo inet loopback

# The primary network interfaceauto br100
iface br100 inet static
address 10.172.7.86
netmask 255.255.255.0
gateway 10.172.7.1
bridge_ports eth0
bridge_stp off
bridge_fd 0

增加一个桥接设备, 我们将它命名为br100

sudo brctl addbr br100
sudo /etc/init.d/networking restart

经过刚才的设置, 用ifconfig应该是下面的结果:

br100     Link encap:EthernetHWaddr00:0c:29:b3:c2:2b  
          inet addr:10.172.7.86Bcast:0.0.0.0Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:feb3:c22b/64Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500Metric:1
          RX packets:1371 errors:0 dropped:20 overruns:0 frame:0
          TX packets:138 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:167915(167.9 KB)  TX bytes:15756(15.7 KB)

eth0      Link encap:EthernetHWaddr00:0c:29:b3:c2:2b  
          UP BROADCAST RUNNING MULTICAST  MTU:1500Metric:1
          RX packets:2375 errors:0 dropped:0 overruns:0 frame:0
          TX packets:162 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:446925(446.9 KB)  TX bytes:16812(16.8 KB)

lo        Link encap:LocalLoopback  
          inet addr:127.0.0.1Mask:255.0.0.0
          inet6 addr:::1/128Scope:Host
          UP LOOPBACK RUNNING  MTU:16436Metric:1
          RX packets:113 errors:0 dropped:0 overruns:0 frame:0
          TX packets:113 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:7374(7.3 KB)  TX bytes:7374(7.3 KB)

安装虚拟机Hypervisor

经过刚才的设置, 我们有一个桥接设备,桥接在物理网卡eth0上, 那么接下来需要设置一下虚拟机的运行环境和libvirt, 这样nova就可以通过libvirt连接到虚拟机Hypervisor。

sudo apt-get install qemu libvirt-bin libvirt-dev python-libvirt kvm ebtables nbd-server nbd-client

检查一下你的机器是否可以使用硬件虚拟化来加速虚拟机运行

kvm-ok

如果显示的是

INFO:/dev/kvm exists
KVM acceleration can be used

那么你的设备支持KVM的方式来运行虚拟机, 如果是

INFO:Your CPU does not support KVM extensions
KVM acceleration can NOT be used

Oops, 你只能通过qemu软件虚拟的方式来运行虚拟机。 至于kvm和qemu有什么区别, 简单的说就是kvm使用cpu的xvm指令扩展来运行虚拟机, 而qemu使用软件模拟cpu的指令来实现虚拟化。 详细的资料, 还是去Wikipedia吧。

相关推荐