参考文档: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