首页 文章 精选 留言 我的

精选列表

搜索[AI运维],共10003篇文章
优秀的个人博客,低调大师

《OpenStack运维指南》节选—— 双层VLAN

双层VLAN 我在加拿大不列颠哥伦比亚省的基隆拿创建了一套新的OpenStack系统。整个部署过程是全自动的:Cobbler负责在硬件上部署OS,OS被引导后,Puppet接手剩下的事情。我已经在实践中运行这套部署方案很多次了,就理所应当地认为没有任何问题。 在基隆拿的最后一天,我在酒店里参加电话会议。实际上,我正在新部署出来的云系统里面随便玩着。我启动了一个虚拟机实例,并登录进去。一切看起来都很正常。闲着无聊,我运行了一下ps aux命令,突然整个虚拟机实例就锁住了。 我认为这是一个偶发事件,因此我停止了这个实例,并启动了一个新的。这时,电话会议结束了,我需要去数据中心走一趟。 在数据中心,我完成了一些收尾的工作,这时想起了那个实例锁住的的事情。于是我登录到新的实例,并再一次运行ps aux。它工作正常。唷。我决定再运行一次。它又锁住了。搞什么啊! 在重现了这个问题几次之后,我得出一个不幸的结论,那就是这套云系统其实真的有问题。更糟的是,我在基隆拿的出差就要结束了,我必须回到卡尔加里去。 我应该从哪里开始排查像这样的故障呢?一个虚拟机实例因为一个命令就随机地锁住了。是镜像的问题吗?不——所有镜像都有这个问题。 是计算节点的问题吗? 不——所有节点都有这个问题。实例真的锁住了吗?不!因为新的SSH连接很正常! 我们去寻求帮助,一个网络工程师说可能是MTU的问题。太棒了!MTU!终于有进展了!MTU是什么?它为什么会出问题? MTU是最大传输单元(maximum transmission unit)的英文缩写。它规定了网卡接收的每一个数据包字节的最大值。如果两个网卡上的MTU设置不一样,过来的字节就会被卡住,奇怪的事情就会发生 ——比方说会话随机被锁住。 并非所有的数据包都有1500 B这么大。通过SSH运行ls命令可能只会创建一个小于1500 B的数据包。但是,运行的命令如果有很大的输出,比方说ps aux命令,就需要多个1500 B的数据包。 好的,那么MTU的问题是从哪儿跑出来的?为什么我们在其他的任一部署中没有遇到过这个问题?这次的情况有啥新变化吗?好吧,新的数据中心,新的上行链路,新的交换机,新的交换机型号,新的服务器,第一次使用这个型号的服务器……所以,基本上所有东西都是新的。太棒了。我们在各个地方都要调大了MTU:交换机,计算节点的网卡,实例的虚拟网卡,甚至使数据中心为我们的上行链路接口都调大了MTU。一些修改起作用了,一些却没用。可是这条排障的方向似乎不对,我们没必要在这些地方调整MTU。 作为最后一根救命稻草,我们的网络管理员(Alvaro)和我坐在一起,旁边有四个终端窗口、一根铅笔和一张纸。在其中一个窗口中,我们运行ping。在第二个窗口中,我们在云控制器上运行tcpdump。在第三个窗口,我们在计算节点上运行tcpdump。然后第四个窗口中,我们在实例上运行tcpdump。介绍一些背景:我们这个云是多节点而不是多主机设置。 一个云控制器作为所有计算节点的网关。VlanManager用来配置网络。这意味着,云控制器和所有计算节点在每一个OpenStack的项目中都使用一个不同的VLAN。我们使用了ping的-s选项来修改数据包的大小。我们观察到有时这个包可以完整地返回,有时它发出去了却没法回来,而有时它会随机地停下来。我们修改tcpdump来显示数据包的十六进制转储,并不停地修改ping的组合:外部、控制器、计算节点和虚拟机实例。 最终,Alvaro发现了一个问题。当一个数据包从外面到达云控制器的时候,它不应该配有一个VLAN。我们确认了这点。当数据包从云控制器发往计算节点时,只有当目的地是一个虚拟机实例时,它才会携带一个VLAN。这也是对的。当ping应答从实例发出时,它应该在一个VLAN里面。确实如此。当它返回到控制器,然后发送到互联网上时,它不应该再带有一个VLAN。不对。噢,看起来好像是这个包的VLAN部分没有被移除掉。 那是说不通的。 带着这个想法,我在计算节点上随机地敲了一些命令: $ipa… 10:vlan100@vlan20:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscnoqueuemasterbr100stateUP … “嘿,Alvaro,你能在一个VLAN上运行一个VLAN吗?” “如果你这么做,就会给数据包增加额外4个字节。” 那么这就全说通了: grepvlan_interface/etc/nova/nova.conf vlan_interface=vlan20 在nova.conf中,vlan_interface指定了OpenStack要在哪个网卡上挂VLAN。正确的设置本应该是:vlan_interface=bond0。 这也就是服务器捆绑后的网卡。 vlan20是数据中心分配给我们用于公网访问的VLAN。它是一个正确的VLAN,也和bond0相连。 结果我错误地把OpenStack配置成了将所有的租户VLAN与vlan20而不是bond0相连,所以这就在一个VLAN上又叠加了另一个VLAN。结果每个包增加了额外的4 B,导致发出的是一个1504 B的包,这当然会出问题,因为我们网卡有1500 B的限制啊! 这个设置一修复,一切都好了。 本文作者:钱永超 来源:51CTO

优秀的个人博客,低调大师

互联网运维装腔指南

1、全球化的认证有助于提升逼格,什么OCM、CCIE、RHCA、CISSP等等能考都考,再不济,也要有一张系统架构设计师或者网络规划设计师的信产部认证。每过一个认证,逼格提升一档。如果再有能一个211工程的MSC,那就再好不过了。 2、TCP/IP协议、Linux内核深入研究、ORACLE大全等等之类的超过1千页大本头的书能有效提升B格,一定要放手边。不懂不要紧,别人能看见就行了。真有人跟你谈这些,也别担心装B失败,谈网络就从TCP的实现谈起,谈Linux就从内存的管理谈起,谈数据库就从各数据库SQL语句的源码实现谈起。如果有人跟你谈MS的东西也不要紧,就说自己之前有多年的微软的工作经历,外包的也算。反正也不会有查。有人非要跟你谈硬件,最次也要从CPU的指令集的实现谈起吧。 3、大众化的东西要少用。能用ATS,就别用squid;能用postgresql,就别用MySQL;坚信什么nginx、lighty这种webserver要比apache好一万倍,而且apache能实现的功能,这些都能实现,不行就自己写模块、写扩展。实在要用apache,也别用高版本,抱死1.3的系统。有人要是问起,就说这是基于1.3的版是自己深度二次开发版本。实在要找不到的话也不要紧,没事在sf、oschina上看看什么下载量少的项目,背背项目简介啥的。不得不说,这两个网站太贴心,分类都给你做好了。总之,小众的东西能很有效的提升iBer的战斗力。 4、写脚本的话,别用grep、sort 、uniq、管道这类命令。iBer会选择使用纯粹的awk、sed的实现,长度不要紧,阅读性、性能也不是问题。功能实现了,别人都还不懂这就是关键。如果真有人来请教,也要装出一副很简单的表情。切记不要摇头尾巴晃。就算是你是从《sed和awk》这种书上抄你自己也不一定能看懂的代码。 5、虽然会shell,但也要少用shell。初级iBer,系统管理会首选perl、python、php这类3p的工具,而且要对shell这种语言有一种不屑。把什么性能、移植性、面向对象要常挂嘴边。,如果再能写二行什么erlang、ruby、lua这类语言做系统管理,绝对是iBer的装B神器,也是中级iBer的标准。高级IBer会有Haskell这类函数式语言进行系统管理,这绝对是装B的B2轰炸机呀。当然,资深iBer会返璞归真,使用面向对象进行shell编程。对,你没看错,是使用OO进行shell编程。 6、iBer对谈到Redhat、ubuntu这类大众发行版本时,会回复一个字“切!”LFS、Gentoo这类系统绝对是iBer们首选。不为什么,就为在无穷尽的编译中找到属于iBer的快感。如果非装大众发行版,iBer也会从开机画面、登陆提示等等地方打自己上深刻的烙印。iBer的寂寞岂是一般人能懂的。 7、iBer对什么checkpoint,juniper等表示不屑。必须天天把iptabes的链和表都挂在嘴边,尤其是mangle表。原则上对商用产品的一律不屑一顾,什么f5,radware一律自己开发实现。至于意外的将自己关在外面的事情一定要严格遵守各自公司的保密协议。 8、iBer的操作终端呢,像SecureCRT、xshell这种绝对是不用的,一定要用最原始的,什么黑屏绿字只是初级iBer的水平,中高级iBer的都是Alpha半透明终端,桌面背景在设置个全球internet流量趋势图。让你根本就不知道他天天对着屏幕在敲什么东西。有事没事编译一些大型软件,看着翻滚的屏幕做思考状。 9、名片的title一定要是系统架构师,没有名片也不要紧,什么QQ签名、人人状态、微博简介上,有人看的地方一定要写上。这些都是提升B格的好地方。 10、初级iBer谈流量、PV、自动化;中级iBer谈流程、谈规范,什么ITIL、ITSM要常挂嘴边;高级iBer谈架构、谈模式;资深iBer谈合同、谈成本。 11、混圈子对iBer来非常有必要的。什么XX沙龙、XX架构师大会、XX优化大会之类必要是常客,露个B脸就行。基本原则就是跟搞系统谈网络,跟搞网络的谈数据库,跟搞数据库的谈安全……对方不懂什么就谈什么对就了 12、骨灰级iBer早就超出三界外,不在五行中,他们注定有着传奇的色彩。他们正忙于对iBer们进行职业发展规划。iBer助理、iBer、高级iBer、资深iBer、iBer总监直至CBO。如果发展了到了CBO,那么你一定是一位惊天地、泣鬼神的一代B神,一统江湖的教主,供万千iBer敬仰。darling,我很看好你哟! 作者:佚名 来源:51CTO

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册