网易云计算工作总结

在网易做云计算快两年,一直在做最底IaaS层的计算,网络,存储项目,为什么说网易云计算而不是网易蜂巢,那是因为网易蜂巢是对外提供公有云服务,任何用户可以显式地享受云计算的魅力和迷人之处,最大的亮点是PaaS层的docker,而基础设施依然是靠IaaS层的服务来支撑,除了网易蜂巢之外,私有云部分用户可能就只能隐式地通过产品来侧面享受云计算的服务,比如网易云音乐,考拉海购等等,这部分直接依托于网易云计算IaaS层服务,打开这些APP最下面会看到有一句“网易云提供计算服务”,除此之外还有其他一些直接用网易云IaaS层服务的客户和厂商

我来网易的时间点比较完美,当时公有云还未上线,上层项目docker,kubernetes等都在紧锣密鼓地开发中,有了足够的缓冲期在私有云的相关工作上熟悉业务,积累经验,完善自动化,熟悉运维流程,提升解决问题的能力,同时由于之前一直在创业小公司里奋斗了4年,继承了加班加点的特性,但也逐渐规范了大公司才能有的流程规范,和一群年轻人一起工作丝毫没有任何代沟,中间还拿了一次乒乓球单打冠军和双打亚军,接着痴迷地爱上了羽毛球,多年不好运动的男人终于再次动了起来

同年12月底,网易蜂巢公有云上线,这时候真正开始了产品驱动,除了正常用户需求,迭代更新之外,用户规模,稳定性,性能,可用性,用户体验都提升了到了一个更重要层次,在平时工作当中每天对接N个模块项目的开发人员,在那毫无人手的年代,经常性地忙到上层项目凌晨上线的时间,那会刚从华为来了不久的同事经常性地周末被我拉到公司进行性能优化和测试,每次对比上千组性能测试数据,如果有一个数据不太对也许就会不停完善测试逻辑以及自动化测试脚本,十分有幸参入了这样一个大型产品的疯狂迭代,收获就是把控风险,处理项目组之间的交涉,心态越来越平和

国际惯例,Show下在网易云计算的自己完成的部分总结

云主机

  • ConfigDrive 代替nova-metadata 解耦nova-metadata接口,去掉云主机内部对169.254.169.254相关metadata接口的依赖
  • Ceph存储后端支持 基于Ceph分部署存储系统流行,而且与OpenStack也深度整合,存储后端也逐步切换到Ceph
  • qemu-guest-agent支持 去除metadata接口169.254接口来判断云主机操作系统状态,通过qemu-guest-agent接口命令直接获取心跳
  • 静态IP支持 放弃DHCP分配IP地址的方式,在云主机创建或者后续动态挂卸载网卡的时候,给网卡配置正确的IP,网关,路由,DNS等信息,大大降低了网络初始化的时间
  • nova创建云主机耗时优化 偶尔会出现nova创建云主机耗时较长,去除nova-compute定时任务对创建云主机RPC请求处理的影响
  • ceilometer+qemu-ga云主机监控支持 去除原有监控方式在云主机内部添加监控脚本加到定时任务中,通过网络推送监控信息到接收端,基于ceilometer服务,添加了qemu-ga获取云主机内部监控数据的功能,基于libvirt来获取监控数据,更加准确
  • 操作系统耗时优化 这部分是创建云主机操作系统启动阶段,优化主要包括cloud-init耗时,异步生成ssh host key等
  • 超售对指定物理节点配置 降低成本,除此之外,保证物理资源的最大利用率
  • 无物理资源错误信息详细展示 在云主机创建过程中,经常会出现各种各样的错误,资源不足(计算,网络等)导致的创建失败直接返回给用户
  • keystone 获 取token耗时优化 每当用户修改密码或者修改Role,已有的token就会全部失效,假如当前token数量太多,而token表之前没有索引,会锁表很长时间,影响其他用户操作,因此给加上了索引,并且数据库用了ssd代替sas,提升性能
  • 所有服务接入ELK 方便进行日志统计分析,问题定位,错误报警,监控服务,性能优化,bug修复
  • 无网卡创建云主机 资源池里通常创建的云主机会转移给其它租户,如果本身带了网卡,那么转移之前还需要卸载,将这个操作流程给优化掉,从而提升性能
  • 在线垂直伸缩 通过balloon技术实现内存的在线动态调整
  • 新上节点自动化回归编码实现 实现一个集群里新增几个计算节点有关IaaS层服务的自动化验证实现
  • 新环境部署自动化回归编码实现 实现一个新部署的环境有关IaaS层服务的自动化验证实现
  • Tempest接口完善 逐步在社区Tempest基础上完善和新增新的test case
  • IaaS层启动时间性能测试 在前面说的优化基础上进行性能测试,最终节点空负载情况下启动时间快2分钟优化到10秒左右
  • Keystone获取token接口性能 加索引以及换ssd之后,从偶尔8~10秒到不超过1秒
  • Ceph云主机快照优化 ceph更新版本支持deep-flatten特性后,快照时间从20分钟优化到了40S左右
  • 高内存负载云主机热迁移性能 默认热迁移会pause住云主机,然后copy内存,性能取决于带宽
  • 裸机挂载Ceph和LVM卷读写性能 为K8S裸机部署服务,提供性能数据
  • Keystone切换到M版stable分支稳定性测试 Keystone新版本稳定性
  • qemu-guest-agent稳定性 qemu-ga刚开始使用稳定性测试
  • libvirt引发心跳问题修复后稳定性 心跳无法上报,更新libvirt稳定性测试
  • 1.3.5版 本libvirt段错误稳定性 云主机ERROR,libvirt段错误修复后稳定性测试
  • 云主机在线迁移稳定性 在将热迁移接口修改后,不再pause住云主机,而是保持服务不会中断后稳定性测试
  • 节点机修改CPU频率和cstate 参数稳定性 提升性能
  • 通过cloudbase-init设置windows云主机私有网络MTU值 Windows云主机DHCP包过大,导致限速太小无法获取DHCP包无法分配IP地址

云网络

  • 二层网络安全 预防MAC地址欺骗,IP地址欺骗,ARP欺骗,DHCP欺骗
  • 网络QOS 二层网络限速
  • L3 QOS 租户Router限速
  • PORT过滤端口流量 TAP设备限速
  • 虚拟机端口入方向QOS Ingress方向流量限速
  • 广播包限速 预防广播风暴
  • QOS的MPU功能支持 小包过L3的影响
  • 基于OVS 安全组功能 Ingress/Egress防火墙
  • 网卡映射到节点机 K8S裸机部署服务
  • L3,DHCP节点自动化验证实现 新增L3,DHCP节点验证服务正确性自动化编码
  • IP静态化后启动性能测试 从创建到网络正常性能测试
  • 满内存负载热迁移网络服务中断时间 修改接口后,不pause,网络不中断
  • L3-Agent启动优化 ip link去掉多次调用
  • ovs agent启动优化fdb 去掉不必要的fdb消息,提升重启ovs的性能
  • VPC网络 正在进行中

云硬盘

  • 多Ceph存储pool的调度测试 根据pool以及容量调度选择
  • Ceph卷快照深度控制 flatten相关,到达配置深度将卷flatten掉
  • Ceph卷和快照垃圾回收 操作优化,删除的时候加一个状态,定时任务进行清理
  • Ceph卷快照flatten功能 flatten接口
  • Ceph Sas卷支持 多种类型
  • 卷转移接口 转移租户
  • 卷映射到节点机支持 K8S裸机部署支持
  • 多并发Ceph卷挂载在 KVM 虚拟机里和挂载在物理节点上读写操作的性能对比 K8S裸机部署测试数据
  • LVM卷挂在在 KVM 虚拟机里和裸机节点上读写操作的对比性能测试 K8S裸机部署测试数据

发表回复