參考文檔:html
計算節點(instance_vif---vifyyy---brqyyy---ethy.vlan_id---ethy)---(ethx--- ethx.vlan_id---brqxxx---vifxxx---dnsmasq_vif)neutron控制節點 前端
# 對接dnsmasq_vif的網卡; # dnsmasq收到dhcp廣播並回復了dhcp offer(udp 67) [root@controller01 ~]# tcpdump -i tap004b787f-9b -ne port 67 or 68
# 網橋; # 網橋收到dhcp廣播,正常轉發到dnsmasq,且收到dnsmasq回覆的dhcp offer [root@controller01 ~]# tcpdump -i brq91e78b9c-cf -ne port 67 or 68
# 物理網卡(帶tag); # 物理網卡收到dhcp廣播,正常轉發到網橋,但並未收到應該從網橋轉發過來的dhcp offer [root@controller01 ~]# tcpdump -i eth3.3092 -ne port 67 or 68
證實從網橋到物理網卡的轉發有問題。node
iptables默認規則下,在forward表中有一條鏈:linux
-A FORWARD -j REJECT --reject-with icmp-host-prohibitedvim
即:iptables默認不轉發數據包,且阻斷後回覆消息"icmp-host-prohibited"。後端
# 在neutron網絡控制節點,刪除禁止轉發的默認規則 [root@controller01 ~]# iptables -D FORWARD -j REJECT --reject-with icmp-host-prohibited # 同時在neutron網絡控制節點,修改iptables規則文件,註釋禁止轉發的默認規則 [root@controller01 ~]# vim /etc/sysconfig/iptables #-A FORWARD -j REJECT --reject-with icmp-host-prohibited ps:常規狀況下儘可能不要隨意重啓iptables服務;若是重啓了iptables服務,須要重啓neutron-linuxbridge-agent服務,從新向iptables注入neutron相關轉發規則。
上述環境中的兩臺實例不能互相ping通,經過tcpdump抓包觀察,具體表現爲:安全
證實計算節點宿主機的"物理"接口與switch之間的通訊有問題。服務器
環境是基於vmware vsphere搭建的,其vss/vds有3個安全選項設置:網絡
結論:tcp
設置vss/vds安全選項中的"混雜模式"與"僞傳輸"參數爲"接受",
經過dashboard實例---控制檯,打開實例console失敗。
報錯:Failed to connect to server(code: 1006)
# 查看觀察vnc日誌,日誌文件/var/log/nova/nova-novncproxy.log [root@controller01 ~]# tailf /var/log/nova/nova-novncproxy.log
實例console是經過vnc打開的,訪問horizon dashboard後,nova控制節點將請求定向到實例所在計算節點tcp 5900端口,即kvm服務監聽端口,如這裏實例位於172.30.200.41(compute01)節點,但默認計算節點的tcp 5900端口未打開,返回"handler exception: [Errno 113] EHOSTUNREACH"信息。
# 放開全部計算節點的tcp 5900端口;如無必要,不要隨意重啓iptables服務; # 同時更新/etc/sysconfig/iptables文件,以避免服務重啓後端口實效 [root@compute01 ~]# iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 5900 -j ACCEPT
經過dashboard建立的實例,在刪除實例後,對應綁定的volume不會自動刪除。
建立實例與建立並掛載volume是獨立的步驟(經過cli方式的"nova boot"啓動實例時,不指定"--block-device"選項,不會掛載已建立的持久性存儲),理論上建立的實例是有臨時存儲;而volume只是dashboard在建立實例的同時建立的,而後將volume掛載到實例。因此在刪除實例時,持久性存儲volume不會同步刪除。
持久性存儲volume不會同步被刪除的好處在於,若是volume存有重要數據,經過新啓動的實例還可被掛載。
因此是否容許volume隨實例一塊兒建立須要根據實際環境肯定。
在dashboard中建立實例時,是否同步刪除volume是可選項,以下:
# 取消288~296行註釋; # 變動’create_volume’的默認值「True」爲「False」,即建立實例的同時不一樣步建立volume並掛載 288 LAUNCH_INSTANCE_DEFAULTS = { 289 'config_drive': False, 290 'enable_scheduler_hints': True, 291 'disable_image': False, 292 'disable_instance_snapshot': False, 293 'disable_volume': False, 294 'disable_volume_snapshot': False, 295 'create_volume': False, 296 }
在客戶端A建立volume成功後,在客戶端B不能刪除;或者運行在active/standby模式的cinder-volume服務故障切換後,在原客戶端不能刪除volume。
上述現象分兩個緯度:
# 後端使用共享存儲時,建議將cinder-volume部署在控制節點,並運行在active/standby(經過pacemaker實現)模式的同時,在cinder-volume配置的deafault字段,設置主機名標識符,使volume狀態同步; # 主機自定義名標識; # 集羣中cinder-volume所在主機都須要設置; # 理論上,設置主機名標識後,cinder-volume可運行在active/standby或active/active模式 [root@compute01 ~]# vim /etc/cinder/cinder.con [DEFAULT] host = node-volume # 驗證; # 原host的」state」會」down」,新啓動的host名同配置文件中的host參數 [root@controller01 ~]# openstack volume service list