2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

  • 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:242139
用户头像
Cherry倩芸 InfoQ高级策划编辑

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

关注

评论

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

程序员必须知道的数据结构:HashMap 与 LinkedHashMap

老王说编程

Java 数据结构 hashmap

简易项目搭建 Models层封装

happlyfox

学习 28天写作 3月日更

mock 请求分发

blueju

JavaScript React Mock umi umijs

Wireshark数据包分析学习笔记Day3

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

力扣(LeetCode)刷题,简单题(第21期)

不脱发的程序猿

面试 LeetCode 28天写作 算法面经 3月日更

硬件设计必备,电子元器件高清矢量图

不脱发的程序猿

硬件产品 28天写作 硬件设计 电子元器件矢量图 3月日更

kvm

梅花鹿鹿

kvm

用c++创作一个简单小游戏

张鹤羽

28天写作 3月日更

Redis 与 I/O 多路复用模型

大海

redis

新业务团队应用数字化的4个能力

boshi

数字化转型 七日更

开源镜像仓库Harbor的镜像安全

运维研习社

Docker Harbor 漏洞扫描 镜像安全 私有仓库

萌新不看会后悔的C++基本类型总结(二)

花狗Fdog

写作平台的一些乱象

ES_her0

28天写作 3月日更

程序员必须知道的数据结构:线性表与链表

老王说编程

Java 链表 线性表

话题讨论 | 又一家大厂进入汽车领域,"百车大战"即将来临?

程序员架构进阶

话题讨论 七日更 28天写作 话题王者 3月日更

简单工厂模式、工厂模式、抽象工厂模式比较

良知犹存

设计模式

Docker部署ClickHouse监控平台

wjchenge

LeetCode题解:714. 买卖股票的最佳时机含手续费,动态规划,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

程序员必须知道的数据结构:队列与栈

老王说编程

数据结构 队列

金三银四程序员面试必备:2021最新 最全面Java复习路线!已收录GitHub

比伯

Java 编程 程序员 架构 面试

Oracle table()函数的合理运用,提高工作效率

xiezhr

oracle table() Oracle函数 3月日更

18 个 Java8 日期处理的实践,太有用了!

xcbeyond

Java java8 日期处理 3月日更

架构学习(2021年03月06日)

张小胖

最全Hive SQL语法、Hive函数及使用注意事项(一)

五分钟学大数据

大数据 Hive SQL 28天写作 3月日更

常见的设计模式原则

一个大红包

设计模式 设计原则 28天写作 3月日更

翻译:《实用的Python编程》04_00_Overview

codists

Python

恋物志(二):独居者的智能生活指南

脑极体

虚拟化存储

lenka

产品经理 3月日更

如何设计三极管控制继电器电路

不脱发的程序猿

28天写作 电路设计 继电器电路设计 三极管 3月日更

MySQL 数据查询语言(DQL)& 事务控制语言(TCL)详解

若尘

MySQL

常用工具幕布高级会员获取

白贺BaiHe

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