SlideShare a Scribd company logo
⽣生产环境中应⽤用Openstack的
    ⼀一些问题与经验

          汪 源
   ⺴⽹网易.杭州研究院.副院⻓长
        @⺴⽹网易汪源
云计算@⺴⽹网易
•   为什么做云计算

    •   提⾼高资源利⽤用率,降低CAPEX
    •   简化运维,降低OPEX

    •   促进技术创新与成果转化

    •   数据统⼀一管理,便于实施BI
•   ⾯面向业务:Web类产品、Web Game、开发、测试

•   ⾮非⾯面向业务:MMORPG、搜索等
云平台及OpenStack
各类其它扩展服务:如NewSQL、Memcached、数据挖掘、⽂文本分
       析、图像处理、共享数据集等等


关系数据库        分布式数据库      并⾏行计算      全⽂文检索
MySQL RDS      DDB       Hadoop      NDIR


云主机及⺴⽹网络              对象存储   负载均衡    认证
             云硬盘
 OpenStack   IP SAN    DFS    计费     监控
应⽤用情况


• ⼩小规模应⽤用,3个线上产品
OpenStack相关⼯工作
•   OpenStack
    •   全⾯面测试,报告与修复⼀一些bug

    •   ⼀一点点使⽤用经验(不⽤用不知道的)

    •   ⼀一些改进与优化
•   其它

    •   Hypervisor选型

    •   ECU的制定
    •   对LXC的⽀支��
功能测试及bug情况
  模块        测试API数   发现bug数   提交bug数   已修复bug数

  nova       121       26       4        13

  glance      14       2        0         1

 keystone     46       10       7         6

  总计         181       38       11       20


很多没有上报官⽅方是因为他⼈人已上报
我们上报的bug的patch都提交官⽅方
⼀一些bug
                                                                    严重安全漏洞




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

           获取⽤用户权限Role信息时没有验证
Critical                      https://bugs.launchpad.net/keystone/+bug/1006815
           Token

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


Medium     获取tenants列表时limit处理不正确 https://bugs.launchpad.net/keystone/+bug/1006055
⼀一点使⽤用经验
•   默认--allow_same_net_traffic=true,会⾃自动在iptables
    加规则允许同⼀一⺴⽹网段的IP连接,此时没有在安全组中
    开放访问的主机之间其实是连通的
•   调⽤用Glance获取镜像API默认只返回24个镜像,可修改
    配置glance-registry.conf⽂文件参数
•   虚拟机Resize操作要求平台中所有宿主机之间可以通
    过公私钥匙ssh访问
•   物理节点资源使⽤用限制如16cores,可修改配置参数

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

• 对象与快照存储
• 更精细的内⺴⽹网防⽕火墙
• 镜像与快照管理性能优化
No Swift
•   Swift的问题
    •   DHT,扩容时必需数据迁移(rebalance)
•   ⺴⽹网易对象存储NOS

    •   ⺴⽹网易DFS+⺴⽹网易DDB
    •   DFS
        •   根据系统分配的64位⽂文件ID操作⽂文件,扩容⽆无需数据迁移
        •   ⽀支持⽂文件级去重

        •   成功应⽤用于⺴⽹网易相册、⺴⽹网易邮箱,管理PB级数据近6年
    •   DDB
        •   可在线扩容的分布式数据库
        •   存储对象路径到⽂文件ID映射关系
内⺴⽹网防⽕火墙
•   问题:默认的防⽕火墙规则使⽤用不⽅方便
    •   如果 --allow_same_net_traffic=true,则不同tanent
        的主机如果在同⼀一⺴⽹网段也连通,安全性差

    •   如果 --allow_same_net_traffic=false,则同⼀一tanent
        的主机相互之间都不通,安全性过于严格
•   ⽅方案
    •   默认让⼀一个tenant的所有云主机之间可互通,与其
        它tenant的云主机隔离

    •   ⼤大多数⽤用户⽤用这个默认⾏行为即可,很⽅方便
分离基本镜像与修改
    镜像
•   原始OpenStack
    •   预制模板由基本镜像与修改镜像组成

        •   系统相同,规格不同时基本镜像共享
    •   制作快照时,先合并基本镜像与修改镜像,再上传
    •   从快照恢复时,拉取整个镜像

•   优化后
    •   制作快照时,不合并,分别上传基本镜像与修改镜像
    •   从快照恢复时,分别拉取基本镜像与修改镜像

    •   基本镜像⼀一般有重复,因此制作快照或从快照恢复时⼀一般都
        不需要上传或拉取基本镜像
其它镜像管理优化
• 基于⺴⽹网络拓扑结构的Glance API服务器部署
  • 每台接⼊入层交换机部署⼀一个Glance API服
     务器
 • 配置OpenStack现有参数实现
• 快照上传不经过Glance API服务器,直接存
 ⼊入NOS
 •   计划中,实现难度较⼤大
Hypervisor选型
•   Xen vs KVM
    •   功能
        •   KVM更⽅方便做资源隔离(磁盘、IO)

        •   KVM内置⽀支持iSCSI启动
        •   KVM⽀支持内存去重
        •   KVM⽀支持带存储的热迁移

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

    •   易⽤用性
        •   KVM就是Linux,管理⽅方便
•   我们选KVM

    •   磁盘IO:virtio+rawdisk
    •   ⺴⽹网络IO:bridge+virtio
ECU的制定
•   计算能⼒力不固定                                   SPEC CPU得分
    •   不同CPU的每核(每线程)计算能
        ⼒力不同                   20.00
    •   相同CPU在不同的系统总体负载
        下每核(每线程)计算能⼒力不同
                               15.00
    •   相同总体负载相同CPU,独占核
        还是两线程共享核计算能⼒力不同
                               10.00
•   解决⽅方案
    •   以相同系统总体负载下(Intel
                                5.00
        CPU共享核)的SPEC CPU得分
        计算ECU

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

                                                y)




                                                              py)




                                                                                    )




                                                                                                        )
                                                                                核




                                                                                                    核
                                              op
    进



                                                            Co




                                                                               同




                                                                                                   同
                                             (8C




                                                                               y不




                                                                                                   y相
                                                           (16
                                         76




                                                                             op




                                                                                                 op
                                                       76
                                        62




                                                                         ( 8C




                                                                                             ( 8C
                                                      62
                                         D




                                                       D




                                                                     50




                                                                                         50
                                       AM




                                                     AM




                                                                    26




                                                                                        26
                                                                    E5




                                                                                        E5
⽀支持LXC
•   LXC:Linux Container,可完成基本的CPU、内存隔离与IO性
    能控制
•   LXC可⽤用于实现⽤用户不可⻅见的虚拟机,如RDS、
    Memcached、搜索
•   应⽤用LXC遇到的问题
    •   ⽆无法限制存储容量、获取存储容量和剩余容量
        •   借助LVM等管理机制
    •   实现类Linux-HA⾼高可⽤用
        •   借助Pacemaker等软件
    •   还未全⾯面测试

More Related Content

Open stack@netease

  • 1. ⽣生产环境中应⽤用Openstack的 ⼀一些问题与经验 汪 源 ⺴⽹网易.杭州研究院.副院⻓长 @⺴⽹网易汪源
  • 2. 云计算@⺴⽹网易 • 为什么做云计算 • 提⾼高资源利⽤用率,降低CAPEX • 简化运维,降低OPEX • 促进技术创新与成果转化 • 数据统⼀一管理,便于实施BI • ⾯面向业务:Web类产品、Web Game、开发、测试 • ⾮非⾯面向业务:MMORPG、搜索等
  • 3. 云平台及OpenStack 各类其它扩展服务:如NewSQL、Memcached、数据挖掘、⽂文本分 析、图像处理、共享数据集等等 关系数据库 分布式数据库 并⾏行计算 全⽂文检索 MySQL RDS DDB Hadoop NDIR 云主机及⺴⽹网络 对象存储 负载均衡 认证 云硬盘 OpenStack IP SAN DFS 计费 监控
  • 5. OpenStack相关⼯工作 • OpenStack • 全⾯面测试,报告与修复⼀一些bug • ⼀一点点使⽤用经验(不⽤用不知道的) • ⼀一些改进与优化 • 其它 • Hypervisor选型 • ECU的制定 • 对LXC的⽀支持
  • 6. 功能测试及bug情况 模块 测试API数 发现bug数 提交bug数 已修复bug数 nova 121 26 4 13 glance 14 2 0 1 keystone 46 10 7 6 总计 181 38 11 20 很多没有上报官⽅方是因为他⼈人已上报 我们上报的bug的patch都提交官⽅方
  • 7. ⼀一些bug 严重安全漏洞 级别 描述 链接 Critical 删除服务时没验证Token https://bugs.launchpad.net/keystone/+bug/1006822 获取⽤用户权限Role信息时没有验证 Critical https://bugs.launchpad.net/keystone/+bug/1006815 Token Medium 对关闭的主机做快照导致状态错误 https://bugs.launchpad.net/nova/+bug/1023682 Medium 获取tenants列表时limit处理不正确 https://bugs.launchpad.net/keystone/+bug/1006055
  • 8. ⼀一点使⽤用经验 • 默认--allow_same_net_traffic=true,会⾃自动在iptables 加规则允许同⼀一⺴⽹网段的IP连接,此时没有在安全组中 开放访问的主机之间其实是连通的 • 调⽤用Glance获取镜像API默认只返回24个镜像,可修改 配置glance-registry.conf⽂文件参数 • 虚拟机Resize操作要求平台中所有宿主机之间可以通 过公私钥匙ssh访问 • 物理节点资源使⽤用限制如16cores,可修改配置参数 • anti-colocation:如数据库的Master与Slave不能分配于 同⼀一物理机,OpenStack已实现此功能
  • 10. No Swift • Swift的问题 • DHT,扩容时必需数据迁移(rebalance) • ⺴⽹网易对象存储NOS • ⺴⽹网易DFS+⺴⽹网易DDB • DFS • 根据系统分配的64位⽂文件ID操作⽂文件,扩容⽆无需数据迁移 • ⽀支持⽂文件级去重 • 成功应⽤用于⺴⽹网易相册、⺴⽹网易邮箱,管理PB级数据近6年 • DDB • 可在线扩容的分布式数据库 • 存储对象路径到⽂文件ID映射关系
  • 11. 内⺴⽹网防⽕火墙 • 问题:默认的防⽕火墙规则使⽤用不⽅方便 • 如果 --allow_same_net_traffic=true,则不同tanent 的主机如果在同⼀一⺴⽹网段也连通,安全性差 • 如果 --allow_same_net_traffic=false,则同⼀一tanent 的主机相互之间都不通,安全性过于严格 • ⽅方案 • 默认让⼀一个tenant的所有云主机之间可互通,与其 它tenant的云主机隔离 • ⼤大多数⽤用户⽤用这个默认⾏行为即可,很⽅方便
  • 12. 分离基本镜像与修改 镜像 • 原始OpenStack • 预制模板由基本镜像与修改镜像组成 • 系统相同,规格不同时基本镜像共享 • 制作快照时,先合并基本镜像与修改镜像,再上传 • 从快照恢复时,拉取整个镜像 • 优化后 • 制作快照时,不合并,分别上传基本镜像与修改镜像 • 从快照恢复时,分别拉取基本镜像与修改镜像 • 基本镜像⼀一般有重复,因此制作快照或从快照恢复时⼀一般都 不需要上传或拉取基本镜像
  • 13. 其它镜像管理优化 • 基于⺴⽹网络拓扑结构的Glance API服务器部署 • 每台接⼊入层交换机部署⼀一个Glance API服 务器 • 配置OpenStack现有参数实现 • 快照上传不经过Glance API服务器,直接存 ⼊入NOS • 计划中,实现难度较⼤大
  • 14. Hypervisor选型 • Xen vs KVM • 功能 • KVM更⽅方便做资源隔离(磁盘、IO) • KVM内置⽀支持iSCSI启动 • KVM⽀支持内存去重 • KVM⽀支持带存储的热迁移 • 性能 • 磁盘IO:KVM性能略有优势 • ⺴⽹网络IO:千兆基本能达到线速,PingPong测试KVM略有优势 • 易⽤用性 • KVM就是Linux,管理⽅方便 • 我们选KVM • 磁盘IO:virtio+rawdisk • ⺴⽹网络IO:bridge+virtio
  • 15. ECU的制定 • 计算能⼒力不固定 SPEC CPU得分 • 不同CPU的每核(每线程)计算能 ⼒力不同 20.00 • 相同CPU在不同的系统总体负载 下每核(每线程)计算能⼒力不同 15.00 • 相同总体负载相同CPU,独占核 还是两线程共享核计算能⼒力不同 10.00 • 解决⽅方案 • 以相同系统总体负载下(Intel 5.00 CPU共享核)的SPEC CPU得分 计算ECU • OpenStack⺫⽬目前不⽀支持ECU,正在改 0 y) py) ) ) 核 核 op 进 Co 同 同 (8C y不 y相 (16 76 op op 76 62 ( 8C ( 8C 62 D D 50 50 AM AM 26 26 E5 E5
  • 16. ⽀支持LXC • LXC:Linux Container,可完成基本的CPU、内存隔离与IO性 能控制 • LXC可⽤用于实现⽤用户不可⻅见的虚拟机,如RDS、 Memcached、搜索 • 应⽤用LXC遇到的问题 • ⽆无法限制存储容量、获取存储容量和剩余容量 • 借助LVM等管理机制 • 实现类Linux-HA⾼高可⽤用 • 借助Pacemaker等软件 • 还未全⾯面测试