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 下部署 java quartz job

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  2. AdventureWorks Databases 2008 下载地址

    AdventureWorks Databases 2008 下载地址: RECOMMENDED DOWNLOAD  AdventureWorks2012_Database.zip example, 3 ...

  3. Windows Phone-框架结构和启动过程

    上一篇文章介绍了Windows Phone的开发环境和一个简单的Windows Phone程序的演示和结构,这一篇文章要深入一点,介绍Windows Phone的框架结构和程序启动的过程. 一 Win ...

  4. 滑雪_poj_1088(记忆化搜索).java

    滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 67987   Accepted: 25013 Description ...

  5. wcf-2

    1.前言 上一篇,我 们通过VS自带的模板引擎自动生成了一个wcf程序,接下来我们将手动实现一个wcf程序.由于应用程序开发中一般都会涉及到大量的增删改查业务,所以这 个程序将简单演示如何在wcf中构 ...

  6. 编写函数,以读模式打开一个文件,将其内容读入到一个string的vector中,将每一行作为一个对立的元素存于vector中

    #include<iostream> #include<string> #include<vector> #include<fstream> using ...

  7. requestCode 和 resultCode .

    OK,代码如上,可能这个时候还会有点疑问,关于参数的疑问.直接看android sdk 帮助说得更清楚.我发现网上有些文章还有吧 requestCode 和 resultCode 混淆说明错的. st ...

  8. Android NDK STL

    相信Android开发者都喜欢用C++编写一些高效的应用,有关Android NDK的C++开发相关知识总结如下:       从Android NDK r5开始支持了STL Port,在这个版本开始 ...

  9. JS获取活动区域高和宽

    var width;            var height;            //获取窗口宽度            if (window.innerWidth)              ...

  10. Android 自学之拖动条SeekBar

    拖动条(SeekBar)和进度条非常相似,只是进度条采用颜色填充来表明进度完成的程度,而拖动条则通过滑块的位置来标识数值----而且拖动条允许用户拖动滑动块来改变值,因此拖动条通常用于对系统的某种数值 ...