您所在的位置: 首页>行业资讯>山东支持八千台子机并发创建,详解腾讯云主机创建优化之路

山东支持八千台子机并发创建,详解腾讯云主机创建优化之路

发表于:2021-10-24 阅读:0 关键词: 腾讯云主机 服务器优化 腾讯云 网站SEO优化

背景技术有两种创建云主机的方法。 一种是通过映像下载创建,另一种是通过快照回滚创建。 前者是一种常见的传统方法,而后者则取决于CBS云盘的功能。 随着CBS云磁盘的使用越来越广泛,腾讯云主机的创建也从原始映像下载切换到CBS云磁盘快照回滚模式。 云主机是通过传统的图像下载方法创建的。 在拉起云主机之前,需要将整个映像文件下载到主机。 因此,云主机的创建时间在很大程度上取决于所选图像和当时下载的图像。 带宽。 当遇到较大的图像时,云主机的创建时间通常达到几百秒,这种用户体验不是很好。 另外,在创建批处理时,需要消耗大量的Intranet带宽资源,并且需要在尽可能多地占用网络带宽的同时进行QoS,以确保不影响用户的正常使用。 云盘快照回滚方法用于创建云主机。 无需提前下载图像。 相反,当拉起云主机时,首先将要访问的数据从快照系统移动到CBS云磁盘系统。 我们已经观察到在拉起云主机的过程中访问的数据量和图像的大小不是严格线性的。 即使是较大的图像,拉起云主机时也仅会访问一小部分数据。 重定位过程如下:图1.云磁盘快照数据重定位过程当有快照回滚请求时,我们将首先在后台启动一个任务,以从COS顺序将快照数据读写到存储池。 同时,我们不会阻止用户读取快照数据并将其写入存储池。 回滚磁盘的正常读取和写入。 当有用户请求时(步骤1),驱动程序将首先检查是否已写入与lba对应的快照数据,如果已写入,则将直接发出IO(步骤7),否则将阻止 IO并先给调度程序发送触发请求(步骤3),调度程序将优先处理触发请求,并将其移交给重定位模块以从COS读取相应的快照数据并将其写入存储池 (第3、4、5步),并且在写入完成之后,调度程序首先将重定位位图记录到zk并将触发器返回给驱动程序 响应和当前快照数据回滚进度(步骤6),驱动程序收到它后,它将不再阻止io并使其正常交付(步骤7)。 关注延迟和并发性,这是通往云主机创建优化的道路。 云磁盘快照回滚可优先安排关键数据的重定位。 该机制为我们批量创建云主机奠定了基础。 在此基础上,我们还关注延迟和并发性。 一系列优化。 当传输增加批量创建中的高速缓存从属计算机时,通常使用同一镜像来克隆成百上千个从属计算机。 如果从COS系统中提取所有数据,则COS读数的压力将非常大,这将触发COS。控制的Qos流程。 为了使批量创建过程中的阅读镜流量不再受COS带宽的限制, 我们在传输中添加了一个缓存,每个传输都缓存了一些镜像数据块。 一旦传输缓存被命中,数据将不再从COS中被拉出,因此每次传输只需要拉一次镜像。 当缓存流量达到瓶颈时,可以通过临时添加节点来增加带宽,并且它具有水平扩展的能力。 添加缓存后,我们还优化了传输部署。 每个区域已部署了几个节点。 当有数据块重定位请求时,将始终在与CBS磁盘的基础存储节点相同的区域中为任务优先进行传输。 这样,可以实现最接近的重定位。 通过高速缓存优化,单个数据块的重定位时间可以从100 + ms减少到10 + ms,从而大大减少了IO延迟。 图2.传输缓存调度程序的性能优化。 在快照回滚以创建云主机的过程中,核心处理逻辑在调度程序中,因为客户端上的每个IO 触发请求必须经过调度程序,并且由于触发触发的每个快照数据块重定位必须记录在zk中, 因此,调度程序的负载和zk写入功能将直接影响整个快照系统的吞吐量。 首先,我们优化了调度程序,以分离请求接收,处理以及与后端交互的逻辑,以形成流水线,以最大程度地减少由于请求处理缓慢而导致的其他请求的排队。 每个部分都有一个线程池。 来并行处理,尝试利用整机的计算能力; 其次,对于zK是高书写压力的问题。 我们已经对写入zk的数据进行了分类,并且一些不经常更改的元数据仍会写入zk; 记录触发器的重定位状态的元数据需要经常修改。 这部分数据不适合存储zk。 我们将其卸载到具有更高qps的存储系统。 这样,调度程序的处理能力已加倍。 。 另外,为了防止回滚流量影响其他用户对磁盘的正常使用,我们在调度程序中进行了必要的QoS。 首先,将回滚带宽限制为属于同一副本组。 当整个副本组的带宽处于空闲状态时,回滚流量不能超过限制。 当整个副本组的带宽达到上限时,回滚带宽将自动回退,以确保首先确保用户的正常IO延迟。 其次,当同时存在顺序的重定位任务和触发请求任务时,将首先处理触发请求任务以确保用户体验。 最后,我们修改了调度程序以实现水平可伸缩性,从而使其不再成为性能瓶颈。 图3.计划程序拆分购买计划。 使用快照回滚批量创建云主机时,快照数据将被写入所有新创建的CBS云磁盘。 如果同一副本组中有大量云盘,则该副本组的写流量将太大,从而触发上一节中提到的副本组回滚的带宽限制。 为了避免此问题,我们添加了调度系统。 批量购买云盘时,将综合考虑副本组的剩余容量,创建的卷数,回滚带宽和副本组的写入带宽,以创建同一批次。 尽可能将CBS云磁盘分配到多个副本组。 这样,首先,可以确保单个副本组在创建时不会成为流量热点; 其次,可以在一定程度上保证所有副本组的创建具有均衡的流量,并且可以充分利用整个存储池的带宽。 最后,将批量购买的相同CBS云盘分解,这可以最大程度地减少由于副本组故障而对用户的影响。 为了减少从机上拉时的数据量,主要从减少延迟和增加回滚带宽的角度来考虑如何优化。 目的是允许后端系统承载更大的回滚带宽并提高快照数据迁移的效率。 如果在快照数据重定位过程中,CBS云磁盘具有对尚未重定位的数据块的IO访问权限,则将生成触发请求。要求,后台系统需要优先处理触发器的重定位,以请求对应位置的快照数据,这将给调度程序造成额外的负担,因此如何减少从机上拉时产生的IO 触发器对于减轻后端系统的压力,对于并发创建云主机很有意义。 在分析从机的启动过程中,我们发现在从机的启动过程中,文件系统的扩展和配置文件的修改会产生大量的信息。 扳机。 当快照中文件系统的大小小于要回滚的CBS云盘的大小时,通常会发生文件系统扩展。 在这种情况下,有必要将原始文件系统的所有元数据读取到内存中,进行修改然后再写入。 ext系列文件系统的元数据分散在每个块组中,因此读取元数据将成为随机读取操作。 几乎每个随机读取都会触发一个触发器,以触发后端快照数据块和文件系统的重定位。块的大小远小于快照的粒度,这相当于读写放大; 为此,我们修改了文件系统配置以集中所有元数据,以便读取元数据成为顺序的读写,以便可以合并请求,从而减轻了后端压力。 经过优化后,在扩展文件系统时,可以将后端IO压力降低到原始压力的五分之一,并将时间消耗降低到原始压力的四分之一。 其次,如果直接在原始文件上修改配置文件,则必须读写文件元数据和读写文件数据,这相对昂贵。 因此,将其更改为删除+写入新文件,因此无需读取文件数据。 ,可以有效降低IO。 简介:通过在多个级别进行上述技术优化,腾讯云能够同时创建8,000个子计算机,从而为客户提供更好的服务体验。 将来,我们的优化将继续,欢迎大家提出宝贵的建议。