写点什么

一个实践:如何提升云主机稳定性及防御能力

  • 2016-12-18
  • 本文字数:2596 字

    阅读完需:约 9 分钟

云计算时代到来,IDC 行业的服务商和用户也开始成批转向 IaaS 服务。从国内 IaaS 服务目前的应用形式来看,云主机、云存储用户采用率最高,使用比例达 70% 以上。

但云主机厂商所提供的产品质量却参差不齐,此外,用户对于云主机各方面性能的需求也不尽相同。例如对于广大的中小企业来说,用户对网络 I/O 有着更高带宽、更低延时的普遍需求。

通常情况下,对云主机通用处理能力的评测主要包含以下指标:vCPU 运算处理能力(整数运算和浮点数运算)、内存处理能力(数据的读写速度)、硬盘处理能力(随机数据读写速度)、网络传输能力(流出与流入流量的 TCP 吞吐量)、在线可用性(主机可远程访问时间的比例)。市面上围绕以上五大部分进行的评测报告也是多如牛毛。根据对多份调查报告的统计, 网络传输能力和硬盘处理能力是用户评定云主机优劣的两项最重要指标。

首先是对云主机 IOPS 的测定

因此,为了检测自身 IO 性能,比格云近期使用了 fio 测试工具,在“4K、512K”的数据块、iodepth 队列深度 128 条件下,随机申请了一台比格云 Linux 云主机(CPU-4 核、OS-CentOS 6.8 64bits、Mem-8G、数据盘 200G),对其数据盘 IO 进行测试。

按照如下命令测试数据盘裸设备 (/dev/vdc1):

#测试随机读 IOPS:
#fio-direct=1-iodepth=128-filename=/dev/vdc1-rw=randread-ioengine=libaio-bs=4k-size=10G-numjobs=64-runtime=1000-group_reporting-name=randread.iops-output=randread.iops
#测试随机写 IOPS:
#fio-direct=1-iodepth=128-filename=/dev/vdc1-rw=randwrite-ioengine=libaio-bs=4k-size=10G-numjobs=64-runtime=1000-group_reporting-name=randwrite.iops-output=randwrite.iops
#测试顺序写吞吐量:
#fio-direct=1-iodepth=128-filename=/dev/vdc1-rw=write-ioengine=libaio-bs=512k-size=10G-numjobs=64-runtime=1000-group_reporting-name=write.throughput-output=write.throughput
#测试顺序读吞吐量:
fio-direct=1-iodepth=128-filename=/dev/vdc1-rw=read-ioengine=libaio-bs=512k-size=10G-numjobs=64-runtime=1000-group_reporting-name=read.throughput-output=read.throughput

最终测试结果为:随机读 IOPS 为 131194,随机写 IOPS 为 79128(4K 数据块),以及顺序读吞吐量为 6.2GB/s,顺序写吞吐量为 2.2GB/s(512K 数据块)。

在对网络速度进行测试过程中,也是针对一台 Linux 云主机(1 个 IP、10M 带宽、CPU4 核、内存 16G、数据盘 300G),用 speedtest_cli 命令检测,检测到网络实时下载和上传速度能达到 191.33 Mbit/s 和 11.17 Mbit/s。

IOPS 和网络通道是制约云主机性能的两大瓶颈,而这一结果也使得比格云的云主机相较于传统机型,能提供更多的用户场景和用户体验。

对云主机稳定性的打磨

IOPS 指标对于数据库类型的应用来说十分关键,但对云主机而言,速度只是反映其整体性能的一个维度。除此之外,还包括稳定性和安全性等指标。

在 11 月 1 日比格云开放运营前两个月,比格云先进行了一轮免费内测,主要对性能(IOPS 表现)和稳定性(负载均衡、防攻击等)做实测。根据内测用户提交的主机试用申请和反馈数据,比格云又进行了为期两个月的优化升级,以加固云主机的稳定性,并增加了许多便于用户操作的实用功能,例如定时器、监控告警通知、可视化防攻击查询等。

云主机非常依赖所在物理机的稳定性,硬件故障是影响物理机稳定性的一个重要因素。因此,比格云主要通过提供硬件上的冗余来隔离单一硬件故障对云主机稳定性的破坏。例如,一块电源模块的损坏甚至机柜一排电力的中断都不会影响到物理机的电力供应;又或者,尽管在其中一块磁盘损坏的情况下,通过 Raid+hotspare 的磁盘阵列也可以做到对用户毫无影响,并且在很短的时间内自动恢复成原来的冗余程度。

除此之外,云主机稳定性还与网络链路的高可用性有关。相比于单链路网络,双链路网络在一条链路出故障时,仍保证有另一条链路可用,实现对单点网络故障的屏蔽。比格云将分布在不同机柜的交换机互相做堆叠,服务器上的多个网卡分别接入同一个堆叠组下的不同交换机做 bonding(802.3ad)。正常情况,同一个 bonding 下的多条链路可同时工作。如果某一条链路异常,流量会自动重新分配到其他正常链路,最大程度保证用户网络的高可用性。

目前,比格云只有一个节点,但全网双链路多冗余架构意味着,在目前比格云的架构内,任何单台设备或链路的物理故障都不会影响用户的正常使用。在数据存储上,比格云采取了三重数据保护策略,第一,数据盘采取 Raid 磁盘阵列防止因物理损坏引起的数据丢失;第二,为用户提供本机内的快照;第三,自动为用户定期做远端备份。同时,比格云已经在筹备建设第二个节点,并将在此搭建上进行异地灾备的网络架构。

比格云防御架构

优化升级后,比格云网络冗余架构能有效屏蔽网络故障。云防火墙的架设,也可针对 DDoS 攻击做特别布防。
DDoS 攻击、误操作、病毒都会导致数据丢失的风险,因此比格云提供了 20G 的基础 DDoS 防护,能够检测清洗 SYN Flood、ACK Flood、UDP Flood、ICMP Flood、NTP/DNS/SSDP 反射攻击等常见的攻击类型。检测设备对进入核心交换机的流量进行旁路检测,发现攻击后对被攻击的 IP 进行引流,然后由专门的设备完成清洗,再回注到核心交换机上。

此外,架设云防火墙,可为每个连接公网的云主机提供访问控制策略,提高发布到 Internet 的云主机访问安全性。比格云认为,云防火墙是提供给用户部署于用户虚机外部的软件防火墙,允许用户通过控制台操作。因此,需要满足简单易懂,灵活操作、批量操作、快速部署等需求。目前,市面上的云 WAF,大多是基于 SaaS 的 Web 应用防护系统,可实时拦截 SQL 注入、XSS 跨站等攻击。在比格云服务界面内,用户可定义不同策略的云防火墙,为不同业务分组云主机提供不同访问控制策略。

为游戏、视频、移动应用等领域创造的可能

相比于自建服务器,云服务的最大优势就是可以快速部署、弹性伸缩。在对秒级创建,随时申请和使用的便捷部署探索中,比格云的服务可让用户根据业务的不同对主机配置、带宽大小自由升级、弹性扩展。

在互联网时代,云主机所提供的计算资源是构建各种应用的物理基础。比格云团队中的第一代云计算程序员见证了 AWS 的时代,对底层架构和产品建设的持续打磨的,也让这个团队能随着成长,不断满足游戏、视频、移动应用等领域的行业客户对云主机的性能指标、网络端口的稳定性、数据信息的安全性以及主机抗攻击性能等严苛要求。

2016-12-18 19:241903
用户头像
Cherry倩芸 InfoQ高级策划编辑

发布了 51 篇内容, 共 22.9 次阅读, 收获喜欢 34 次。

关注

评论

发布
暂无评论
发现更多内容

蚁群算法(实例帮助理解)

秃头小苏

蚁群算法 7月月更

Qemu Linux

贾献华

7月日更 7月月更

什么是数据治理?为何华为愿意200万年薪聘数据治理专家?

雨果

数据治理 DaaS数据即服务

【LeetCode】判断矩阵是否是一个 X 矩阵Java题解

Albert

LeetCode 7月月更

基于STM32+华为云IOT设计的智能防盗单车锁

DS小龙哥

7月月更

跨域请求

Jason199

跨域 7月月更

Lepton 无损压缩原理及性能分析

vivo互联网技术

对象存储 无损压缩 lepton 图片压缩

SpringBoot Webflux解析

Ethan

RingCentral Android启动优化实践

RingCentral铃盛

android 启动流程

Vue.js基础环境的搭建以及简单使用Element-ui

是乃德也是Ned

7月月更

微信小程序触底加载与下拉刷新的实现

猪痞恶霸

小程序 前端 7月月更

图解网络:什么是网关负载均衡协议GLBP?

wljslmz

网络协议 7月月更 GLBP 图解网络 网关负载均衡协议

如何用一个插件解决 Serverless 灰度发布难题?

阿里巴巴云原生

阿里云 Serverless 云原生 插件 灰度发布

LLVM之父Chris Lattner:为什么我们要重建AI基础设施软件

OneFlow

人工智能 软件系统

Node の MongoDB Driver

空城机

mongodb Node 7月月更

LeetCode-145. 二叉树的后序遍历(java)

bug菌

Leet Code 7月月更

【Docker 那些事儿】容器为什么傲娇?全靠Hub撑腰

Albert Edison

7月月更

Java实现单例模式

lambochen

单例模式

官宣!第三届云原生编程挑战赛正式启动!

阿里巴巴云原生

阿里云 Serverless 边缘计算 ACK 云原生编程挑战赛

CSS动画篇之炫酷时钟之时钟墙

南城FE

CSS 前端 动画 时钟 7月月更

后CentOS时代的操作系统漫谈

冯骐

centos 开源 openEuler 国产化 Anolis

OpenFeign

急需上岸的小谢

7月月更

Qt实现json解析

小肉球

7月月更

SAP UI5 ObjectPageLayout 控件使用方法分享

汪子熙

前端开发 Fiori SAP UI5 ui5 7月月更

容易混淆的基本概念 成员变量 局部变量 全局变量

NewBoy

前端 移动端 iOS 知识体系 7月月更

认识ThreadPoolExecutor

zarmnosaj

7月月更

C语言中sizeof操作符的坑

Albert Edison

c++ C语言 7月月更 sizeof

线上故障突突突?如何紧急诊断、排查与恢复

阿里巴巴云原生

阿里云 微服务 云原生 故障恢复 诊断

ORACLE进阶(三)数据字典详解

No Silver Bullet

oracle 7月月更 数据字典

算法入门很简单:链表题套路及精选题目

宇宙之一粟

链表 7月月更

OpenHarmony资源管理详解

坚果

HarmonyOS OpenHarmony 6月月更

一个实践:如何提升云主机稳定性及防御能力_服务革新_Cherry倩芸_InfoQ精选文章