1、CIFS

Microsoft推出SMB(server message block)后,进一步发展,使其扩展到Internet上,成为common internet file system。

CIFS采用C/S模式,基本网络协议:TCP/IP和IPX/SPX;

两种资源访问模式:

(1)       share level security:所有用户的共享资源访问口令是相同的,主要在win9x中使用;

(2)       user level securyt:Win NT以后的OS只提供ULS,用于必须提供正确的U/P,并且每个用户权限可以是不同的。

C/S的交互模式:类似与三次握手;三个交互:

(1)       协议选择:双方选择合适的协议进行交互;

(2)       身份验证:按选定的协议登录server,由server对client进行身份验证;

(3)       资源获取:认证通过后,server和client进行交互,进行文件读写等操作。

注意:相同win OS中,所有机器都是对等的,扮演双重角色,可以作server,也可以是client。

CIFS是一种协议,和具体的OS关系不大,Unix在安装samba后可以使用CIFS;

2、  CIFS和NFS对比

(1)    CIFS面向网络连接的共享协议,对网络传输的可靠性要求高,常使用TCP/IP;NFS是独立于传输的,可使用TCP或UDP;

(2)    NFS缺点之一,是要求client必须安装专用软件;而CIFS集成在OS内部,无需额外添加软件;

(3)    NFS属无状态协议,而CIFS属有状态协议;NFS受故障影响小,可以自恢复交互过程,CIFS不行;从传输效率上看,CIFS优于NFS,没有太多冗余信息传送;

(4)    两种协议都需要文件格式转换,NFS保留了unix的文件格式特性,如所有人、组等等;CIFS则完全安装win的风格来作。

NAS之文件系统之NFS

NFS:sun公司1984年推出,基于RPC构建,依靠Unix OS。

目的:通过网络连接来共享servers上的Files和Data。

基本原理:server借助NFS导出一个或多个可供远程客户端共享的目的,客户端mount server上的目录,实现对文件资源的共享。客户端借助RPC对服务器提出服务请求。

NFS是带Cache的,提高访问效率。

NFS的服务器提供三个关键守护进程:portmap,mounted,nfsd

(1)       portmap ―― 监听固定端口,提供RPC服务,将TCP/IP的协议端口映射为RPC程序号;

(2)       nfsd ―― 根据客户需求启动文件系统请求服务守护进程,处理用户需求;

(3)       mounted ―― 发送文件句柄给客户端的mount进程。

其它进程nfsiod:用于提供IO吞吐率。

NFS特点:

(1)    无状态协议;

(2)    支持故障自恢复功能;可实现容错、容灾功能;

3、  NFS和CIFS网络文件系统

NFS(Network File System,网络文件系统)是当前主流异构平台共享文件系统之一。主要应用在UNIX环境下。最早是由SUN microsystem开发,现在能够支持在不同类型的系统之间通过网络进行文件共享,广泛应用在FreeBSD、SCO、Solaris等等异构操作系统平台,允许一个系统在网络上与他人 共享目录和文件。通过使用NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件,使得每个计算机的节点能够像使用本地资源一样方便的使用网上资源。换言之,NFS可用于不同类型计算机、操作系统、网络架构和传输协议运行环境中的网络文件远程访问和共享。

NFS的工作原理是使用客户端/服务器架构,由一个客户端程序和服务器程序组成。服务器程序向其它计算机提供对文件系统的访问,其过程就叫做“输出”。NFS客户端程序对共享文件系统进行访问时,把它们从NFS服务器“输送”出来。文件通常以“块”为单位进行传输,其尺寸是8K(虽然它可能会将操作分成更小尺寸的分片)。NFS传输协议用于服务器和客户机之间的文件访问和共享的通信,从而使客户机远程的访问保存在存储设备上的数据。

CIFS(Common Internet File System,公共互联网文件系统)是当前主流异构平台共享文件系统之一。主要应用在NT/Windows环境下,是由Microsoft公司开发。其工作原理是让CIFS协议运行与TCP/IP通信协议之上,让Unix计算机可以在网络邻居上被Windows计算机看到。

共享文件系统特点:

1、  异构平台下的文件共享:不同平台下的多个客户端可以很容易的共享NAS中的同一个文件。

2、  充分利用现有的LAN网络结构,保护现有**。

3、  冗余安装,使用和管理都很方便,实现即插即用。

4、  广泛的连接性:由于基于IP/Ethernet以及标准的NFS和CIFS,可以适应复杂的网络环境。

5、  内部资源的整合:可以将内部的磁盘整合成一个统一的存储池,以卷的方式提供给不同的用户,每一个卷可以格式化成不同的文件系统。

6、  允许应用进程打开一个远地文件,并能够在该文件的某一个特定的位置上开始读写数据。NFS可使用户只复制一个大文件中的一个很小的片段,而不需要复制整个大文件,在网络上传送的只是少量的修改数据。

需要注意的是,CIFS和NFS虽然统一也是文件系统(File System),但它并不能用于在磁盘中存储和管理数据,它定义的是通过TCP/IP网络传输文件时的文件组织格式和数据传输方式。利用CIFS和NFS共享文件实际涉及到两次的文件系统转换。客户端从服务器端申请一个文件时,服务器端首先从本地读出文件(本地文件系统格式),并以NFS/CIFS的格式封装成IP报文并发送给客户端。客户端收到IP报文以后,把文件存储于本地磁盘中(本地文件系统格式)。

4、  存储系统与文件系统

提到NAS,通常会想到传统的NAS设备,它具有自己的文件系统,具有较大的存储容量,具有一定的文件管理和服务功能。NAS设备和客户端之间通过IP网络连接,基于NFS/CIFS协议在不同平台之间共享文件,数据的传输以文件为组织单位。虽然NAS设备常被认为是一种存储架构,但NAS设备最核心的东西实际上在存储之外,那就是文件管理服务。从功能上来看,传统NAS设备就是一个带有DAS存储的文件服务器。从数据的IO路径来看,它的数据IO发生在NAS设备内部,这种架构与DAS毫无分别。而事实上,很多NAS设备内部的文件服务模块与磁盘之间是通过SCSI总线连接的。至于通过NFS/CIFS共享文件,完全属于高层协议通信,根本就不在数据IO路径上,所以数据的传输不可能以块来组织。正是由于这种功能上的重叠,在SAN出现以后,NAS头设备(或NAS网关)逐渐发展起来,NAS over SAN的方案越来越多,NAS回归了其文件服务的本质。

由此可知,NAS与一般的应用主机在网络层次上的位置是相同的,为了在磁盘中存储数据,就必须要建立文件系统。有的NAS设备采用专有文件系统,而有的NAS设备则直接借用其操作系统支持的文件系统。由于不同的OS平台之间文件系统不兼容,所以NAS设备和客户端之间就采用通用的NFS/CIFS来共享文件。至于SAN,它提供给应用主机的就是一块未建立文件系统的“虚拟磁盘”。在上面建立什么样的文件系统,完全由主机操作系统确定。

CIFS与NFS(转)的更多相关文章

  1. 搭建服务器之文件共享cifs,nfs,samba

    cifs: 微软系统中用于网上邻居共享的一个机制,在linux下也可以通过命令mount -t cifs .....来挂载共享的文件目录等. nfs: linux之间的共享文件方式,基于rpc ser ...

  2. 测试nfs和cifs

    losetup /dev/loop1 file1.img losetup /dev/loop2 file2.img losetup /dev/loop3 file3.img mkfs -t ext4 ...

  3. NFS vs. CIFS

    1.  CIFS协议分析 CIFS(Common Internet File System,公共互联网文件系统)是当前主流异构平台共享文件系统之一.主要应用在NT/Windows环境下,是由Micro ...

  4. NFS CIFS SAMBA 的联系和区别

    Common Internet File System, CIFS Server Message Block, SMB Network File System, NFS 在早期网络世界当中,档案数据在 ...

  5. 自己家里搭建NAS服务器有什么好方案?

    转自:https://www.zhihu.com/question/21359049 作者:陈二发链接:https://www.zhihu.com/question/21359049/answer/6 ...

  6. 1o_Samba

    ∮Linux下Samba的安装配置 §Linux 下文件共享软件 Samba 是一款实现跨主机,跨平台文件共享的软件.同类型的软件还有 ftp,nfs 不再赘述. §文件共享协议 Windows : ...

  7. 存储OS

    openfiler这个登陆慢 是https协议的问题 http://www.getnas.com/open-source-nas FreeNAS®,目前最受欢迎的开源免费 NAS 操作系统之一,基于以 ...

  8. 虚拟机里面安装Openfiler 2.99

    简介 Openfiler 由rPath Linux驱动,它是一个基于浏览器的免费网络存储管理实用程序,可以在单一框架中提供基于文件的网络连接存储 (NAS) 和基于块的存储区域网 (SAN).Open ...

  9. [IT新应用]存储入门-文件级存储及块级别存储的选择

    http://www.techrepublic.com/blog/the-enterprise-cloud/block-level-storage-vs-file-level-storage-a-co ...

随机推荐

  1. 【转】linux中的sed命令

    转自:http://www.cnblogs.com/shineshqw/articles/1978122.html 功能说明: 利用script来处理文本文件. 语 法:sed [-hnV][-e&l ...

  2. Update操作浅析,一定是先Delete再Insert吗?

    Update操作一定是先Delete再Insert吗? Update在数据库中的执行是怎么样的?“Update操作是先把数据删除,然后再插入数据”.在网上看了很多也都是这么认为的.但在查阅到一些不同看 ...

  3. c# label的内容显示不全

    c# label的内容显示不全.须要设置例如以下属性就可以: 1.将Lable的font属性的字体改成宋体: 2.将AutoSize属性改成true: 然后内容就能够显示所有了.

  4. PHP高效获取远程图片尺寸和大小(转)

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  5. 5.6 太多分区引起OOM

    一个月之前,Scott和同事们发现公司有一个MySQL MHA集群的master(假设master机器名为hostA)每隔一周左右就会挂一次(指MySQL挂掉),在几周内,MHA来回切了好几次. 按照 ...

  6. iOS开发技巧系列---使用链式编程和Block来实现UIAlertView

    UIAlertView是iOS开发过程中最常用的控件之一,是提醒用户做出选择最主要的工具.在iOS8及后来的系统中,苹果更推荐使用UIAlertController来代替UIAlertView.所以本 ...

  7. Js解析json

    var sysModule=[];            var treeJson = <%=(sysModule) %>;            if (treeJson.length ...

  8. Centos 6.4 python 2.6 升级到 3.5.2

    查看python的版本 #python -V Python 1.下载Python-2.5.2 #wget https://www.python.org/ftp/python/3.5.2/Python- ...

  9. OVS操作总结

    转载:http://www.aboutyun.com/thread-11777-1-1.html Open vSwitch(下面简称为 OVS)是由 Nicira Networks 主导的,运行在虚拟 ...

  10. linux解压命令笔记

    转载:http://www.cnblogs.com/eoiioe/archive/2008/09/20/1294681.html .tar 解包:tar xvf FileName.tar打包:tar ...