我们有几个进程跨文件传输服务器 – SFTP,FTP,SCP, Windows,Linux,AIX; 有一个工作stream组件(通常需要一个带有文件名和散列值的控制文件来移动一批相关的文件)。 这个动作通常是在我们的服务器上启动以获得这些文件,所以我们需要确保它们完成了写入。
我们有一些自行开发的脚本来做到这一点,但是它们并不总是正常工作,故障排除,维护和日志审查并不容易。 有很多服务器,我们的脚本没有中央日志logging或仪表板/控制台/等。
我们正在研究商业产品来做到这一点。 有没有人使用过MQ File Transfer Edition? 我们公司的另一个团队正在使用Aspera,有没有人有任何想法,或其他受欢迎的产品?
我不知道我们的预算是什么。 只是试图从其他pipe理员的angular度来处理产品空间。
/编辑 – 在我的情况下,我们将来自不同来源的扫描图像的2个文件有效载荷(一个二进制,一个元数据)移动到不同的目的地。 我们等待第三个控制文件写入校验和 – 移动完成后,控制文件被删除。
这些源主要是less数Windows文件服务器或Windows SFTP服务器,它们从扫描进程接收这些文件。 我们也有源FTP服务器或SFTP服务器接收来自外部相同的有效载荷。 目的地是将图像摄入档案的一组AIX服务器,所以文件也不会保留在目的地中。 鲁棒性绝对是我们主要关心的问题。
我想我们每天移动几个GB。 (没有集中的日志logging,我不能给一个更好的数字。)二进制文件可能平均大约100 MB,元数据相当小。
我没有使用MQ文件传输版本,所以我不能评论这一点。 我做了很多文件传输,包括EDI,FTP,AS2,FTPS,SFTP,rsync,SCP,aspera,svn等等。最终我的答案将取决于您的具体要求。 从它听起来最重要的事情是文件传输的可靠性。
首先我会推荐一些平台的标准化,维护和pipe理,这就是你所看到的。 使每个服务器不pipeOS / config如何使用相同的过程来从节点获取文件。 在不同的configuration中进行故障排除可以使简单的任务非常令人沮丧。 当我想到可靠性的时候,我不会想到windows,但是很多时候,只是不能避免这种情况。
虽然我不知道你的具体要求,但是我会为你提供一些可能的解决scheme,如果你能够明确地说明你的需求(广域网,局域网,文件大小,每天传输的数量,传输的重要性等),我可以为你提供一个更准确的答案。 我过去设置的传输是从小的<1kb文件到数百GB数据的任何地方,如果传输不会发生在永远不会被使用的数据的情况下,人们就不会得到报酬,从开放的互联网传输到encryption的数据,跨encryption的VPNencryption传输。
您真正所做的是在行业中称为托pipe文件传输的半新术语。 http://en.wikipedia.org/wiki/Managed_file_transfer
在这一天结束时,获取Gartner Magic Quadrant报告,对其进行审查,并select符合您需求的供应商。 你会注意到列表中的Aspera,但是考虑到你的需要CFI。 考虑到你正在寻找一个商业产品,这是你最好的select。 如果您想要对我在这个领域的研究有更多的意见,请私信给我或发表评论。
这是我的个性化input。
集中式FTP:
这是很好的,因为FTP是普遍的,它在很多地方都有使用,并且在系统中有很多的支持。 许多stream行的FTP服务器将提供对许多authentication方法以及协议的支持。 如果你能够集中服务器的所有节点,那么故障排除变得容易很多,当出现问题时你检查服务器日志,或者最好有日志自动通过电子邮件报告给你,如果没有任何错误,它的漂亮清除其客户端或networking问题。 问题是FTP并不完美,它可以很容易地失败,并且在处理大量小文件时特别慢。 在操作系统中,您可能会发现文件命名问题等等。 如果您打算考虑这个解决scheme,请使用客户端和支持简单文件validation的服务器。 http://en.wikipedia.org/wiki/Simple_file_verification 。 用来检查文件的机制就像它说的那样简单,可以在多个平台上检查。 有许多服务器支持在上传文件时检查文件,如果文件检查失败,可以自动报告,同时检查整个文件集而不是单个文件,同时也提供一定比例的完整结构上传。 gltfpd是一个stream行的,但记住这是一个configuration熊,但一旦你有它的设置,你可能永远不需要再碰它。 http://www.glftpd.com/ 。 Gene6也很受欢迎
Rsync文件
我已经使用rsync与脚本相当数量,我发现这是非常可靠和相当健壮的时候考虑错误检查。 因此,你会发现备份脚本中的rsyncstream行。 我不知道许多现成的rsync程序,所以你正在考虑编写一个解决scheme,再次你将没有集中日志logging,你可能会遇到很多相同的问题,但老实说,我发现rsync足够可靠,并且与大型文件集和完整性检查的增量传输是完成任务的相当快速和肮脏的方式。
叶树
Aspera是高延迟,高带宽传输的核心技术。 如果您不通过广域网传输,也不传输大数据集,我不会推荐它。 我运行一个大型的Aspera部署,并且散布着传输问题和软件错误。 如果你正在寻找非常基本的function,这是一个非常好的解决scheme,但是当涉及到更高级的处理时,准备编写自己的脚本来传输数据。 该软件似乎更专注于一个小型的小生意,他们似乎在企业部署的斗争。 他们对他们的产品进行集中式日志logging将解决集中式日志logging需求,他们的前后处理也可以满足您的需求,但是请记住,您最终可能花费相当可观的资金用于半工作解决scheme。 我在上面提到CFI,他们的产品是更多的企业,但他们努力提供一个单一的经验。 根据您的需要,不要拿我的话来说,为自己的产品试用。
版本控制系统
我会首先说这似乎不符合要求,但是是另一种select。 如果您传输的文件不是事务性的,请考虑将这些文件存储在版本控制系统中。 在这种情况下,当需要传输文件时,会将其检入到版本存储库,并在需要时在远程端进行同步。 在需要版本控制和文件可能互相交互的情况下,以及中央服务器,这可能是一个不错的select。
作为最后一个方面,请查看twitter使用什么来将configuration文件传递给它们的许多节点: http : //engineering.twitter.com/2010/07/murder-fast-datacenter-code-deploys.html
我再一次强调,正确的答案是基于你的确切要求。
希望这可以帮助你。
我为几个客户实施了WMQ FTE,它肯定会满足您所描述的要求。 您可以将其configuration为监视控制文件,然后移动数据文件并删除控制文件。 它也可以由创build文件的MQ消息驱动。 FTE代理可以作为客户端连接到WMQ,所以只需要一个小型部署中的WMQ服务器,FTE代理就可以在您提到的所有平台上。 唯一的例外是z / OS FTE代理必须具有本地队列pipe理器(由于z / OS平台没有WMQ客户端)。 当然,它也是为临时用户驱动的传输设置的。
FTE使用所有非持久性消息以及两个代理之间的轻量控制stream(当然,通过WMQ)来确认数据stream。 假设双方都启动了,整个传输都发生在内存中,队列pipe理器上没有任何数据写入到磁盘上,所以它的速度很快。 如果一方发生故障,一旦恢复服务,中转服务将立即停止。 这两个代理都会对数据和文件进行校验,以便在中断期间或传输过程中源文件或目标文件发生更改时,传输会以相应的错误消息中止。
您可能想要编写脚本的任何types的自动化都可以使用Ant或任何您希望在发送方或接收方调用的可执行文件完成,无论是在传输之前还是之后。 例如,我有一个客户端将文件encryption到客户的SFTP服务器上,然后在到达时解密这些文件。 这是通过调用Ant在出站传输之前和入站传输之后运行GPG来完成的。
当我在一家大型保险公司工作时,我们使用Connect:Direct来自动化和pipe理各种windows / linux / AIX / mainframe服务器之间的文件传输(大部分是通过SSL / TLS)。