做360网站首页软件/免费发布产品信息的网站

做360网站首页软件,免费发布产品信息的网站,宁波工业设计公司排名,职业生涯规划大赛策划书方案摘要: 近日,阿里云推出了首个百万IOPS的ESSD云盘服务,性能上有50倍的飞跃,同时还具备超高吞吐、超低时延等特性,在真实业务场景中,PostgreSQL数据库的写入速度快了26倍。 如此超高的性能,有人会…

摘要: 近日,阿里云推出了首个百万IOPS的ESSD云盘服务,性能上有50倍的飞跃,同时还具备超高吞吐、超低时延等特性,在真实业务场景中,PostgreSQL数据库的写入速度快了26倍。 如此超高的性能,有人会问,阿里云到底用了什么秘密技术?安全系数如何? 本文将从冗余设计思路出发,分享阿里云是如何建立存储冗余体系,抵御未知风险,解决故障率的。

点此查看原文:http://click.aliyun.com/m/41481/

1940年11月7日,竣工才4个月的塔科马海峡大桥在微风中大幅度舞动,桥上的汽车急速滑动,很快就戏剧性的垮塌。这件事故给建筑工程行业造成极大的震惊,很违反直觉,很低的风速居然会吹垮一座钢铁建造的大桥,在此之前所有的桥梁专家都没有意识到这个问题,事实上若干年后桥梁结构学与空气动力学得到极大发展,人类才彻底解决这个问题。

图片描述

在工程领域通常将这类事前缺少认知,只有发生后才能意识到的问题统称为险恶性问题,这类问题杀伤力极大,对于盘古这样的分布式系统同样会面临这类险恶性问题,既然对问题都没有认知,又防御何谈呢?阳光之下并无新事,我们从各种安全至关重要的行业中广泛的学习,发现各个行业在面对这类问题时,已经有较为丰富的经验了,同样以桥梁为例,早于的塔科马海峡大桥的金门大桥(1937年建成通车)已经巍然屹立了80多年,可谓饱经风霜,后人在分析其设计者留下的设计手稿时发现早期的设计者在面对未知世界时非常谦卑,他们知道有些问题他们搞不清楚,可能会有风险,所以他们做了充分的冗余设计来抵御这种未知的风险,通过充分的冗余来斩断可能形成的故障链。

其实存储是一个高危行业,首先要保障的是不错,不丢,可访问,只有在这个前提下,极致的性能才有意义。不错,不丢,可访问,看起来平淡无奇,但实践下来常有如履薄冰之感,因为分布式问题太过复杂,因为操作系统、硬件都不是绝对可靠的,因为代码不可能绝对无bug,运维也不可能从不出错。有太多险恶性问题,即使行业先行者也出现过数据丢失和不可用。在盘古设计之初我们学习了上文中冗余设计的做法,承认自己所知有限,在很多地方做了冗余设计来抵御未知风险,并且在长期的演进中不但强化这类冗余设计,绝不为了性能或者其他的目标来做冗余设计上的妥协。

图片描述

这些年来阿里云存储团队的同事们始终心存畏惧,铁棒磨针,始终专注于提供稳定可靠高性能的存储,天道酬勤,10年来我们做到了数据不错,不丢,非常庆幸。

下面我分享几个阿里云在存储方面的冗余设计:

E2E的数据校验 
磁盘可能出错,内存也会出现bit反转,内核和应用程序更可能出错,甚至我们遇到过某厂的一块CPU在做某些特定运算时就会出错,在这样一堆不可靠的软硬件环境下,要构建出一个稳定可靠的存储平台(没有哪个用户能接受哪怕一个bit的错误),是非常困难的,一般的做法是端到端的逐层做数据校验,盘古很早就做了E2E 的数据校验。但一次在一个长时间大压力的测试环境上MySQL 报数据错,核对数据发现CRC和数据是匹配的,并没有出错,核对另外2份拷贝,发现另外两份数据也是CRC自洽的,而且另外两份完全一致,但与MySQL读取的这一份差异非常大。初步判定是MySQL读取的这一份数据出错了,但这份错误的数据是CRC自洽的,这就非常奇怪了,如果是存储介质出错,不太可能还保持CRC自洽,在读写链路上查看了所有日志,没有找到任何异常。调查的同事反复核对三份拷贝,说这一份看起来就不像是这个文件的数据。

说者无心,听者有意,另外一个同事想在哪种情况下会出现这样的错误,由于我们的CRC和数据是逻辑空间上是相邻的,会不会是这片数据其实不属于当前文件,而是和另外一个文件搞串了?大胆假设,小心求证,全盘扫描后果然证实了猜想:A和B两个文件中间有一部分内容写串了,详细调查后确认是EXT4 文件系统的BUG,它在做空间管理的时候出错,导致A文件的一个数据片写入到文件B, 文件B中有一个数据片写入到文件A中,由于写入的流程一致,CRC又和数据放置在一起,导致CRC无法发现这个问题,确认问题后解决起来就很简单了,要么将CRC和数据分开放置,要么在计算CRC的时候加上文件的一个特征值。

有E2E的数据校验是否就安全了呢?呵呵坑深不见底,硬件行业的人知道磁盘极小的概率发生静默错误(读出来的数据是错误的,但底层接口不报错,磁盘本身也不报错),如果三份拷贝很长时间都未被读取,而在这个较长的时间窗口内,如果有三份拷贝所在的3块盘都发生了静默错误,用户读取数据时,存储系统就会发现3份CRC校验都不通过,尽管知道出差错了,却没有任何办法修复。为了降低这种情况发生的概率,我们会定期扫描冷数据,校验其CRC。

压缩检验 
一天新来的同事问大家:“我们在做压缩的时候,为啥压缩完后,立刻又解压缩一次,并且将解压数据和原始数据再去比对一次?直接压缩不就完了吗?”,众人笑而不语,他思考良久,也未能找到足够的理由。团队内老司机告诉他,压缩本身是一个很复杂的东西,有些库是第三方提供的,尽管我们会review代码,有严格的引入测试,但没人能保障其绝对正确,万一压缩出来的内容是错的怎么办?CPU也可能存在一些偶发性的错误,如果压缩时发生这类小概率的偶发性错误,该怎么办呢?但户数据是绝对不能错的,所以我们这里采取防御性编程,压缩完后立即解压,再和原始内容比对,确保数据不错。

PAXOS 
说到分布式存储,很多人就言必称PAXOS和RAFT,PAXOS俨然就成了救世主。PAXOS, RAFT 的确是好东西,但并不是所有的场景都适用。在一个分布式系统中,大家会认为在一个较小的时间窗口内同时发生2台机器failover是一个小概率事件,但随着集群规模的扩大,集群数量的增多,最终小概率事件长期积累,就变成必然事件了,在quorum=3的时候,PAXOS 协议是无法处理double fail的,甚至无法自愈,需要紧急人为干预才能恢复。想想半夜收到告警,你能在几分钟能处理好用户的IO HANG? 适合的才是最好的,实践是检验真理的唯一标准。

磁盘错误 
对于做存储的人来说,磁盘故障是司空见惯的事情了,本身有一套成熟的处理机制。但百密一疏,我们还是在这上面栽过跟头,进程主动检测到binary所在的系统盘故障,老司机当然知道此时不能再在该盘上发起任何IO 操作,日志写入到内存中,调用exit, 安静的退出,不带走一片云彩即可。但进程居然无法退出,调用exit 无法退出!而此时其它线程还在继续工作,在干坏事。所有人都觉得匪夷所思,为啥主线程调用 exit, 进程未能退出,其他线程在长达几分钟内还在继续干坏事?团队大牛反复推演,不放过任何一个蛛丝马迹,终于搞明白了,原来磁盘故障后,exit这段代码本身并不在内存中,调用时会产生major fault, 中断处理程序会尝试从磁盘上load相应的代码段,而磁盘已经故障了,load 被hang住,导致出现前面这些匪夷所思的怪事。

今天云计算已经成为互联网的基础设施,随着众多电力、水务、医疗企业上云,阿里云又成了这些基础设施的基础设施,任何一个黑天鹅都有可能带来难以估量的影响。只有对这个未知的世界保持敬畏,保持谦卑,才能走得更远。

扫描二维码获取更多消息:

图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522780.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kubernetes上的服务网格 Istio - 分布式追踪篇

摘要: 2017年5月,Google、IBM和Lyft发布了开源服务网格框架Istio,提供微服务的连接、管理、监控和安全保护。Istio提供了一个服务间通信的基础设施层,解耦了应用逻辑和服务访问中版本管理、安全防护、故障转移、监控遥测等切面的问…

flowable实现流程回退功能

此版本为旧的版本,建议参看新的版本6.4.0 前期项目要求实现流程回退(仅要求回退到上一节点),所使用的flowable版本是6.2.0-SANPSHOT。在网上收到的流程回退的例子都是activity的,然而activity的很多接口在flowable中都…

如何用ACM简化你的Spring Cloud微服务环境配置管理

摘要: 本文我们就如何使用阿里云ACM这样的配置管理产品在Spring Cloud中替代Spring Cloud Config帮助简化环境配置管理做一个简单的示例,帮助你理解基于ACM来简化微服务环境配置管理的方案,并会简单比较一下ACM与Spring Cloud Config方案的优…

flowable 新的驳回方式 ChangeActivityStateBuilder 多实例驳回 并行网关驳回 普通节点驳回

6.4.0 新增加了驳回的方式,真是对中国式流程的一种福音呀,感谢flowable创始人。 再也不为开发驳回流程发愁了,网上那些视频和修改源码真的是demo级别的,不能商业用。 只有心如流水的学习才是永远的发电机,不要幻想别…

解锁新姿势 |如何利用配置中心规范构建PaaS服务配置

摘要: 在上一篇文章中,我们以MQ和ACM为例,讨论了如何借助配置中心对消息进行限流管理的场景。在本文中,我们继续以该场景为例,讲述如何以规范的配置命名格式来进行限流设置。 点此查看原文:http://click.al…

flowable流程实例笔记(1)

RuntimeService 运行服务类 支持启动的方式 流程定义: 从这里获取资源文件. 执行实例: 流程实例中执行的每个环节.流程实例: 一个流程实例包括所有运行的节点,一个流程中流程实例只有一个.启动一个实例: public void startProcessInstanceByKey() {String processDefinitionK…

flowable6.4.2流程审批后涉及到的表

当流程全部走完后,act_ru_*表的数据清空了,全部移到了act_hi_*表

阿里云弹性高性能计算产品商业化正式发布

摘要: 来自全国500多家企业申请试用,结合客户的体验需求和反馈意见,不断地改善和打磨,弹性高性能计算商业版有了很大的优化,在产品性能和体验上都有全新的升级。 点此查看原文:http://click.aliyun.com/m/4…

php中 怎么去除,php如何去掉链接

php去掉链接的方法:1、删除内容中的超链接ereg_replace(]*)>([^,\\2,$content);ereg_replace("]*>|","",$content);2、消除包含特定词的超链接$find"this string is my find";$string替换掉了;//将超链接替换成的内容echo ereg…

RabbitMQ入门指南(八):MQ可靠性

专栏导航 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、MQ数据持久化 1.交换机持久化 2.队列持久化 3.消息持久化 4.生产者确认机制 二、LazyQueue 1.LazyQueue模式介绍 2.管理控制台配置Lazy模式 3.代码配置Lazy模式 4.更新已有队列为lazy模式 总…

MaxCompute常用语句汇总(更新ing)

摘要: 收集一些MaxCompute常用命令。 点此查看原文:http://click.aliyun.com/m/41645/ 大数据计算服务(MaxCompute,原名ODPS,产品地址:https://www.aliyun.com/product/odps)是一种快速、完全托管的TB/PB级数据仓库解决…

290种零食大统计,谁能唤起80、90后的童年回忆?|数据会说话

戳蓝字“CSDN云计算”关注我们哦!数据分析:喜欢果脯的朱小五内容撰写:只爱辣条的王小九本文转自公众号『凹凸数读』1块钱能买到什么?对于80、90后的童年来讲,1块钱是4根冰棍,是10张辣片,是两包双…

php socket主动推送消息,PHP使用WebSocket主动推送【微信小程序接收】

WebSocket.jpegWebsocket是一种服务端和客户端可以持久连接的通信协议,我们可以利用WebSocket的特性实现服务器主动向客户端推送消息的功能。这里我们用TP5.1框架结合Workerman来做演示首先用Composer下载TP5.1框架composer create-project topthink/think5.1.* tp5…

EDAS再升级!全面支持Spring Cloud应用

摘要: 近日,阿里中间件(Aliware)的企业级分布式应用服务EDAS宣布再次升级,全面支持Spring Cloud应用。 点此查看原文:http://click.aliyun.com/m/41644/ 近日,阿里中间件(Aliware&am…

微博宕机复盘:什么样的技术架构,可支持80个明星并发出轨?

戳蓝字“CSDN云计算”关注我们哦!作者 | 张蓝予编辑 | 苏琦6月27日晚间,范冰冰李晨宣布分手,瞬间亿级的访问量,让微博再一次“崩溃”:范冰冰账号评论区无法加载,搜索“范冰冰李晨”显示失败。微博曾经夸下海…

flowable 动态多实例

<?xml version"1.0" encoding"UTF-8"?> <definitions xmlns"http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd"http://www.w3.org/2001/XMLSchema&quo…

为什么MaxCompute采用列式存储?列式存储和行式存储的主要区别在哪

摘要&#xff1a; 1 为什么要按列存储 列式存储(Columnar or column-based)是相对于传统关系型数据库的行式存储(Row-basedstorage)来说的。简单来说两者的区别就是如何组织表(翻译不好&#xff0c;直接抄原文了)&#xff1a; Row-based storage stores atable in a sequence …

Hive精华问答 | Hive和传统数据库有什么不同?

Hive是一个数据仓库基础工具&#xff0c;它是建立在Hadoop之上的数据仓库&#xff0c;在某种程度上可以把它看做用户编程接口&#xff08;API&#xff09;&#xff0c;本身也并不存储和处理数据&#xff0c;依赖于HDFS存储数据&#xff0c;依赖MR处理数据。它提供了一系列对数据…

MaxCompute SQL原理解析及性能调优

摘要&#xff1a; 分享内容 介绍了ODPS SQL的基于mapreduce是如何实现的及一些使用小技巧&#xff0c;回顾了mapreduce各个阶段可能产生的问题及相应的处理方法&#xff0c;同时介绍了一些应对数据倾斜的处理方法&#xff0c;最后介绍了一些关于数据集构造、特征选择的技巧帮助…

flowable用户组的处理

背景 flowable有自己的用户账号信息&#xff0c;用户信息&#xff0c;用户组信息&#xff0c;其实这些用户信息都我们系统可能都存在&#xff0c;那么我们如何去使用一份数据呢&#xff1f; 1.我们可以建立视图直接取我们的组织信息&#xff0c;这个可以参考相关的文档 2.我们…