云计算中的存储基础知识

前言

在日常生活中,我们在买个人电脑时,无论是笔记本电脑还是台式机,硬盘是必不可少的一部分,在购买时我们通常会关注很多的参数如:容量、速度、品牌等等。

在云计算中,硬盘也是必不可少的一部分,但是云计算中的硬盘和普通PC不一样,是看不到物理实体的,用户可能只需要关注性能和容量就可以。但是作为一个云计算工程师,除了需要知道如何实现客户的需求,更需要知道如何将物理的硬盘一步步转换为按照用户需求生成的云硬盘。

云计算虚拟化中的存储架构

存储架构
在这个架构图中,最下层是物理磁盘,最上层是云硬盘

虚拟化存储(从下往上看)

  • 底层硬件:物理硬盘(SATA、SSD等)不可以直接使用
  • 存储池:底层硬件组成存储池
  • NAS:需要建立文件系统,在形成共享目录,
  • SAN:需要进行逻辑划分产生逻辑卷,然后在建立文件系统,再形成共享目录
  • 共享目录:虚拟机的磁盘对应一个一个的文件或文件夹(前面讲到虚拟机就是把物理机变成一个文件夹或文件)
共享目录格式 解释
qcow QEMU模拟出来的格式(KVM格式下)
raw 各大厂商通用格式
vmdk VMware下的格式
vhd HUAWEI的磁盘文件格式
  • 虚拟机的磁盘:可存储数据

优势:

优势 支持高级特性多(快照等)
劣势 性能下降

非虚拟化存储(从下往上看)

  • 底层硬件:物理硬盘

  • 直接进行逻辑划分,产生逻辑卷,逻辑卷直接挂载给计算集群给虚拟机使用。

  • 分布式存储:变成分布式存储池,再进行逻辑划分,形成逻辑卷

虚拟化和非虚拟化存储的区别:

需不需要文件系统。虚拟化需要建立文件系统,非虚拟化不需要。

接下来我们按照架构图,一个部分一个部分详细的介绍。

常见的物理磁盘类型

机械硬盘(hard disk drive,HDD)

机械硬盘(hard disk drive,HDD)的历史始于1956年,由IBM公司发明,它拥有50个24英寸的盘片,重量约1吨,容量为5MB。1973年,IBM公司研制成功了一种新型的硬盘IBM 3340。这种硬盘拥有几个同轴的金属盘片,盘片上涂着磁性材料。它们与可以移动的磁头共同密封在一个盒子里,磁头能从旋转的盘面上读取磁信号的变化。这就是我们今天使用的与硬盘最接近的祖先,IBM把它叫作温切斯特硬盘。
11111

工作原理

硬盘的读取速度在当时受到硬盘转速的限制。提高转速可以加快存取数据的速度,但是硬盘的磁头和盘片是相互接触的,过高的转速会导致磁盘损坏,于是技术人员想到让磁头在盘片上方“飞行”。盘片高速旋转会产生流动的风,因此只要磁头的形状合适,它就能像飞机一样在磁盘表面飞行,盘片就能很快的旋转而不必担心摩擦会造成故障,这就是温切斯特技术。
温切斯特硬盘采用了创新的技术,磁头被固定在一个能沿盘片径向运动的臂上,磁头并不与盘片接触。当磁头与盘片相对运动时,磁头能感应到盘片表面的磁极,并记录或改变磁极的状态来完成数据的读写。由于磁头相对于盘片高速运动,并且二者距离很近,这时哪怕是一点点灰尘也会造成磁盘的损坏,因此硬盘需要封装在一个密封的盒子里,来保持一个清洁的内部环境,确保磁头和盘片能高效可靠地工作。
在现代的计算机系统中,常见的存储介质有硬盘、光盘、磁带、固态硬盘等,硬盘容量大,价格低廉、读取速度可观、可靠性高,有着其它介质无法代替的作用,仍然被人们认为是重要的存储设备。
我们通常说的硬盘主要是指机械硬盘,它主要由盘片和主轴组件、浮动磁头组件、磁头驱动机构、前驱控制电路和接口等组成,如下图
- 11111

  • 盘片和主轴组件。盘片和主轴组件是两个紧密相连的部分,盘片是一个圆形的薄片,上面涂了一层磁性材料用以记录数据。主轴由主轴电机驱动,带动盘片高速旋转。
  • 浮动磁头组件。浮动磁头组件由读写磁头、传动手臂和传动轴三部分组成。在盘片高速旋转时,传动手臂以传动轴为圆心带动前端的读写磁头在盘片旋转的垂直方向上移动,磁头感应盘片上的磁信号来读取或改变磁性涂料的磁性,以达到写入信息的目的。
  • 磁盘驱动机构。由磁头驱动小车、电机和防震机构组成,其作用是对磁头进行驱动和高精度的定位,使磁头能迅速、准确地在指定的磁道上进行读写工作。
  • 前驱控制电路。前驱控制电路是密封在屏蔽腔体内的放大线路,主要作用是控制磁头的感应信号、主轴电机调速、驱动磁头和磁头定位等。
  • 接口。通常包含电源接口与数据传输接口。目前主流的接口类型有SATA和SAS,稍后会详细介绍。

硬盘内部用于存储数据的盘片,是一张表面涂有磁性材料的金属圆盘。盘片表面被划分出一圈圈磁道,当盘片在马达的驱动下高速旋转时,设置在盘片表面的磁头便受到精确的控制,沿着磁道读取和写入数据。当系统向硬盘写入数据时,磁头中便产生随着数据内容而变化的电流,这股电流会产生磁场,使盘片表面磁性物质的状态改变,并且这一状态在电流磁场消失后仍能持久地保持下来,这就相当于是将数据保存了下来。当系统从硬盘中读取数据时,磁头经过盘片指定区域,盘片表面的磁场使磁头产生感应电流或线圈阻抗产生变化,这一变化被捕捉下来,经过一定的处理,便能够还原出原本写入的数据。

SATA盘

早些年电脑配的都时这种硬盘,现在一般性能好的都配SSD,要么就是SSD做系统盘+SATA做数据盘。
SATA,即串行ATA(serial ATA),ATA(advanced technology attachment)。又叫串口硬盘。
ATA接口实际上就是我们常说的IDE(integrated drive electronics)接口
SATA接口
优点

  • 价格低:1T:¥200-300
  • 兼容性好
  • 支持热插拔,即插即用
  • 更强的纠错能力:数据传输出现错误,能自动纠正

缺点

  • 体积大,重量重
  • 速度慢:最快的7200转(玩游戏:吃鸡,刚跳伞地图画面加载不出来,就是硬盘读取地图数据太慢)7200转噪声大,一般笔记本5400转
  • 易损坏:因为是机械结构,而且是磁结构。一定程度的碰撞、敲击就会使磁盘损坏。
  • 磁盘碎片:使用久了会产生磁盘碎片占用硬盘空间。

SAS接口硬盘

由于SATA硬盘的接口扩展性差,性能低。为了改善存储系统的效能、可用性、可扩展性。于是有了SAS接口硬盘。

SAS(serial attached SCSI),即串行连接SCSI(small computer system interface,小型计算机系统接口)。与SATA类似,SAS也是从对应的并行SCSI技术发展而来。
SAS接口
优点

  • 速度较快:转速最大支持15000转
  • 接口更加灵活(更小)
  • 向下兼容SATA(SAS接口可以与SATA硬盘相连)

缺点

  • 价格较SATA贵
  • 硬盘容量比SAS小
  • 噪音大:因为15000转,所以SAS盘一般用于企业、数据中心等。

NL-SAS接口硬盘

SAS接口硬盘的读写速度要优于SATA硬盘,但是价格也相对要高一些,同时SAS硬盘的容量一般会比SATA小,那有没有一种办法,既要便宜又要存储效能高呢。

所以就产生了NL-SAS硬盘,它是用SAS接口和SATA级盘体组成的硬盘。
NL-SAS全称为“near line SAS”,是一种介于SATA和SAS之间的硬盘。

NL-SAS的IOPS相比15000转速的SAS硬盘差了近一半(7200转),但是从整个RAID的运行情况来看,其性能与SATA硬盘相比有明显的提升,而且NL-SAS硬盘有SATA盘的容量和价格,SAS硬盘的可靠性,因此NL-SAS在市场上很受欢迎。

上面三种硬盘都是用磁技术的。可以叫做磁盘。

固态硬盘

历史

世界上第一款固态硬盘(Solid State Drive,SSD)出现于1989年。当时价格很贵,但是性能很高。所以没有广泛应用。但由于固态硬盘独有的抗震、静音、低功耗等特性,却能应用于非常特殊的市场,如医疗工作以及军用市场,因此在这些领域,固态硬盘得到了一定程度的发展。
随着固态硬盘技术的日趋成熟、制造工艺的提升、生产成本的降低,它开始逐渐进入消费领域。2006年,三星发布了第一款带有32GB固态硬盘的笔记本电脑。2007年初,SanDisk发布了两款32GB的固态硬盘产品。

目前,固态硬盘已经成为很日常的一个东西。价格趋于平稳,大家都买得起。256G大概在300元左右。目前主流的个人电脑都会配置SSD。M.2接口SSD
优点

  • 速度快:民用最快的(三星970EVOPLUS,读写:3500MB/S左右)(可以查看价格)(少了驱动磁盘、马达的时间)(用闪存颗粒存储)
  • 体积小、重量轻
  • 功耗小:机械磁盘需要额外电力驱动机械结构(SATA:5V)
  • 抗震:没有机械结构
  • 静音
  • 温度范围:-45℃~85℃

缺点

  • 贵:对数据传输速率不敏感的地方没有必要用。
  • 寿命短:一般高性能的闪存可以擦除1万~10万次,普通消费级的闪存只能擦除3千~3万次。随着制造工艺的不断提升,存储单元的尺寸越做越小,闪存的最大擦除次数还将进一步降低。好在通常情况下,固态硬盘的主控芯片都具有平衡芯片损耗的功能,可以使存储芯片更加均匀地被消耗,从而提高使用寿命。

工作原理

固态硬盘由主控芯片、存储芯片构成。存储芯片负责存放数据,主控芯片则控制数据的读/写过程协调。存储芯片按介质分为两种,最常见的一种是采用闪存(Flash芯片)作为存储介质,另一种是采用动态随机存取存储器(DRAM)作为存储介质。

  1. 基于闪存的固态硬盘

最为常见的固态硬盘采用闪存芯片作为存储介质。闪存芯片根据使用方式不同,可以被制作成多种电子产品,如固态硬盘、存储卡、U盘等,这些设备都具有体积小、便携性高等特点。本章节所讨论的固态硬盘,都是基于闪存的固态硬盘。

  1. 基于DRAM的固态硬盘 (全内存硬盘)

这一类固态硬盘采用DRAM(动态随机存取存储器)作为存储介质。这种存储介质目前广泛应用于内存,性能非常好,而且使用寿命很长。美中不足的是,它只有在供电状态下才能保存数据,一旦失去供电,DRAM存储的信息就会丢失,因此它需要额外的电源来保护。目前这类固态硬盘价格很高,应用范围较窄。

各类硬盘对比

固态硬盘 SAS NL-SAS SATA
性能 非常高 较高 较高
可靠性 一般 较高 一般
价格 很高 较便宜 便宜
能耗 一般 较低 较低
推荐场景 适合数据访问非常大的用户使用 适合数据较为离散的高中端用户使用 适合较大数据块、业务I/O压力不大的用户使用 适合大数据块、业务压力不大的用户使用

总结

磁盘类型 连接方式 优势 劣势
SATA (Serial ATA) (Serial Advanced Technology Attachment) 串行连接方式 便宜 容量大 自动矫正,很大程度提高了数据传输的可靠性 结构简单 可热插拔 速度慢,最大支持7200转
SAS (Serial Attcached SCSI) 串行连接方式 双端口 改善存储系统的效能 可用性、扩展性提高 接口技术能向下兼容SATA(NL-SAS) 速度较慢,支持15000转、 很吵
NL-SAS 串行连接方式 采用SAS的磁盘接口和SATA的盘体的综合体 由于使用SAS所以寻址和舒服上有提升 转速只有7200 性能比SAS差比SATA好
SSD (Solid State Disk) 采用固态电子存储芯片阵列,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成,读写速度快 耐摔、不易坏 质量轻 能耗低 体积小 使用寿命短 价格高

集中式存储和分布式存储

集中式存储简介

所谓集中式,指的是所有的资源都集中在某一个中心,然后通过统一接口向外提供服务。集中式存储指的是将所有的物理磁盘集中在硬盘框中,然后通过控制器向外提供存储服务,这里的集中式存储主要指的是磁盘阵列。

磁盘阵列将多个磁盘组成一个逻辑上更大的磁盘,当做单一的存储资源来使用。(相当于用一个硬盘框,里面能装很多硬盘,硬盘装进去之后把多块硬盘看成逻辑上的一块硬盘)

磁盘阵列包括了控制框和硬盘框两大部分。控制框与硬盘框两者有机结合共同为用户提供一个高可用、高性能和大容量的智能化存储空间。

上面说了集中式存储是将多块独立的硬盘组合起来,形成逻辑硬盘,物理上用硬盘框,线连在一起。那怎么形成逻辑硬盘呢?

RAID机制

集中式存储把所有的磁盘集中到硬盘框,使用控制框进行统一控制,可以实现存储容量的动态扩展,同时增强系统的容错能力,提高存储系统的读写性能,而用到的技术就是RAID机制。(将多块独立的硬盘,组合起来形成逻辑磁盘(磁盘组、物理卷、卷组))

RIAD全称是Redundant Arrays of Independent Disks,冗余磁盘阵列。
特点 方式
高效 多块磁盘并行读写
安全 奇偶校验、热备技术

RAID技术经过不断的发展,现在已拥有了RAID-0~RAID-6 共7种基本的RAID级别。另外,还有一些基本RAID级别的组合形式,如RAID-10(RAID-1与RAID-0的组合)、RAID-50(RAID-5与RAID-0的组合)等。不同RAID级别代表不同的存储性能、数据安全性和存储成本。这里我们只介绍RAID0、RAID1、RAID5和RAID6。
RAID

RAID0

RAID-0也称为条带化(stripe),其原理是将多个物理磁盘合并成一个大的逻辑磁盘,它代表了所有RAID级别中最高的存储性能,不具有冗余,不能并行I/O,但速度最快。在存放数据时,根据构建RAID-0的磁盘个数对数据进行分段,然后同时将这些数据并行写进磁盘中,因此在所有级别中,RAID-0的速度是最快的。但是RAID-0没有冗余功能,如果一个物理磁盘损坏,则所有的数据都会丢失。

如图中有Disk 1和Disk 2两个磁盘,RAID-0的做法是将要储存的内容(D1,D2……)根据磁盘数目分成两部分同时储存。D1和D2分别储存到Disk 1和Disk 2中,等D1储存完成后,开始将D3储存进Disk 1中,其余数据块同理。这样可以将两个磁盘看成一个大磁盘,并且两侧同时进行 I/O。

有个大胆的想法:居然RAID0能提高读写速度,我拿一百块SATA来做RAID0,速度不是比SSD还要快

从理论上讲,磁盘个数和总磁盘性能应该成倍数关系,总磁盘性能等于“单一磁盘性能×磁盘数”。但实际上受限于总线I/O瓶颈及其它因素的影响,RAID性能随磁盘个数的增加不再是倍数关系,也就是说,假设一个磁盘的性能是50MB/s,两个磁盘的RAID-0性能约为96MB/s,3个磁盘的RAID-0也许是130MB/s而不是150MB/s,所以两个磁盘的RAID-0最能明显感受到性能的提升。

RAID-0的读写性能较好,但是没有数据冗余,如果某块数据坏掉,整个数据就会丢失。因此RAID-0适用于对数据访问具有容错能力的应用,以及能够通过其它途径重新形成数据的应用,如Web应用以及流媒体。

RAID1

RAID-1又称为Mirror或Mirroring(镜像),其目的是最大限度地保证用户数据的可用性和可修复性。RAID-1的原理是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。

RAID-1在主硬盘上存放数据的同时,也在镜像硬盘上写同样的数据。当主硬盘损坏时,镜像硬盘代替主硬盘的工作。因为有镜像硬盘做数据备份,所以RAID-1的数据安全性是所有 RAID级别中最好的。但是无论用多少磁盘做RAID-1,有效数据空间大小仅为单个磁盘容量,是所有RAID级别中磁盘利用率最低的一个。

RAID-1是所有RAID级别中单位存储成本最高的,但因其提供了几乎最高的数据安全性和可用性,所以RAID-1适用于读操作密集的OLTP以及其它要求数据具有较高读写性能和可靠性的应用,如电子邮件、操作系统、应用程序文件和随机存取环境等。

总结

最安全、但是磁盘利用率最低

RAID5

RAID-5是高级RAID系统中最常见的一种RAID级别,由于其出色的性能与数据冗余平衡设计而被广泛采用。其全名为“独立的数据磁盘与分布式校验块”。RIAD使用的是奇偶校验来进行校验和纠错。

RAID5数据存储方式如图中以三个硬盘为例,P为数据的校验值,D为真实的数据。RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且数据和相对应的奇偶校验信息分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息可以恢复被损坏的数据。因此,RAID-5是一种存储性能、数据安全和存储成本兼顾的存储解决方案。

RAID-5尽管有一些容量上的损失,但是能够提供最佳的整体性能,因而也是被广泛应用的一种数据保护方案。它适合于I/O密集、高读/写比率的应用,如联机事务处理等。

总结

数据安全性高。
RAID5坏两块硬盘就无法恢复数据。

RAID6

RAID-6是为了进一步加强数据保护而设计的一种RAID方式,与RAID-5相比,RAID-6增加了第二种独立的奇偶校验信息块。这样一来,等于每个数据块都有两个校验保护屏障(一个分层校验,一个是总体校验),因此RAID-6的数据冗余性能非常好。但是,由于增加了一个校验,所以写入的效率较RAID-5差,而且控制系统的设计也更为复杂,第二块的校验区也减少了有效存储空间。

常见的RAID-6技术有P+Q和DP两种,这两种技术获取校验信息的方法不同,但是都可以允许整个阵列中两块磁盘数据丢失。

优点

  • 安全性更高:两种奇偶校验值(双重保障)

缺点

  • 控制器的设计较为复杂
  • 写入速度不高:(计算校验信息和验证数据正确性所花的时间较多,写操作时都要进行两次独立校验计算)
  • 系统负载较重:两次独立校验计算
  • 磁盘利用率比RAID5低
  • 配置更为复杂

总结

适合用于对数据准确性、完整性要求更高的环境。
RAID6坏掉三块硬盘就无法恢复数据

总结

类型 方式 特点
RAID 0 将数据分成两份,两块磁盘并行读写 高效 没有安全机制
RAID 1 将数据备份,分别在两块磁盘写入 安全 不高效
RAID 5 将数据均匀分布 安全、高效 允许坏一块盘,可将数据恢复过来 数据利用率低(2/3)
RAID 6 更安全、高效 允许坏2块盘,安全级别更高 利用率低
可组合 RAID 0+RAID 1=RAID 10 同时拥有两种机制特点

集中式存储类型

集中式存储按照技术架构分为SAN、NAS

名称 中文名称 区别1 区别2
nas存储 网络附属存储 不能用作非虚拟化存储 已有文件系统,在主机上看到的是目录
san存储 储存区域网络 可用 向上提供的是裸设备,相当于什么都没有的磁盘

最主要的区别:有无文件系统

SAN

SAN又可以细分为FCSAN、IPSAN、FCoESAN。目前FCSAN和IPSAN技术都比较成熟,FCoESAN目前还处于发展初期。

SAN简介

存储区域网络(Storage area network,SAN)是一种独立于业务网络系统之外,以块级数据为其基本访问单位的高速存储专用网络。

SAN是一种将存储设备、连接设备和接口集成在一个高速网络中的技术。SAN本身就是一个存储网络,承担了数据存储任务,SAN网络与LAN业务网络相隔离,存储数据流不会占用业务网络带宽。

这种网络的主要实现形式有光纤通道存储区域网络(FC-SAN)IP存储区域网络(IP-SAN)和SAS存储区域网络(SAS-SAN)。不同的实现形式分别采用不同的通信协议和连接方式在服务器和存储设备之间传输数据、命令和状态。这里我们主要介绍一下FC-SAN、IP-SAN。

早期的SAN采用的是光纤通道(FC,Fibre Channel)技术,所以,以前的SAN多指采用光纤通道的存储局域网络,到了iSCSI协议出现以后,为了区分,业界就把SAN分为FC-SAN和IP-SAN。
SAN

FC-SAN

在FC-SAN中,存储服务器上通常配置两个网络接口适配器:一个用于连接业务IP网络的普通网卡(network interface card,NIC),服务器通过该网卡与客户机交互;另一个网络接口适配器是与FC-SAN连接的主机总线适配器(hoat bus adaptor,HBA),服务器通过该适配器与FC-SAN中的存储设备通信。

IP-SAN

IP-SAN是近年来十分流行的一种网络存储技术。在早期的SAN环境中,数据以块为基本访问单位在光纤通道中传播,即早期的SAN都是 FC-SAN。由于 FC 协议与 IP 协议不兼容,要实现FC-SAN,必须单独采购部署FC-SAN的设备和组件,其高昂的价格、复杂的配置也让众多中小用户望而却步。因此,FC-SAN主要应用于对性能、冗余度和可用性等都有较高要求的中高端存储需求。
为了提高SAN的普及程度和应用范围,并充分利用SAN本身所具备的架构优势,SAN的发展方向开始考虑与已经普及并且相对廉价的IP网络进行融合。因此,使用已有IP网络构架的IP-SAN应运而生,IP-SAN是标准的TCP/IP协议和SCSI指令集相结合的产物,是基于IP网络来实现块级数据存储的方式。

IP-SAN与FC-SAN的区别在于传输协议和传输介质不同。常见的IP-SAN协议有iSCSI、FCIP、iFCP等,其中,iSCSI是发展最快的协议标准,平时我们所说的IP-SAN是指基于iSCSI协议的SAN。

对比FC-SAN,IP-SAN主要有以下几方面的优点:

  • 接入标准化。不需要专用的HBA卡和光纤交换机,只需要普通的以太网卡和以太网交换机就可以实现存储和服务器的连接。
  • 传输距离远。理论上只要是IP网络可达的地方,就可以使用IP-SAN,而IP网络是目前地球上应用最为广泛的网络。
  • 可维护性好。大部分网络维护人员都有IP网络基础,IP-SAN自然比FC-SAN更容易被人接受。另一方面,IP网络维护工具已经非常发达,IP-SAN充分发扬了拿来主义。
  • 后续带宽扩展方便。因为iSCSI是承载于以太网的,随着10GB以太网的迅速发展,IP-SAN单端口带宽扩展到10GB已经是发展的必然。

这些优势使得产品的总体拥有成本(TCO)降低,比如建设一个存储系统,总体拥有成本包括需要购买磁盘阵列、接入设备(HBA 和交换机)、人员培训、日常维护、后续扩容、容灾扩展等。IP-SAN因为IP网络的广泛应用优势,可以大幅降低单次采购的接入设备采购成本、减少维护成本,而且后续扩容和网络扩展成本也大幅降低。

IP-SAN和FC-SAN其它方面的对比如下表:

描述 IP SAN FC SAN
网络速度 1Gb、10Gb、40Gb 4Gb、8Gb、16Gb
网络架构 使用现有IP网络 单独建设光纤网络和HBA卡
传输距离 理论上没有距离限制 受到光纤传输距离的限制
管理、维护 与IP设备一样操作简单 技术和管理较复杂
兼容性 与所有IP网络设备都兼容 兼容性差
性能 目前主流1Gb,10Gb正在发展 非常高的传输和读写性能
成本 购买与维护成本都较低 购买(光纤交换机、HBA卡、光纤磁盘阵列等)与维护(培训人员、系统设置与监测等)成本高
容灾 本身可以实现本地和异地容灾,且成本低 容灾的硬件、软件成本高
安全性 较低 较高

NAS

NAS(Network Attached Storage:网络附属存储)按字面简单说就是连接在网络上,具备资料存储功能的装置,因此也称为“网络存储器”。它是一种专用数据存储服务器。它以数据为中心,将存储设备与服务器彻底分离,集中管理数据,从而释放带宽、提高性能、降低总拥有成本、保护投资。其成本远远低于使用服务器存储,而效率却远远高于后者。

NAS架构

NAS设备支持对公用互联网文件系统(common internet file system,CIFS)或网络文件系统(network file system,NFS)进行读写,也支持同时对两者进行读写。

CIFS

CIFS(Common Internet File System)是由微软的SMB(Server Message Block)发展而来的一个公共、开放的文件系统。SMB是微软基于NetBIOS设定的一套文件共享协议。通过 CIFS,用户可以访问远程计算机上的数据。此外,CIFS提供了一定的机制来避免读写冲突与写写冲突,从而支持多用户访问。

NFS

NFS(Network File System)是由Sun公司开发的,NFS使用户能够共享文件,它的设计是为了在不同的系统之间使用,所以其通信协议设计与主机及作业系统无关。当用户想用远程文件时,只需要使用挂载命令,就可把远程的文件系统挂载在自己的文件系统之下,使用远程文件和使用本机的文件没有什么区别。

NFS与平台无关的文件共享机制是基于XDR/RPC协议实现的。

CIFS NFS
传输特点 基于网络,可靠性要求高 独立传输
易用性 无需额外软件 需要安装专用软件
安全性 无法进行错误恢复 可以进行错误恢复
文件转换 不保留文件格式特性 保留文件格式特性

分布式存储和副本机制

分布式存储

集中式存储是将买来的硬盘集中起来,然后再做逻辑化的处理。

分布式存储技术并不是将数据存储在某个或多个特定的节点上,而是通过网络将企业每台机器上的磁盘空间集中起来,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散地存储在企业的各个角落。(购买服务器,服务器上可以有很多的磁盘,但是实际使用中,用不到这么多磁盘。避免浪费,把服务器上不用的磁盘提出来(不是物理的拿出来),组成一个资源池。

分布式存储使用的设备一般是普通服务器,而非存储设备。分布式存储没有控制框和硬盘框,所有的硬盘存储资源都来自于通用的x86架构服务器,对硬盘的识别和管理都需要分布式存储本身提供的客户端,这些客户端负责数据路由的建立、I/O读写的执行等等。

分布式存储的资源来自于各个主机(服务器),然后将资源整合和分布式存储池,再为各个主机所用。

优劣势

采用分布式存储客户端的方式,既有优势,也有一定的劣势。首先在扩容方面,只要给x86架构服务器安装了客户端,它就可以成为分布式存储的一份子,所以这种方式有极大的可扩展性;但是,除了服务器本身所承载的应用外,安装在服务器上的客户端软件也需要一定的计算资源,因此在规划分布式存储时,需要在提供存储资源的服务器上预留一定的计算资源,所以这种方式对服务器的硬件资源有一定的要求;最后,在传统的集中式存储中,I/O读写都是通过控制器来完成,然而控制器的数量有限,在分布式存储中,安装了客户端的服务器可以进行I/O读写,从而可以突破传统集中式存储控制器数量的限制,在一定程度上也能提高I/O读写速度,但是每次读写时都需要计算数据读写的路径,如果客户端太多的话,计算路径就会比较复杂,因此客户端并不是越多越好,达到性能最优时,增加客户端的数量是无法继续提升性能的。

副本机制

做副本机制之后才形成分布式存储池

副本机制
如图
数据写入:在数据写入时,首先数据先到分布式存储池,然后在下放到物理磁盘的过程中,复制成三份(三副本机制。两份就为两副本机制),每份数据保存在不同的硬盘上。三副本机制下三个物理硬盘才能提供一个物理硬盘的空间。这样就造成了空间浪费的问题。

数据读取:不是读三分数据。只会读一份数据,然后把数据返回给客户端。如何优先读的数据坏掉了。才会读剩下的两份数据。

分布式存储为什么不用RAID机制

为了保证数据的高可用性和安全性,集中式存储使用的是RAID技术,RAID可以通过硬件和软件的方式来实现,无论是软RAID或者硬RAID,所有的硬盘都需要在一个服务器内(硬RAID需要统一RAID卡,软RAID需要统一操作系统)。
由于分布式存储的硬盘分布在不同的服务器上,所以无法再使用RAID机制。因此,分布式存储是通过副本机制来实现数据的高可靠性的。副本机制是指将数据复制成多份一模一样的内容,并分别保存在不同的服务器上,当某台服务器出现故障后,数据并不会丢失。

常见分布式存储产品

  • Ceph
  • hadoop HDFS
  • 华为 FusionStorage
  • Vmware vSAN

虚拟化存储和非虚拟化存储

我们这里讲的存储虚拟化是狭义的虚拟化,仅指集群是否有文件系统,如果有即为虚拟化存储,如果没有即为非虚拟化存储。这里的文件系统可以是NFS文件系统,也可以是虚拟化集群的文件系统。如果没有文件系统,虚拟化集群需要直接调动逻辑卷使用。

云计算中虚拟化存储转换路径

云计算中虚拟化存储转换路径

云计算中非虚拟化存储转换路径

云计算中非虚拟化存储转换路径
区别

是否带有文件系统
非虚拟化的文件系统由操作系统提供。(格式化)

前面我们讲了最底层的物理磁盘以及由物理磁盘组成的集中式存储和分布式存储,无论是集中式存储,还是分布式存储,使用RAID或副本机制后,会形成一个物理卷,但大多数情况下都不会把整个物理卷挂载给上层的应用(操作系统或者虚拟化系统,此处我们单指虚拟化系统)使用。因为如果把挂载整个物理卷后,上层应用会格式化所有空间,存储空间使用完后,虽然可以通过添加硬盘的方式进行扩容,但是扩容后需要重新格式化,数据可能丢失。所以,一般会将物理卷组成卷组,然后再将卷组划分成多个逻辑卷,上层应用使用逻辑卷的空间。

在云计算中,虚拟化程序会对逻辑卷进行格式化,各个厂商的虚拟化文件系统各不相同,VMware使用的是VMFS(Virtual Machine File System),华为使用的是VIMS(Virtual Image Manage System),它们都属于高性能的集群文件系统,可以使虚拟化超出单个系统的限制,让多个计算节点同时访问一个整合后的集群式存储池。计算集群的文件系统可以保证某台服务器或某个应用软件不会完全控制对文件系统的访问。

RAID与LUN的关系

RAID

相当于有多个硬盘组成一个大的物理卷
物理卷是没办法直接给虚拟机使用的,要做逻辑化

LUN

逻辑划分之后生成的单元叫:LUN(Logical Unit Number):逻辑单元

虚拟化程序使用的最小存储单位为LUN,而与LUN对应的是卷Volume,卷是存储系统内部的管理对象,LUN是Volume的对外体现。LUN和卷都是从一个资源池(Pool)中划分出来的。
创建LUN的过程

常见文件系统

虚拟化存储和非虚拟化存储的最大区别是否带有文件系统。这里的文件系统指的是:虚拟化集群文件系统
常见文件系统
除了虚拟化集群文件系统还有其他的文件系统:

  • NAS存储文件系统、NFS、CIFS

操作系统文件系统:(最常见的)

  • WINDOWS:NTFS、FAT32
  • Linux:Ext3、Ext4
  • UNIX:UFS

文件系统作用

文件系统是大量文件的分层组织结构,操作系统有了文件系统后,我们看到的数据才能以文件或文件夹的形式体现,才可以随时地复制、粘贴、删除和恢复。文件系统使用目录的方式把数据组织成分层结构,目录就是保存文件指针的地方。所有的文件系统都要维护这个目录,操作系统只维护本机的目录,而集群需要维护NAS或者集群文件系统形成的共享目录。

如下图,描述了操作系统文件系统的工作过程:
文件映射过程

  1. 首先,用户或者应用程序创建了文件或文件夹;
  2. 第二,这些文件或文件夹会被保存在文件系统上;
  3. 第三,文件系统将这些文件对应的数据映射到文件系统块上;
  4. 第四,文件系统块与由逻辑卷形成的逻辑区域进行对应;
  5. 第五,通过操作系统或LVM将逻辑区域映射到物理磁盘的物理区域,也就是我们前面讲过的逻辑卷与物理卷的对应;
  6. 最后,物理区域所对应的物理卷可能会包含一块或多块物理磁盘。

移动文件的时候其实不是对文件在磁盘的位置进行修改。修改的只是文件在映射的时候映射到那个文件系统块上去了。

有了文件系统就可以实现一些高级特性:快照、热迁移、HA等(下一篇文章介绍)

虚拟机磁盘介绍

底层的硬件进行逻辑划分,挂载给计算集群,就可以使用了。虚拟机使用的时候也会形成一个一个的虚拟磁盘。

前面我们在讲虚拟化本质时讲过,虚拟机是由两部分组成的——配置文件和磁盘文件,每个虚拟机磁盘会对应一个磁盘文件,用来保存用户真实的数据。

如果使用虚拟化存储,所有的磁盘文件都会以文件的形式存放到文件系统形成的共享目录中,如果使用非虚拟化存储,每个磁盘文件对应一个LUN。无论是文件还是LUN,从用户和操作系统视角来看,它与普通硬盘一样,在系统的“硬件资源”中看到的都是一个硬盘。对管理员来说,创建虚拟机时需要同时为虚拟机创建磁盘来保存数据,磁盘文件在虚拟机配置文件中对应的是几行配置信息。

与其它文件一样,虚拟机磁盘文件也有自己的固定格式,常见的虚拟机磁盘格式如下:

虚拟机磁盘文件格式 支持的厂商
RAW 各厂商通用
VMDK VMware
VHD 微软Hyper-V、华为FusionCompute
QCOW QEMU或KVM虚拟化平台专用的格式
QED QEMU或KVM虚拟化平台专用的格式
VDI Oracle

各厂商都有自己的虚拟机磁盘格式转换工具,可以将其它的格式转换成自己产品可用的格式,例如,华为的Rainbow可将第三方或者开源的虚拟机磁盘格式转换成VHD格式。

华为虚拟化产品的存储特性

华为虚拟化产品存储架构

华为虚拟化产品存储架构

FusionCompute使用的存储资源可以来自本地磁盘或专用的存储设备。专用的存储设备与主机之间应通过网线或光纤进行连接。
数据存储:是FusionCompute对存储资源中的存储单元进行的统一封装。存储资源封装成数据存储并与主机关联后,能进一步创建成若干个虚拟磁盘,供虚拟机使用。
能够封装为数据存储的存储单元包括:

  • SAN存储(包括iSCSI或光纤通道的SAN存储)上划分的LUN。
  • NAS存储上划分的文件系统。
  • FusionStorage Block上的存储池。
  • 主机的本地硬盘(虚拟化)

存储设备:这些存储单元在华为FusionCompute中统称为“存储设备”,而向虚拟化提供存储空间的物理存储介质被称为“存储资源”

存储资源:FusionStorage Block、SAN/NAS

数据存储可以是虚拟化或非虚拟化的,也可以将SAN存储上的LUN直接作为数据存储,供虚拟机使用,而不再创建虚拟磁盘,此过程称为裸设备映射。
裸设备映射目前仅支持部分操作系统的虚拟机,适用于搭建数据库服务器等对磁盘空间要求较大的场景。

华为虚拟机磁盘特性

添加完数据存储后,就可以为虚拟机创建虚拟磁盘了。根据不同用户对虚拟机磁盘的不同需求,比如要求共享同一个虚拟机磁盘,也可能要求尽可能地节省更多的物理空间等。华为虚拟机磁盘可分为以下几种:

按照类型分类

可将虚拟机磁盘分为普通和共享:
  • 普通:普通磁盘只能提供给单个虚拟机使用。
  • 共享:共享磁盘可以绑定给多个虚拟机使用。

注意:多个虚拟机使用同一个共享磁盘时,如果同时写入数据,有可能会导致数据丢失。若使用共享磁盘,需要通过应用软件来保证对磁盘的访问控制。

根据配置模式分类

可将虚拟机磁盘分为普通、精简和普通延迟置零:

普通和精简举例:借钱(普通:借100万你直接给100万。精简:借100万,你说用多少给多少,不够再拿)

普通:

  • 简单解释:分配80G就是直接给80G
  • 正经解释:该模式下,磁盘分配空间即为磁盘容量,在创建过程中会将物理设备上保留的数据置零。
  • 优点:性能好,读写速度快。
  • 缺点:创建时花费时间多、需要磁盘容量大。

精简:

  • 简单解释:分配80G,用多少给多少,总量80G
  • 正经解释:该模式下,系统首次仅分配磁盘容量设置值的一部分,后续根据使用情况,逐步进行分配,直到分配总量达到磁盘容量配置值为止。同时,在此模式下,数据存储支持超分配,但是建议超分配的比例不超过50%,即假设“总容量”为100G,“已分配容量”建议不要超过150G。同理,如果发现“已分配容量”大于“实际容量”,则表示该磁盘模式为精简。
  • 优点:创建快、占用空间小、
  • 缺点:性能差,读写速度慢。

普通延迟置零:

  • 该模式下,磁盘容量即为磁盘分配空间,但创建时不会擦除物理设备上保留的任何数据,而从虚拟机首次执行写操作时开始会按需将其置零。
  • 优劣势:其创建速度比“普通”模式快;I/O性能介于“普通”和“精简”两种模式之间。这种磁盘的配置模式只支持数据存储类型为“虚拟化本地硬盘”或“虚拟化SAN存储”。

根据磁盘模式分类

可将虚拟机磁盘分为从属、独立-持久和独立-非持久:

从属和独立的最大区别:会不会受快照影响

从属:

  • 快照中包含该磁盘,更改将立即并永久写入磁盘。

独立-持久

  • 更改将立即并永久写入磁盘,持久磁盘不受快照影响。

独立-非持久

  • 关闭电源或恢复快照后,丢弃对该磁盘的更改。

比喻:持久:刻在岩石上,非持久:可在沙滩上

磁盘类型和配置模式一旦设定后就不支持更改,而磁盘模式设定后还可以相互转换。

发布了4 篇原创文章 · 获赞 11 · 访问量 224

猜你喜欢

转载自blog.csdn.net/qq_46254436/article/details/104592772