? OpenStack高可用集群部署方案(train版)—修改Linuxbridge為Openvswitch

緒論

openvswitch的原理和常用命令
Neutron中Linux bridge與Open vSwitch兩種plugin優(yōu)劣勢對比:

目前說到虛擬交換機裳擎,通常會想到使用Open vSwitch做虛擬交換機,因為支持Open vSwitch的個人和企業(yè)都想要有一個開放的模式把他們的服務(wù)集成進OpenStack。 Open vSwitch社區(qū)做了大量的工作倒戏,希望提升Open vSwitch作為最主要虛擬交換機的地位。社區(qū)期望Open vSwitch將在軟件定義網(wǎng)絡(luò)(SDN)接管網(wǎng)絡(luò)時代到來時蔑水,提供所有可能最好的交換服務(wù)厉颤。但是,Open vSwitch的復(fù)雜性使用戶渴望更簡單的網(wǎng)絡(luò)解決方案渤滞,在這過程中需要Linux Bridge這樣的簡單橋接技術(shù)來支持云解決方案。

但是Open vSwitchh支持者會指出Linux Bridge 缺少可擴展性的隧道模型榴嗅。Linux Bridge支持GRE隧道妄呕,但是并不支持更前沿和擴展性更好的VXLAN模型。因此有這些觀點的網(wǎng)絡(luò)專家們嗽测,他們會比較堅定的認為復(fù)雜的解決方案比一個簡單的解決方案要好绪励。

當(dāng)然,Linux Bridge已經(jīng)發(fā)生了變化唠粥,也有助于縮小使用Open vSwitch和Linux Bridge的之間的差距疏魏,包括添加VXLAN支持隧道技術(shù)。但是在更大的網(wǎng)絡(luò)規(guī)模中晤愧,Linux Bridge的簡單性可能會產(chǎn)生更大的價值大莫。

我們都知道,OpenStack社區(qū)官方的安裝文檔的步驟在liberty版本之前都是以O(shè)penvSwitch為例子的官份。而且從OpenStack 用戶調(diào)查來看只厘,使用 Open vSwitch的人比使用 linux bridge 多很多。

Liberty 版本之前社區(qū)官方文檔都是使用 neutron-plugin-openvswitch-agent舅巷, 但是Liberty 版本轉(zhuǎn)為使用 neutron-plugin-linuxbridge-agent羔味。社區(qū)文檔只留了這么一句話,意思是Linuxbridge更加簡單钠右。

“In comparison to provider networks with Open vSwitch (OVS), thisscenario relies completely on native Linux networking services which makes itthe simplest of all scenarios in this guide.”

以下是Open vSwitch與Linux bridge之間的優(yōu)劣勢對比:
① Open vSwitch 目前還存在不少穩(wěn)定性問題赋元,比如:
1.Kernetlpanics 1.10
2.ovs-switchedsegfaults 1.11
3.廣播風(fēng)暴
4.Datacorruption 2.01

② 于Linux bridge,OpenvSwitch有以下好處:
1.Qos配置飒房,可以為每臺vm配置不同的速度和帶寬
2.流量監(jiān)控
3.數(shù)據(jù)包分析
4.將openflow引入到ovs中搁凸,實現(xiàn)控制邏輯和物理交換網(wǎng)絡(luò)分離

③ 為什么可以使用 Linux bridge?
1.穩(wěn)定性和可靠性要求:Linux bridge 有十幾年的使用歷史狠毯,非常成熟坪仇。
2.易于問題診斷 (troubleshooting)
3.社區(qū)也支持
4.還是可以使用Overlay 網(wǎng)絡(luò) VxLAN 9需要 Linux 內(nèi)核 3.9 版本或者以上)

④ 使用 Linux bridge 的局限性
1.Neutron DVR還不支持 Linux bridge
2.不支持 GRE
3.一些 OVS 提供但是 Neutorn 不支持的功能

⑤ 長期來看,隨著穩(wěn)定性的進一步提高垃你,Open vSwitch 會在生產(chǎn)環(huán)境中成為主流椅文。

可以看出:
(1)OVS 將各種功能都原生地實現(xiàn)在其中喂很,這在起始階段不可避免地帶來潛在的穩(wěn)定性和可調(diào)試性問題;
(2)Linux bridge 依賴各種其他模塊來實現(xiàn)各種功能皆刺,而這些模塊的發(fā)布時間往往都已經(jīng)很長少辣,穩(wěn)定性較高;
(3)兩者在核心功能上沒有什么差距羡蛾,只是在集中管控和性能優(yōu)化這一塊Open vSwitch有一些新的功能或者優(yōu)化漓帅。但是,從測試結(jié)果看痴怨,兩者的性能沒有明顯差異忙干;

總之,目前浪藻,Open vSwitch與Linux bridge都有各自的適合的場景捐迫,對于云用戶來說也提供了更好的兩種優(yōu)秀的網(wǎng)絡(luò)解決方案,除了SDN對集中管控的需求爱葵,和更新更多的網(wǎng)絡(luò)特性時施戴,Open vSwitch更加有優(yōu)勢,但是在穩(wěn)定性萌丈,大規(guī)模網(wǎng)絡(luò)部署等場景中Linux bridge 是個較好的選擇赞哗。本文來自九州云技術(shù)人員投稿,供大家參考辆雾!


之前使用的是官網(wǎng)提供的linuxbridge+vxlan模式肪笋;
本篇記錄要將linuxbridge+vxlan模式改裝成openvswitch+vxlan模式!

1. 當(dāng)前集群應(yīng)用分布情況

由于將網(wǎng)絡(luò)節(jié)點直接部署在了計算節(jié)點上度迂,因此藤乙,只需要將compute節(jié)點上的 neutron-linuxbridge-agent改成neutron-openvswitch-agent即可;

2. 準(zhǔn)備工作

2.1 所有安裝過linuxbridge的節(jié)點都刪除-compute01/02/03

刪除已經(jīng)配置的linuxbridge網(wǎng)絡(luò)英岭,可直接在dashboard上面操作;
刪除順序如下:釋放虛擬ip端口–>刪除路由–>刪除網(wǎng)絡(luò);
驗證是否還有未刪除網(wǎng)絡(luò),輸出為空;

[root@controller01 ~]#  openstack network list

2.2 查看安裝linuxbridge的節(jié)點

[root@controller01 ~]# openstack network agent list |grep linuxbridge
| 386b5467-6e0a-416d-96cb-6ecee5ec2bac | Linux bridge agent | compute03 | None              | :-)   | UP    | neutron-linuxbridge-agent |
| 553a76ba-996b-4840-af0e-ebee74efe852 | Linux bridge agent | compute02 | None              | :-)   | UP    | neutron-linuxbridge-agent |
| 5a2ed9ea-1e8d-4bc2-a317-a70b8b196703 | Linux bridge agent | compute01 | None              | :-)   | UP    | neutron-linuxbridge-agent |

2.3 關(guān)閉并卸載neutron-linuxbridge-agent

全部安裝linuxbridge的計算節(jié)點上湿右;

systemctl disable neutron-linuxbridge-agent.service
systemctl stop neutron-linuxbridge-agent.service 
yum remove -y openstack-neutron-linuxbridge

2.4 安裝openvswitch

全部計算節(jié)點上诅妹;

yum install -y openstack-neutron-openvswitch

內(nèi)核配置

echo '
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
'>>/etc/sysctl.conf

[root@compute01 ~]# sysctl -p
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0

3. 全部控制節(jié)點配置修改

以controller01為例;
設(shè)置開啟route毅人,前面已經(jīng)設(shè)置過的吭狡,可不執(zhí)行

openstack-config --set /etc/neutron/neutron.conf DEFAULT service_plugins router

3.1 備份ml2配置及修改

[root@controller01 ~]# cp /etc/neutron/plugins/ml2/ml2_conf.ini{,.linuxbridge}

[root@controller01 ~]# cat /etc/neutron/plugins/ml2/ml2_conf.ini
[DEFAULT]

[ml2]
type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan
mechanism_drivers = openvswitch,l2population
extension_drivers = port_security

[ml2_type_flat]
flat_networks = provider

[ml2_type_vxlan]
vni_ranges = 1:1000

[securitygroup]
enable_ipset = true

拷貝到其他控制節(jié)點

scp /etc/neutron/plugins/ml2/ml2_conf.ini controller02:/etc/neutron/plugins/ml2/
scp /etc/neutron/plugins/ml2/ml2_conf.ini controller03:/etc/neutron/plugins/ml2/

3.2 全部控制節(jié)點重啟服務(wù)

systemctl restart neutron-server.service
systemctl status neutron-server.service

4. 全部計算節(jié)點配置修改

以compute01為例;全部計算節(jié)點執(zhí)行

4.1 備份文件

cp /etc/neutron/plugins/ml2/ml2_conf.ini{,.linuxbridge}
cp /etc/neutron/l3_agent.ini{,.linuxbridge}
cp /etc/neutron/dhcp_agent.ini{,.linuxbridge}
cp /etc/neutron/plugins/ml2/openvswitch_agent.ini{,.bak}

4.2 修改ml2_conf.ini

[root@compute01 ~]# cat /etc/neutron/plugins/ml2/ml2_conf.ini
[DEFAULT]

[ml2]
type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan
mechanism_drivers = openvswitch,l2population
extension_drivers = port_security

[ml2_type_flat]
flat_networks = provider

[ml2_type_vxlan]
vni_ranges = 1:1000

[securitygroup]
enable_ipset = true

拷貝文件到其他計算節(jié)點

scp /etc/neutron/plugins/ml2/ml2_conf.ini controller02:/etc/neutron/plugins/ml2/
scp /etc/neutron/plugins/ml2/ml2_conf.ini controller03:/etc/neutron/plugins/ml2/

4.3 l3_agent.ini

[root@compute01 ~]# cat /etc/neutron/l3_agent.ini
[DEFAULT]
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
external_network_bridge = br-ex

拷貝文件到其他計算節(jié)點

scp /etc/neutron/l3_agent.ini controller02:/etc/neutron/
scp /etc/neutron/l3_agent.ini controller03:/etc/neutron/

4.4 修改dhcp_agent.ini

[root@compute01 ~]# cat /etc/neutron/dhcp_agent.ini
[DEFAULT]
interface_driver=neutron.agent.linux.interface.OVSInterfaceDriver
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = true

拷貝文件到其他計算節(jié)點

scp /etc/neutron/dhcp_agent.ini controller02:/etc/neutron/
scp /etc/neutron/dhcp_agent.ini controller03:/etc/neutron/

4.5 修改openvswitch_agent.ini

local_ip修改為當(dāng)前計算節(jié)點的主機ip

[root@compute01 ~]# cat >/etc/neutron/plugins/ml2/openvswitch_agent.ini <<EOF
[ovs]
integration_bridge = br-int
tunnel_bridge = br-tun
local_ip = 10.15.253.162
#bridge_mappings = br-ex
#bridge_mappings = provider:br-ex
bridge_mappings = 
[agent]
tunnel_types = vxlan,gre
l2_population = true
arp_responder = true
[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
EOF

4.6 啟動openvswitch服務(wù)

systemctl enable openvswitch.service
systemctl restart openvswitch.service
systemctl status openvswitch.service

4.7 創(chuàng)建網(wǎng)橋丈莺,將ip轉(zhuǎn)移到網(wǎng)橋划煮,添加到開機啟動

openvswitch的原理和常用命令

ip地址修改為當(dāng)前節(jié)點;以compute01為例缔俄;

[root@compute01 ~]# echo '#
ovs-vsctl add-br br-ex
ovs-vsctl add-port br-ex ens192
ovs-vsctl show
ifconfig ens192 0.0.0.0 
ifconfig br-ex 10.15.253.162/12
route add default gw 10.0.0.1 #可選弛秋,添加默認路由
#'>>/etc/rc.d/rc.local 

創(chuàng)建并驗證

[root@compute01 ~]# chmod +x /etc/rc.d/rc.local; tail -n 8 /etc/rc.d/rc.local |bash
098ad342-1b96-4a8b-8217-9f048c47ad52
    Bridge br-ex
        Port br-ex
            Interface br-ex
                type: internal
        Port "ens192"
            Interface "ens192"
    ovs_version: "2.12.0"


[root@compute01 ~]# ifconfig br-ex
br-ex: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.15.253.162  netmask 255.240.0.0  broadcast 10.15.255.255
        inet6 fe80::250:56ff:fe82:63f3  prefixlen 64  scopeid 0x20<link>
        ether 00:50:56:82:63:f3  txqueuelen 1000  (Ethernet)
        RX packets 4049  bytes 2132288 (2.0 MiB)
        RX errors 0  dropped 1  overruns 0  frame 0
        TX packets 3528  bytes 869196 (848.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

4.8 關(guān)閉網(wǎng)卡的開機自啟器躏,修改以下項

全部計算節(jié)點;關(guān)閉的目的是以保證OVS創(chuàng)建的網(wǎng)卡可以安全使用

sed -i 's#ONBOOT=yes#ONBOOT=no#g' /etc/sysconfig/network-scripts/ifcfg-ens192

4.9 全部計算節(jié)點重啟服務(wù)

systemctl restart neutron-dhcp-agent.service neutron-metadata-agent.service neutron-l3-agent.service neutron-openvswitch-agent.service
systemctl status neutron-dhcp-agent.service neutron-metadata-agent.service neutron-l3-agent.service neutron-openvswitch-agent.service

5. 控制節(jié)點驗證

[root@controller01 ~]# openstack network agent list

在控制節(jié)點上刪除去除的linuxbridge服務(wù);刪除對應(yīng)的ID即可

openstack network agent delete 386b5467-6e0a-416d-96cb-6ecee5ec2bac
openstack network agent delete 553a76ba-996b-4840-af0e-ebee74efe852
openstack network agent delete 5a2ed9ea-1e8d-4bc2-a317-a70b8b196703
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蟹略,一起剝皮案震驚了整個濱河市登失,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌挖炬,老刑警劉巖揽浙,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異意敛,居然都是意外死亡馅巷,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門草姻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钓猬,“玉大人,你說我怎么就攤上這事碴倾《贺” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵跌榔,是天一觀的道長异雁。 經(jīng)常有香客問我,道長僧须,這世上最難降的妖魔是什么纲刀? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮担平,結(jié)果婚禮上示绊,老公的妹妹穿的比我還像新娘。我一直安慰自己暂论,他們只是感情好面褐,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著取胎,像睡著了一般展哭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上闻蛀,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天匪傍,我揣著相機與錄音,去河邊找鬼觉痛。 笑死役衡,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的薪棒。 我是一名探鬼主播手蝎,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼榕莺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了柑船?” 一聲冷哼從身側(cè)響起帽撑,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鞍时,沒想到半個月后亏拉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡逆巍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年及塘,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锐极。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡笙僚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出灵再,到底是詐尸還是另有隱情肋层,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布翎迁,位于F島的核電站栋猖,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏汪榔。R本人自食惡果不足惜蒲拉,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望痴腌。 院中可真熱鬧雌团,春花似錦、人聲如沸士聪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽剥悟。三九已至灵寺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間懦胞,已是汗流浹背替久。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工凉泄, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留躏尉,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓后众,卻偏偏與公主長得像胀糜,于是被迫代替她去往敵國和親颅拦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345