简介:云计算中的存储技术
在云计算的领域离不开存储,那么云计算使用的存储包括三种类型:虚拟化的存储、分布式存储、集中式传统存储。在云计算的领域离不开存储,那么云计算使用的存储包括三种类型:虚拟化的存储、分布式存储、集中式传统存储。
虚拟化存储:由 SAN 和 NAS 提供的存储空间,需要添加一层文件系统(VIMS)屏蔽底层差异,性能较差。支持更多的虚拟化特性如迁移、快照等等。有文件系统。
非虚拟化存储:由分布式存储提供的存储空间,没有添加文件系统,性能较好,无法支持一些高级虚拟化特性。没有文件系统。虚拟化存储和非虚拟化存储都是两种不同类型的数据存储,都可以给虚拟机使用。
区别:
底层提供者不一样。
性能不一样。
特性不一样。
文件系统不一样。
总结:虚拟化存储:在存储空间上添加了一层文件系统,支持高级特性如迁移。但是性能差。
非虚拟化存储:在存储空间上没有一层文件系统,无法支持高级特性如迁移,但是性能好。
磁盘组成磁盘阵列,完成集中式的存储,并通过映射给主机使用。
1、 通过奇偶校验算法 (XOR)的方式保存数据,相同为 0,不同为 1。
2、 RAID 分类
RAID 0:读取数据快,但是没有数据保护机制。
RAID 1:2 块磁盘组成一个 RAID 组,性能一般,安全性较高,磁盘利用率不高。
RAID 3:使用单独的磁盘做校验,磁盘利用率较高,读数据性能高,写时会产生抢 占。
ARID 5:将校验值放入整个阵列中,缓解了抢占问题。读写性能一般。至少要 3 块磁盘。
RAID 10:组合 RAID,性能提升较快。
RAID 50:组合 RAID,提供了存储的利用率。
磁盘阵列主要采用 RAID 技术来保护数据,还可以提供并行读写。热备盘技术:将快要损坏的磁盘上的数据移动到热备盘进行数据保护。
传统存储网络类型:
1、 SAN 存储区域网络:利用磁盘阵列、网络设备组成专业化的存储网络。SAN 网络只跑存储的数据。分为 IP SAN 和 FC SAN 两种存储。通过 SCSI 和 iSCSI 协 议实现数据传递。又叫块存储,将 LUN(数据块)直接映射给主机使用,LUN 相 当于一块裸盘,需要使用时需要格式化添加文件系统。
2、 NAS 网络附加存储:利用存储设备添加文件系统,通过 TCP/IP 网络,利用 NFS、CIFS 共享协议实现存储空间的映射。使用简单,造价便宜,读写性能一般。用户操控共享空间时就像操控本地硬盘一样。又叫文件存储,在 NAS 存储设备上添加文件系统,将有文件系统的共享目录映射给主机使用,不需要格式化,也不需要添加文件系统。
又叫 Server SAN/SDS,将通用 X86 服务器的本地 HDD、SSD 等介质通过分布式技 术组织成大规模存储资源池。对非虚拟化环境的上层应用和虚拟机提供工业界标准的 SCSI 和 iSCSI 接口。华为分布式存储产品叫 FusionStorage,利用五个组件/软件 FSM、 FSA、MDC、VBS、OSD 组成存储池或者存储卷。
副本机制:将一份数据复制 2/3 份保存到不同的位置,实现数据保护。读数据只需要 一份。
虚拟化存储架构
虚拟化的存储:SAN、NAS、本地硬盘都需要添加文件系统。
SAN 添加的文件系统是 VIMS/虚拟化的文件系统
NAS 设备添加的文件系统是 NFS 文件系统
本地硬盘添加的文件系统是 EXT4 文件系统
FusionCompute 的文件系统有 VIMS、NFS、ext4,都能被使用,被识别。屏蔽底层差异,形成存储融合资源池。
非虚拟化存储:由FusionStorage 分布式存储提供的没有文件系统的存储池,性能较好,但是不支持迁移等特性。
1.对象存储
也就是通常意义的键值存储,对象存储的接口是REST风格的,通常是基于HTTP协议的RESTful Web API,通过HTTP请求中的PUT和GET等操作进行文件的上传即写入和下载即读取,通过DELETE操作删除文件和其他扩展操作,如七牛、又拍、Swift、S3,还有Ceph的底层RADOS(Reliable Autonomous Distributed Object Store),适合在云环境中进行大规模的非结构化数据存储使用。
总体上来讲,对象存储同兼具SAN高速直接访问磁盘特点及NAS的分布式共享特点。
核心是将数据通路(数据读或写)和控制通路(元数据)分离,并且基于对象存储设备(Object-based Storage Device,OSD)构建存储系统,每个对象存储设备具有一定的智能,能够自动管理其上的数据分布。
对象存储结构组成部分(对象、对象存储设备、元数据服务器、对象存储系统的客户端)
2.块存储
我们简单的理解就是一块一块的硬盘,直接挂载在主机上,在主机上我们能够看到的就是一块块的硬盘以及硬盘分区。从存储架构的角度而言,块存储又分为DAS存储(Direct-Attached Storage,直连式存储)和SAN存储(Storage Area Network,存储区域网络)。
主要指能够模拟或表现为计算机裸盘,能够被计算主机当做硬盘使用的存储形式。这种接口通常以QEMU Driver或者Kernel Module的方式存在,这种接口需要实现Linux的Block Device的接口或者QEMU提供的Block Driver接口,如Sheepdog,AWS的EBS,青云的云硬盘和阿里云的盘古系统,还有Ceph的RBD(RBD是Ceph面向块存储的接口)
块存储,简单来说就是提供了块设备存储的接口。通过向内核注册块设备信息,在Linux中通过lsblk可以得到当前主机上块设备信息列表。
首先一个硬盘是一个块设备,内核检测到硬盘然后在/dev/下会看到/dev/sda/,因为我们需要利用一个硬盘来得到不同的分区来做不同的事,通过fdisk工具得到/dev/sda1, /dev/sda2等,这种方式通过直接写入分区表来规定和切分硬盘,是最死板的分区方式。
LVM是一种逻辑卷管理器,通过LVM来对硬盘创建逻辑卷组和得到逻辑卷来完成目的比fdisk方式更加弹性。Device-mapper是一种支持逻辑卷管理的通用设备映射机制,为存储资源管理的块设备驱动提供了一个高度模块化的内核架构。
LVM是基于Device-mapper的用户程序实现。
在接触了单机下的逻辑卷管理后,你需要了解SAN,目前主流的企业级存储方式。通常来讲,所有磁盘阵列都是基于Block块的模式。
介绍这两种传统的存储类型,以下列出的两种存储方式都是块存储类型:
1) DAS(Direct Attach STorage):是直接连接于主机服务器的一种储存方式,每一台主机服务器有独立的储存设备,每台主机服务器的储存设备无法互通,需要跨主机存取资料时,必须经过相对复杂的设定,若主机服务器分属不同的操作系统,要存取彼此的资料,更是复杂,有些系统甚至不能存取。通常用在单一网络环境下且数据交换量不大,性能要求不高的环境下,可以说是一种应用较为早的技术实现。
2)SAN(Storage Area Network):是一种用高速(光纤)网络联接专业主机服务器的一种储存方式,此系统会位于主机群的后端,它使用高速I/O 联结方式, 如 SCSI, ESCON 及 Fibre- Channels。一般而言,SAN应用在对网络速度要求高、对数据的可靠性和安全性要求高、对数据共享的性能要求高的应用环境中,特点是代价高,性能好。例如电信、银行的大数据量关键应用。它采用SCSI 块I/O的命令集,通过在磁盘或FC(Fiber Channel)级的数据访问提供高性能的随机I/O和数据吞吐率,它具有高带宽、低延迟的优势,在高性能计算中占有一席之地,但是由于SAN系统的价格较高,且可扩展性较差,已不能满足成千上万个CPU规模的系统。
3.文件存储
我们指的是在文件系统上的存储,也就是主机操作系统中的文件系统。我们知道,文件系统中有分区,有文件夹,子文件夹,形成一个自上而下的文件结构;文件系统下的文件,用户可以通过操作系统中的应用程序进行打开、修改等操作,如打开word、编辑word。从架构上来说,文件存储提供一种NAS(Network Attached Storage,网络附属存储)架构,使得主机的文件系统不仅限于本地的文件系统,还可以连接基于局域网的共享文件系统。
通常意义是支持POSIX接口,它跟传统的文件系统如Ext4是一个类型的。对于大多数文件系统来说,尤其是POSIX兼容的文件系统,提供open、close、read、write和lseek等接口。但区别在于分布式存储提供了并行化的能力,如Ceph的CephFS(CephFS是Ceph面向文件存储的接口),但是有时候又会把GFS,HDFS这种非POSIX接口的类文件存储接口归入此类。
通常,NAS产品都是文件级存储。NAS是一套网络储存设备,通常是直接连在网络上并提供资料存取服务,一套 NAS 储存设备就如同一个提供数据文件服务的系统,特点是性价比高。
它采用NFS或CIFS命令集访问数据,以文件为传输协议,通过TCP/IP实现网络化存储,可扩展性好、价格便宜、用户易管理,如目前在集群计算中应用较多的NFS文件系统,但由于NAS的协议开销高、带宽低、延迟大,不利于在高性能集群中应用。
S3,RPC,TCP/IP,hdfs,ATA,PATA,SATA,SCSI,FC,iSCSI,SAS,PCI,PCIe,IDE,NFS,CIFS,XFS,ext4
1、S3协议(Simple Storage Service简单存储服务协议)
S3是一种面向 Internet 的存储服务。它是一种简单存储服务,以很低的成本为软件开发人员提供高度可扩展的、可靠的、低延迟的存储基础设施。
通俗的话,S3协议可以通过特定的url格式基于HTTP协议的RESTful Web API,使用HTTP请求中的PUT和GET等操作进行存储系统中文件的上传即写入和下载即读取,通过DELETE操作删除文件和其他扩展操作
2、RPC协议
RPC(Remote Procedure Call Protocol)–远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
3、TCP/IP 协议
TCP/IP 协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输。TCP/IP 协议采用4层结构,分别是应用层、传输层、网络层和链路层,每一层都呼叫它的下一层所提供的协议来完成自己的需求。由于我们大部分时间都工作在应用层,下层的事情不用我们操心;其次网络协议体系本身就很复杂庞大,入门门槛高,因此很难搞清楚TCP/IP的工作原理,通俗一点讲就是,一个主机的数据要经过哪些过程才能发送到对方的主机上。
4、hdfs协议
Hadoop的通信是建立在RPC的基础上,所有HDFS 通信协议都构建于TCP/IP 协议之上,是自己实现的一套访问逻辑,所以在访问hdfs文件时,需要带上hdfs命令,如果要将hdfs mount为linux本地文件系统可以参考使用Webdav组件或者FUSE。
5、ATA
AT attachment 是IDE(Integrated Drive Electronics)硬盘的接口标准。包括PIO(Programming I/O)和DMA(Direct Memory Access) 两种传输模式。ATA本身可以支持串行或并行。
6、PATA
Paralle ATA。并行协议,基于ATA。
7、SATA
Serial ATA。串行协议,基于ATA。
8、SCSI
SCSI是小型计算机系统接口(Small Computer System Interface)的简称,于1979首次提出,是为小型机研制的一种接口技术,现在已完全普及到了小型机,高低端服务器以及普通PC上。跟ATA/IDE不兼容,相对于ATA硬盘的接口支持数量更多。
9、FC(光纤通道)
FC光纤通道:Fiber Channel。是基于Fabric Channel环路协议基础上的串行技术,通过给后端磁盘提供带宽2.0Gbit/s或者4.0Gbit/s的FC环路来进行磁盘的连接。本来FC是给网络系统开发的,FC线缆的连接距离远,比较容易扩展。因为存储系统对速度要求高,所以也用在多硬盘系统的通信中。用于计算机设备之间数据传输,传输率达到2G(将来会达到4G)。光纤通道用于服务器共享存储设备的连接,存储控制器和驱动器之间的内部连接。
10、iSCSI
iSCSI(互联网小型计算机系统接口)是一种在TCP/IP上进行数据块传输的标准。它是由Cisco和IBM两家发起的,并且得到了各大存储厂商的大力支持。iSCSI可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行快速的数据存取备份操作。
11、SAS
Serial Attached SCSI。串行协议,基于SCSI,又可以向下兼容SATA。
12、PCI
Peripheral Component Interconnect。是在CPU和原来系统总线内部插入的一级总线。主要用于电脑内部主板的扩展插槽,连接显卡,声卡,网卡和Modem等设备。PCI总线只有133MB/s 的带宽。注意它不是硬盘接口。
13、PCIe
PCI Express。向下兼容PCI,串行协议。PCIe 2.0为例,每秒5GT(Gigatransfer)原始数据传输率,编码方式为8b/10b(每10个位元只有8个有效数据),即有效频宽为4Gb/s = 500MByte/s。PCIe可以用于SSD的接口,但不用于机械硬盘的接口,因为机械硬盘的读写速度达不到这么高,没有必要用PCIe。
14、NFS(Network File System)
NFS是NetworkFileSystem的简写,即网络文件系统,网络文件系统是FreeBSD支持的文件系统中的一种,由 Linux 、 UNIX 及其他类似操作系统使用的互联网标准协议、
NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。
它是一种活动扩展之下的开放标准 , 可支持本地 Linux 权限和文件系统功能。
15、CIFS(Common Internet File System)
CIFS 是针对 Microsoft Windows 操作系统的本地网络文件系统。
Linux 系统可以挂载和访问 CIFS 文件共享 , 如同常见的网络文件系统一样。然而 , 由于 CIFS 是基于 NTFS 文件系统权限模型及其自身的身份验证系统来构建的 , 因而 CIFS 协议中的所有内容并不能很好地映射到 Linux 中。
16、XFS
XFS,一种高性能的日志文件系统,最早于1993年,由Silicon Graphics为他们的IRIX操作系统而开发,是IRIX 5.3版的默认文件系统。2000年5月,Silicon Graphics以GNU通用公共许可证发布这套系统的源代码,之后被移植到Linux内核上。XFS特别擅长处理大文件,同时提供平滑的数据传输。目前CentOS 7也将XFS+LVM作为默认的文件系统。
17、ext4
第四代扩展文件系统(英语:Fourth extended filesystem,缩写为ext4)是Linux系统下的日志文件系统,是ext3文件系统的后继版本。
18、POSIX
POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标准,是IEEE为要在各种UNIX操作系统上运行的软件而定义的一系列API标准的总称,其正式称呼为IEEE 1003,而国际标准名称为ISO/IEC 9945。