APP下载

微软分布式文件系统在实践中的应用

2019-09-10冯雪李靖

计算机与网络 2019年4期
关键词:插件客户端服务器

冯雪 李靖

摘要:说明了一种基于微软的分布式文件系统(DFS)及部分Asp.Net定制开发功能的解决方案。系统通过定制开发的Web页面、WindOWS桌面版工具和邮件客户端Outlook插件,为用户提供上传和下栽文件(加密传输、断点续传)、个人文件管理、查看访问日志和文件链接分享等便利功能;为管理员提供共享文件空间额度管理、文件定期清理和用户访问日志审计等功能。

关键词:DFS;DFS-N;DFS-R;Outlook插件

0引言

在大中型组织中,用户之间传输或者共享大文件(几GB至几百GB的文件,以下简称“大文件”)的需求非常普遍。这种大文件远远超过了邮件系统所允许的传输上限。而企业的广域网带宽非常有限且十分昂贵,一旦用户跨广域网传输大文件,特别是多人间共享时,极易造成广域网堵塞。用户不得已,经常通过QQ等共享聊天工具进行点对点传输,免费的互联网网盘,或者在企业内部部署的文件共享服务器,通过共享文件夹共享或者传输大文件。但使用互联网工具传输大文件,不但速度慢,还容易中断,信息安全难以保证。本文所描述的“企业大文件传输和共享系统”,是基于微软的分布式文件系统(DFS)的一种创新。通过在企业内部部署多台DFS并组成文件同步和复制网络,利用活动目录(Active Directory)的用户和PC管理功能,解决了大文件的分布式存储、统一访问、高效安全传输与复制和用户就近访问等问题。再利用自定义开发的多种用户端工具:Outlook插件、客户端和Web网站,解决了客户端的文件上传下载、断点续传、文件访问地址的分享和传播、权限管理及文件清理等问题,并大大降低了开发难度和工作量,形成了一套完善的企业大文件传输和共享解决方案。

1基于DFS的大文件传输系统架构

本系统采用了DFS作为系统的后端文件服务器,通过在广域网的片区中心节点部署DFS服务器和自主开发的文件传输服务,借助DFS-N的能力,解决了大文件的统一访问和存储空间扩展灵活性问题;借助于DFS-R的能力,解决了文件系统的分布式部署和智能就近访问问题。然后通过在每台DFS上部署自定义开发的文件传输Web服务,多台DFS的Web服务之间通过SQL Server数据库共享配置信息和用户传输状态等信息,解决了全网用户的服务器至客户端的文件上传和下载、传输加密、断点续传、配置同步和文件清理等问题,系统的架构图如图1所示。

2就近上传与下载及文件复制

本系统的服务部部署在广域网的各个网络区域中心站点。当客户端通过DNS解析到某一台服务器上,该服务器上的大文件传输服务会根据客户端IP子网查找其所属的AD站点(一般为同一局域网)内的服务器。如果客户端所在站点中没有本系统的服务器,则选择—个“距离”最近的服务器,从而实现文件的就近上传和下载。考虑到用户之间文件分享行为的“局部性”,系统为每个用户创建了2个子文件夹:集团公司和分公司,分别位于2个DFS复制组中,并且配置不同的复制策略来进一步优化性能,示意图如图2所示。

大文件传输服务将文件在DFS中的UNC路径保存在sQL Server数据库中,巧妙地利用了DFS的诸多功能,免编程实现了文件在广域网中的存储、高效复制(远程差分压缩(RDC)的压缩复制,仅复制变化的文件块)和就近访问等高级功能。

3客户端至服务器的大文件传输

为了解决客户端到DFS服务器传输“最后一公里”的问题,开发了文件传输Web服务和大文件传输客户端,实现了客户端至服务器的传输加密、传输压缩、完整性校验、断点续传等功能。国内共开发了3种客户端:Outlook插件、Web网站和Windows客户端,实现相同的功能。无论哪种客户端,都是基于HTFPS协议实现的传输,包括断点续传。考虑到用户普遍习惯于通过邮件发送文件附件,还特意开发了Office Outlook邮件客户端的大文件插件,用户在Outlook中点击大文件插件图标,可以打开自己的文件空间,选择文件后将文件的下载链接插入邮件正文发送给接收者,接收者点击链接下载文件。

4下载链接加密

为了保护数据安全,用户在分享文件时,可以选择是否允许外部用户下载。系统生成文件分享链接时,并不是直接通过DFS服务器上的路径将文件发送给接收者,而是利用MD5算法生成—个该文件的加密串并附加在URL后面,并将映射关系保存在数据库中。当下载者点击链接时,系統会对MD5码进行校验,如果是一个仅对组织内用户分享的文件,则会要求下载者先登录。

5断点续传

HTTP/HTTPs协议是一种基于TCP的简单协议,也是一种无状态协议,对事务处理没有记忆能力。WEB服务器,例如本系统所使用的WindowsⅡs是通过Session对象来保持会话的。而会话保持时间不能太长,否则将导致WEB服务器的并行处理能力大大降低。在目前常见的广域网带宽和网速下,要通过HTTP传输大文件,通常需要几个小时甚至几十个小时,这已经超出了Ⅱs服务器可以承受的最长会话保持时间,因此,必须解决断点续传问题。

断点续传就是在上一次下载时断开的位置开始继续下载。本系统采用在HTTP请求/回复报文头中的Range属性来表示客户端希望从何处继续上传或者下载,从而实现断点续传。例如,如果要告诉服务器从第3096 Byte开始下载,请求报文如下:

5结束语

如今,WAF在中国如火如荼地发展,很多企业投入到对WAF的研究之中。WAF为网上银行系统安全保驾护航,不HttpWebRequest类所提供的操作HTTPRequest属性的方法,实现了断点续传。HttpWebRequest类提供了操作公共HTTP标头属性名值对的方法,还提供了AddRange方法来修改Range属性,从而可以向Web服务器发送大文件传输的开始或结束位置信息。

6结束语

本文介绍了基于微软DFS部署的大文件传输系统的技术原理以及工程实现中的创新性。目前该系统已经在组织总部及各片区中心部署了9台DFS服务器和大文件传输Web站点,实际使用过程中发现DFS后台文件复制同步高效、健壮、安全,客户端程序和Outlook插件用户使用反馈良好,能够方便地下载和分享文件,很好地满足了大型组织分享几十GB级别大型工程设计文件、视频文件的需求。

猜你喜欢

插件客户端服务器
用好插件浏览器标签页管理更轻松
2018年全球服务器市场将保持温和增长
虚拟专用网络访问保护机制研究
新闻客户端差异化发展策略
请个浏览器插件全能管家
基于jQUerY的自定义插件开发
浅析IEEE 802.1x及其客户端软件
用独立服务器的站长注意了
定位中高端 惠普8路服务器重装上阵
美国社交网站的周末大战