16
产环境中应Openstack些问题与经验 .杭州研究院.副院 @易汪源

Open stack@netease

Embed Size (px)

Citation preview

Page 1: Open stack@netease

⽣生产环境中应⽤用Openstack的⼀一些问题与经验

汪 源⺴⽹网易.杭州研究院.副院⻓长

@⺴⽹网易汪源

Page 2: Open stack@netease

云计算@⺴⽹网易• 为什么做云计算• 提⾼高资源利⽤用率,降低CAPEX

• 简化运维,降低OPEX

• 促进技术创新与成果转化• 数据统⼀一管理,便于实施BI

• ⾯面向业务:Web类产品、Web Game、开发、测试

• ⾮非⾯面向业务:MMORPG、搜索等

Page 3: Open stack@netease

云平台及OpenStack

云主机及⺴⽹网络OpenStack

云硬盘IP SAN

对象存储DFS

负载均衡

计费 监控

认证

关系数据库MySQL RDS

分布式数据库DDB

并⾏行计算Hadoop

全⽂文检索NDIR

各类其它扩展服务:如NewSQL、Memcached、数据挖掘、⽂文本分析、图像处理、共享数据集等等

Page 4: Open stack@netease

应⽤用情况

• ⼩小规模应⽤用,3个线上产品

Page 5: Open stack@netease

OpenStack相关⼯工作• OpenStack

• 全⾯面测试,报告与修复⼀一些bug

• ⼀一点点使⽤用经验(不⽤用不知道的)• ⼀一些改进与优化• 其它• Hypervisor选型

• ECU的制定

• 对LXC的⽀支持

Page 6: Open stack@netease

功能测试及bug情况模块 测试API数 发现bug数 提交bug数 已修复bug数

nova

glance

keystone

121 26 4 13

14 2 0 1

46 10 7 6

总计 181 38 11 20

很多没有上报官⽅方是因为他⼈人已上报我们上报的bug的patch都提交官⽅方

Page 7: Open stack@netease

⼀一些bug

级别 描述 链接Critical 删除服务时没验证Token https://bugs.launchpad.net/keystone/+bug/1006822

Critical获取⽤用户权限Role信息时没有验证Token

https://bugs.launchpad.net/keystone/+bug/1006815

Medium 对关闭的主机做快照导致状态错误 https://bugs.launchpad.net/nova/+bug/1023682

Medium 获取tenants列表时limit处理不正确 https://bugs.launchpad.net/keystone/+bug/1006055

严重安全漏洞

Page 8: Open stack@netease

⼀一点使⽤用经验• 默认--allow_same_net_traffic=true,会⾃自动在iptables加规则允许同⼀一⺴⽹网段的IP连接,此时没有在安全组中开放访问的主机之间其实是连通的

• 调⽤用Glance获取镜像API默认只返回24个镜像,可修改配置glance-registry.conf⽂文件参数

• 虚拟机Resize操作要求平台中所有宿主机之间可以通过公私钥匙ssh访问

• 物理节点资源使⽤用限制如16cores,可修改配置参数

• anti-colocation:如数据库的Master与Slave不能分配于同⼀一物理机,OpenStack已实现此功能

Page 9: Open stack@netease

⼀一些改进与优化

• 对象与快照存储• 更精细的内⺴⽹网防⽕火墙• 镜像与快照管理性能优化

Page 10: Open stack@netease

No Swift• Swift的问题

• DHT,扩容时必需数据迁移(rebalance)

• ⺴⽹网易对象存储NOS

• ⺴⽹网易DFS+⺴⽹网易DDB

• DFS

• 根据系统分配的64位⽂文件ID操作⽂文件,扩容⽆无需数据迁移

• ⽀支持⽂文件级去重

• 成功应⽤用于⺴⽹网易相册、⺴⽹网易邮箱,管理PB级数据近6年

• DDB

• 可在线扩容的分布式数据库

• 存储对象路径到⽂文件ID映射关系

Page 11: Open stack@netease

内⺴⽹网防⽕火墙• 问题:默认的防⽕火墙规则使⽤用不⽅方便

• 如果 --allow_same_net_traffic=true,则不同tanent的主机如果在同⼀一⺴⽹网段也连通,安全性差

• 如果 --allow_same_net_traffic=false,则同⼀一tanent的主机相互之间都不通,安全性过于严格

• ⽅方案

• 默认让⼀一个tenant的所有云主机之间可互通,与其它tenant的云主机隔离

• ⼤大多数⽤用户⽤用这个默认⾏行为即可,很⽅方便

Page 12: Open stack@netease

分离基本镜像与修改镜像

• 原始OpenStack

• 预制模板由基本镜像与修改镜像组成• 系统相同,规格不同时基本镜像共享• 制作快照时,先合并基本镜像与修改镜像,再上传• 从快照恢复时,拉取整个镜像• 优化后• 制作快照时,不合并,分别上传基本镜像与修改镜像• 从快照恢复时,分别拉取基本镜像与修改镜像• 基本镜像⼀一般有重复,因此制作快照或从快照恢复时⼀一般都不需要上传或拉取基本镜像

Page 13: Open stack@netease

其它镜像管理优化• 基于⺴⽹网络拓扑结构的Glance API服务器部署

• 每台接⼊入层交换机部署⼀一个Glance API服务器

• 配置OpenStack现有参数实现

• 快照上传不经过Glance API服务器,直接存⼊入NOS

• 计划中,实现难度较⼤大

Page 14: Open stack@netease

Hypervisor选型• Xen vs KVM

• 功能

• KVM更⽅方便做资源隔离(磁盘、IO)

• KVM内置⽀支持iSCSI启动

• KVM⽀支持内存去重

• KVM⽀支持带存储的热迁移

• 性能

• 磁盘IO:KVM性能略有优势

• ⺴⽹网络IO:千兆基本能达到线速,PingPong测试KVM略有优势

• 易⽤用性

• KVM就是Linux,管理⽅方便

• 我们选KVM

• 磁盘IO:virtio+rawdisk

• ⺴⽹网络IO:bridge+virtio

Page 15: Open stack@netease

ECU的制定• 计算能⼒力不固定

• 不同CPU的每核(每线程)计算能⼒力不同

• 相同CPU在不同的系统总体负载下每核(每线程)计算能⼒力不同

• 相同总体负载相同CPU,独占核还是两线程共享核计算能⼒力不同

• 解决⽅方案

• 以相同系统总体负载下(Intel CPU共享核)的SPEC CPU得分计算ECU

• OpenStack⺫⽬目前不⽀支持ECU,正在改进

0

5.00

10.00

15.00

20.00

AMD

627

6(8C

opy)

AMD

627

6(16

Cop

y)

E5 2

650(

8Cop

y不同核

)

E5 2

650(

8Cop

y相同核

)

SPEC CPU得分

Page 16: Open stack@netease

⽀支持LXC• LXC:Linux Container,可完成基本的CPU、内存隔离与IO性能控制

• LXC可⽤用于实现⽤用户不可⻅见的虚拟机,如RDS、Memcached、搜索

• 应⽤用LXC遇到的问题

• ⽆无法限制存储容量、获取存储容量和剩余容量• 借助LVM等管理机制

• 实现类Linux-HA⾼高可⽤用

• 借助Pacemaker等软件

• 还未全⾯面测试