嘉宾介绍 周小军, 腾讯高级运维工程师,目前在腾讯社交事业部负责社交业务海量NoSQL集群运维团队管理。曾任天涯社区运维副总监,负责天涯整体运维。对互联网站点架构、数据中心、云计算和自动化运维有深入的研究和理解,积累了十余年的IT运维管理经验。我希望用我的一生钻研运维领域。 题目介绍 腾讯目前有3个NoSQL分布式存储系统,分别是: 杂货,主要支持QQ业务,包括关系链、群、圈子、消息等 CKV,主要支持 Quorum_KV、QQ空间、腾讯云、相册、音乐和广点通等,主要支持微信业务,包括新闻、朋友圈等产品 我们是SNG(腾讯社交网络事业部)社交平台网络运营技术运营中心下属的数据运维团队。团队主要负责CKV和Grocery这两个NoSQL分布式存储集群的运营。目前团队拥有十多名工程师,负责上万台存储服务器。主要布局在深圳、天津、上海、广州等大片区域。 存储服务器分为数十个SET(仓库)集群,共计数百TB内存和SSD存储容量,服务于QQ、朋友网、QQ空间、相册、广点通、微云、音乐等。互联网核心业务。 部署方式 NoSQL集群以SET形式部署,也称为“仓库”。SET是一个物理单位。仓库中至少有四种服务器角色: 接入机(代理服务器) 存储机(主+备机) 仓管机 搬迁机 每个SET都可以部署跨机架、跨IDC、跨城市容灾。SET是一个独立的、标准化的服务单元,永不停止,永不丢失数据,类似于一个标准化的容器。我们最新的SET机器部署数量不会超过千台,非常大的SET会增加管理成本。 在腾讯的海量服务运营模式中,SET是一个非常重要的概念。接入层、逻辑层、数据层均以SET为单位部署。一个业务,比如QQ音乐,在接入层和逻辑层可能有十几个SET,在数据层有好几个SET。SET部署在不同的区域。每个SET可以容纳一定数量的在线用户(比如500万在线用户)。 天津大爆炸2亿用户跨省调度 8月12日,天津发生特大爆炸,腾讯天津数据中心距离爆炸现场仅1-2公里。当时,天津数据中心处于高危状态,现场多名工程师受伤。市电随时可能断电,柴油动力只能维持不到一天。8月13日,我们启动了一次大调度,将居住在天津的华北2亿多活跃用户全部调度回深圳和上海。QQ用户对调度过程没有任何感知(从当年IT界的新闻来看,外界对这件大事毫无所知)。 这应该是中国互联网史上最大的一次发文了。调度的成功得益于基于SET的管理和三地数据SET的同步。 同步是怎么做到的? 业务数据以仓库为单位,在全国IDC部署多个异地仓库,通过数据流转实现异地仓库之间的数据同步和一致性保证。当某城IDC发生灾难性故障时,业务可快速切换到其他城市IDC恢复数据读写,实现业务灵活可用,保证业务服务的连续性。同步中心负责数据同步,业务写入同步中心,同步各地仓库服务,从同步中心读取数据,写入本地仓库。 技术特点 1。低成本:采用冷热数据自动分离技术,将热数据存储在内存中,冷数据存储在SSD中,从而大大降低成本,确保不到20%的数据存储在内存中。 2。可扩展性强:表存储空间可在线自动无损扩展,业务基本无感知。它适用于各种规模的企业和各种生命周期的企业。 3。高性能:单表***支持每秒千万级访问。通过网络访问的延迟约为1ms。单台存储服务器千兆网络环境支持50万/秒访问,百兆网络环境支持100万/秒以上访问。 4。可用性超过99.95%:软硬件全冗余设计,双机热备,主备切换对业务透明,跨机架、跨交换机部署。 5.数据持久化超过89:数据分盘存储,内存和磁盘多副本,具备灾难回滚能力。 高可用架构 经过几年的不断打磨和优化,我们的NoSQL分布式集群架构已经非常成熟,具有以下主要特点: 1。高可靠性:主备冗余,采用自动故障转移机制解决单点问题,当主机出现故障时自动切换到备机。同时,后台调度系统启动搬迁服务,将单点备份的数据搬迁到仓库中的空闲资源池中。 2。异地容灾:多站点部署,当单个IDC甚至单个城市发生灾难时,服务继续可用。 3。强一致性:Master提供读写,Backup提供容灾,保证数据强一致性;当master故障时自动为只读,用户切换到backup后恢复读写,保证单机故障时数据零丢失。 4。仓库集群机制:标准化部署,自动扩容,数据服务能力自动适应业务增减,保持对外服务持续可用。 数据即服务的运营理念 数据中心由计算、存储、传输三大要素组成。IaaS服务提出的目标是将传统数据中心的CPU、内存、网络、存储转变为提供计算资源的池化和智能调度管理。对于数据层,我们的目标是DaaS,将数据作为服务提供给用户。 构建可扩展的分布式数据库 我们的分布式数据库将存储资源池化,以内存存储块和磁盘存储块为资源,按照相对固定的存储单元,放入一个大的存储池中。管理,并在其之上部署存储智能调度系统。 因此,我们数以万计的存储服务器已经是真正意义上的动态扩展的分布式数据库: ◆业务用数据容量最小1GB,最大10TB。 ◆内存存储从1GB扩容到多机100GB,在线分分钟完成,扩容过程中业务无感知、无损。 ◆服务可用率为49,时延2ms。 ◆扩容过程无需工程师跟踪。 我们的数据管理是集中的。在数据复杂度和数据量增加的情况下,数据运维可以支撑不断变化的业务需求。 运维即服务,数据即服务 在DaaS中,我们实现了以下几点: 1。业务自助接入服务:业务申请、创建业务ID、自动创建表空间、自动下线,贯穿业务全生命周期。 2。机器部署:采用基础运维平台,包括安装包、一键上架等自动化部署。支持跨机架部署。 3。弹性伸缩:一是存储代理的灵活性;二是存储分配空间的灵活性,可根据业务存储使用率自动扩缩容。 4。水位调度:业务流量自动在接入集群间流动,存储块自动在存储集群间流动。 5.用户报表:全方位访问趋势、存储趋势、数据冷热分布、接入机分布、存储机分布、主机当前负载等业务存储数据。 6。多协议支持:支持私有协议、Redis协议和Memcache协议。 7。成本分配:按请求量和入库量进行月度财务核算,便于用户成本透明化。 成本优化策略 数万个存储集群的成本优化是运营的核心目标之一。我们的成本措施主要有: 1。以访问密度作为衡量成本的指标,以单位GB的访问量来衡量服务访问的合理性。 2。数据密度,因为数据块是由固定长度的块组成的。用户记录的可变长度会导致严重的块碎片。因此,我们通过定期碎片整理来实现存储块的高效利用,减少碎片,增加有效存储空间。 3。分层存储,热KEY存放在内存中,冷KEY下沉到SSD硬盘。按照平时82个冷热数据的比例,我们可以节省很多内存服务器。 4。备用机被重用。为了保证数据的强一致性,我们的存储主机提供读写服务,备机只提供数据流,不提供服务。因此,我们在备机上部署容器,以满足公司对离线计算或长尾业务的计算资源需求。 运维团队的工作本质 R&D和DBA之间的关系就像一辆车。我们造车写手册,DBA负责调校和保养车,让它发挥*最好的性能,坐起来最舒服。 ——MySQL研发团队成员赖正工匠精神,不断追求成本、安全、质量、效率的卓越。 除了研发团队,运维团队本身也是一个开发和运维相结合的团队。团队中有两个角色:开发和运维: 开发工程师:负责持续集成环境、流程引擎、接口、代码审计等。 ◆运维工程师:负责产品经理,细化到任务粒度级别的开发。 强大的运维工具平台,拥有丰富的API接口,如身份验证、流程引擎、CMDB接口、监控接口、日志上报、安装包接口等功能,大大提高运维工具开发效率和维护工程师。 如何一起快乐发展 《高效运维》公众号(下方二维码)值得您关注,作为唯一官方公众号,每周发布多篇干货满满的原创文章:精华来自系列群的讨论,运维论坛的精彩分享,群友的原创等等。《高效运维》也是互联网专栏《高效运维***实践》和官方运维2.0公众号.重要提示:除非事先获得授权,否则请在本文公众号发表后2天转载本文。尊重知识,转载请转载全文,包括我行及下方二维码。
