中移动杭州研发中心 Å...
TRANSCRIPT
Å中国移动杭州研发中心
异构私有云支撑架构演进及实践
演讲人:喻涵
1简述中国移动杭州研发中心采取云战略以来,基础架构的层层演进,云平台建设在各个阶段的服务能力表现。
中移杭研软件定义数据中心技术演进
2 中移杭研在处理“业务领域快速发散和用户群体高速增长”带来的集群扩展问题时的经验与教训。
海量业务支撑中的改造与变革
3因为涉及到集群扩容、新老环境迁移、硬件资源采购等多方面因素影响,整体云框架包含多种计算、存储资源架构,我们的运营体验。
OpenStack在异构环境中的运用体验
4 实践、创新、运营过程中的各种踩坑与定制化服务解决方案分享。
问题踩坑与定制化改造分享
Kubernetes
仅供技术论坛学习交流,请勿外传
中移杭研软件定义数据中心技术演进
企业信息化INFORMATION
物理机
生产系统、办公系统、测试环境全跑在物理机上,管理员进行逐台配置,测试阶段、上线阶段流程复杂,业务系统更新缓慢,应急能力弱。部门间技术栈差异严重,沟通成本太高。但人员少,业务少,
工作负载轻,勉强应对。节奏缓慢。
虚拟化转型VIRTUALIZATION
KVM时代
裸机成本过高,转向虚拟化方案,x86宿主机标准化,成本大幅度缩减。运维人员能力增长,开发环节和测试环节无变化。资源交付的速度得到了提升,但交付流程没有得到优化,同时产生了
资源抢占、调度顺序等新问题。
私有云框架PRIVATE CLOUD
OPENSTACK引入
虚拟化解决了资源成本的问题,但随之而来的是更多运维和开发的工作——一个个需要结合在一起保证整
体架构健壮性的模块:调度、监控、权限、计量……,是时候引入成体系的解决方案了。OpenStack的部署与二次开发,又一次优化了流程,同时为业务单元引入
了自服务与编排的概念。
仅供技术论坛学习交流,请勿外传
容器化尝试CONTAINERIZATION
DOCKER引入
开发人员在交付测试团队进行维度丰富内容复杂的测试环节时,测试环境部署流程的不友好拖慢了迭代速度,继而不利于系统整体发展。容器的引入结合CI/CD等思想大大优化了这一过程。
统一管理MANAGERMENT
CMP一体化
随着部分生产应用也实现容器化后,力图体现企业综合能力的云管理平台开始了设计与实现。IT资源池化的场景里,各环节充分打通是实现内部精准调控,快速交付带动企业发展的必然趋势。
仅供技术论坛学习交流,请勿外传
网络组成 存储类型 流程配置 服务治理基础单元
LinuxbridgeVLAN
OpenvSwitchVXLANflannelCalico
HostVirtual MachineDocker
ShellSaltStack
AnsibleDockerFile
k8s Deployment
Local DiskSAN NASCeph
ShellZabbix+SMS/We
ChatPrometheus
GrafanaELK
仅供技术论坛学习交流,请勿外传
初代CMP
仅供技术论坛学习交流,请勿外传
治理资源scale out和scale up和部分业务模板部署仍不够快
运维业务运维系统分散支撑精力损耗严重
发布多版本同时提供服务及灰度更新要求
测试既要快而准还
要稳而全
开发各项目组技术
栈差异明显
业务领域和规模爆发
式地增长
仅供技术论坛学习交流,请勿外传
海量业务支撑中的改造与变革
- 你们听说过…… - 没有,再问信不信……
……
docker进一步简化了业务部署,却给人员带来
了新的要求
已有的开发-测试-上线流程不能良好适配,VM级业务单元模式更得人心
应用怎么迁监控中心和日志中心怎么联动
如何做计量
微服务必须吗
动态负载配置
仅供技术论坛学习交流,请勿外传
Development
k8s-master
k8s-master
Full-Testing pipeline
Production
hook
push
code
scan
Ceph RGW
create
config
OpenStack Regional Provider
cluster
cluster
仅供技术论坛学习交流,请勿外传
数据驱动测试
请求分发
异常用例自动生成 模板导入
行为驱动产生数据
网络抓包生成接口文档 单元测试生成接口文档 页面导入标准接口文档
文档转化
数据加工用例联想
Http/Https WebService Mock接口TCP/UDP
平台调度
持续集成每日构建
打通外部平台数据
结果分析
AssertJ多种方式 趋势分析 自动化报告数据库校验
返回校验
仅供技术论坛学习交流,请勿外传
CMP in progress
OVS
Glance Nova Cinder……
Neutron
RBD Driver
OpenStack SDK + HOOK DevOps
用户系统 配额审批 发布流程 成本计量 业务模板
自服务门户 运维API
x86 NodeHDD Pool
FabricSSD Pool
私有云管理平台
计算资源池Ceph Cluster 网络接口
Docker Registry
RGW
MgrZone
x86 + ppc
Pod
Kube-proxy
k8s API on HA master Cluster
流程跟踪 弹性策略 调度 监控
ETCD
管理员门户
Ku
b
e
let
c
ali
co
x86+ppc64le node
PodDPDKSR-IOV
NFV
仅供技术论坛学习交流,请勿外传
OpenStack在异构环境中的运用体验
稳定
维护 性能
Kolla 支持服务的检测
与自恢复,进程隔离与
资源限制,避免单服务
故障造成节点性死锁
组件容器化
Kolla-ansible 使用
ansible playbook 配置
及编排服务部署
方便扩容、更新及恢复、
回滚
部署及扩容流程
剥离DB,独立部属并优化
实现性能最大化
Galera cluster on PPC
部分组件及服务拆分(external)
仅供技术论坛学习交流,请勿外传
Backend-HDD
Rbd-highRbd-normal
x86 PPC x86
SSD
HDD
CRUSHMAP
- pool_SSD
- pool_hdd
Backend-SSD
Cinder-volume
multi backend with kolla- Ansible tasks
ceph.conf ceph-2.conf name1.keyring name2.keyring
- Kolla config cinder-volume.confenabled backends[ceph] [ceph2]
cinder type-create + type-key set
仅供技术论坛学习交流,请勿外传
Ceph-
Luminous
OpenStack
Ocata
OpenStack
Pike
Mitaka Hammer
OpenStack
release
Recommended
Ceph version
NewtonJewel
Pike
LuminousQueen
Ocata
√ √
Ceph-
hammer
×
bluestore
仅供技术论坛学习交流,请勿外传
Ceph-
Luminous
( On PPC64le,no docker image support )
3 mon + 3 mgr + x osd
mgr ( 1 active + x standbys )
module : [ restapi + prometheus ] run in docker , on any host accessible to cephcluster
管理区域-监控节点
ceph/daemon:tag-stable-3.0-luminous-centos-7
restapi
binds: [“ceph.conf:ceph.conf”,
“readonly.keyring:readonly.keyring”]
pool2 pool3pool1
exporter
prometheus
仅供技术论坛学习交流,请勿外传
Alerting
Notification
仅供技术论坛学习交流,请勿外传
OpenStack API
readonly
Cloud cluster
searchlight
response more slowly with cluster scale-out
仅供技术论坛学习交流,请勿外传
问题踩坑与定制化改造分享
Q. 部署添加多后端 cinder-volume
via kolla-ansible deploy
-. 新增或在已有的cinder-volume服务上添加backend:- roles/cinder/tasks/external_ceph.yml
ceph1.conf → ceph1.conf
ceph2.conf → ceph2.conf
keyring → keyring
- templates/cinder-volume.json.j2
ceph1.conf ceph2.conf keyring
- kolla/config/cinder-volume.conf
enabled_backends = ceph1,ceph2
[ceph1] [ceph2]
kolla-ansible deploy
not via kolla-ansible deploy
-. 在已有的部署cinder-volume节点添加backend:- kolla/cinder-volume/ceph2.conf
- kolla/cinder-volume/keyring
- kolla/cinder-volume/config.json
ceph1.conf ceph2.conf keyring
- kolla/cinder-volume/cinder.conf
enabled_backends = ceph1,ceph2
[ceph1] [ceph2]
docker restart cinder-volume
怕把原来的配置改错/漏了,还可以手动
仅供技术论坛学习交流,请勿外传
images
volumes
Q.多后端 cinder-volume 的秒级启动
ceph_1
volumesceph_2
glance image-upload
(define only one rbd store)
upload
[uuid]@snap
clone
boot from volume
×
cinder create --image [uuid]
cinder create --image [uuid]
cinder snapshot-create
(once)
downloadnot clone
[uuid]@snapclone
cinder create --snapshot-id
boot from volume
同样的api流程/方法在其它后端开启云主机怎么会这么慢
仅供技术论坛学习交流,请勿外传
Q.live-migration failed
same CPU flags
enough resources
all service enable
live-migration failed
VM
×
https://bugs.launchpad.net/kolla-
ansible/+bug/1729566
https://bugs.launchpad.net/kolla-
ansible/+bug/1745557
No update for /etc/hosts after adding a new compute
live migration failed because of host_uuid missing
restart nova_libvirtd
docker
manual define a
random uuid in
libvirtd.conf仅供技术论坛学习交流,请勿外传
Q. Gnocchi overload
ceilometer
√
×
gnocchi pool
IO blocked
仅供技术论坛学习交流,请勿外传
Q. Gnocchi overload
libvirt_exporter libvirt_exporter libvirt_exporter libvirt_exporter
prometheus
HTTP REST API
仅供技术论坛学习交流,请勿外传
Q. 应用/产品维度的计费及资源使用
dep1
dep2
dep3
dep4
OpenStack Project
……
通过API/SDK及一些数据处理,很容易获得openstack project维度的计费及云资源用量
API / SDK
+ data processing
app1
app2
app3
app4
app5
app6
app7
app8
app9
app10
app11
app12
app13
what for app dimension ?
仅供技术论坛学习交流,请勿外传
Q. 应用/产品维度的计费及资源使用
dep1
dep2
dep3
dep4
OpenStack Project
app1
app2
app3
app4
app5
app6
app7
app8
app9
app10
app11
app12
app13
with nova tag:
-. 通过nova api 2.1以后引入的tag 功能,能统计云主机的数据,无法计入云硬盘的数据
with predefined display name:
-. 通过前端平台接口预定义资源的display name,可以对虚拟机、云硬盘同时进行计费及资源统计-. 计费及云资源占用的服务接口只包含对OpenStack resources的读操作,无写操作,故用前一章中的方法,用 searchlight接口提高实时效率。
仅供技术论坛学习交流,请勿外传
基于私有云技术框架及服务水平之上的中国移动家庭能力开放平台
仅供技术论坛学习交流,请勿外传
仅供技术论坛学习交流,请勿外传
研发
QA
运维
仅供技术论坛学习交流,请勿外传
开源云数据中心
THANK YOU