在企业的IT基础架构体系中,数据是很是重要的一个部分,而数据又都是存在存储设备里面,故存储设备的选型及相关的技术,便显得很是重要。linux
本文旨在讲述存储的各方面概念之余,提出相对各类场景最适合使用的存储技术,以供实践参考。算法
提到存储,首先须要思考一个问题:为何须要存储?数据库
假若有100TB的数据,买来100GB大小的磁盘来存放,则须要1000个。缓存
那么,如何将1000个硬盘链接起来呢?若是用通常的PC,则须要250台。安全
数据存放起来了,如何管理和使用?性能如何?当设备损坏或发生事故时如何应对?这些都在下文中进行逐一讨论。服务器
总而言之,存储主要解决了如下的几个主要问题:网络
容量架构
速度ide
易于管理性能
安全:容灾与备份
可扩展性
发展历史
提到存储的发展历史,不得不提到IT技术的发展趋势,从大型机到小型机,到X86服务器,再到云主机,IT技术经历了一系列的迭代变革。
跟随着IT技术的进步,存储技术也随之有了发展,存储产品的发展历程就是数据保存、应用发展的过程。
存储产品的趋势是,使用统一存储,即经过整合下降成本,将NAS和SAN结合起来,简化存储管理,提升利用率。EMC在2010年推出了VNX系列产品,首次推出了统一存储的概念,HDS在2012年跟进,推出了HUS系列产品。
企业级存储分类
按存储多样性划分,能够分为三大类:存储硬件,存储软件和存储方案,而每一个类别均可以延伸出不少技术内容。
而外置存储的硬件构成,能够分红如下几个内容:
而按照基础架构去分类,则能够分为三类:
DAS(Direct Attached Storage)直接挂接存储
NAS(Network Attached Storage)网络挂接存储
SAN(Storage Area Network)存储区域网络(包括FC SAN、IP SAN)
01 DAS
开放系统的直接挂接存储(Direct Attached Storage,简称DAS)已经有近四十年的使用历史,随着用户数据的不断增加,尤为是数百GB以上时,其在备份、恢复、扩展、灾备等方面的问题变得日益困扰系统管理员。
直连式存储与服务器主机之间的链接通道一般采用SCSI链接,随着服务器CPU的处理能力愈来愈强,存储硬盘空间愈来愈大,阵列的硬盘数量愈来愈多,SCSI通道将会成为IO瓶颈;服务器主机SCSI ID资源有限,可以创建的SCSI通道链接有限。
02 NAS
NAS(Network Attached Storage:网络挂接存储)按字面简单说就是链接在网络上,具有资料存储功能的装置,所以也称为“网络存储器”。它是一种专用数据存储服务器。它以数据为中心,将存储设备与服务器完全分离,集中管理数据,从而释放带宽、提升性能、下降总拥有成本、保护投资。其成本远远低于使用服务器存储,而效率却远远高于后者。
NAS解决方案一般配置为做为文件服务的设备,由工做站或服务器经过网络协议(如TCP/IP)和应用程序(如网络文件系统NFS或者通用Internet文件系统CIFS)来进行文件访问。大多数NAS链接在工做站客户机和NAS文件共享设备之间进行。这些链接依赖于企业的网络基础设施来正常运行
NAS的优势是支持文件共享,易于管理,缺点是其为网络盘,而不是系统本地SCSI盘,不支持本地文件系统,软件兼容性差(某些数据库和系统级软件不可使用)。
03 SAN
存储区域网络(Storage Area Network,简称SAN)采用网状通道(Fibre Channel ,简称FC,区别与Fiber Channel光纤通道)技术,经过FC交换机链接存储阵列和服务器主机,创建专用于数据存储的区域网络。SAN通过十多年历史的发展,已经至关成熟,成为业界的事实标准(但各个厂商的光纤交换技术不彻底相同,其服务器和SAN存储有兼容性的要求)。
SAN实际是一种专门为存储创建的独立于TCP/IP网络以外的专用网络。目前通常的SAN提供2Gb/S到4Gb/S的传输速率,同时SAN网络独立于数据网络存在,所以存取速度很快,另外SAN通常采用高端的RAID阵列,使SAN的性能在几种专业存储方案中傲视群雄。
SAN因为其基础是一个专用网络,所以扩展性很强,无论是在一个SAN系统中增长必定的存储空间仍是增长几台使用存储空间的服务器都很是方便。经过SAN接口的磁带机,SAN系统能够方便高效的实现数据的集中备份。
目前常见的SAN有FC-SAN和IP-SAN,其中FC-SAN为经过光纤通道协议转发SCSI协议,IP-SAN经过TCP协议转发SCSI协议。
存储技术
01 磁盘阵列
磁盘阵列又叫RAID(廉价磁盘冗余阵列),是指将多个类型、容量、接口,甚至品牌一致的专用硬磁盘或普通硬磁盘连成一个阵列,使其能以某种快速、准确和安全的方式来读写数据,从而达到提升数据读取速度和安全性的一种手段。
所以,磁盘阵列读写方式的基本要求是,在尽量提升磁盘数据读写速度的前提下,必须确保在一张或者多张磁盘失效时,阵列可以有效地防止数据丢失。
磁盘阵列的最大特色是数据存取速度特别快,其主要功能是可提升网络数据的可用性及存储容量,并将数据有选择性地分布在多个磁盘上,从而提升系统的数据吞吐率。
如下是磁盘阵列的一些概念:
磁盘阵列:指存储设备全部的元件(包含控制器硬盘、电源、扇等等)。
控制器:可理解是用来管理存储中的硬盘,用来管理数据存储装置。
磁盘:控制器是用来读写数据,则磁盘是用来存储数据的。
扩展柜:指的是放硬盘的盒子,若是把控制器的角色比喻成火车头,那这个就是车箱。
控制器电池:是用于保护控制器缓存的数据 ,数据存入硬盘时,要先经过控制器进行算法运算后再存入硬盘,而这个操做会存在必定延时,若是此时掉电,这一时间段的数据就会丢失,使用电池后,在必定的时间内能够保障数据不丢失。电池还有另- -个用途就是能够提高控制器性能。默认读缓存(cache)是开启的,但写缓存是没启用的,所以电池在这里就用做写缓存使用。
备注:磁盘阵列这里的控制器,对应PC服务器上的RAID阵列卡。
RAID产生的缘由能够概括以下:
RAID由几个硬盘组成,从总体上看至关于一个物理卷,在物理卷的基础上能够按照指定容量建立一个或多个逻辑卷,经过LUN(Logic Unit Number)来标识。
磁盘阵列有如下几种工做模式:
RAID0, RAID1, RAID3, RAID5, RAID6, RAID10
此处咱们仅讨论RAID0, RAID1, RAID5, RAID10这四种典型类型。
1.RAID0
RAID0(条带化-分条)能够把多块磁盘连成一个容量更大的磁盘群,能够提升磁盘的性能和吞吐量。RAID0没有冗余或错误修复能力,成本低,要求至少两个磁盘,通常只是在那些对数据安全性要求不高的状况下才被使用。
2.RAID1
RAID1(镜像)把一个磁盘的数据镜像到另外一个磁盘上,在不影响性能状况下最大限度的保证系统的可靠性和可修复性上,具备很高的数据冗余能力,但磁盘利用率为50% ,故成本最高,多用在保存关键性的重要数据的场合。RAID1的操做方式是把用户写入硬盘的数据百分之百地自动复制到另一个硬盘上。
3.RAID5
能够理解为是RAID 0和RAID 1的折衷方案。但没有彻底使用RAID 1镜像理念。而是使用了“奇偶校验信息"来做为数据恢复的方式。以四个硬盘组成的RAID 5为例。其数据存储方式如图所示:图中Ap为A1,A2和A3的奇偶校验信息,其它以此类推。由图中能够看出, RAID 5不对存储的数据进行备份。而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上。而且奇偶校验信息和相对应的数据分别存储于不一样的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
4.RAID10
RAID10(镜像阵列条带)像RAID0同样,数据跨磁盘抽取,像RAID1同样,每一个磁盘都有一个镜像磁盘,因此RAID 10的另外一种会说法是RAID 0+1。RAID10提供100%的数据冗余,支持更大的卷尺寸。但价格也相对较高。
对大多数只要求具备冗余度而没必要考虑价格的应用来讲, RAID10提供最好的性能。使用RAID10,能够得到更好的可靠性,由于即便两个物理驱动器发生故障(每对中一个), 数据仍然能够获得保护。
RAID10须要4 + 2*N个磁盘驱动器(N>=0),并且只能使用其中一半的磁盘用量,例如4个250G的硬盘使用RAID10阵列,实际容量是500G。
磁盘阵列的几种工做模式对比总结:
02 SCSI
SCSI并非专门为硬盘设计的接口,是一种普遍应用于小型机上的高速数据传输技术。
SCSI接口具备应用范围广、多任务、带宽大、CPU占用率低,以及热插拔等优势,但较高的价格使得它很难如IDE硬盘般普及。
SCSI硬盘主要应用于中、高端服务器和高档工做站中。
03 iSCSI
iSCSI(Internet Small Computer System Interface)是IETF制订的一项标准,用于将SCSI数据块映射成以太网数据包。
从根本上说, iSCSI协议是一种跨过IP网络来传输潜伏时间短的SCSI数据块的方法。
iSCSI SAN的优点:
高可用性,在服务器和存储资源之间创建起多条通道,即便一条线路断开仍能保持系统链接;
扩展性,采用交换机式的结构,IT管理人员没必要停止应用便可完成存储容量的扩充;
最大程度地保护存储资源投入,可以跨平台共享硬盘和磁带设备;
采用咱们熟悉的以太网技术。
04 FC
FC ( Fibre Channel), 一种高速网络技术标准( T11),主要应用于SAN (存储局域网)
光纤和铜制电缆均可以做为FC的传输介质;
从分层协议栈的角度看,FC仅仅包含了从物理层到传输层的规范。它的上层定义了把其余协议做为应用层协议进行封装的接口,如SCSI或IP协议。
05 SAS
SAS(Serial Attached SCSI)是新一代的SCSI技术 ,和如今流行的Serial ATA(SATA)硬盘相同,都是采用串行技术以得到更高的传输速度,并经过缩短连结线改善内部空间等。SAS是并行SCSI接口以后开发出的全新接口。此接口的设计是为了改善存储系统的效能、可用性和扩充性,提供与串行ATA(Serial ATA ,缩写为SATA)硬盘的兼容性。
06 硬盘
硬盘是电脑上使用坚硬的旋转盘片为基础的非易失性( non-volatile )存储设备。它在平整的磁性表面存储和检索数字数据。信息经过离磁性表面很近的写头,由电磁流来改变极性方式被电磁流写到磁盘上。
07 SSD
固态硬盘(Solid State Drives),简称固盘。
固态硬盘(Solid State Drive)用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。
固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的彻底相同,在产品外形和尺寸上也彻底与普通硬盘一致。
被普遍应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空、导航设备等领域。
08 NFS
网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS(Network File System)。NFS容许一个系统在网络上与他人共享目录和文件。经过使用NFS,用户和程序能够像·访问本地文件同样访问远端系统上的文件。
NFS至少有两个主要部分:一台服务器和一台(或者更多)客户机。客户机远程访问存放在服务器上的数据。为了正常工做, 一些进程须要被配置并运行。
注: NFS由Sun microsystems公司开发。是一种网络文件系统,而且是unix/linux操做系统的协议。
09 CIFS
CIFS(Common Internet File System)使程序能够访问远程Internet计算机上的文件并要求此计算机的服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器得到请求并返回响应。
CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议如今是局域网上用于服务器文件访问和打印的协议。
像SMB协议同样, CIFS在高层运行,而不像TCP/IP协议那样运行在底层。CIFS能够看作是应用程序协议如文件传输协议和超文本传输协议的一个实现。
CIFS最典型的应用是Windows用户可以从“网上邻居”中找到网络中的其余主机并访问其中的共享文件夹。
总结
综上,不一样的存储模式是和平常使用需求紧密结合起来的,不存在绝对的优劣之说,各位小伙伴还请多多思考,根据本身生产环境的实际状况,来选择合适的存储软硬件和方案哦!