OpenStack Havana 部署在Ubuntu 12.04 Server 【OVS+GRE】(一)——控制節點的安裝html
OpenStack Havana 部署在Ubuntu 12.04 Server 【OVS+GRE】(二)——網絡節點的安裝ios
OpenStack Havana 部署在Ubuntu 12.04 Server 【OVS+GRE】(三)——計算節點的安裝git
OpenStack接觸半年有餘了,如今 I 版也要立刻發佈了,如今也是時候要好好寫一下 Havana 的安裝、部署過程了。首先,仍是向Awy同窗致敬,當時正是參考他的H版部署博文,並綜合了OpenStack的Ubuntu官方部署文檔,終於完成了OpenStack多節點的部署(OVS+GRE)。要知道剛入門時,圖簡單,一直用Devstack來安裝,因爲git源、pipy的源、以及ubuntu的軟件源沒有配好,致使一直沒裝成功(如今改了一下腳本和localrc文件以及源,能夠作測試用)。後來又試了什麼Onestack,以及其餘人寫的一些手動部署的文章,但都由於版本差別太大,和一些沒有及時糾正的錯誤,最終仍是以失敗了結。直到最後,認真看了官方文檔之後,才慢慢有了轉機,因此仍是賢哥說得對啊,學好英文,才能隨時拿獲得第一手的技術精品資料啊!數據庫
如今先引用awy的原文:Ubuntu 12.04 Server OpenStack Havana多節點(OVS+GRE)安裝ubuntu
老實說,當時看這篇博文仍是有很多小錯誤,好比:keystone的建立腳本有些小問題,變量名先後不一致,例如ceilometer的服務ip變量應爲CEILOMETER_IP,而不是CEILOMETER;建立數據庫的時候,每一個庫都有所對應的用戶名和密碼,然後面的配置文件裏頭沒有與之對應;一樣配置文件裏頭的,對應keystone服務的password也沒有與keystone建立時的對應;計算節點部署neutron的時候,忘了建立br-int的網橋········api
可能,這些是有意預留下來「坑」,若是沒有認真對比OpenStack的官方文檔來看,徹底依葫蘆畫瓢,沒有注意到這些細節,照樣仍是不能配成功。做爲「過來人」,我就不在這裏預設「包袱」,儘可能把這些坑一一排除吧。接下來,分三篇博文的內容,大部分引用Awy同窗的OVS+GRE的部署方案,安裝Nova 、Glance、Keystone、Neutron、Cinder、Horizon、Ceilometer服務,來完成此次簡單多節點部署。網絡
1.肯定你的系統是ubuntu 12.04 LTS版本,目前的我部署的環境爲ubuntu server 12.04.3/Linux 3.8.0-36-generic架構
2.替換源爲163的源,同時也要加入ubuntu官方的Havana的源,使用 add-apt-repository cloud-archive:havana 添加之app
3.各個節點之間必定要使用ntp來同步時間,時區最好設置成同樣,省得出現服務「假死」
dom
因爲沒有太多可用的物理機,因而在一塊刀片上(真的是高性能),經過libvirt起三個KVM的虛擬機,來作爲要部署的場景。注意:KVM虛擬機裏面再起虛擬機,只能指定QEMU來完成,因此OpenStack計算節點的配置的虛擬化類型應爲qemu!同時須要配置三個網段:外網,管理網,數據網,雖然libvirt裏面的xml增長虛擬網卡很簡單,可是這裏,仍是使用eth0:1,eth0:2這樣的網絡別名設備,在一個網卡上配置多個IP,來完成多個網段的配置,在實際的物理主機中一樣能夠。總之,實際網絡部署就是,這三個節點雖然有不一樣的網段,但終究只連了一個「交換機」(若是要在libvirt的虛擬環境中不一樣網段鏈接不一樣的「交換機」,實現二層的隔離,即將其鏈接不一樣的網橋便可)。由於每一個節點都要apt-get來從源中下載包來安裝,因此實際上,每一個節點都部署了外網IP。
節點 | 外網IP | 內網IP | 數據網IP |
控制節點(Controller) | 192.168.122.2 | 10.10.10.2 | —— |
網絡節點(Network) | 192.168.122.3 | 10.10.10.3 | 10.20.20.3 |
計算節點(Computer) | 192.168.122.4 | 10.10.10.4 | 10.20.20.4 |
同時能夠參考一下,用做控制節點的KVM虛擬機的libvirt xml(其餘節點也都同樣):
<!-- WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE OVERWRITTEN AND LOST. Changes to this xml configuration should be made using: virsh edit win7 or other application using the libvirt API. --> <domain type='kvm'> <name>controller</name> <memory>4096000</memory> <vcpu>4</vcpu> <!--cpu> <topology sockets='1' cores='24' threads='24'/> </cpu--> <!--cpu mode='host-model'> <model fallback='allow'/> <topology sockets='1' cores='24' threads='1'/> </cpu--> <!--hostdev> <rom bar='on' file='/usr/share/kvm/pxe-rtl8139.rom'/> </hostdev--> <os> <type arch='x86_64' machine='pc'>hvm</type> <!--boot dev='network'/--> <boot dev='hd'/> <boot dev='cdrom'/> </os> <features> <acpi/> <apic/> <pae/> </features> <clock offset='localtime'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/bin/qemu-system-x86_64</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2' cache='none'/> <source file='/home/fbw/Good-OpenStack/controller.qcow2'/> <target dev='vda' bus='virtio'/> </disk> <disk type='file' device='disk'> <driver name='qemu' type='qcow2' cache='none'/> <source file='/home/fbw/Good-OpenStack/cinder.qcow2'/> <target dev='vdb' bus='virtio'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/home/fbw/ubuntu-12.04.3-server-amd64.iso'/> <target dev='hdc' bus='ide'/> <readonly/> </disk> <interface type='network'> <mac address='52:54:00:32:71:12'/> <source network='default'/> <!--virtualport type='openvswitch'> </virtualport--> <model type='virtio'/> </interface> <!--serial type='pty'> <target port='0'/> </serial--> <!--console type='pty'> <target type='serial' port='0'/> </console--> <input type='tablet' bus='usb'/> <input type='mouse' bus='ps2'/> <!--graphics type='spice' autoport='yes' listen='0.0.0.0'> </graphics--> <graphics type='vnc' autoport='yes' listen='0.0.0.0'> </graphics> <!--channel type='pty'> <target type='virtio' name='virtio-serial-port-0'/> <address type='virtio-serial' controller='1' bus='0' port='1'/> </channel--> <sound model='ich6'> <!--address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/--> </sound> <video> <!--model type='qxl' vram='65536' heads='1'/--> <!--address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/--> </video> <memballoon model='virtio'> <!--address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/--> </memballoon> <!--controller type='usb' index='0' model='ich9-ehci1'> </controller> <controller type='usb' index='0' model='ich9-uhci1' multifunction='on'> <master startport='0'/> </controller> <controller type='usb' index='0' model='ich9-uhci2'> <master startport='2'/> </controller> <controller type='usb' index='0' model='ich9-uhci3'> <master startport='4'/> </controller--> <!--redirdev bus='usb' type='spicevmc'> </redirdev> <redirdev bus='usb' type='spicevmc'> </redirdev> <redirdev bus='usb' type='spicevmc'> </redirdev> <redirdev bus='usb' type='spicevmc'> </redirdev--> </devices> <!--qemu:commandline> <qemu:arg value='-bios'/> <qemu:arg value='/usr/share/qemu-kvm/pxe-rtl8139.rom'/> </qemu:commandline> <qemu:commandline> <qemu:arg value='-option-rom'/> <qemu:arg value='/usr/share/qemu-kvm/sgabios.bin'/> </qemu:commandline--> </domain>