OpenStack 部署總結之:在CentOS 6.5上使用RDO安裝雙結算結點的icehouse(ovs+vlan),rdoicehouse
本文主要介紹如何在CentOS6.5上通過RDO來安裝一個雙計算節點的icehouse環境,由於安裝的過程中涉及的軟體較多,以及依賴關係比較複雜,建議使用一個全新的作業系統來進行安裝。
硬體環境
兩台Dell的PC機,每台機器有兩個網卡,且每個網卡都接有網線。公網和管理網路合用em1,虛擬機器網路使用em2
伺服器 |
公網/管理網路 |
VM Net |
角色 |
伺服器1 |
em1:192.168.40.147 |
em2 |
控制節點,網路節點,儲存節點,計算節點 |
伺服器2 |
em2:192.168.40.148 |
em2 |
計算節點 |
由於使用的是vlan模式,所以事先需要在物理上把em2串連的兩個連接埠設定成Trunk,.
簡單的物理描述圖如下
簡單的邏輯圖取自陳老師部落格的圖(忽略IP與裝置名稱)
虛擬機器的通訊,是通過eth1(對應我的環境是em2),虛擬機器訪問外部網路,是通過伺服器1上的L3agent,br-ex到eth0(對應我的環境是em1)上訪問外部網路
安裝步驟安裝作業系統
使用光碟片或鏡像檔案安裝作業系統.
分區的時候需要劃分一個邏輯區,並且建立一個名稱叫cinder-volumes的組。這個邏輯卷組會被cinder使用。
建立的效果類似於:
建立過程請參考:http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-lvm-diskdruid-manual.html
也可以裝完作業系統後通過命令的方式來建立
修改/etc/fstab 去掉cinder-volume的開機掛載,不然會導致你無法重啟
sed -i '/cinder-volume/s/^/#/' /etc/fstab
配置網路
兩台機器上的配置方式除了IP,MAC 外都相同
配置 vi/etc/sysconfig/network-scripts/ifcfg-em1,編輯內容如下
DEVICE=em1 HWADDR=F8:B1:56:AE:3A:84 TYPE=Ethernet UUID=6f49b547-f1f8-4b21-a0fc-68791a5237dd ONBOOT=yes BOOTPROTO=static IPADDR=192.168.40.145 NETMASK=255.255.255.0 GATEWAY=192.168.40.1 DNS1=8.8.8.8
配置 vi/etc/sysconfig/network-scripts/ifcfg-em2,編輯內容如下
DEVICE=em2HWADDR=00:21:27:AE:16:A3TYPE=EthernetUUID=9c5983f2-1932-4540-953f-7774a2aa5154ONBOOT=yesBOOTPROTO=staticIPADDR=192.168.105.3GATEWAY=192.168.105.1NETMASK=255.255.255.0DEFROUTE=no
經過以上配置後,確定網路可以串連.
由於執行個體啟動並執行過程中,可以將NetworkManager服務停止,以為這個服務沒用的服務會佔用大量的記憶體
chkconfig NetworkManager off
安裝相關的yum源
yum源是否正確安裝直接影響到安裝的正確性,本人安裝的過程中出現的很多問題都和源有關
安裝的過程主要涉及到三個源:
安裝163源
1,備份/etc/yum.repos.d/CentOS-Base.repo
- mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2,下載對應版本repo檔案, 放入/etc/yum.repos.d/(操作前請做好相應備份)
安裝icehouse源
執行以下命令
- Yum install -y http://rdo.fedorapeople.org/openstack-icehouse/rdo-release-icehouse.rpm
安裝epel源
選用的是64位系統,執行以下命令
- rpm -ivh http://download.fedora.redhat.com/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm
在安裝上面源的時候會產生foreman.repo源,這個源可直接刪掉
設定YUM的cache
由於網路問題,安裝過程可能會經常失敗,所以此時可以設定yum 的cache來提高失敗後再次安裝的效率
安裝openstack-packstack
執行下面的命令
yum install -y openstack-packstack
可能會碰到計算節點安裝某些程式總是失敗,可以先在計算節點上安裝完之後在到控制節點上再次執行
配置並修改packstack設定檔
為了方便以後多次執行相同的packstack的配置,可以先匯出一個原始的配置,然後在這個檔案上做一些修改,以後就可以指定設定檔的方式安裝openstack
產生自己的設定檔
packstack --gen-answer-file=vlan_2compute.txt
修改設定檔
為了驗證icehouse中的heat,lbaas,ceilometer等組建的新特性,所以需要安裝這些組建,另外網路上的配置也做了一些調整。
將下面的配置覆蓋到vlan_2compute.txt中
#為了在環境中使用HEAT CONFIG_HEAT_INSTALL=y CONFIG_NTP_SERVERS=0.uk.pool.ntp.org #配置兩個計算節點 CONFIG_COMPUTE_HOSTS=192.168.40.147,192.168.40.148 #登陸控制台的密碼 CONFIG_KEYSTONE_ADMIN_PW=admin #前面的步驟已經建立了LVM CONFIG_CINDER_VOLUMES_CREATE=n #網路使用的配置 CONFIG_NOVA_COMPUTE_PRIVIF=em2 CONFIG_NOVA_NETWORK_PUBIF=em1 CONFIG_NOVA_NETWORK_PRIVIF=em2 CONFIG_LBAAS_INSTALL=y CONFIG_NEUTRON_METERING_AGENT_INSTALL=y #VLAN模式的相關配置 CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vlan CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=vlan CONFIG_NEUTRON_ML2_VLAN_RANGES=physnet1:10:20 CONFIG_NEUTRON_OVS_TENANT_NETWORK_TYPE=vlan CONFIG_NEUTRON_OVS_VLAN_RANGES=physnet1:10:20 CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-em2 CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-em2:em2 #不安裝DEMO使用者 CONFIG_PROVISION_DEMO=n CONFIG_HEAT_CLOUDWATCH_INSTALL=y CONFIG_HEAT_CFN_INSTALL=y
修改Selinux配置
編輯/etc/selinux/config,設定以下屬性
SELINUX=permissive
修改hosts
在兩個節點的/etc/hosts檔案中分別添加對方的IP以及名稱
執行設定檔
packstack --answer-file=myanswer.txt
這個過程可能比較漫長,中間可能會因為網路中斷幾次,中斷後請繼續
登陸
使用者名稱為admin,密碼為admin
成功後OVS配置:
控制節點
[root@icehouse ~]#ovs-vsctl showfb04ef1e-278f-48d4-b20b-3eafb63de9cf Bridge br-ex Port br-ex Interface br-ex type: internal Port "em1" Interface "em1" Port "qg-ea25d142-ea" Interface"qg-ea25d142-ea" type: internal Bridge "br-em2" Port "phy-br-em2" Interface "phy-br-em2" Port "em2" Interface "em2" Port "br-em2" Interface "br-em2" type: internal Bridge br-int Port "tapc07b9126-81" tag: 2 Interface"tapc07b9126-81" type: internal Port "qvo6889c1b9-fb" tag: 1 Interface"qvo6889c1b9-fb" Port "qvoe26e3b19-a4" tag: 1 Interface"qvoe26e3b19-a4" Port "qvo8e422661-97" tag: 1 Interface"qvo8e422661-97" Port "qr-9d77d069-84" tag: 1 Interface"qr-9d77d069-84" type: internal Port "tap89c353d7-f6" tag: 1 Interface"tap89c353d7-f6" type: internal Port br-int Interface br-int type: internal Port "int-br-em2" Interface "int-br-em2" ovs_version: "1.11.0"
計算節點:
[root@icehouse1 ~]#ovs-vsctl show63be159a-193e-48d6-b472-4851d8c58af7 Bridge br-int Port "qvoa7274e42-7b" tag: 1 Interface"qvoa7274e42-7b" Port "int-br-em2" Interface "int-br-em2" Port "qvo6dfc5f97-c5" tag: 1 Interface"qvo6dfc5f97-c5" Port br-int Interface br-int type: internal Bridge "br-em2" Port "br-em2" Interface "br-em2" type: internal Port "em2" Interface "em2" Port "phy-br-em2" Interface "phy-br-em2" ovs_version: "1.11.0"