如何解决生物信息大规模计算的问题

前言

生物信息的一个重点就是数据的处理与分析,随着基因行业在临床和科研方面的应用逐渐加深与扩大,样本数量的越来越多,加之分析过程本身也是高并发的过程,如何快速、高效、准确的获得分析结果变成了一个问题。为了应对这个问题,我们需要大量的机器去处理这些作业。当你有一台机器,你可以随时看着这台机器是不是可以继续投递任务,但是拥有一千台甚至是一万台机器的时候,那就已经超出了你的能力程度了。

针对生物信息的计算需求,GeneDock开发了Flash分布式调度平台(简称Flash),它承担了平台的基因分析任务的管理,调度和监控。

特点

Flash针对生物信息高并发、多框架的特点,具有以下特点。

多框架:为了更加灵活的接入多种计算框架,Flash采用了双层调度:第一层,由作业调度中心(Dispatch Center)统一资源调配,通过筛选后选择合适的计算框架(Slave)给作业;第二层,框架通过自身的调度器将资源分配给作业。
高扩展性:大多分布式计算框架都具有其高可扩展性。在双层调度的特性下,作业调度中心的统一资源调配不会影响到各框架自身的扩展性。
容错性:大规模的计算环境下,容错是保证系统高可用的一个保障。在各框架自身的容错性能下,作业调度中心会通过检测各框架的心跳及时掌握框架的实时状态,同时各框架的服务也通过主备模式保证服务的高可用性。
安全与隔离:Flash各框架之间是完全隔离互不影响,各服务之间使用grpc通信并使用docker化部署。各框架执行器使用docker执行用户任务,保证资源的隔离与互不干扰。

总体架构

图1 Flash架构图

用户通过Client/API向任务解析层提交一个完整的任务描述,通过任务解析层的DAG解析与资源预估,进入作业调度中心进行框架的选择,获得可运行框架的信息并向框架提交作业。框架接收到作业后通过自身的资源管理器和调度器将作业分发给框架的执行器。

双层调度策略

图2 双层调度策略示意图

作业调度中心

作业调度中心管理所有框架的使用和生命周期,对所有框架的资源进行统一的调配。

作业进入调度中心后,通过指定的框架名称(Framework Name)、依赖作业的运行框架(Dependency Filter)、cpu、memory、磁盘类型(disk type)、是否需要网络(network)等筛选出可选运行的框架。其中依赖作业的运行框架的筛选可以保证数据的Locality,减少跨框架使用数据资源的发生,提高运行效率。

框架自身调度模块

每一个框架接入时会根据自身的特性实现或接入一个调度模块,解析作业描述、管理和调控框架自身的计算资源。

框架接收到作业后,通过自身的调度模块,通过对cpu、mem等(各框架有所差别)申请计算资源,选择合适的机器执行作业。

计算节点的执行器接收到作业后,一般会进行以下动作:

作业初始化: 主要包括 Docker Image 的下载,运行数据的下载
用户作业命令执行: 启动容器并执行用户提供的命令
作业资源回收: 主要包括上传作业产出数据,作业运行日志,执行器日志,资源监控数据,作业报告数据等

高扩展性

框架扩展

双层调度使得我们可以接入不同的计算框架,实现框架层的扩展。目前我们已经实现ECS框架和DIKU ON ECS框架。

计算资源的扩展

计算资源的扩展取决于框架自身的扩展性能。好的扩展性能,计算框架的资源增加对系统行为产生极小的变化。例如我们ECS框架借助高效的队列服务,降低了服务的通信开销,增加了任务的处理速率,使得资源的水平扩展获得了极大的提升。

容错性

系统发生错误时,系统有对错误进行规避和恢复的能力。大规模的计算环境下,机器的故障会是一个常见的问题,这些故障包括机器的硬件与软件等多个方面。

框架层的容错

由于机器故障,经常会导致框架服务的不可用,我们通过以下两点解决这种问题:

1. 作业调度中心通过ZooKeeper Watcher机制及时掌握各机器的健康状况,当出现服务不可用时,会及时保存作业信息,等待服务的恢复。
2. 我们通过服务的主备模式,实现服务的自动恢复:

图3 主备模式主动恢复服务示意图

1. 无故障情况下,框架有一个主服务和多个备服务,主服务负责正常的rpc通信和处理,备服务只用来监控主服务的状态。
2. 当主服务出现故障不可用时,框架短暂出现为不可用状态,各备服务也发现主服务的不可用。
3. 备服务通过选主,产生新的主服务,新的主服务恢复相关数据并开始正常的rpc通信和任务处理。

框架内容错

各框架实现自身的容错机制:

1. 当执行器节点出现故障时,可以批量重试改节点的所有作业
2. 当执行结束后,通过退出码可以判断某些作业的失败原因,并且判断是否该作业需要重试

安全与隔离

Flash平台运行的作业,来自不同的用户的临床数据,所以作业运行的安全与隔离就尤为重要。

通信安全

Flash所有服务的通信通过grpc,保证通信的安全、快速。

框架的隔离

框架与框架之间相互独立,框架只通过grpc与作业调度中心进行通信,各框架可以是一套单独的通信、运行、存储系统,互不影响。

执行环境的隔离

作业的最终执行都在容器中,通常我们使用docker容器执行作业,docker在资源隔离、快速迁移、秒级启动等多方面的性能完全满足我们对执行环境的隔离需求。

docker registry的安全性

GeneDock将自身的鉴权系统接入到registry当中,用户可以安全的操作自身的docker镜像。

展望

Flash平台的基本功能都已经实现,但是后续在各方面性能都还有很大的提升价值

跨框架的重试:当作业在框架内重试失败时,根据失败原因,可以进行跨框架的作业重试
接入更多的框架:根据生物信息的计算需求,可以接入常用的sge、torque、Hadoop等计算框架
更大规模的计算资源:不断延伸框架的扩展性,实现更大规模的计算资源调度
作业资源估计:随着作业数的越来越多,通过机器学习实现更加精确的作业资源估计
更加丰富的可视化功能:满足用户对作业运行时或运行后的可视化需求

阅读原文:https://www.genedock.com/blog/2017/03/25/20170325-flash/
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容