存储系统是计算机的重要组成部分之一。存储系统提供写入和读出计算机工作需要的信息(程序和数据)的能力,实现计算机的信息记忆功能。现代计算机系统中常采用寄存器、高速缓存、主存[内存]、外存[可以理解为磁盘,磁带等]的多级存储体系结构
计算机存储系统的核心是存储器,存储器是计算机中必不可少、用来存储程序和数据的记忆设备。 [4]
内部存储器(简称内存)主要存储计算机当前工作需要的程序和数据,包括高速缓冲存储器(Cache,简称缓存)和主存储器。目前构成内存的主要是半导体存储器。
外部存储器(简称外存)主要有磁性存储器、光存储器和半导体存储器三种实现方式,存储介质有硬磁盘、光盘、磁带和移动存储器等。
目前传统存储系统主要的3种架构。存储(Storage)与主机(Host)连接模式有三种:SAN(Storage Area Network)存储区域网络,DAS(Direct-Attached Storage)直连式存储,NAS(Network Attached Storage)网络附属存储。此三种模式分别针对不同的应用场景
1.DAS(Direct-AttachedStorage,直连式存储) 就是本地硬盘直接插上
顾名思义,这是一种通过总线适配器直接将硬盘等存储介质连接到主机上的存储方式,在存储设备和主机之间通常没有任何网络设备的参与。可以说DAS是最原始、最基本的存储架构方式,在个人电脑、服务器上也最为常见。DAS的优势在于架构简单、成本低廉、读写效率高等;缺点是容量有限、难于共享,从而容易形成“信息孤岛”。
从与主机连接的通道类别来看,DAS采用SCSI通道直接连接主机,但随着服务器CPU的处理能力的增强,存储硬盘空间的不断加大,这个沿用了四十多年的SCSI通道,已成为IO瓶颈,其最高不超过80MB/S的带宽已无法满足生产环境日益增长的需求。但DAS然适用于以下环境:(1)服务器在地理分布上很分散,通过SAN或NAS在它们之间进行互连非常困难时(商店或银行的分支便是一个典型的例子)
(2) 存储必须被直接连接应用服务器(Microsoft Cluster Server或某些数据库使用的“原始分区”)上时
(3)包括许多数据库应用和应用服务器在内的应用,它们需要直接连接到存储器上,群件应用和一些邮件服务也包括在内。
2.NAS(Network-AttachedStorage,网络存储系统) 就是通过网络把本地磁盘共享出来【当然是格式化好的文件系统、分区】
NAS通过光纤通道(Fibre Channel)连接至FC交换机,同时通过Ethernet交换机连接至服务器【图1和图2】。客户机通过服务器可对NAS进行访问。它适用于那些需要通过网络将文件数据传送到多台客户机上的用户。NAS设备在数据必须长距离传送的环境中可以很好地发挥作用。NAS设备非常易于部署。可以使NAS主机、客户机和其他设备广泛分布在整个企业的网络环境中。NAS可以提供可靠的文件级数据整合,因为文件锁定是由设备自身来处理的。NAS应用于高效的文件共享任务中,例如UNIX中的NFS和Windows NT中的CIFS以及SMB,其中基于网络的文件级锁定提供了高级并发访问保护的功能。总体来说,NAS有以下特点:易于安装及维护;较高数据带宽和较快的响应速度;极大降低了服务器的成本,有利于高性能存储系统在更广的范围内普及和应用;支持多平台操作系统。
3.SAN(Storage Area Network,存储区域网络)
SAN采用光纤管道(Fibre Channel,简称FC)通过FC交换机连接存储阵列和服务器主机,建立专用于数据存储的区域网络。SAN实际是一种专门为存储建立的独立于TCP/IP网络之外的专用网络。目前一般的SAN提供2Gb/S到4Gb/S的传输数率,同时SAN网络独立于数据网络存在,因此存取速度很快,另外SAN一般采用高端的RAID阵列,使SAN的性能在几种专业存储方案中傲视群雄。SAN极易满足企业对爆炸性增长的存储容量的需求,EMC公司的CX4可以支持960块磁盘,提供了海量的存储空间。基于更多的磁盘和更强的控制器,SAN对RAID有更好的支持。统一的容灾/备份/远程复制极大保障了数据安全性。与此同时,SAN对于虚拟化也有较好的支持(Vmware Vmotion)
SAN【块级】与NAS【文件级】的区别,在于其提供块(Block)级别的访问接口,一般并不同时提供一个文件系统。比如带宽大小,距离长短,共享优劣等等。几乎所有区别都是由两个因素衍生出来的。一个是FC与Ethernet,另一个是block与file system。简而言之,如果用户需要通过FC访问block,就用SAN;如果需要通过Ethernet访问file system,就用NAS。很多高端NAS的后端存储就是SAN,NAS通过Fibre Channel从后端SAN获得存储空间,创建文件系统后,再通过以太网共享给服务器。SAN提供的存储单位是LUN,属于block级别的。经过NAS创建成文件系统后,就变成文件级别的了。通常情况下,服务器需要通过SCSI等访问协议将SAN存储映射为本地磁盘、在其上创建文件系统后进行使用。目前主流的企业级NAS或SAN存储产品一般都可以提供TB级的存储容量,高端的存储产品也可以提供高达几个PB的存储容量。下图补充说明了SAN与NAS的区别及联系:
图1
图2
总结1:
NAS 文件级
客户端--网络交换机--存储服务器
1、客户端通过TCP/IP网络协议连接存储服务器那边的存储卷,且存储卷已经在存储服务器那边进行过格式化,格式化是按安全模式来选择的,给linux使用是unix模式,给windows用是ntfs模式
2、客户端可以通过网线(千兆网卡、千兆交换机)或光纤(万兆光纤卡、万兆交换机)连接到网络交换机,网络交换机再通过网线(千兆网卡、千兆交换机)或光纤(万兆光纤卡、万兆交换机)连接到存储服务器,客户端是linux则通过NFS(NETWORK FILE SYSTEM)方式挂载存储卷,客户端是windows则通过CIFS(Common Internet FILE SYSTEM)方式挂载存储卷
3、因为文件系统在存储服务器端,所以存储服务器可以很方便的实时看到每个存储卷的使用率
4、传输速度受限于网络流量和存储服务器的文件系统处理速度
5、文件系统在存储端,划出来的卷都是格式化过的,所以不能当成裸设备来用
SAN 块级
客户端--光纤交换机--存储服务器
1、客户端通过san的FC协议连接存储服务器,就算客户端和存储服务器的IP不在一个网段内,也不影响网络流量,因为FC协议与TCP/IP协议是完全异构的,走不同的传输介质,前者是光纤交换机,后者是网络交换机,这样客户端到存储服务器端就类似一个独立于TCP/IP网络的私有网络
2、客户端一定是通过光纤连接到交换机的
3、因为文件系统是在客户端的,所以存储服务器端看到的存储卷的使用率是不准确的,记录的值是存储卷曾经到达的峰值
4、传输速度受限于光纤接口速度,如果有多个客户端连接同一个存储服务器,则存储服务器的光纤接口可能成为瓶颈
5、可以当成裸设备来用。直接提供的是裸设备,在客户端进行格式化后使用或通过NAS这个进行格式化后的文件系统在通过网络共享出去。
ISCSI
客户端--网络交换机--存储服务器
1)客户端通过TCP/IP网络协议连接存储服务器那边的存储卷,和NAS相似
2)客户端可以通过网线(千兆网卡、千兆交换机)也可以通过光纤(千兆网卡、万兆交换机)连接到网络交换机
3)文件系统是在客户端的,和SAN相似
4)传输速度受限于网络和客户端的解TCP/IP为SCSI的开销和存储服务器的解TCP/IP为SCSI的开销
5)可以当成裸设备来用
ISCSI网络存储的兴起原因:使用专门的光纤介质组建的SAN模式的存储区域网成本很高,而利用普通的数据网来传输ISCSI数据实现和SAN相似的功能可以大大的降低成本,同时提高系统的灵活性。
ISCSI工作流程:
iSCSI系统由SCSI适配器发送一个SCSI命令。
命令封装到TCP/IP包中并送入到以太网络。
接收方从TCP/IP包中抽取SCSI命令并执行相关操作。
把返回的SCSI命令和数据封装到TCP/IP包中,将它们发回到发送方。
系统提取出数据或命令,并把它们传回SCSI子系统。
DAS
一种直接与主机系统相连接的存储设备,如作为服务器的计算机内部硬件驱动。
总结2:
目前服务器所使用的专业存储方案有DAS、NAS、SAN、iSCSI几种。存储根据服务器类型可以分为:封闭系统的存储和开放系统的存储:
1)封闭系统主要指大型机.
2)开放系统指基于包括Windows、UNIX、Linux等操作系统的服务器; 开放系统的存储分为:内置存储和外挂存储;
3)开放系统的外挂存储根据连接的方式分为: 直连式存储(DAS:Direct-Attached Storage)和网络化存储(Fabric-Attached Storage:FAS)
4)开放系统的网络化存储根据传输协议又分为:NAS:Network-Attached Storage和SAN:Storage Area Network。由于目前绝大部分用户采用的是开放系统,其外挂存储占有目前磁盘存储市场的70%以上
SAN:提供的是裸设备
NAS:提供的是文件系统
DAS:文件系统或裸设备。自己决定怎么使用。
DAS网络存储知识:直接附加存储是指将存储设备通过SCSI接口直接连接到一台服务器上使用。DAS购置成本低,配置简单,使用过程和使用本机硬盘并无太大差别,对于服务器的要求仅仅是一个外接的SCSI口,因此对于小型企业很有吸引力。
DAS的不足之处:
1)服务器本身容易成为系统瓶颈;直连式存储与服务器主机之间的连接通道通常采用SCSI连接,带宽为10MB/s、20MB/s、40MB/s、80MB/s等,随着服务器CPU的处理能力越来越强,存储硬盘空间越来越大,阵列的硬盘数量越来越多,SCSI通道将会成为IO瓶颈;服务器主机SCSI ID资源有限,能够建立的SCSI通道连接有限。
2)服务器发生故障,数据不可访问;
3)对于存在多个服务器的系统来说,设备分散,不便管理。同时多台服务器使用DAS时,存储空间不能在服务器之间动态分配,可能造成相当的资源浪费;
4)数据备份操作复杂。
SCSI 总线和协议
NAS网络存储知识:NAS实际是一种带有瘦服务器的存储设备。这个瘦服务器实际是一台网络文件服务器。NAS设备直接连接到TCP/IP网络上,网络服务器通过TCP/IP网络存取管理数据。NAS作为一种瘦服务器系统,易于安装和部署,管理使用也很方便。同时由于可以允许客户机不通过服务器直接在NAS中存取数据,因此对服务器来说可以减少系统开销。
NAS为异构平台使用统一存储系统提供了解决方案。由于NAS只需要在一个基本的磁盘阵列柜外增加一套瘦服务器系统,对硬件要求很低,软件成本也不高,甚至可以使用免费的LINUX解决方案,成本只比直接附加存储略高。
NAS存在的主要问题是:
1)由于存储数据通过普通数据网络传输,因此易受网络上其它流量的影响。当网络上有其它大数据流量时会严重影响系统性能;
2)由于存储数据通过普通数据网络传输,因此容易产生数据泄漏等安全问题;
3)存储只能以文件方式访问,而不能像普通文件系统一样直接访问物理数据块,因此会在某些情况下严重影响系统效率,比如大型数据库就不能使用NAS。
文件系统 和 网络附接存储(NAS: Network Attached Storage)
SAN网络存储知识:SAN实际是一种专门为存储建立的独立于TCP/IP网络之外的专用网络。目前一般的SAN提供2Gb/S到4Gb/S的传输数率,同时SAN网络独立于数据网络存在,因此存取速度很快,另外SAN一般采用高端的RAID阵列,使SAN的性能在几种专业存储方案中傲视群雄。
SAN由于其基础是一个专用网络,因此扩展性很强,不管是在一个SAN系统中增加一定的存储空间还是增加几台使用存储空间的服务器都非常方便。通过SAN接口的磁带机,SAN系统可以方便高效的实现数据的集中备份。
SAN作为一种新兴的存储方式,是未来存储技术的发展方向,但是,它也存在一些缺点:
1)价格昂贵。不论是SAN阵列柜还是SAN必须的光纤通道交换机价格都是十分昂贵的,就连服务器上使用的光通道卡的价格也是不容易被小型商业企业所接受的;
2)需要单独建立光纤网络,异地扩展比较困难;
ISCSI网络存储知识:使用专门的存储区域网成本很高,而利用普通的数据网来传输ISCSI数据实现和SAN相似的功能可以大大的降低成本,同时提高系统的灵活性。
SCSI就是这样一种技术,它利用普通的TCP/IP网来传输本来用SAN【存储区域网】来传输的SCSI数据块。ISCSI的成本相对SAN来说要低不少。随着千兆网的普及,万兆网也逐渐的进入主流,使ISCSI的速度相对SAN来说并没有太大的劣势。
意思就是:
正统的昂贵的是:【这种方式就是SAN】FC光纤通道-->FC交换机--->FC存储|SATA存储 来传输SCSI数据块
代替方案便宜是:【这种方式是代替SAN】普通的TCP/IP网络----->普通的交换机----->普通的存储 来传输SCSI数据块
ISCSI目前存在的主要问题是:
1)新兴的技术,提供完整解决方案的厂商较少,对管理者技术要求高;
2)通过普通网卡存取iSCSI数据时,解码成SCSI需要CPU进行运算,增加了系统性能开销,如果采用专门的iSCSI网卡虽然可以减少系统性能开销,但会大大增加成本;
3)使用数据网络进行存取,存取速度冗余受网络运行状况的影响。
I/O是整个网络系统效率低下的瓶颈,最有效的解决办法就是将数据从通用的应用服务器中分离出来以简化存储管理。
从图中可看出:将存储器从应用服务器中分离出来,进行集中管理。这就是所说的存储网络(Storage Networks)。
使用存储网络的好处:
(1)统一性:形散神不散,在逻辑上是完全一体的。
(2)实现数据集中管理,因为它们才是企业真正的命脉。
(3)容易扩充,即收缩性很强。
(4)具有容错功能,整个网络无单点故障。
针对这一办法又有两种不同的实现方法,即NAS和SAN存储区域网络。
NAS:用户通过TCP/IP协议访问数据,采用业界标准文件共享协议如:NFS、HTTP、CIFS实现共享。
SAN:通过专用光纤通道交换机访问数据,采用SCSI、FC-AL接口。
NAS和SAN的根本不同点:
SAN结构中,文件管理系统(FS)还是分别在每一个应用服务器上;
NAS则是每个应用服务器通过网络共享协议(如:NFS、CIFS)使用同一个文件管理系统。
即:NAS和SAN存储系统的区别是NAS有自己的文件系统管理。
NAS是将目光集中在应用、用户和文件以及它们共享的数据上。
SAN是将目光集中在磁盘、磁带以及联接它们的可靠的基础结构。
1.实际上SAN、NAS、DAS、FC、ISCSI、SCSI、FC-SAN、IP-SAN等并不是同一类别的概念。
1.1)SCSI、FC、ISCSI,NAS等概念指的是存储设备类型
1.2)DAS、NAS、SAN等指的是存储系统的网络架构。
大家常提到的、主流的存储系统网络架构有DAS、NAS、SAN三种网络结构。其中SAN网络环境中,因采用存储设备类型的不同又可以分为FC-SAN(采用光纤通道存储产品)和IP-SAN(采用ISCSI存储设备),其中FC-SAN为通过光纤通道协议转发SCSI协议,IP-SAN通过TCP协议转发SCSI协议。
2 . 存储设备类型介绍
存储设备类型是指通过采用SCSI、FC【有FC交换机,FC存储,FC通道】、TCP/IP,ISCSI等接口类型、数据传输协议、以及不同数据存储介质的存储设备。常见的存储设备类型可为SCSI存储、NAS存储、FC存储、iSCSI存储和磁带存储。
存储设备类型这个概念的核心是设备,指的是由存储介质、驱动器、控制器、供电系统、冷却系统等组成的一个整体。它独立于网络层设备和主机层设备,因此当提到存储设备类型的时候,不要涉及与存储设备连接的网络设备和主机。
如果存储设备的对外提供的接口是FC光纤通道,按照FC光纤通道协议传输数据的存储设备就是FC存储。存储介质为FC磁盘的存储被称为FC-FC存储。存储介质为SATA磁盘的存储被称为FC-SATA存储。意思就是通过FC光纤通道传输,都叫FC存储,FC存储又细分了一下。根据后面存哪里来细分。如果存FC磁盘那就是FC-FC存储,如果存在SATA,那就是FC-SATA存储。
NAS是一种特殊的存储设备类型,虽然NAS对外提供IP接口,按照IP协议进行数据传输,但NAS最终提供给主机的是一个文件系统,而SCSI存储、FC存储和ISCSI等提供给主机的是一个裸的、没有文件系统的逻辑卷,且NAS本身是一个服务器+存储的结构,因此严格上讲,NAS应该能算是一种存储系统结构,而不是一个存储类型。不过很多时候我们都把NAS的服务器+存储结构看成一个整体,这个整体又通过标准的IP传输协议来进行访问和数据传输。因此NAS一般都被认为是一个存储设备类型,NAS既是一个存储设备类型【SCSI、FC、ISCSI,NAS】,又是一个存储系统网络结构【有三种网络存储结构】。
存储设备类型指的是存储设备这一个单体的分类,存储系统的网络结构自然是指存储设备、主机、以及存储设备与主机之间的连接系统所形成的整体拓扑结构
存储系统网络架构是指存储设备与服务器、工作站等需要进行数据读写操作的主机之间的连接方式,网络拓扑结构、数据读写方式、存储共享方式和数据共享方式。存储系统网络结构不同,存储设备的工作方式、流程和性能就会不同。大家常提到的、主流的存储系统网络架构有DAS、NAS、SAN三种网络结构。其中SAN网络环境中,因采用存储设备类型的不同又可以分为FC-SAN(采用光纤通道存储产品)和IP-SAN(采用ISCSI存储设备)。
目前应用最多的是SAN存储系统,在SAN网络环境中,因采用存储设备类型的不同又可以分为FC-SAN(采用光纤通道存储产品)和IP-SAN(采用ISCSI存储设备),在存储系统设计中可优先考虑。
SCSI(Small Computer System Interface)小型计算机系统接口,一种用于计算机和智能设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。 SCSI是一种智能的通用接口标准。
SCSI是一种计算机系统接口的标准
SCSI是一种I/O技术
SCSI规范了一种并行的I/O总线和相关的协议
SCSI的数据传输方式是以块的方式进行的
可以看到主机带有一个SCSI控制器与SCSI设备相连,我们把控制SCSI进行数据存储的一端叫Initiator,而把SCSI设备(存储数据的)叫做Target
主机通过控制器与Target相连,而Target也可以通过SCSI总线与其他的SCSI设备相连,但最后一般都会连接一个终结器
SCSI的总线分为宽带和窄带两种,宽带有16个接口,除了一个连接initiator外,最多可以连接15个Target,而窄带有8个接口,最多链接7个Target。
系统中的每个SCSI设备都必须有自己唯一的SCSI ID(即target ID),SCSI ID实际上就是这些设备的地址,而每个target上可以连接多个逻辑单元(一个逻辑单元对应一个SCSI设备),用LUN(Logical Unit number)逻辑单元号区别不同的逻辑单元,每个SCSI ID上最多有32 个LUN(宽带的),一个LUN对应一个逻辑设备(SCSI设备)
[root@jettoloader ~]# df -Th | grep -v overlay | grep -v tmpfs | grep -v cgroup
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 99G 31G 69G 31% /
/dev/sda1 xfs 497M 138M 360M 28% /boot
172.16.10.5:/opt/vlumes nfs4 48G 13G 35G 28% /mnt
DAS /dev/sda1 磁盘的一个分区
NAS: 172.16.10.5:/opt/vlumes 文件系统
SAN: /dev/mapper/centos-root 块设备
以上是传统的
大数据导致了数据量的爆发式增长,传统的集中式存储(如NAS或SAN)在容量和性能上都无法较好地满足大数据的需求。因此,具有优秀的可扩展能力的分布式存储成为大数据存储的主流架构方式。分布式存储多采用普通的硬件设备作为基础设施,因此,单位容量的存储成本也得到大大降低。另外,分布式存储在性能、维护性和容灾性等方面也具有不同程度的优势。
分布式存储系统需要解决的关键技术问题包括诸如可扩展性、数据冗余、数据一致性、全局命名空间缓存等,从架构上来讲,大体上可以将分布式存储分为C/S(Client Server)架构和P2P(Peer-to-Peer)架构两种。当然,也有一些分布式存储中会同时存在这两种架构方式。 [5]
分布式存储面临的另外一个共同问题,就是如何组织和管理成员结点,以及如何建立数据与结点之间的映射关系。成员结点的动态增加或者离开,在分布式系统中基本上可以算是一种常态。 [5]
EricBrewer于2000年提出的分布式系统设计的CAP理论指出,一个分布式系统不可能同时保证一致性、可用性和分区容忍性(Partitiontolerance)这3个要素。因此,任何一个分布式存储系统也只能根据其具体的业务特征和具体需求,最大地优化其中的两个要素。当然,除了一致性、可用性和分区容忍性这3个维度,一个分布式存储系统往往会根据具体业务的不同,在特性设计上有不同的取舍,比如,是否需要缓存模块、是否支持通用的文件系统接口等
云存储是由第三方运营商提供的在线存储系统,比如面向个人用户的在线网盘和面向企业的文件【NFS】、块【ISCSI】或对象存储【s3-->minio】系统等