http://z00w00.blog.51cto.com/515114/1066141

一、序言

不知道大家是否考虑过服务器与终端机或者叫桌面机、工作站等的区别都有什么?也许你会说体积不同,也许你会说功能不同,甚至有些人会拉一个清单出来说说硬件上面的区别等。其实我最想说的是,两者最大的区别之一:服务器是给多个人用的,属于共享型设备,而终端机也好,桌面机也罢,大部分情况下都是给个人用的,属于独享型设备。从高层应用层来看,无论是WEB服务器、邮件服务器、代理服务器、数据库服务器、无论提供的是什么服务,这些服务都是共享资源型,从硬件的角度上看,都是属于共享型的设备。提出这个观点,忽悠你接受这个概念,是为了下面更好的说明。

二、文件服务

文件服务是服务器最古老的服务之一。现在的操作系统无论是WINDOWS 还是LINUX本身都提供了很强大的服务组件,用来将服务器部署成各种需求的应用服务、基础服务、存储。或集群服务等。在文件或文件夹共享中,LINUX系统使用了大名鼎鼎的SAMBA服务。而在WINDOWS SERVER中叫“文件服务”。不过很多人还是对文件服务有一点点小小的误区。所谓文件服务,其实说白了就是文件或文件夹共享或者用我的观点叫共享文件管理。很多人把文件服务同时理解为文件管理。实际上并不是文件管理。(基础的文件管理是基于文件系统来进行的)。如果文件或文件夹没有集中共享的需求,那么分散到各个客户端由创造者独自使用是理所当然的,但是如果有共享文件或文件夹,甚至不止一个共享文件后文件夹群集,分散的存放和管理就会带来很多问题。不仅仅是网络环境变的更复杂,管理起来也变的非常麻烦。如下图2.1

142910663.jpg
(图2.1
相反如果服务器作为文件或文件夹共享设备,那么也就意味着一种集中资源管理的模式出现了,将文件或文件夹做为共享资源集中在一起进行管理,无疑从成本还是可操作性都是非常可行的。所以我们可以将共享的文件集中放在一台服务器上,以方便大家存取,这就是文件服务出现的必要性。如下图2.2
142923389.jpg
(图2.2
当然有些人可能会提出质疑,因为在WINDOWS下,无论是WINDOWS XP还是WINDOWS 7、甚至是WINDOWS8我们都可以进行文件的共享。那么我们是否非要使用WINDOWS SERVER系统中的文件服务组件呢?如下图2.3
143014780.jpg
(图2.3 WIN7利用计算机管理查看到共享文件夹)
答案是仍然需要。因为首先WINDOWS系统的文件共享并发连接有限制,比如XP只允许10个并发。Windows 7的限制是20个,如下图,2.3-1
143031236.jpg
(2.3-1 WIN7系统共享用户数量限制20 无法增大,只能减少)
Windows系统的共享文件夹,目的是为了提供了2或更多用户之间共享文件的方便,而不是共享文件的集中存储与管理。但仍然有很多人拿WINDOWS系统做共享文件的集中管理。所以就会出现问题。所以很多人提出了如何突破的办法,通过修改注册表等,其实最简单的办法就是使用WINDOWS SERVER的文件服务。其次,使用文件服务后,除了计算机管理中的共享文件夹选项可以提供强大的管理功能,安装“文件服务”组件后还提供了强大的“文件服务管理器”如下图2.4
143048600.jpg
(2.4 WINDOWS 2003 “计算机管理文件服务器管理”)
再者,使用文件服务组件后,可以灵活的设置用户配额,可以方便的进行共享管理,而且可以备份文件服务器,甚至进行文件服务角色迁移,还可以使用分布式文件服务功能(这个下面会继续讲到这些都是WINDOWS系统中简单的文件夹共享不能比拟的。如下图2.5
143059625.jpg
(图2.5 WINDOWS 2008R2系统“计算机管理”与“文件服务”组件差异)
DFS(分布式文件系统)管理整合了进来。实际上也有变化,后文会介绍)所以windows server的文件服务组件不容小视。

三、文件服务与服务器消息块

先问大家几个问题:无论是windows还是windows server为什么都要提供”共享文件夹”服务?如果说windows server提供文件服务是把文件集中起来进行共享管理,那么windows提供文件夹共享是为了什么?如果功能与SERVER系统的功能一样,而为什么还要windows系统的文件夹共享做并发连接限制?以下两种情况说明了原因的所在。第一种:远程访问一些文件资源。这种情况就是你有一台A计算机,远程有一台B计算机,现在你要通过A计算机网络访问B计算机上的一些文件,很显然,共享文件夹远程访问就很方便了。文件共享到底使用了什么样的协议进行文件传输呢?它不使用文件传输协议FTP,也不是用远程登录协议TELNET,而是使用windows内置的SMB协议共享出我们需要访问的文件或文件夹。如下图3.1
143301444.jpg
(图3.1
第二种情况就更好解释了,有些应用程序需要在文件共享上存储数据如 Microsoft SQL Server)或虚拟化软件(如 Hyper-V)。还有AD中经典的SYSVOL就是一个共享文件夹。微软在早先的WINDOWS和windows server系统中内置SMB协议用于文件共享服务,在VISTA和WINDOWS2008时代微软引进了SMB2.0,增加了缓存容量、提高了打开文件句柄数、提高了网络复制不中断等问题。而到了windows server 2012时代,SMB3.0出现了,提供了更加丰富的功能。