`
和你在一起
  • 浏览: 681621 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

说说IO(八)- 三分天下

阅读更多

DASSANNAS

 

 

 

为了满足人们不断扩大的需求,存储方案也是在发展的。而DASSANNAS直接反映这种反映了这种趋势。

 

 

  • 单台主机。在这种情况下,存储作为主机的一个或多个磁盘存在,这样局限性也是很明显的。由于受限于主机空间,一个主机只能装一块到几块硬盘,而硬盘空间时受限的,当磁盘满了以后,你不得不为主机更换更大空间的硬盘。
  • 独立存储空间。为了解决空间的问题,于是考虑把磁盘独立出来,于是有了DASDirect Attached Storage),即:直连存储。DAS就是一组磁盘的集合体,数据读取和写入等也都是由主机来控制。但是,随之而来,DAS又面临了一个他无法解决的问题——存储空间的共享。接某个主机的JBODJust a Bunch Of Disks,磁盘组),只能这个主机使用,其他主机无法用。因此,如果DAS解决空间了,那么他无法解决的就是如果让空间能够在多个机器共享。因为DAS可以理解为与磁盘交互,DAS处理问题的层面相对更低。使用协议都是跟磁盘交互的协议
  • 独立的存储网络。为了解决共享的问题,借鉴以太网的思想,于是有了SANStorage Area Network),即:存储网络。对于SAN网络,你能看到两个非常特点,一个就是光纤网络,另一个是光纤交换机。SAN网络由于不会之间跟磁盘交互,他考虑的更多是数据存取的问题,因此使用的协议相对DAS层面更高一些。
    • 光纤网络:对于存储来说,与以太网很大的一个不同就是他对带宽的要求非常高,因此SAN网络下,光纤成为了其连接的基础。而其上的光纤协议相比以太网协议而言,也被设计的更为简洁,性能也更高。
    • 光纤交换机:这个类似以太网,如果想要做到真正的“网络”,交换机是基础。
  • 网络文件系统。存储空间可以共享,那文件也是可以共享的。NASNetwork attached storage)相对上面两个,看待问题的层面更高,NAS是在文件系统级别看待问题。因此他面的不再是存储空间,而是单个的文件。因此,当NASSANDAS放在一起时,很容易引起混淆。NAS从文件的层面考虑共享,因此NAS相关协议都是文件控制协议。
    • NAS解决的是文件共享的问题;SANDAS)解决的是存储空间的问题。
    • NAS要处理的对象是文件;SANDAS)要处理的是磁盘。
    • NAS服务的主机必须是一个完整的主机(有OS、有文件系统,而存储则不一定有,因为可以他后面又接了一个SAN网络),他考虑的是如何在各个主机直接高效的共享文件;为SAN提供服务的是存储设备(可以是个完整的主机,也可以是部分),它考虑的是数据怎么分布到不同磁盘。
    • NAS使用的协议是控制文件的(即:对文件的读写等);SAN使用的协议是控制存储空间的(即:把多长的一串二进制写到某个地址)

 

 

如图,对NASSANDAS的组成协议进行了划分,从这里也能很清晰的看出他们之间的差别。

NAS:涉及SMB协议、NFS协议,都是网络文件系统的协议。

SAN:有FCiSCSIAOE,都是网络数据传输协议。

DAS:有PATASATASAS等,主要是磁盘数据传输协议。

 

    从DASSAN,在到NAS,在不同层面对存储方案进行的补充,也可以看到一种从低级到高级的发展趋势。而现在我们常看到一些分布式文件系统(如hadoop等)、数据库的sharding等,从存储的角度来说,则是在OS层面(应用)对数据进行存储。从这也能看到一种技术发展的趋势。

 

跑在以太网上的SAN

SAN网络并不是只能使用光纤和光纤协议,当初之所以使用FC,传输效率是一个很大的问题,但是以太网发展到今天被不断的完善、加强,带宽的问题也被不断的解决。因此,以太网上的SAN或许会成为一个趋势。

 

  • FCIP

如图两个FCSAN网络,通过FCIP实现了两个SAN网络数据在IP网络上的传输。这个时候SAN网络还是以FC协议为基础,还是使用光纤。

 

 

 

 

  • iFCP

 

通过iFCP方式,SAN网络由FCSAN网络演变为IP SAN网络,整个SAN网络都基于了IP方式。但是主机和存储直接使用的还是FC协议。只是在接入SAN网络的时候通过iFCP进行了转换

 

 

 

 

  • iSCSI

 

iSCSI是比较主流的IP SAN的提供方式,而且其效率也得到了认可。

 

 

       对于iSCSI,最重要的一点就是SCSI协议。SCSISmall Computer Systems Interface)协议是计算机内部的一个通用协议。是一组标准集,它定义了与大量设备(主要是与存储相关的设备)通信所需的接口和协议。如图,SCSIblock device drivers之下。

 

 

SCIS的分层来看,共分三层:

高层:提供了与OS各种设备之间的接口,实现把OS如:LinuxVFS请求转换为SCSI请求

中间层:实现高层和底层之间的转换,类似一个协议网关。

底层:完成于具体物理设备之间的交互,实现真正的数据处理。

 

 

0
0
分享到:
评论
1 楼 qianhd 2011-12-21  
还没写完??
好做PDF了

相关推荐

    [confluence插件] drawio-confluence-plugin-11.2.5.ocr

    drawio-confluence-plugin-11.2.5 drawio-confluence-plugin-11.2.5 drawio-confluence-plugin-11.2.5 drawio-confluence-plugin-11.2.5 drawio-confluence-plugin-11.2.5 drawio-confluence-plugin-11.2.5 drawio-...

    开发工具 commons-io-1.3.2

    开发工具 commons-io-1.3.2开发工具 commons-io-1.3.2开发工具 commons-io-1.3.2开发工具 commons-io-1.3.2开发工具 commons-io-1.3.2开发工具 commons-io-1.3.2开发工具 commons-io-1.3.2开发工具 commons-io-1.3.2...

    commons-io-2.8.0-API文档-中英对照版.zip

    赠送jar包:commons-io-2.8.0.jar; 赠送原API文档:commons-io-2.8.0-javadoc.jar; 赠送源代码:commons-io-2.8.0-sources.jar; 赠送Maven依赖信息文件:commons-io-2.8.0.pom; 包含翻译后的API文档:commons-io...

    commons-io-2.7-API文档-中文版.zip

    赠送jar包:commons-io-2.7.jar; 赠送原API文档:commons-io-2.7-javadoc.jar; 赠送源代码:commons-io-2.7-sources.jar; 赠送Maven依赖信息文件:commons-io-2.7.pom; 包含翻译后的API文档:commons-io-2.7-...

    commons-io-2.11.0-API文档-中文版.zip

    赠送jar包:commons-io-2.11.0.jar; 赠送原API文档:commons-io-2.11.0-javadoc.jar; 赠送源代码:commons-io-2.11.0-sources.jar; 赠送Maven依赖信息文件:commons-io-2.11.0.pom; 包含翻译后的API文档:...

    commons-io-1.3.2-API文档-中文版.zip

    赠送jar包:commons-io-1.3.2.jar; 赠送原API文档:commons-io-1.3.2-javadoc.jar; 赠送源代码:commons-io-1.3.2-sources.jar; 赠送Maven依赖信息文件:commons-io-1.3.2.pom; 包含翻译后的API文档:commons-io...

    3-IO输出-点亮多个LED灯方法1(51单片机C语言实例Proteus仿真和代码)

    3-IO输出-点亮多个LED灯方法1(51单片机C语言实例Proteus仿真和代码)3-IO输出-点亮多个LED灯方法1(51单片机C语言实例Proteus仿真和代码)3-IO输出-点亮多个LED灯方法1(51单片机C语言实例Proteus仿真和代码)3-IO输出-...

    commons-io-2.5-API文档-中文版.zip

    赠送jar包:commons-io-2.5.jar; 赠送原API文档:commons-io-2.5-javadoc.jar; 赠送源代码:commons-io-2.5-sources.jar; 赠送Maven依赖信息文件:commons-io-2.5.pom; 包含翻译后的API文档:commons-io-2.5-...

    Java IO commons-io-2.5.jar

    `commons-io-2.5.jar` 是Apache Commons项目的一部分,它提供了一系列增强和扩展了Java标准IO库的类和方法。这个库为开发者提供了更高效、更便捷的方式来执行常见的文件、目录和流操作。 一、Java IO 基础 Java IO ...

    platformio.platformio-ide-2.4.3

    platformio.platformio-ide-2.4.3

    io0007-find_progess

    在IT行业中,输入/输出(IO)操作是程序与外部数据交互的基础,无论是读取配置文件、处理用户输入,还是保存程序结果。本项目“io0007-find_progress”显然是一个聚焦于IO实用工具和常见功能模块的代码集合,旨在...

    4-IO输出-点亮多个LED灯方法2(51单片机C语言实例Proteus仿真和代码)

    4-IO输出-点亮多个LED灯方法2(51单片机C语言实例Proteus仿真和代码)4-IO输出-点亮多个LED灯方法2(51单片机C语言实例Proteus仿真和代码)4-IO输出-点亮多个LED灯方法2(51单片机C语言实例Proteus仿真和代码)4-IO输出-...

    commons-io-2.2-API文档-中文版.zip

    赠送jar包:commons-io-2.2.jar; 赠送原API文档:commons-io-2.2-javadoc.jar; 赠送源代码:commons-io-2.2-sources.jar; 包含翻译后的API文档:commons-io-2.2-javadoc-API文档-中文(简体)版.zip 对应Maven...

    2-IO输出-点亮1个LED灯方法2(51单片机C语言实例Proteus仿真和代码)

    2-IO输出-点亮1个LED灯方法2(51单片机C语言实例Proteus仿真和代码)2-IO输出-点亮1个LED灯方法2(51单片机C语言实例Proteus仿真和代码)2-IO输出-点亮1个LED灯方法2(51单片机C语言实例Proteus仿真和代码)2-IO输出-点亮1...

    commons-io-2.7-API文档-中英对照版.zip

    赠送jar包:commons-io-2.7.jar 赠送原API文档:commons-io-2.7-javadoc.jar 赠送源代码:commons-io-2.7-sources.jar 包含翻译后的API文档:commons-io-2.7-javadoc-API文档-中文(简体)-英语-对照版.zip 对应...

    pojie-drawio-confluence-plugin-9.5.8.obr

    pojie-drawio-confluence-plugin-9.5.8.obr pojie-drawio-confluence-plugin-9.5.8.obr pojie-drawio-confluence-plugin-9.5.8.obr pojie-drawio-confluence-plugin-9.5.8.obr pojie-drawio-confluence-plugin-9.5.8...

    基恩士下IO-Link配置方式.zip_IO-link_io link_基恩士 iolink_基恩士IO—LINK_基恩士远程I

    IO-Link是一种开放式、标准化的通信协议,专为工业自动化中的传感器和执行器设计。它在设备层上提供了一个简单的点对点连接,允许设备与控制器之间进行双向通信,从而实现参数设置、诊断和状态监控等功能。基恩士,...

    platformio-core-installer-develop.zip

    在给定的“platformio-core-installer-develop.zip”压缩包中,包含了PlatformIO核心安装器的开发者版本。这个安装器是为了在Visual Studio Code (VSCODE) 中集成PlatformIO开发环境而设计的。以下是对这个压缩包...

    1-IO输出-点亮1个LED灯方法1(51单片机C语言实例Proteus仿真和代码)

    1-IO输出-点亮1个LED灯方法1(51单片机C语言实例Proteus仿真和代码)1-IO输出-点亮1个LED灯方法1(51单片机C语言实例Proteus仿真和代码)1-IO输出-点亮1个LED灯方法1(51单片机C语言实例Proteus仿真和代码)1-IO输出-点亮1...

    draw.io-21.6.8-windows-installer.exe

    draw.io-21.6.8-windows-installer.exe

Global site tag (gtag.js) - Google Analytics