网易视频云致力于为客户提供真正易用的视频云服务,拥有最全面的端到端解决方案。另外,网易视频云技术专家热衷于和广大技术爱好者们交流学习。云主机是云计算在基础设施应用上的重要组成部分,位于云计算产业链金字塔底层。这次,网易视频云技术咖就将给大家分享一下云服务设施最基础的规则,最基本的云主机究竟从何而来?其宿主机的创建规则又是什么样的?
先得简单介绍下openstack。
讲虚拟机创建,首
openstack是一整套资源管理软件的集合,它本身不是一个软件,而是一个需要管这管那的\"项目经理\",组织\"成员\"起来干大活。 成员(模块)角色 keystone 认证 nova 计算 neutron 网络 swift 存储 glance 镜像 horizon web界面
以上只列了几个大角色,目前openstack还有其他很成熟的模块,这里不赘述。
那云计算和openstack又是啥关系呢?以下是个人见解(本水手刚刚入云计算大门)欢迎指正。 云计算分三层:
IaaS(基础设施即service) PaaS(平台即service) SaaS(软件即service)
通常我们理解的云计算仿佛就是一台物理机虚拟化出多台云主机来达到资源的最大化利用,然而云计算的最终目的是Service.
曾看到知乎上一个较为形象的例子来区分云计算的三层,拿制作披萨而言:
1.从披萨店买回成品(烤箱、番茄酱、碗筷这些还是得自己准备)--IaaS 2.叫披萨店的外卖(给你做好,不需烘焙,但是吃完还是得自己收拾)--Paas 3.去店里吃(肯定有一款为你准备,无需任何动手,吃完就走,不用收拾)--SaaS 那openstack呢?openstack是云计算的一种实现方式,它可以做到IaaS、PaaS甚至是SaaS层,目前来看,最优秀。说好的简单介绍结束了。 再熟悉下云主机创建流程:
OpenStack云实例生命期所需的各种动作都将由Nova进行处理和支撑,这就意味着Nova以管理平台的身份登场,负责管理整个云的计算资源、网络、授权及测度。
nova各组件之间的调用是以Rabbit MQ作为消息队列的rpc调用。 1.用户发出请求,实际上这里需要经过keystone认证 2.nova-api根据接收到的请求通知nova-scheduler选出宿主机
3.选出宿主机(宿主机作为openstack中计算节点的角色)之后,由宿主机通过远程调用通知nova-network、nova-volume、glance等准备创建云主机所需要的网络、存储、镜像等资源
4.资源准备充足以后,由kvm来启动实例
看完这张图我比较好奇的一点是nova-scheduler是怎样选出一台宿主机的?
好像很简单,两步:filter + weight
filter:即过滤,nova-scheduler源码中(nova/nova/scheduler/filters)可以看到有很多过滤规则,disk_filter.py、core_filter.py、ram_filter.py等等,顾名思义,建议可以简单的看几个filter,无论是filter还是weight都可以在nova.conf文件中指定条件,由于filter比较容易理解,暂不多说。 weight:
以下是nova.conf中的一小段example:
weight计算公式:
weight = w1_multiplier * norm(w1) + w2_multiplier * norm(w2) + ... 注:
w1可以是ram的大小、disk的大小等等
norm()函数的作用是将磁盘大小、内存大小、镜像属性值这些不在一个数量级的数值统一化为一个在0~1之间的数值,以便称重 norm算法(比如x,y,z为一次增大的数值):norm(x)=z-x/z-x,norm(y)=z-y/z-x,norm(z)=z-x/z-x
而w1_multiplier 、w2_multiplier表示乘数,官网上说明该乘数既可以为正数,也可以为负数,默认为+1,不管乘数为正或负,weight大者胜出。 当乘数为正数的时候,宿主机w1、w2这些数值越大,参选将会胜出被选中
那么乘数为负数是何种情况?为负时,w1、w2的值越大,最后的结果越小,这种情况体现为始终在一台weight值最小的主机上创建,直到资源耗尽为止再开始下一台,而乘数为正的情况是始终选出最优者,人人平等的原则。 以上就是网易视频云这一期分享的内容,想定期接受干货,就请关注网易视频云官方微博或者微信公众号vcloud163。还可以与官方技术人员进行交流哦。
因篇幅问题不能全部显示,请点此查看更多更全内容