我正在寻找一种方法来将计算作业(主要是光栅化工作)分配到网络上的多台空闲机器上。这些服务器现在运行的是 Debian 6。
需要完成的大部分工作都是标准命令行工作,并带有一些 GhostScript 渲染。由于仅使用一个 CPU 渲染可能需要很长时间,因此我想将工作分成许多小部分,并让网络上的空闲机器协助完成工作。
以下是粗略的工作流程:
- 用户将大型 PDF 文件上传到 Web 前端
- PDF 被分割成小块或移动到所有机器都可以访问的 SAN。所有小块组成一个“主要任务”,用户必须先完成该任务才能看到结果。
- 为 PDF 文件的每一页安排一项作业并将其放入“队列”中。
- 空闲的机器从该队列中抓取作业并处理/呈现 PDF 文件的页面。
- 完成后,他们将生成的光栅数据放到 SAN 上并标记作业完成。
- 一旦“主要任务”的所有工作都完成后,用户将看到 Web 前端上所有呈现页面的概览。
我知道作业调度程序,但由于这对我来说是一个新领域,我甚至不确定用 Google 应该使用什么搜索词。
因此,我非常感激任何指点和建议。理想的做法是采用分散式结构,以避免所有机器出现单点故障。