弹性伸缩作为云计算的核心功能之一,其重要性是毋庸置疑的。它不仅能够极大地提升系统的灵活性和可扩展性,还能够协助企业高效地进行资源管理和成本管控,进而提升企业的竞争力,为企业带来更多的商业机会和客户价值。
8月初,统信云基础设施管理平台(简称:统信有栈)已完成新版本发布,带来了一些功能和性能的提升。这款由统信软件自主研发的IaaS云管平台,从诞生之初就具备一些基础功能,比如提供直观易用的Web图形化界面,并巧妙融入弹性伸缩技术,进而实现对计算、存储和网络资源的统一编排和调度。
底层IT环境的系统构成,即包括硬件设施和网络等资源,在被抽象成资源池之后,可以作为云主机资源供上层应用统一调度使用。
当上层应用的业务资源使用量超过或低于预设的阈值水平线的最高或最低点时,将自动触发弹性伸缩机制,实现资源的按需供给或释放。
这种动态调节资源配置的方式可以应对业务在高峰期和低谷期等不同访问场景,不仅实现了最优的成本管控,还规避了因业务并发访问量激增而导致的业务中断风险。
为了实现弹性伸缩机制,「统信有栈」经过仔细权衡,最终选择了Heat和Senlin组件。
Heat是「统信有栈」中负责资源编排的组件,旨在实现基础设施的自动化管理和应用程序的高效部署。它主要用于管理基础设施资源和自动化部署,使客户能够定义和描述对整个云环境的基础设施需求,并通过模板实现这些资源的部署和管理。
另一方面,通过引入Senlin,客户可以基于业务数据而不是基础设施指标触发扩展操作,进而实现集群的负载均衡和自动扩展。
当现有集群无法满足吞吐量或工作负载时,集群规模将被扩大;而在吞吐量或工作负载较低时,则会相应减小集群的规模。
如果想要实现弹性伸缩功能,首先需要配置Heat模板,然后执行相关命令来创建资源。
为连接到创建的负载均衡集群,定义了一个安全组。
security_group:
type: OS::Neutron::SecurityGroup
properties:
rules:
- protocol: icmp
- protocol: tcp
port_range_min: 22
port_range_max: 22
- protocol: tcp
port_range_min: 80
port_range_max: 80
定义了用于创建目标集群的配置文件。
profile:
type: OS::Senlin::Profile
properties:
type: os.nova.server-1.0
properties:
flavor: {get_param: flavor}
image: {get_param: image}
key_name: {get_param: key_name}
networks:
- network: {get_param: network}
security_groups:
- {get_resource: security_group}
定义了创建一个至少有两个节点的Senlin集群。
cluster:
type: OS::Senlin::Cluster
properties:
desired_capacity: 2
min_size: 2
profile: {get_resource: profile}
定义了附加到创建的集群的两个策略scale_in_policy和scale_out_policy:event用于定义策略工作的目标操作;当adjustment的类型设置为CHANGE_IN_CAPACITY时,集群将在scale_out时增加节点数,或在scale_in时减少节点数。
scale_in_policy:
type: OS::Senlin::Policy
properties:
type: senlin.policy.scaling-1.0
bindings:
- cluster: {get_resource: cluster}
properties:
event: CLUSTER_SCALE_IN
adjustment:
type: CHANGE_IN_CAPACITY
number: 1
scale_out_policy:
type: OS::Senlin::Policy
properties:
type: senlin.policy.scaling-1.0
bindings:
- cluster: {get_resource: cluster}
properties:
event: CLUSTER_SCALE_OUT
adjustment:
type: CHANGE_IN_CAPACITY
number: 1
定义了要附加到目标集群的负载均衡策略lb_policy:一旦将策略附加到集群,Senlin将通过调用neutron LBaas V2 API来自动创建负载均衡器、池和health_monitor,用于实现负载均衡。
lb_policy:
type: OS::Senlin::Policy
properties:
type: senlin.policy.loadbalance-1.0
bindings:
- cluster: {get_resource: cluster}
properties:
pool:
protocol: HTTP
protocol_port: 80
subnet: {get_param: pool_subnet}
lb_method: ROUND_ROBIN
vip:
subnet: {get_param: vip_subnet}
protocol: HTTP
protocol_port: 80
health_monitor:
type: HTTP
delay: 10
timeout: 5
max_retries: 4
定义了两个当某个警报或事件发生时要触发的接收器,用于执行集群节点的伸缩。
receiver_scale_out:
type: OS::Senlin::Receiver
properties:
cluster: {get_resource: cluster}
action: CLUSTER_SCALE_OUT
type: webhook
receiver_scale_in:
type: OS::Senlin::Receiver
properties:
cluster: {get_resource: cluster}
action: CLUSTER_SCALE_IN
type: webhook
定义了在要缩减应用集群时选择要删除的候选节点的策略。
deletion_policy:
type: OS::Senlin::Policy
properties:
type: senlin.policy.deletion-1.0
bindings:
- cluster: {get_resource: cluster}
properties:
criteria: YOUNGEST_FIRST
destroy_after_deletion: True
grace_period: 20
reduce_desired_capacity: False
定义了触发上述两个接收器的alarm:使用LoadBalancer的上传字节的平均速率作为触发缩放操作的指标。
scale_in_alarm:
type: OS::Ceilometer::Alarm
properties:
description: trigger when bandwidth overflow
meter_name: network.services.lb.incoming.bytes.rate
statistic: avg
period: 180
evaluation_periods: 1
threshold: 12000
repeat_actions: True
alarm_actions:
- {get_attr: [receiver_scale_in, channel, alarm_url]}
comparison_operator: le
query:
metadata.user_metadata.cluster_id: {get_resource: cluster}
scale_out_alarm:
type: OS::Ceilometer::Alarm
properties:
description: trigger when bandwidth insufficient
meter_name: network.services.lb.incoming.bytes.rate
statistic: avg
period: 60
evaluation_periods: 1
threshold: 28000
repeat_actions: True
alarm_actions:
- {get_attr: [receiver_scale_out, channel, alarm_url]}
comparison_operator: ge
query:
metadata.user_metadata.cluster_id: {get_resource: cluster}
前提条件:部署前,请确保「统信有栈」已开启neutron lbaas和ceilometer/aodh
执行命令:openstack stack create test -t ./ex_aslb.yaml
test:资源名称,可自定义
ex_aslb.yaml:Heat模板文件名称
Heat模板文件下载地址:
https://opendev.org/openstack/senlin/src/branch/master/doc/source/scenarios/ex_lbas.yaml
统信软件通过对「统信有栈」所有组件进行容器化镜像改造并将其内置在统信UOS服务器版中,为客户提供了开箱即用的定制交付能力。客户仅需根据业务情况启动对应镜像并配置网络即可完成「统信有栈」集群的快速部署,有效简化了运维人员部署配置云管平台的流程,在提升部署效率的同时也减少了误操作机率。
统信UOS服务器版汲取国内外主流社区技术栈优势,深入技术底层结合国内外设计标准与规范以及各类客户业务应用需求,积极开展技术创新,全面支持国内外主流CPU架构和处理器厂商,在各种应用环境中,满足强安全、高稳定、高性能、易维护以及泛兼容等要求,是一款构建信息化设施环境的基础软件产品:
强安全:
等保四级GB/T 20272-2019认证
商密二级GM/T 0028认证
全栈生态链支持国密
国际知名安全社区OpenSCAP官方首批支持的中国操作系统
21天推送一次补丁更新,每周进行漏洞修复推送
高稳定:
稳定版 Linux 4.19&5.10双内核
热补丁升级机制
LTP 7*24小时测试用例通过率超98%
长时高负荷运行,卸荷后60秒内实现系统及各应用流畅运行
高性能:
内存拷贝页技术,拷贝性能提升超70%,满并发优化提升10%
多种自研性能优化成果:文件读写性能提升4%、调度延迟减少10%、多并发锁竞争场景性能提升5%……
相比同类产品,UnixBench等测试全面领先
易维护:
提供自研统信有易服务器迁移软件
提供自研统信有幄自动化运维工具
提供面向场景的AI系统调优能力
泛兼容:
历史版本兼容性>98%,提供平滑升级方案
组件模块化设计,为用户最大限度解决底层依赖问题
全面通过整机适配兼容性测试(多种不同型号的整机)
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
添加我为好友,拉您入交流群!
请使用微信扫一扫!