开源存储的现状
2009-09-26 18:16:09 Administrator

开源存储最近几年有很大的发展。备份、镜像、文件系统、NAS和存储虚拟化方面出现了不少好的开放存储产品和解决方案,这使得用户不需要固态硬件就可以将很多硬盘聚集起来以高性能水平运行。

EMC存储平台高级总监Jay Krone表示:“EMC通常是以Linux主机连接EMC存储产品的形式实现开源。用户购买基于Intel或者AMD处理器的服务器,然后通过配置Linux来最大程度上发挥硬件批量价格并将软件成本降至最低”。Krone 表示,用户倾向于向基于Linux的服务器中增加像Apache Web服务器这样的开源应用或者像Oracke数据库这样的专有产品来解决一系列业务问题。为了符合这种趋势,大多数EMC存储硬件和软件产品都进行了调 整以更好地在Linux环境中运行。例如,EMC的PowerPath产品线就是针对Linux环境的。虽然EMC和其他一些数据存储厂商都意识到了这一趋势,但是他们对开源存储却抱有不同的看法。

Digitar是一家运用大量Linux和Sun开源软件的公司,该公司首席技术官Jason Williams表示:“我仍然不会说市场中有很多开源存储应用。”Williams表示,目前市场中领先的开源存储产品包括Sun的ZFS文件系统、用于备份的Zmanda和Bacula、针对网络磁盘镜像的DRBD。

StorageIO Group创始人兼高级分析师Greg Schulz对开源存储的前景表现得更乐观一些。他说:“现在有很多不同来源的开源存储解决方案和应用,从卷管理工具、iSCSI和NAS栈、文件系统、集群文件系统、基于目标的存储解决方案、重复数据删 除和压缩等等,此外更不用说那些内嵌了开源技术的一体化解决方案和产品了。在传统的服务器和存储厂商中,Sun可能是最突出,也是最极力宣扬开源存储的厂商。”

Sun的Amber Road业务——包括Unified Storage Systems (UFS)或者Sun Storage 7000系列——就是基于预装了OpenSolaris和ZFS的x86硬件。这些设备支持文件和块层级的数据协议、自动精简配置、复制、镜像、快照、反病毒和分析工具。高性能版本中还增加了对Linux系统的支持。Sun首席工程师David Trachy表示:“Amber Road实际上是一款NAS系统,将廉价的服务器和开源软件集成为一款易于使用的应用。它的卖点就是可以帮你节省下购买专有磁盘系统的成本”。Sun的Open Storage产品线还包括ZFS文件系统、存储服务器和JBOD系统的Storage J4000产品线。Trachy表示,这些产品方面的收入都有大幅的增长。尤其是ZFS表现格外抢眼。ZFS提供了免费的OpenSolaris、高层级的数据完成行以及站点之间的镜像功能。Trachy表示,它可以被用于基础的 大型数据存储库。这款系统还被greenBytes和Nexenta Systems等合作伙伴用于开发他们的存储系统产品。

Trachy表示:“不少初创厂商使用ZFS,将其与JBOD集成以开发不同的产品和应用。现在Sun的开源产品线中欠缺的是光纤通道块层级存储和pNFS,但是以后这些都将增加进来。”除此之外Trachhy还指出,ZFS能够很好地兼容越来越受人们关注的固态硬盘。例如,Sun X4500服务器用来自STEC的ZeusIOPS固态硬盘取代了SATA驱动器作为高容量内存卡。不过SATA仍然是大量数据存储的理想选择。在ZFS方面,Red Hat的Global File System (GFS)、Linux Logical Volume Manager (LVM)、ext4和BTRFS文件服务器之间形成了激烈的竞争。美国明尼苏达大学率先开发出GFS用于针对Linux平台提供高性能和数据共享功能。 虽然GFS是由Red Hat控制的,但是LVM已经在开源领域有了很多个版本。


存储基础知识


1、几种常见存储设备的接口

1.IDE接口

IDE的英文全称为"Integrated Drive Electronics",即"电子集成驱动器",是曾经主流的硬盘接口。IDE接口也称之为ATA接口。ATA的英文拼写为"Advanced Technology Attachment"。2003年推出SATA(Serial ATA)后,原有的ATA改名为PATA(并行高技术配置,Parallel ATA)。IDE是曾经普遍使用的外部接口,主要接硬盘和光驱。采用数据并行传送方式,一个IDE接口只能接两个外部设备。


IDE的工作方式需要CPU的全程参与,消耗的这部分资源会在一定程度上降低操作系统性能。

2.SATA接口

SATA(Serial ATA)是目前个人电脑上采用最多的接口。它采用串行连接方式。现在的SATAⅢ能达到的理论传输速度是6Gbps即750MB/s的速度。

3.SCSI接口

SCSI(Small Computer System Interface)小型计算机系统接口。它是各种计算机与外部设备之间的接口标准。SCSI其内有控制芯片,可以代替cpu完成90%多的IO工作(如计算、控制、转换等),CPU不必浪费时间进行等待,可提高整体性能。



SCSI采用链式连接,SCSI总线是SCSI设备之间传输数据的通路,又被称作SCSI通道。它通过SCSI控制器来和硬盘之类的SCSI设备进行通信。

SCSI可以连接7—15个设备,由SCSI总线是宽总线(支持16个设备)还是窄总线(支持8个设备)决定。这些设备在SCSI体系结构中称为target,可能是一块硬盘、一个RAID阵列、一个cdrom等可能的设备。每个target都必须有自己唯一的ID,在8-bit总线上,这个号码是07,在16-bit总线上,这个号码是015。

ID实际上就是这些设备地址。ID优先权由高到低的顺序为7-6-5-4-3-2-1-0-15-14-13-12-11-10-9-8。

SCSI链的最后一个SCSI设备要用作终结器(terminator),终结器是由电阻组成的,位于SCSI总线的末端,用来减小相互影响的信号,维持SCSI链上的电压恒定。中间设备不需要终结器。一旦中间设备使用了终结器,那么就无法找到终结器后的SCSI设备了。而如果最后一个设备没用终结器,SCSI也会无法正常工作。

在每个target上还可以继续进行扩展(注意每个target对应一个ID),每个ID可以继续向下扩展最多32个逻辑设备,也称为逻辑单元(LU,logical unit)。每个逻辑单元对应一个设备,使用逻辑单元号LUN(Logical Unit Numbers)标识,LUN的范围是0-31。也就是说,SCSI可以扩展出很多很多存储设备。



SCSI的数据传输是以块的方式进行的。

在SCSI体系结构中,首先由initiator向target发起会话,此会话不像web服务那样休闲时就断开,而是像ssh服务那样,保持长久连接。在此会话中,initiator会发出scsi命令进行读写数据。

可以将initiator认为是scsi的客户端,它是数据操作的需求方,target是scsi的服务端,它是数据的来源,也就是一堆堆的存储设备。当initiator与target关联后,target上的每一个lu在initiator上会单独显示为一块硬盘格式,即/dev/sd{b,c,d,e...},显示的先后顺序根据lun号码来决定。

4.SAS接口

SAS是Serial Attached SCSI的缩写,即串行连接SCSI。也就是说SAS是新一代的SCSI技术,它和SATA一样都采用串行技术。

SAS技术引入SAS扩展器,使SAS系统可以连接更多的设备,其中每个扩展器允许连接多个端口,每个端口可以连接SAS设备、主机或其他SAS扩展器。


2、存储方案(存储技术)

所谓的存储方案,就是用单独的软硬件将磁盘或磁盘组管理起来供主机使用。也就是说,存储方案和存储设备是在不同层面的,存储方案是设计如何组织和利用存储设备的。

根据服务器类型分为封闭系统的存储和开放系统的存储

封闭系统主要指大型机,AS400等服务器。
开放系统指基于包括Windows、UNIX、Linux等操作系统的服务器。而开放系统的存储又分为内置存储和外挂存储:
    开放系统的外挂存储根据连接的方式又分为:直连式附加存储DAS(Direct Attached Storage)和网络化存储FAS(Fabric-Attached Storage);
    开放系统的网络化存储根据传输协议又分为:网络附加存储NAS(Network Attached Storage)和存储区域网络SAN(Storage Area Network)。

目前绝大部分用户采用的是开放系统,其中外挂存储占有目前磁盘存储市场的70%以上。


目前的外挂存储解决方案主要分为三种:DAS、NAS和SAN。下图虽简单,却描述了这直连式存储和网络存储的区别。


存储方案内部使用的硬盘多为SATA/SAS,追求高性能也用SSD,经过串联或者RAID之后,对主机提供访问接口。

2.1 DAS存储

直接式存储(DAS:Direct Attached Storage),是指将存储设备通过SCSI接口或FC接口直接连接到一台计算机上。DAS不算是网络存储,在存储设备和主机之间没有任何网络设备的参与,只有挂载它的主机才可访问它。

最典型的DAS存储类型就是个人电脑中的硬盘,它和电脑直连,没有经过任何网络设备,也只有这台电脑可以访问它上面的数据。

也就是说,服务器发生故障时,连接在服务器上的DAS存储设备中的数据暂时不能被存取。

DAS是最原始最基本的存储方式,缺点在于容量有限、难于共享,从而造成信息孤岛。


DAS缺陷有二:

(1).DAS存储只能通过与之相连的主机进行访问,不能实现数据与其他主机的共享。
2).直连式存储与服务器主机之间的连接通道通常采用SCSI或者SAS连接,随着服务器CPU的处理能力越来越强,存储硬盘空间越来越大,阵列的硬盘数量越来越多,SCSI或SAS通道将会成为IO瓶颈;且SCSI ID或SAS ID资源有限,能够建立的SCSI或SAS通道连接有限。也就是容量有限。

2.2 NAS存储

是指将存储设备通过标准的网络连接到一台或一群计算机上。

NAS有文件系统和IP地址,可以类似的理解为网上邻居的共享磁盘,或者NFS的服务端,即导出目录的一端。NAS是文件级的存储方法,它有自己的文件系统,如NFS,SMB的CIFS。所以它是真正即插即用的产品。


NAS和SAN本质上的不同点在于NAS有自己的文件系统,而SAN的文件系统在应用程序服务器上而非存储服务器上。这样的不同点导致NAS是文件级别的数据传输,而SAN是基于块级别的传输。

对于大量小文件来说,由于每个文件都要查找文件索引号,所在块号等等,这些都会消耗资源和时间,所以导致文件级别的传输要慢的多得多,而块级别的传输则不管某个块属于哪个文件,只要需要就会把块传输出去。

NAS性能比SAN要差很多,但相对成本也低很多。

2.3 SAN存储

SAN即存储区域网络(Storage Area Network,SAN)。目前有两种类型的SAN,一种是FC SAN(光纤通道的SAN),一种是IP SAN(以太网的SAN,即现在的iSCSI)。

一般都采用光纤通道(Fibre Channel)技术,通过光纤通道交换机连接存储阵列和服务器主机,建立专用于数据存储的区域网络。FC SAN已经相当成熟,成为业界的实施标准。如果是IP SAN,则下图中的FC部分换为以太网,对交换机而言也没有光纤交换机那么严格的要求。


SAN是基于块级别的数据传输。在应用程序服务器本地有本地文件系统,这是和NAS根本上的区别。

SAN解决方案从基本功能剥离出存储这部分功能,在理论上比其他存储方案要先进一些。

相比于FC SAN,IP SAN的弱点除了在硬件设备上,还在于它要对数据进行TCP/IP的封装,这需要消耗资源(硬件iSCSI使用HBA卡控制芯片来封装不会消耗操作系统资源,但挺贵的)。同时它还要使用以太网,所以网络的情况对其也有很大影响。




SAN是目前业界中高端存储的主流标准。

2.4 SAN和NAS的区别

为什么提到NAS就不得不提到SAN呢?原因之一是它们的名称有69关系,容易混淆;之二是NAS和SAN既竞争又合作,很多高端NAS的后端存储就是SAN。NAS和SAN的整合也是存储设备的发展趋势。


从上面的构中可以看到,SAN文件系统分别在每一个应用服务器上;而NAS则是每个应用服务器通过网络共享协议(如:NFS、CIFS)使用同一个文件系统。换句话说,NAS和SAN存储系统的区别是NAS自己管理自己的文件系统。

现在高端存储已经很多都使用SAN+NAS了,如下图。


在上图的双虚线框表示一台NAS。它通过Fibre Channel从后端SAN获得存储空间,创建文件系统后,再通过以太网共享给服务器。SAN提供的存储单位是LUN,属于block级别的。经过NAS创建成文件系统后,就变成文件级别的了。

如果上图描述的不够清楚,下图就容易理解多了。NAS通过FC Switch连到SAN上,应用服务器再通过Ethernet Switch连到NAS上。同时SAN也直接提供block级别的存储给应用服务器。


关于NAS和SAN的区别,可以列出很多来。比如带宽大小,距离长短,共享优劣等等。几乎所有区别都是由两个因素衍生出来的。一个是FC与Ethernet,另一个是block与file system。简而言之,如果用户需要通过FC访问block,就用SAN;如果需要通过Ethernet访问file system,就用NAS。


开源存储项目

没有哪个大型数据存储厂商像Sun那样如此专注于开源技术,所以众多厂商分散于其他领域就不足为奇了。在备份领域,你会想到Zmanda和Bacula Systems SA。作为Zmanda的基础备份产品,Amanda被认为是目前最受欢迎的开源备份和恢复软件,现在全球范围内50多万台运行不同版本Linxu、 UNIX、BSD、Mac OS-X和Windows的服务器和台式机都采用了这款软件。Zmanda还推出了针对MySQL环境的Zmanda Recovery Manager (ZRM)软件。它采用了与Red Hat相同的业务模式,但Bacula却是真正的前端开源技术,Bacula管理来自或者向磁盘或者磁带的备份和恢复。Cleversafe也是一家遵循开源业务模式的存储厂商。

开源存储发展的障碍

虽然市场中的开源应用不断如雨后春笋般不断涌现,但是开源存储的普及仍然面对很多障碍。Schulz表示:“开源应该更多地被视为一个全面支持的解决方案——即使很多厂商已经提供了这样的解决方案——以此纠正人们认为开源只是针对那些成本有限的用户或者只是一个大型计算机科研项目的错误看法。”

他还认为,应该以开源技术的最大特点——免费——将推动这项技术的更广泛应用。他说:“人们通常会认为,免费产品的价值低于付费产品,或者其价值和稳定性低于你可能购买的其他产品。因此,可能会存在对技术支持的担忧,或者误以为集成开源解决方案会增加成本和复杂性。”Schulz认为,阻碍开源技术普及的最大障碍可能是那些更基础性的问题。他认为,人们对开源技术在看法上的改变才能将这项技术提升到一个新的层级,而不是仅仅局限于过去那种“它不过就是开源”的简单的价值定位。

Schulz表示:“我希望了解的是,开源与其他解决方案在业务、成本、功能特性和价值定位方面的对比结果是怎样的。我真正希望听到的是,厂商在运用开源技术作为其整体解决方案和价值定位一部分的方面是如何做的。”

Comprehensive Consulting Solutions公司的Chip Nickolett认为,我们应该看到开源技术最好的一方面。在他看来,说服核心存储专家的最大阻碍就是他们愿意在SAN或者其他昂贵的存储硬件上花费大笔资金,因为他们觉得从性能、数据完整性、备份和灾难恢复方面来讲存储是非常重要的,所以他们对采用开源存储节约几美元而可能面对潜在风险的做法并不感兴 趣。他认为,在这种想法发生转变之前,开源技术只能挣扎在存储领域的边缘。

Nickolett表示:“我的确没有看到开源存储青睐人们多大的兴趣。虽然现在市场中有很多开源备份和磁盘管理工具、低端NAS和SAN产品,但是这些在使用方面都没有成为‘关键’的一部分。”到目前为止,Sun和Zmanda都报告称其开源产品有很强劲的市场表现。Sun Open Storage是Sun公司三月这个季度增长速度最快的业务。即使这样,这些产品在整个企业级数据存储市场中仍然只占到了很小的市场份额。

2016年存储市场几大趋势

2016年企业存储市场正在发生前所未有的变化,这将影响企业IT战略的发展。这里总结一下2016年存储市场的趋势

1、冷存储/归档的需求增加
随着企业对各类结构化和非结构化的数据的存储需求增加。冷存储或者归档存储作为存储那些很少访问的数据的一种经济的手段。将越来越得到重视。这一类的数据往往存储在廉价,低速的存储介质上,这样可以使得数据中心的存储成本降低。归档存储在过去往往在存储计划中不被优先考虑。而这种情况在2016年开始改变。

2、混合云的存储模式的融合
对于公共云,私有云以及数据中心的数据整合的需求,使得企业常常需要在不同的数据源移动数据。这在过去是一件很头疼的事情。而2016年开始有不少供应商开始提供这样的解决方案。随着混合云市场每年接近30%的增长,对于混合云模式下的存储模式融合的需求也将增大。

3、分层的存储自动化
越来越多的数据中心开始采用分层的自动存储方案,对于频繁访问的数据存储在快速存储介质如Flash或者SSD上。而对于较少访问的数据存储在相对低速的硬盘或者磁带上。很多数据中心管理员在过去是手动来进行这样的调整的。而现在则越来越多地采用自动化工具了。

4、以闪存为存储的瘦客户机工作站将流行
越来越多的工作站正在取代磁盘为基础的工作站。并且随着数据的集中式管理。瘦客户机的概念也正在流行。

5、闪存价格进一步下降
2015年闪存和SSD的价格下降了75%. 这一趋势在2016年依然不减。这使得很多数据中心开始用闪存和SSD作为存储介质。

6、硬盘的新技术Optane
硬盘作为存储介质的服役期之长超乎预期。2016年,Intel发布新的Optane硬盘技术,采用一种新的技术进行存储,将可能使得硬盘读写速度比现有的闪存速度还快1000倍。

7、数据将作为企业的资产出现在资产负债表上
在产业分析师中已经在热烈讨论是否应该把数据作为企业的资产出现在资产负债表中。如果真能实现,那么企业对数据的重视程度将会发生巨大的变化,而对存储的需求也将大大提高。

8、端到端的存储管理
对于分层的自动数据存储而言,每个不同的供应商有各自不同的解决方案。这些方案互不兼容,导致不少问题。从存储管理的角度,需要一个整合的存储管理方案。在2016年, 已经开始出现类似公开API的标准和插件的概念。这些发展将可能孕育出一个整合的存储管理方案来。

9、FPGA芯片能大大提高SSD的性能
FPGA技术的采用将使的SSD处理大数据的性能进一步提高。利用FPGA处理技术可以把数据分块并传入不同的SSD进行处理。这样不需要用x86服务器来处理分布式大数据的工作。 可以大大提高SSD处理大数据的能力。

该文章最后由 阿炯 于 2021-07-29 10:43:54 更新,目前是第 2 版。