2011 High Performance Pipelined Process Migration with RDMA 学习笔记

本文使用的进程迁移方法结合本地文件系统与RDMA传输方式。把进程快照存入本地文件中,通过RDMA传输至远程目标节点的本地文件系统,在目标节点的本地文件系统中通过使用检查点文件重启所有进程。

进程迁移可以详细说明为五个部分:

(1)   停止当前进程。--------为单个进程设置检查点,并保持数据全局一致。需要在停止当前进程的时候,传输完所有当前正在传输的信息。若使用RDMA传输,他们所有的通信终端也要被拆除(tear down)。

(2)   进程快照(写)。应用程序被停止后,源节点上的每一个进程都会有一个相应的进程快照。MVAPICH2使用BLCR为单个进程设置检查点,并把检查点文件放到文件中。对于“local”方法和“shared”方法,都是BLCR直接把进程快照写入相应的文件系统。对于“RDMA+Local”方法,BLCR库调整并集成所有的写操作写入分段的(staging)缓冲池。同时,一组IO进程通过RDMA把数据传输到目标节点中。

(3)   进程快照传输(Transfer)。对于“RDMA+Local”方法,进程快照数据使用InfiniBand网络的RDMA能力,通过块直接从源节点传输到目标节点。在目标节点上,本地磁盘为每一个已经传输的进程快照创建文件。

(4)   进程重启(读Read)。----在目标节点上下载进程快照并重启应用程序进程。该任务有BLCR执行,通过从本地文件系统中读取进程快照文件。

(5)   重新连接。目标节点上所有文件重启后,进程的所有进程同步并重新建立与终端的连接,重新启动特码呢的通信活动。这一步完成后,应用程序就成功完成迁移。

 

本论文中设计与实现一种新的方法:

Pipelined Process Migration with RDMA(PPMR) protocol ,该协议解决了当前迁移方法的性能问题。

当前迁移方法在流程启动阶段之前等待进程快照转出到一个文件中完成。但是这个顺序文件处理是进程迁移阶段的瓶颈。这可以通过重叠进程快照和进程重启过程解决。由于BLCR用顺序方法像流一样从开始到结束处理检查点文件,所以这种方法是可行的。

在这种方法中,整个进程被流水线为三个主要步骤:写入,传输,从流水线中读数据(从源节点向目标节点传输的进程快照文件)。本文提出的利用RDMA流水线进程迁移协议通过利用高性能RDMA功能完全流水线化数据移动。我们利用FUSE库拦截文件IO系统调用和集成数据流存入缓冲池 。源节点和目标节点的缓冲池管理器协作来传输他们之间的数据块。

在进程迁移五个步骤中,步骤2到步骤4全部流水线化。

Step 2:进程快照(写)。未修改的

BLCR库通过write()向虚拟文件系统FUSE写入进程快照数据。这些调用模块被FUSE模块拦截,数据被合并存入到从共享缓冲池获取的缓冲块。当一个缓冲块填满,就返回缓冲池一个充满标志,下一个块继续收取信息。

Step 3:数据传输(Transfer)。第二步中的缓冲块被填满,源节点上的缓冲区管理器向目标节点对应部分发送RDMA-Read请求。这个请求包含两部分信息:(1)目标节点上RDMA信息执行RDMA读操作读取数据(2)信息(进程排序,数据大小,数据偏移量),基于此属于相同进程的缓冲区块可以连接到单独连接表中恰当的位置。基于这个请求,目标节点上缓冲区管理器从缓冲池中抓取一个空闲块并执行RDMA读请求来获得数据。RDMA读操作完成后,将回复信息发送给源节点以告知源节点缓冲区管理器回收一个缓冲区块。新填充块被放置到第四步中一个连接列表中的适当位置。

第四步:进程重启(Read)。在这一步,BLCR库重启目标节点上的进程。基于此,它从基于FUSE创建的虚拟文件系统文件中读取进程快照(与步骤2相似)。Read()系统调用被FUSE拦截,遍历由收到的数据块组成的链接列表来定位被请求的数据。一旦数据被找到,就返回给读进程。否则,进程阻塞直到需求的数据块被找到。由于检查点数据是在源节点上顺序产生的,并且BLCR顺序读进程快照数据,并且只在目标节点上读一次。块中所有数据被进程读完后,这个块被回收,接收源节点中的新数据。

PPMR方法使得写、传输、读步骤可以无缝的流水线进行。并且这个流水线方法可以实现
发布了9 篇原创文章 · 获赞 4 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/juan190755422/article/details/42644831
今日推荐