这本是帖子「腾讯云的事,是不是很多人以为三副本就是备份,不应该丢数据,很靠谱....」的一个回复
回复发出后自我感觉良好,遂稍作优化作为个人看法独立发帖,望各位大佬拍砖指正
个人看法高可用的存储底层节点架构应符合以下准则
1、应为非同批次、非同固件的等容量、等架构磁盘组建硬件 /软件 RAID
2、应配合巡检定期校验数据是否可用,并尽早踢出异常磁盘
3、存储节点自身应具有完善的警告预警机制
4、三备份的集群架构应是基于此磁盘架构的冗余备份架构,无论是实时互备还是定时冷备
一般云 VPS 服务的自动迁移依赖独立的磁盘柜与计算集群实现
那么在腾讯的这个案例上,可能存在三台阵列柜、一套磁盘阵列网关与若干计算节点组成的计算机群
丢失数据的范围为一个集群(假定整个集群都出现静默错误,且真的存在三备份架构)
那么问题来了
1、为什么现在只有一家公司发声?
2、如果真的是三备份架构,为什么会三套存储设备同时故障?
3、为何阵列损坏后没有任何警告、通知直接就是静默错误?
假设现在的信息都为真实信息,没有人为修饰掩盖
有以下推断:
1、不存在三套设备互备的磁盘架构
2、这个软件 BUG 不在硬盘而在软件分布式上面
3、假设 2 推断为假,软件 BUG 位于磁盘,则阵列架设没有严格遵守高可用原则进行设计
4、假设 2 推断为真,那么更有可能的情况是 BUG 位于阵列卡,数据位于单一母机,丢失范围为一台母机
5、假设 2 推断为真,数据存在集群上面,且 BUG 位于自研的分布式存储平台上,那么...不多说了
说实在,怎么想都想不出来为什么一个成熟的云平台能搞到数据全丢
单个磁盘的静默损坏对于磁盘阵列的构建是必然需要考虑的问题
ZFS 的设计就是为了抵御这类事情的发生
甚至有点怀疑是不是有人手动 /某个自动化 BUG 的 "rm -rf" 了特定的虚拟机磁盘文件然后后续业务直接写花了集群
这应该是可能性更高的情况
也许很多人认为云服务就应该是绝对可靠,毕竟有许多业界大佬进行维护与开发。
这想法没错,但是考虑到可能存在的风险,以及云服务商并不会提供底层架构的具体细节
理应对云服务的安全性、可靠性有所保留,自行备份 /同步各项业务数据
这是对业务的负责,也是一个技术人员专业性的表现。
在现有的商用\家用宽带环境下,在众多开源隧道方案的加持下(重点推荐 ZeroTier )
实时同步数据库数据到本地进行持续热备应不是难事(二进制日志远程写入)
而业务数据,定期同步到别的地方所需要的磁盘空间以及带宽消耗也是可以接受的
对公司的投入也仅仅是一个本地的磁盘柜以及相应的带宽投入而已。
而下行带宽,显然是相当的便宜
作为商业数据,数万元的本地硬件投入,采购二手平台甚至可以做到万元级投入
这应该是可以接受的吧?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.