1. 磁盘原理与技术详解

1.1. 磁盘

  1. 磁盘 : 磁盘被逻辑划分为磁道、柱面以及扇区。

  2. 盘面 : 磁盘每一个盘片都有两个盘面 , 即上、下盘面 , 每个盘面都能利用 , 都可以存储数据 , 成为有效盘片 , 按从上到下的顺序从0开始依次编号 , 盘面号又叫磁头号。

  3. 磁道 : 磁盘在格式化时被划分为许多同心圆 , 这些同心圆轨迹叫做磁道。磁道从最外圈向内圈从0开始顺序编号。

  4. 扇区 : 磁道不是连续记录数据的 , 而是被划分成一段段的圆弧 , 这些圆弧角速度一样。每段圆弧叫做一个扇区 , 扇区从1开始编号 , 每个扇区中的数据作为一个单元同时读出或写入 , 是IO的最小单位。扇区最小的单位是512字节。

  5. 柱面 : 所有盘面上的同一磁道 , 在竖直方向上构成一个圆柱 , 通常称作柱面。每个圆柱上的磁头由下而上从0开始编号。数据的读写是按照柱面进行 , 即磁头读写数据时首先在同一柱面内从0磁道开始进行操作 , 依次向下在同一柱面的不同盘面 ( 即磁头 ) 上进行操作。只有在同一柱面所有的磁头全部读写完毕后磁头才转移到下一柱面 , 因为选取磁头只需要通过电子切换 , 而选取柱面则必须通过机械切换 , 即寻道、换道。

  6. 编址方式 : 柱面、磁头、扇区三者简称CHS , 扇区的地址又称为CHS地址。现在CHS编址方式已经不在使用 , 而转为LBA编址方式。LBA编址方式不再划分柱面和磁头号 , 这些数据由磁盘自身保留 , 而磁盘对外提供的地址全部为线性的地址 , 即LBA地址。所谓线性 , 指的是把磁盘想象成只有一个磁道 , 这个磁道是无限长的直线 , 扇区为这条直线上的等长线段 , 从1开始编号 , 直到无限远。

  7. IO : 磁盘读写的时候都是以扇区为最小寻址单位的 , 也就是说不可能往某个扇区的前半部分写入一段数据 , 每次磁头连续读写的时候 , 只能以扇区为单位。对于磁盘来说 , 一次磁盘的连续读或者写叫做一次IO。

1.2 影响磁盘的指标

  1. 影响磁盘性能的因素 :

    • 转速 : 转速是影响硬盘连续IO时吞吐量性能的首要因素。

    • 寻道速度 : 寻道速度是影响磁盘随机IO性能的首要因素。

    • 单碟容量 : 容量高密度就越大 , 在相同的转速和寻道速度条件下 , 会显示出更高的性能。

    • 接口速度 : 接口速度都已经能满足从磁盘所能达到的最高外部传输带宽。

  2. IOPS : 每秒能进行多少次IO , 每次IO根据写入数据的大小 , 这个值也不是固定的。如果在不频繁换道的情况下 , 每次IO写入很大的一块连续数据 , 则此时每秒所做的IO次数是比较低的。如果磁头频繁换道 , 每次写入数据比较大的话 , 此时IOPS应该是这块硬盘的最低数值。如果在不频繁换道的条件下 , 每次写入最小的数据块 , 比如512字节 , 那么此时的IOPS将是最高值。

1.3 条带化的磁盘

提示 : 一个IO操作 , 控制器是同时对RAID0所有的盘进行读写。控制器首先把每块硬盘要写入或者读取的数据计算好 , 然后由控制器同时驱动所有的硬盘同时进行读写。而不是读写完一个硬盘再读写下一个硬盘 , 请区分。

磁盘上实实在在存在的只有扇区结构 , Stripe并不是一个实实在在的结构 , 它只是由程序根据算法公式现套现用的。另外 , 条带化之后的多块硬盘 , 数据是被并行写入所有磁盘的 , 也就是多管齐下 , 而不是横向写满一个条带 , 再写下一个条带。

1.3.1 条带化

条带 ( strip) 是把连续的数据分割成相同大小的数据块 , 把每段数据分别写入到阵列中的不同磁盘上的方法。简单的说 , 条带是一种将多个磁盘驱动器合并为一个卷的方法。 许多情况下 , 这是通过硬件控制器来完成的。

当多个进程同时访问一个磁盘时 , 可能会出现磁盘冲突。大多数磁盘系统都对访问次数 ( 每秒的 I/O 操作 , IOPS ) 和数据传输率 ( 每秒传输的数据量 , TPS ) 有限制。当达到这些限制时 , 后面需要访问磁盘的进程就需要等待 , 这时就是所谓的磁盘冲突。避免磁盘冲突是优化 I/O性能的一个重要目标 , 而 I/O 性能的优化与其他资源 ( 如CPU和内存 ) 的优化有着很大的区别 , I/O优化最有效的手段是将I/O最大限度的进行平衡。

条带化技术就是一种自动的将I/O的负载均衡到多个物理磁盘上的技术 , 条带化技术就是将一块连续的数据分成很多小部分并把他们分别存储到不同磁盘上去。这就能使多个进程同时访问数据的多个不同部分而不会造成磁盘冲突 , 而且在需要对这种数据进行顺序访问的时候可以获得最大程度上的 I/O 并行能力 , 从而获得非常好的性能。由于条带化在I/O性能问题上的优越表现 , 以致于在应用系统所在的计算环境中的多个层次或平台都涉及到了条带化的技术 , 如操作系统和存储系统这两个层次中都可能使用条带化技术。

条带化后 , 条带卷所能提供的速度比单个盘所能提供的速度要快很多 , 由于现在存储技术成熟 , 大多数系统都采用条带化来实现系统的I/O负载分担 , 如果OSLVM软件或者硬件条带设备 , 决定因素是条带深度(stripe depth)和条带宽度(stripe width)。

条带深度 : 指的是条带的大小 , 也叫条带大小。有时也被叫做block size, chunk size, stripe length 或者 granularity。这个参数指的是写在每块磁盘上的条带数据块的大小。RAID的数据块大小一般在2KB到512KB之间(或者更大) , 其数值是2的次方 , 即2KB,4KB,8KB,16KB这样。 条带大小对性能的影响比条带宽度难以量化的多。

  • 减小条带大小: 由于条带大小减小了,则文件被分成了更多个,更小的数据块。这些数据块会被分散到更多的硬盘上存储,因此提高了传输的性能,但是由于要多次寻找不同的数据块,磁盘定位的性能就下降了。

  • 增加条带大小: 与减小条带大小相反,会降低传输性能,提高定位性能。

条带 : 在磁盘相同偏移处横向逻辑分割 , 形成Stripee , 条带完全是由程序在内存中虚拟出来的 , 说白了就是一个map公式。

段 : 一个Stripee在单个磁盘上的区域叫做段 ( segment )

条带深度 : 一个条带所占用的单块磁盘上的区域 , 条带深度为整数倍的扇区容量。

条带长度 : 一个条带横跨过的扇区或块的个数或字节数 , 就是条带长度。

条带化后的写数据 : 条带化之后的多块硬盘 , 数据是被并行写入所有磁盘的 , 也就是多管齐下 , 而不是横向写满一个条带 , 再写下一个条带。

提示 : 一般文件系统常用的是以4KB为一个块。 如果随机小块IO多 , 则适当加大条带深度 , 如果连续大块IO多 , 则适当减小条带深度。

20200304175015548

1.4 同步IO、异步IO

  • 同步IO : 是指程序的某一个进程或者线程 , 如果某时刻调用了同步IO接口 , 则IO请求发出后 , 这个进程或者线程必须等待IO路径上的下位程序返回的信号 ( 不管是成功收到数据的信号还是失败的信号 ) , 如果不能立刻收到下位的信号。则一直处于等待状态 , 不继续执行后续的代码 , 被操作系统挂起 , 操作系统继续执行其他的进程或线程。

  • 异步IO : 异步IO请求发出后 , 操作系统会继续执行本线程或者进程中后续的代码 , 直到时间片到时或者因其他原因被挂起。异步IO模式下 , 应用程序的响应速度不会受到IO瓶颈的影响 , 即使这个IO很长时间没有完成。虽然应用程序得不到它要的数据 , 但不会影响其他功能的执行。

  • Direct IO: 文件系统都有自己的缓存机制 , 增加缓存就是为了使性能得到优化。而有些应用程序 , 比如数据库程序 , 它们有自己的缓存 , IO在发出之前已经经过自己的缓存算法优化过了 , 如果请求IO达到文件系统这后 , 又被缓存起来进行额外的优化 , 就是多次一举了 , 浪费时间又降低了性能。所以文件系统提供了另外的一种借口 , 就是Direct IO接口 , 调用这种接口的程序 , 其他IO请求、数据请求以及回送的数据将都不被文件系统缓存 , 而是直接进入应用程序的缓存 , 这样提升了性能。

1.5 LUN

人们把硬件层次生成的虚拟磁盘 , 统一称为“LUN” , 不管是不是在SCSI环境下 , 虽然LUN最初只是SCSI体系里面的一个概念。而由软件生成的虚拟磁盘 , 统一称为“卷” , 比如各种卷管理软件、软RAID软件等所生成的虚拟磁盘。

2. RAID技术

2.1 RAID概述

RAID为廉价磁盘冗余阵列( Redundant Array of Inexpensive Disks ) , RAID技术将一个个单独的磁盘以不同的组合方式形成一个逻辑硬盘 , 从而提高了磁盘读取的性能和数据的安全性。不同的组合方式用RAID级别来标识。

RAID技术是由美国加州大学伯克利分校D.A. Patterson教授在1988年提出的 , 作为高性能、高可靠的存储技术 , 在今天已经得到了广泛的应用。

2.2 RAID级别

RAID技术经过不断的发展 , 现在已拥有了从RAID 056种明确标准级别的RAID 级别。另外 , 其他还有6710 ( RAID 1RAID 0的组合 ) 、01 ( RAID 0RAID 1的组合 ) 、30 ( RAID 3RAID 0的组合 ) 、50 ( RAID 0RAID 5的组合 ) 等。

不同RAID 级别代表着不同的存储性能、数据安全性和存储成本 , 下面将介绍如下RAID级别 : 01234560110

2.2.1 RAID0

  • 优点 : IO性能好 , 条带化之后的多块硬盘 , 数据是并行写入所有硬盘的也就是双管齐下 , 而不是横向写满一下条带再写下一个条带。

  • 缺点 : 没有数据冗余及安全保护机制 , 坏某一块盘 , 整个RAID0的数据全部丢失。

  • 适用于 : RAID0应用于对读取性能要求较高但所存储的数据为非重要数据的情况下。

RAID0也称为条带化 (stripe ) , 将数据分成一定的大小顺序的写道阵列的磁盘里 , RAID0可以并行的执行读写操作 , 可以充分利用总线的带宽 , 理论上讲 , 一个由N个磁盘组成的RAID0系统 , 它的读写性能将是单个磁盘读取性能的N倍。且磁盘空间的存储效率最大(100%) RAID0有一个明显的缺点 : 不提供数据冗余保护 , 一旦数据损坏 , 将无法恢复。

image-20250723212218242

如图所示 : 系统向RAID0系统 ( 四个磁盘组成 ) 发出的I/O数据请求被转化为4项操作 , 其中的每一项操作都对应于一块物理硬盘。通过建立RAID 0 , 原先顺序的数据请求被分散到四块硬盘中同时执行。从理论上讲 , 四块硬盘的并行操作使同一时间内磁盘读写速度提升了4倍。 但由于总线带宽等多种因素的影响 , 实际的提升速率会低于理论值 , 但是 , 大量数据并行传输与串行传输比较 , 性能必然大幅提高。

提示 : 一个IO操作 , 控制器是同时对RAID0所有的盘进行读写。控制器首先把每块硬盘要写入或者读取的数据计算好 , 然后由控制器同时驱动所有的硬盘同时进行读写。而不是读写完一个硬盘再读写下一个硬盘 , 请区分。

2.2.2 RAID1

  • 优点 : 数据冗余安全性高 , 一旦数据丢失 , 可利用备份数据及时恢复。

  • 缺点 : 浪费存储空间 , 只能使用50%的空间 , 另外的50%空间用于镜像。对于RAID1的写IO , 速度不但没有提升 , 而且有所下降 , 因为数据要同时向多块物理盘写 , 时间以最慢的那个为准 , 因为是同步的进行。

  • 适用于 : RAID1应用于对数据保护极为重视的应用。

RAID1成为镜像(mirror ) , 它将数据完全一致的分别写到工作磁盘和镜像磁盘 , 因此它的磁盘空间利用率为50% , 在数据写入时时间会有影响 , 但是读的时候没有任何影响 , RAID0提供了最佳的数据保护 , 一旦工作磁盘发生故障 , 系统自动从镜像磁盘读取数据 , 不会影响用户工作。

image-20250723212642981

2.2.3 RAID2

RAID2称为纠错“汗明码 Hamming Code”磁盘阵列 , 阵列中序号为2N的磁盘 ( 第1、2、4、6…… ) 作为校验盘 , 其余的磁盘用于存放数据 , 磁盘数目越多 , 校验盘所占比率越少。RAID2在大数据存储额情况下性能很高 , RAID2的实际应用很少 , 现在早已被淘汰。

2.2.4 RAID3

  • 优点 : 由于RAID3的条带深度很小 , 每次IO总是能牵动所有磁盘为它服务 , 所以对于大块连续的数据读写性能优秀 , 。

  • 缺点 : 由于RAID3的每次IO因为条带深度小必将牵动占用所有盘 , 那么此时其他的并发IO就必须等待 , 所以RAID3根本就不适合用在并发IO环境。而对于随即读写的性能 , RAID3也没有提升 , 和单盘一样 , 甚至不及单盘。

  • 适用于 : RAID3适用于少量的并发IO环境 , 同时每次IO连续读写的大数据的操作。RAID 3适于单一大文件以高数据率进行读写的应用 , 诸如超级计算机和图形图像处理。对于多用户并行发起众多互不相关磁盘操作的应用则不适宜。

按照布尔逻辑 , 数据盘的每一个位之间做XOR ( 与 ) 运算 , 然后将结果写入到校验盘的对应位置。这样 , 任何一块数据盘损坏 , 或者其中的任何一个扇区损坏 , 都可以通过剩余的位和校验位一同进行XOR运算 , 而运算的结果就是这个丢失的位。

RAID3采用一个硬盘作为校验盘 , 其余磁盘作为数据盘 , 数据按位或字节的方式交叉的存取到各个数据盘中。不同磁盘上同一带区的数据做异或校验 , 并把校验值写入到校验盘中。RAID3系统在完整的情况下读取时没有任何性能上的影响 , 读性能与RAID0一致 , 却提供了数据容错能力 , 但是 , 在写时性能大为下降 , 因为每一次写操作 , 即使是改动某个数据盘上的一个数据块 , 也必须根据所有同一带区的数据来重新计算校验值写入到校验盘中 , 一个写操作包含了写入数据块 , 读取同一带区的数据块 , 计算校验值 , 写入校验值等操作 , 系统开销大为增加。

当RAID3中有数据盘出现损坏 , 不会影响用户读取数据 , 如果读取的数据块正好在损坏的磁盘上 , 则系统需要读取所有同一带区的数据块 , 然后根据校验值重新构建数据 , 系统性能受到影响。

image-20250723212748271

RAID3的校验盘在系统接受大量的写操作时容易形成性能瓶颈 , 因而适用于有大量读操作如web系统以及信息查询等应用或持续大块数据流 ( 例如非线性编辑 ) 的应用。

提示 : 一般来说 , RAID3的条带长度=文件系统的块大小。因为这样会使条带深度低 , 每次IO会同时并发读写到所有盘中。

2.2.5 RAID4

RAID3的设计中 , 一次IO尽量让每块磁盘都参与 , 而控制器的一次IO数据块不会很大 , 那么想让每块磁盘都参与这个IO , 就只能人为地减小条带深度的大小。事实证明这种IO设计在IOSIZE/IOPS 比值很大的时候 , 效果的确明显。但是现实应用中 , 很多应用的IOSIZE/IOPS都很小 , 比如随机小块读写等 , 这种应用每秒产生的IO数目很大 , 但是每个IO所请求的数据长度却很短。如果所有磁盘同一时刻都被一个IO占用着 , 且不能并发IO , 只能一个IO一个IO的来做。由于IO块长度小 , 此时全盘联动来传输这个IO , 得不偿失 , 还不如让这个IO的数据直接写入一块磁盘 , 空余的磁盘就可以做其他IO了。将RAID3进行简单改造 , 增加了条带深度 , 于是就形成了RAID4

RAID4RAID3原理基本一致 , 区别在于条带深度不一样 , 因为条带深度大 , 所以在写操作时只涉及两块磁盘 , 数据盘和校验盘 , 提高了系统的并发IO性能。但面对随机的分散的写操作 , 单一的校验盘往往成为性能瓶颈。

2.2.6 RAID5

  • 优点 : RAID5在随机读方面性能出色。

  • 缺点 : RAID5在写操作性能较差 , 其根本原因在于每写一个扇区的数据就要产生其校验扇区 , 一并写入校验盘 , 尤其是修改数据的时候 , 这种情况的影响尤其严重。

  • 适用于 : 适用于随机IO读操作多的环境 , RAID5在随机IOPS大的时候具有高性能。

RAID5RAID3的机制相似 , 但是数据校验的信息被均匀的分散到的阵列的各个磁盘上 , 这样就不存在并发写操作时的校验盘性能瓶颈。阵列的磁盘上既有数据 , 也有数据校验信息 , 数据块和对应的校验信息会存储于不同的磁盘上 , 当一个数据盘损坏时 , 系统可以根据同一带区的其他数据块和对应的校验信息来重构损坏的数据。

image-20250723213028805

RAID 5可以理解为是RAID 0RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障 , 但保障程度要比RAID1低而磁盘空间利用率要比RAID1高。RAID 5具有和RAID 0相近似的数据读取速度 , 只是多了一个奇偶校验信息 , 写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息 , RAID 5的磁盘空间利用率要比RAID 1高 , 存储成本相对较低。RAID5在数据盘损坏时的情况和RAID3相似 , 由于需要重构数据 , 性能会受到影响。

由于RAID5的条带深度比较大 , 每次IO一般只使用一块数据库盘 , 而且通常RAID5系统一般被设计为数据块都是先放满一个Segment , 再去下一个磁盘的Segment存放。

提示 : RAID5环境中 , 最多只能坏掉一块硬盘 , 不可以同时坏掉两块硬盘 , 否则数据丢失。

2.2.7 RAID6

RAID 6提供两级冗余 , 即阵列中的两个驱动器失败时 , 阵列仍然能够继续工作。

为了增加RAID5的安全性 , RAID6的校验盘有两块 , 也是将校验盘分布打算到数据盘中 , 在每块磁盘上放置两个数据的校验值 , 也就是RAID6同时在一个条带上保存了两份数学上不相关的校验数据 , 这样能够保证同时坏两块盘的情况下 , 数据依然可以通过联立这两个数学关系等式来求出丢失的数据。RAID6相对RAID5而言提高了安全性 , 但它的写性能更差了 , 因为要多读一个校验数据 , 而且计算后还要写入一次。

一般而言 , RAID 6的实现代价最高 , 因为RAID 6不仅要支持数据的恢复 , 又要支持校验的恢复 , 这使RAID 6控制器比其他级RAID更复杂和更昂贵。

2.2.8 RAID-DP

RAID-DP™是由NetApp公司 ( Network Appliance™ ) 所开发的一种非标准型的RAID等级技术 ( Non-standard RAID levels ) 。其中“DP”的意思是“dual paritydouble parity或是diagonal parity”即“双同位元” , 指的是可以允许磁盘阵列群组可以在同一个时间发生两个硬盘故障 , 避免某颗硬盘故障就使整个SATA硬盘系统无法作用。RAID-DP使用对角线双奇偶校验算法。

RAID-DP采用的是从RAID 4延伸的“固定式同位元”架构 , 效能、可靠度和延展性都比RAID 6更理想。 ( RAID 6也支援“双同位元” , 由于是从RAID 5演化而来的“分布式同位元”架构 , 对处理器的运算能力要求较高 , 效能较差。 )

2.2.9 RAID10

RAID10RAID1RAID0的结合 , 也称为RAID ( 0+1 ) , 先做镜像然后做条带化 , 既提高了系统的读写性能 , 有提供了数据冗余保护 , RAID10的磁盘空间利用率和RAID1是一样的为50%RAID10适用于既有大量的数据需要存储 , 有对数据安全性有严格要求的领域 , 比如金融 , 证券等。

2.2.10 RAID01

RAID01也是RAID0RAID1的结合 , 但它是对条带化后的数据进行镜像。但与RAID10 不同 , 一个磁盘的丢失等同于整个镜像条带的丢失 , 所以一旦镜像盘失败 , 则存储系统成为一个RAID-0 系统 ( 即只有条带化 ) 。RAID01的实际应用非常少。

2.2.11 JBOD

JBOD(Just Bundle Of Disks)译成中文可以是"简单磁盘捆绑" , 通常又称为SpanJBOD 不是标准的RAID级别 , 它只是在近几年才被一些厂家提出 , 并被广泛采用。

Span是在逻辑上把几个物理磁盘一个接一个串联到一起 , 从而提供一个大的逻辑磁盘。Span上的数据简单的从第一个磁盘开始存储 , 当第一个磁盘的存储空间用完后 , 再依次从后面的磁盘开始存储数据。

Span存取性能完全等同于对单一磁盘的存取操作。Span也不提供数据安全保障。它只是简单的提供一种利用磁盘空间的方法 , Span的存储容量等于组成Span的所有磁盘的容量的总和。

2.3 不同RAID级别对比

在各个raid级别中 , 使用最广泛的是raid0 , raid1 , raid10 , raid5

RAID-0 , 将数据分成条带顺序写入一组磁盘中。RAID-0 不提供冗余功能 , 但是它却提供了卓越的吞吐性能 , 因为读写数据是在一组磁盘中的每个磁盘上同时处理的 , 吞吐性能远远超过单个磁盘的读写。

RAID-1 , 每次写操作都将分别写两份到数据盘和校验盘上 , 每对数据盘和校验盘成为镜像磁盘组。也可使用并发的方式来读数据时 , 提高吞吐性能。如果镜像磁盘组中某个磁盘出错 , 则数据可以从另外一块磁盘获得 , 而不会影响系统的性能 , 然后 , 使用一块备用磁盘将健康磁盘中的数据复制出来然后这两块磁盘又组成新的镜像组。

RAID1/0 , 即RAID1RAID0 的结合 , 既做镜像又做条带化 , 数据先镜像再做条带化。这样数据存储既保证了可靠性 , 又极大地提高了吞吐性能。

RAID-0/1 也是RAID0RAID1 的结合 , 但它是对条带化后的数据进行镜像。但与RAID10 不同 , 一个磁盘的丢失等同于整个镜像条带的丢失 , 所以一旦镜像盘失败 , 则存储系统成为一个RAID-0 系统 ( 即只有条带化 ) 。

RAID-5 是将数据校验循环分散到各个磁盘中 , 它像RAID-0 一样将数据条带化分散写到一组磁盘中 , 但同时它生成校验数据做为冗余和容错使用。校验磁盘包含了所有条带的数

据的校验信息。RAID-5 将校验信息轮流地写入条带磁盘组的各个磁盘中 , 即每个磁盘上既有数据信息又同时有校验信息 , RAID-5 的性能得益于数据的条带化 , 但是某个磁盘的失败却将引起整个系统的下降 , 这是因为系统将在承担读写任务的同时 , 重新构建和计算出失败磁盘上的数据 , 此时要使用备用磁盘对失败磁盘的数据重建恢复整个系统的健康。

从一个普通应用来讲 , 要求存储系统具有良好的IO性能同时也要求对数据安全做好保护工作 , 所以raid10raid5应该成为我们重点关注的对象。

下面从IO性能 , 数据重构及对系统性能的影响 , 数据安全保护等方面 , 结合磁盘现状来分析两种技术的差异。

IO的性能

读操作上raid10raid5是相当的 , RAID-5 在一些很小数据的写操作 ( 如比每个条带还小的小数据 ) 需要2 个读、2 个写 , 还有2 个XOR 操作 , 对于单个用户的写操作 , 在新数据应用之前必须将老的数据从校验盘中移除 , 整个的执行过程是这样 : 读出旧数据 , 旧数据与新数据做XOR , 并创建一个即时的值 , 读出旧数据的校验信息 , 将即时值与校验数据进行XOR , 最后写下新的校验信息。为了减少对系统的影响 , 大多数的RAID5 都读出并将整个条带 ( 包括校验条带 ) 写入缓存 , 执行2 个XOR 操作 , 然后发出并行写操作 ( 通常对整个条带 ) , 即便了进行了上述优化 , 系统仍然需要为这种写操作进行额外的读和XOR操作。小量写操作困难使得RAID-5 技术很少应用于密集写操作的场合 , 如回滚字段及重做日志。当然 , 也可以将存储系统的条带大小定义为经常读写动作的数据大小 , 使之匹配 , 但这样会限制系统的灵活性 , 也不适用于企业中其它的应用。

对于raid10 , 由于不存在数据校验 , 每次写操作只是单纯的执行写操作。应此在写性能上raid10要好于raid5。

数据重构

对于raid10 , 当一块磁盘失效时 , 进行数据重构的操作只是复制一个新磁盘 , 如果假定磁盘的容量为250G , 那么复制的数据量为250G

对于raid5的存储阵列 , 则需要从每块磁盘中读取数据 , 经过重新计算得到一块硬盘的数据量 , 如果raid5是以4+1的方式组建 , 每块磁盘的容量也为250G , 那么 , 需要在剩余的4个磁盘中读出总共是1000G的数据量计算得出250G的数据。

从这点来看 , raid5在数据重构上的工作负荷和花费的时间应该远大于raid10 , 负荷变大将影响重构期间的性能 , 时间长意味再次出现数据损坏的可能性变大。

数据安全保护

raid10系统在已有一块磁盘失效的情况下 , 只有出现该失效盘的对应镜像盘也失效 , 才会导致数据丢失。其他的磁盘失效不会出现数据丢失情况。

Raid5系统在已有一块磁盘失效的情况下 , 只要再出现任意的一块磁盘失效 , 都将导致数据丢失。

从综合来看 , raid10raid5系统在出现一块磁盘失效后 , 进行数据重构时 , raid5需耗费的时间要比raid10长 , 同时重构期间系统负荷上raid5要比raid10高 , 同时raid5出现数据丢失的可能性要比raid10高 , 因此 , 数据重构期间 , raid5系统的可靠性远比raid10来的低。

Raid5在磁盘空间率用率上比raid10高 , raid5的空间利用率是 ( N-1 ) / N ( N为阵列的磁盘数目 ) , 而raid10的磁盘空间利用率仅为50%

但是结合磁盘来考虑 , 今天的硬盘厂商所生产的ATASATA硬盘的质量已经可以承担企业级的应用 , 并且 , 容量的增加幅度相当大 , 目前已经可以实现单个磁盘400G的存储容量。SCSI硬盘由于要求高转速而使用小直径盘片 , 容量的增加相对缓慢。ATA磁盘相对SCSI磁盘拥有成本也要小很多。

应此 , 在采用价格昂贵的FCSCSI硬盘的存储系统中 , 对于预算有限同时数据安全性要求不高的场合可以采用RAID5方式来折中 ; 其他应用中采用大容量的ATASATA硬盘结合raid10 , 既降低了raid10的为获得一定的存储空间必须采用双倍磁盘空间的拥有成本 , 又避免了raid5相对raid10的各种缺点。

在企业应用中 , raid10结合SATA磁盘意味着一个更好的选择。

3. 卷管理及文件系统

3.1 逻辑磁盘

逻辑磁盘是由RAID卡进行划分的 , 每个逻辑盘对OS来说都人称一块单独的物理磁盘 , 这里不要和分区搞混 , 分区是OS在一块物理磁盘上做的再次划分。

RAID卡可以针对总线上的某几块磁盘做一种RAID类型 , 然后针对另外的几种磁盘做另一种RAID类型。一种RAID类型中包含的磁盘共同组成一个RAID Group , 简称RG。逻辑盘就是从这个RG中划分出来的 , 原则上逻辑盘不能跨RG来划分。

3.2 卷管理

卷管理器Volume Manager , 是在操作系统层面 , 将OS识别到的物理磁盘 ( 可以是真正的物理磁盘 , 也可以是经过RAID卡虚拟化的逻辑磁盘 ) 进行组合 , 并再分配的软件。比如 :

  • Win2000中引入的动态磁盘 , 就是和Veritas公司合作开发的一种VM , 称为LDM ( 逻辑磁盘管理 ) 。

  • Veritas自己的产品Veritas Volume Manager ( VxVM )

  • 广泛用于LinuxAIXHP-Unix系统的LVM ( Logical Volume Manager )

  • 用于Sun SolarisDiskSuite

这些VM的实现方法大同小异 , 只不过细节方面有些差异罢了 , 这里需要重点讲一下LVM , 因为它的应用非常普遍。LVM开始是在Linux系统中的一种实现 , 后来被广泛应用到了AIXHP-Unix等系统上。

PV : LVM将操作系统识别到的物理磁盘或者RAID控制器提交的逻辑磁盘叫做物理卷 ( Physical Volume ) 。

VG : 多个PV可以被逻辑地放到一个VG中 , 也就是Volume Group 卷组。VG是一个虚拟的大存储空间 , 逻辑上是连续 , 尽管它可以由多块PV组成 , 但是VG会将所有的PV首尾相连 , 组成一个逻辑上连续编址的大存储池 , 这就是VG

PP : Physical Partition物理区块 , 在逻辑上再将一个VG分割成连续的小块 ( 把一大盘面掰成大小相等的无数块小面团块 ) 。注意 , 是逻辑上的分割 , 而不是物理上的分割。

LP : PP可以再次组成LP , 即Logical Partition逻辑区块。逻辑区块是比较难理解的一个东西 , 一个LP可以对应一个PP , 也可以对应多个PP。前者对应后者没什么区别。后者又分两种情况 , 一种为多个PP组成一个大LP , 像RAID0一样 ; 另一种是一个LP对应几份PP , 这几份PP每一份内容都一样 , 类似于RAID1 , 多个PP内容互为镜像 , 然后用一个LP来代表它们 , 往这个LP写数据 , 也就是同时写入了这个LP对应的几份PP中。

LV : 若干LP再经过连续组合组成LV ( Logical Volume , 逻辑卷 ) , 也就是LVM所提供的最终可用来存储数据的单位。生成的逻辑卷 , 在主机看来还是和普通磁盘一样 , 可以对其进行分区、格式化等。

LVM看起来很复杂 , 其实操作起来很简单。创建PV , 将PV加入VG , 在VG中再创建LV , 然后格式化这个LV , 就可以当做一块普通硬盘使用了。容量不够了 , 还可以任意扩展。LVM一个最大的好处就是生成的LV可以跨越RAID卡提交给OS的物理磁盘 ( 实际是RAID卡虚拟的逻辑盘 ) 。

3.3 什么是文件系统

文件系统定义了把文件存储于磁盘时所必须的数据结构及磁盘数据的管理方式。我们知道 , 磁盘是由很多个扇区 ( Sector ) 组成的 , 如果扇区之间不建立任何的关系 , 写入其中的文件就无法访问 , 因为无法知道文件从哪个扇区开始 , 文件占多少个扇区 , 文件有什么属性。为了访问磁盘中的数据 , 就必需在扇区之间建立联系 , 也就是需要一种逻辑上的数据存储结构。建立这种逻辑结构就是文件系统要做的事情 , 在磁盘上建立文件系统的过程通常称为“格式化”。

Windows平台下最常见的FAT文件系统为例。FAT文件系统有两个重要的组成部分 : FAT表 ( File Allocation Table ) 和数据存储区。FAT表是FAT文件系统的名称来源 , 它定义了存储数据的簇 ( Cluster , 由2n次方个Sector组成 , n值根据分区大小而定 , 需综合考虑数据存取效率和存储空间的利用率 ) 之间的链接关系 , 这种链接关系是一个单向链表 , 指向0xFF表示结束。依据一个簇编号所用bit数的不同 , 可分为FAT12FAT16FAT32文件系统。数据区存储的数据包含文件目录项 ( Directory Entries ) 和文件数据。文件目录项存储的是一个文件或目录的属性信息 , 包括文件名称 ( 把目录也看成是文件 ) 、读写属性、文件大小、创建时间、起始簇编号等 , 一个目录下的每个子目录和文件都对应一个表项记录。文件目录项以固定32字节的长度存储 , 以树型结构管理 , 其中根目录的位置是确定的。也就是说 , 根据分区根目录可以找到下级子目录和文件的起始簇编号 , 根据下级子目录又可以找到更下级目录或文件的起始簇编号。可见 , FAT表和文件目录项是为了文件的访问和管理而建立的。应用程序要访问一个文件时 , 根据文件路径 ( 逻辑分区号+目录 , 如F:\software ) 和文件名称 ( 如setup.exe ) 可从文件目录项中获得存储文件数据的起始簇号 , 之后从FAT表查询这个簇号对应的链表 , 就可以获得该文件对应的全部簇编号。从这些簇中读出全部数据 , 就得到一个完整的文件。

一般来说 , 文件系统是和操作系统紧密结合在一起的 , 不同的操作系统使用不同的文件系统 , 但有时为了兼容 , 不同操作系统也使用相同的文件系统。

3.4 主流文件系统和特点

Windows系列操作系统中 , MS-DOSWindows 3.x使用FAT16文件系统 , 默认情况下Windows 98也使用FAT16 , Windows 98Windows Me可以同时支持FAT16FAT32两种文件系统 , Windows NT则支持FAT16NTFS两种文件系统 , Windows 2000可以支持FAT16FAT32NTFS三种文件系统.每一种文件系统提供的功能与特点各不相同。比如FAT32文件系统。 , 采用32位的文件分配表 , 磁盘的管理能力大为增强。但由于文件分配表的增大 , 性能相对来说有所下降。此外 , 这个版本的文件系统不能向下兼容。

NTFS是随着 Windows NT操作系统而产生的 , 它的优点和FAT文件系统相比是有更好的安全性和稳定性 , 在使用中不易产生文件碎片 , NTFS分区对用户权限作出了非常严格的限制 , 同时它还提供了容错结构日志 , 从而保护了系统的安全。但NTFS分区格式的兼容性不好 , Windows 98/ME操作系统均不能直接访问该分区。

对于超过4GB以上的硬盘 , 使用NTFS分区 , 可以减少磁盘碎片的数量 , 大大提高硬盘的利用率 ; NTFS可以支持的文件大小可以达到64GB , 远远大于FAT32下的4GB ; 支持长文件名 , 支持的最大分区为 2TB

Linux系统中 , 每个分区都是一个文件系统 , 都有自己的目录层次结构。Linux的最重要特征之一就是支持多种文件系统,并可以和许多其它种操作系统共存。

随着Linux的不断发展 , 它所支持的文件格式系统也在迅速扩充。特别是Linux 2.4内核正式推出后 , 出现了大量新的文件系统. Linux系统可以支持十多种文件系统类型包括 : JFSextext2ext3ISO9660XFSMinxMSDOSUMSDOSVFATNTFSHPFSNFSSMBSysVPROC等。

各主流操作系统和平台的文件系统名称和特点如下表所示

操作系统

文件系统

特点

Windows 95、Windows 98、OSR2、Windows 98 SE、Windows Me、Windows 2000和Windows XP

Fat文件系统 FAT12/FAT16和FAT32

可以允许多种操作系统访问 , 如MS-DOS、Windows 3.x、Windows 9x、Windows NT和OS/2等。这一文件系统在使用时遵循8.3命名规则(即文件名最多为8个字符 , 扩展名为3个字符)。 最大的限制在于兼容性方面 , Fat32不能保持向下兼容。 当分区小于512M时 , Fat32不会发生作用。 单个文件不能大于4G。

Windows NT/2000

NTFS文件系统

支持文件系统故障恢复 , 尤其是大存储媒体、长文件名。分区大小可以达到2TB。通过使用标准的事物处理日志和恢复技术来保证分区的一致性。 只能被Windows NT/2000所识别 , 不能被FAT文件系统所存取

Windows longhorn

Winfs

用以组织、搜索和共享多种多样的信息的存储平台。WinFS被设计为在无结构文件和数据库数据之间建立起更好的互操作性 , 从而提供快捷的文件浏览和搜索功能

Linux

Ext2/ ext3/ XFS等文件系统

是一种日志式文件系统。日志式文件系统的优越性在于 : 由于文件系统都有快取层参与运作 , 如不使用时必须将文件系统卸下 , 以便将快取层的资料写回磁盘中。因此每当系统要关机时 , 必须将其所有的文件系统全部卸下后才能进行关机

UNIX 系统

NFS

网络文件系统 , 允许多台计算机之间共享文件系统 , 易于从所有这些计算机存放文件

Windows 系列

CIFS

网络文件系统 , 允许多台计算机之间共享文件系统 , 易于从所有这些计算机存放文件

AIX

JFS

具有可伸缩性和健壮性 , 与非日志文件系统相比 , 它的优点是其快速重启能力 : Jfs 能够在几秒或几分钟内就把文件系统恢复到一致状态。为满足服务器 ( 从单处理器系统到高级多处理器和群集系统 ) 的高吞吐量和可靠性需求而设计的。使用数据库日志处理技术 , jsf 能在几秒或几分钟之内把文件系统恢复到一致状态。

SCO UnixWare ,

Vxfs UFS

日志式文件系统.建立文件的索引区 , 将操作记录在事件日志中 , 当系统发生意外时 , 能让系统迅速、完全地得到恢复。提供文件系统的照相功能 , 保证了数据的在线备份 , 提供文件系统的在线扩展 , 并提高了I/O吞吐率

Solaris

Vxfs UFS

同上

HP-UX

Hfs Vxfs

同上

SGI IRIX 操作系统

CXFS XFS

XfS文件系统是SGI开发的一个全64位,快速、稳固的日志文件系统 , SGI并将其移植到了Linux系统中.支持超大数量的文件 ( 9g×1gb , 甚至更大的18g×1gb ) , 可在大型 2d 和 3d 数据方面提供显著的性能。提供了在不妨碍性能的情况下增强可靠性和快速的事故恢复。可升级性 , 以面对大多数的存储容量和i/o存储需求 , 可处理大型文件和包含巨大数量文件的大型目录.cxfs有能力动态地为文件分配索引空间 , 使系统形成高效支持大数量文件的能力。在它的支持下 , 用户可使用1exabyte ( 1g×1gb ) 大的文件 , 远远大于现在最大的文件系统。 CXFS : 共享文件系统.主要用于SCI大型主机的高性能计算

APPLE Mac OS

Hfs

分层文件系统 ( Hierarchical File System ) .是一种由苹果电脑开发 , 并使用在Mac OS上的文件系统。将资源和数据存在一个文件的不同分支中 , 并使用了包括类型和创建者代码在内的多种文件属性。 允许文件名最多有31个字符的长度 , 支持[[metadata]]和每个文件的数据和资源支分开存储文件

3.5 NFS和CIFS网络文件系统工作原理和特点

NFS (Network File System , 网络文件系统)是当前主流异构平台共享文件系统之一.主要应用在UNIX环境下。 最早是由SUN microsystem开发 , 现在能够支持在不同类型的系统之间通过网络进行文件共享 , 广泛应用在FreeBSDSCOSolaris等等异构操作系统平台 , 允许一个系统在网络上与它人共享目录和文件。通过使用NFS , 用户和程序可以象访问本地文件一样访问远端系统上的文件 , 使得每个计算机的节点能够像使用本地资源一样方便地使用网上资源。换言之 , NFS 可用于不同类型计算机、操作系统、网络架构和传输协议运行环境中的网络文件远程访问和共享。

NFS的工作原理是使用客户端/服务器架构 , 由一个客户端程序和服务器程序组成。服务器程序向其它计算机提供对文件系统的访问 , 其过程就叫做“输出”。NFS 客户端程序对共享文件系统进行访问时 , 把它们从 NFS 服务器中“输送”出来。文件通常以“块” 为单位进行传输. 其尺寸是 8K (虽然它可能会将操作分成更小尺寸的分片).NFS 传输协议用于服务器和客户机之间文件访问和共享的通信 , 从而使客户机远程地访问保存在存储设备上的数据。

CIFS ( Common Internet File Syste , 公共互联网文件系统 ) 是当前主流异构平台共享文件系统之一。主要应用在NT/Windows环境下 , 是由Microsoft公司开发。其工作原理是让CIFS协议运行于TCP/IP通信协议之上 , 让Unix计算机可以在网络邻居上被Windows计算机看到。

共享文件系统特点 :

  • 异构平台下的文件共享 : 不同平台下的多个客户端可以很容易的共享NAS中的同一个文件。

  • 充分利用现有的LAN网络结构 , 保护现有投资。

  • 容易安装 , 使用和管理都很方便 , 实现即插即用。

  • 广泛的连接性 : 由于基于IP/Ethernet以及标准的NFSCIFS , 可以适应复杂的网络环境。

  • 内部资源的整合 : 可以将内部的磁盘整合成一个统一的存储池 , 以卷的方式提供给不同的用户 , 每一个卷可以格式化成不同的文件系统

允许应用进程打开一个远地文件 , 并能够在该文件的某一个特定的位置上开始读写数据。NFS 可使用户只复制一个大文件中的一个很小的片段 , 而不需复制整个大文件 , 在网络上传送的只是少量的修改数据。

需要注意的是 , CIFSNFS虽然同样也是文件系统 ( File System ) , 但它并不能用于在磁盘中存储和管理数据 , 它定义的是通过TCP/IP网络传输文件时的文件组织格式和数据传输方式。利用CIFSNFS共享文件实际涉及到两次的文件系统转换。客户端从服务器端申请一个文件时 , 服务器端首先从本地读出文件 ( 本地文件系统格式 ) , 并以NFS/CIFS的格式封装成IP报文并发送给客户端。客户端收到IP报文以后 , 把文件存储与本地磁盘中 ( 本地文件系统格式 ) 。

3.6 存储系统与文件系统的关系

提到NAS , 通常会想到传统的NAS设备 , 它具有自己的文件系统 , 具有较大的存储容量 , 具有一定的文件管理和服务功能。NAS设备和客户端之间通过IP网络连接 , 基于NFS/CIFS协议在不同平台之间共享文件 , 数据的传输以文件为组织单位。

虽然NAS设备常被认为是一种存储架构 , 但NAS设备最核心的东西实际上在存储之外 , 那就是文件管理服务。从功能上来看 , 传统NAS设备就是一个带有DAS存储的文件服务器。从数据的IO路径来看 , 它的数据IO发生在NAS设备内部 , 这种架构与DAS毫无分别。而事实上 , 很多NAS设备内部的文件服务模块与磁盘之间是通过SCSI总线连接的。至于通过NFS/CIFS共享文件 , 完全属于高层协议通信 , 根本就不在数据IO路径上 , 所以数据的传输不可能以块来组织。正是由于这种功能上的重叠 , 在SAN出现以后 , NAS头设备 ( 或NAS网关 ) 逐渐发展起来 , NAS over SAN的方案越来越多 , NAS回归了其文件服务的本质。

由此可知 , NAS与一般的应用主机在网络层次上的位置是相同的 , 为了在磁盘中存储数据 , 就必须要建立文件系统。有的NAS设备采用专有文件系统 , 而有的NAS设备则直接借用其操作系统支持的文件系统。由于不同的OS平台之间文件系统不兼容 , 所以NAS设备和客户端之间就采用通用的NFS/CIFS来共享文件。

至于SAN , 它提供给应用主机的就是一块未建立文件系统的“虚拟磁盘”。在上面建立什么样的文件系统 , 完全由主机操作系统确定。

4. 存储主要协议和相关技术

4.1 FC(Fibre Channel)协议

FC ( Fibre Channel ) 协议时一套完全独立的网络协议 , 比以太网要复杂得多。FC1988年出现以来 , 已经发展成为一项非常复杂、高速的网络技术。Fibre Channel可以称其为FC协议或者FC网络 , 像TCP/IP一样 , FC协议集同样具备TCP/IP协议集以及以太网中的很多概念 , 比如FC交换、FC交换机、FC路由、SPF路由算法等。

提示 : 需要注意的是 , FC协议只是定义了一套完整的网络传输体系 , 并没有定义诸如SCSI或者ATA指令集这样可用于向磁盘存取数据的通用语言。

FC是一个高速高效、配置简单、不需要太多人为介入的网络。基于这个原则 , 为了进一步提高FC网络的速度和效率 , 在FC终端设备上 , FC协议的大部分逻辑被直接坐到一块独立的硬件卡片当中 , 而不是运行在操作系统中。

TCP/IP就是一种运行与主机操作系统上的网络协议 , 其IPTCP或者UDP模块是运行在操作系统上的 , 只有以太网逻辑部分是运行在以太网卡芯片中 , CPU从以太网卡接受到的数据是携带有IP头部及TCP/UDP头部的 , 需要运行在CPU中的TCP/IP协议代码来进一步处理这些头部 , 才能生成最终的应用程序需要的数据。而FC协议的物理层到传输层的逻辑 , 大部分运行在FC适配卡的芯片中 , 只有小部分关于上层API的逻辑运行与操作系统FC卡驱动程序中 , 这样就使FC协议的速度和效率都较TCP/IP协议高。这么做肯定要增加成本 , 但是FC网络本来就不是为大众设计的 , 增加成本来提高速度和效率是值得的。

提示 : 由于Fiebre ( 纤维、网络 ) 和Fiber ( 光线 ) 只有一字之差 , 所以产生了很多流传的误解。FC只代表Fibre Channel , 而不是Fiber Channel , 后者被翻译为“光纤通道” , 甚至接口为FC的磁盘也被称为“光纤磁盘” , 其实这些都是很滑稽的误解。再加上FC协议普遍都用光纤作为传输线缆而不用铜线 , 所以人们下意识的称FC为光纤通道协议而不是网状通道协议。但是要理解 , FC其实是一套网络协议的称呼 , FC协议和光纤根本没有必然地联系 , Fibre Channel可以称其为FC协议 , 或者FC网络、FC互联。同样“FC交换机就是插光纤的以太网交换机”和“以太网就是双绞线 , 以太网就是水晶头”这些说法都是错误的。

4.2 FC 适配器

要想进入FC网络 , 需要使用FC适配器 , 或者叫做FC主机总线适配器 , 即FC HBA ( Host Bus Adapter ) 。值得说明的是 , HBA是一个通用词 , 它不仅仅指代FC适配器 , 它也可以指代任何一种设备 , 只要这个设备的作用是将一个外部功能接入主机总线。所以PC上用的PCI/PCIE网卡、显卡、声卡和AGP显卡等都可以叫做HBA

FC适配器可以用来接入FC网络的各种线缆、SC光纤、DB9铜线和RJ45/RJ47线缆 , 它们都可以用于接入FC网络。所以 , 千万不要认为FC就是光纤 , 这都是错误的概念。

FC适配器本身也是一个小计算机系统 , 有自己的CPURAM以及ROMROM中存放Firmware

4.3 SCSI

SCSI就是指Small Computer System Interface(小型计算机系统接口) , 它最早研制于1979年 , 原是为小型机的研制出的一种接口技术 , 但随着电脑技术的发展 , 现在它被完全移植到了普通微机上。SCSI广泛应用于如 : 硬盘、光驱、ZIPMO、扫描仪、磁带机、JAZ、打印机、光盘刻录机等设备上 , 由于较其他标准接口的传输速率来得快 , 所以在较好的高端电脑、工作站、服务器上常用来作为硬盘及其他储存装置的接口。

SCSI接口是向前兼容的 , 也就是说新的SCSI接口可以兼容老接口 , 而且如果一个SCSI系统中的两种SCSI设备不是位于同一规格 , 那么SCSI系统将取较低级规格作为工作标准。例如你有的SCSI控制卡是Ultra160 SCSI ( 160MB/s ) 卡 , 而硬盘只支持Wide Ultra2 SCSI ( 80MB/s ) , 那么你的SCSI系统将工作于Wide Ultra2 SCSI。同样如果你的控制卡是Wide Ultra2 SCSI卡 , 而硬盘却支持Ultra160 SCSI , 那么SCSI系统也只能工作于Wide Ultra2 SCSI。所以在选购SCSI系统时应该注意这个问题 , SCSI控制卡和SCSI硬盘要选择支持相同规格标准得。

目前SCSI有以下几种延伸规格 : SCSI-1SCSI-2SCSI-3 ( 最新的为SCSI-3 ) 、Fast SCSIWide SCSIULTRA SCSIUltra Wide SCSIULTRA 2 SCSIWIDE ULTRA 2 SCSIUltra 160/m SCSIUltra320 SCSI

SCSI-1 : 1979年提出 , 支持同步和异步SCSI外围设备 ; 支持7台8位的外围设备 , 最大数据传输速度为5MB/s

SCSI-2 : 1992年提出 , 也称为Fast SCSI , 数据传输率提高到20MB/s

SCSI-3 : 1995年提出 , Ultra SCSI ( Fast-20 ) 。Ultra 2 SCSI ( Fast-40 ) 出现于1997年 , 最高传输速率可达80MB/s。1998年9月 , Ultra 3 SCSI ( Utra 160 SCSI ) 正式发布 , 最高数据传输率为160MB/sUltra 320 SCSI的最高数据传输率已经达到了320MB/s

SCSI接口优点 :

  1. SCSI接口具有应用范围广泛、强大灵活的连接方式。

  2. 高性能 ( 具有很多任务、带宽大、及少CPU占用率、热插拔等特点 )

  3. 具有外置和内置两种

SCSI接口缺点 :

价格昂贵、安装复杂、扩展性差。

4.4 SCSI迁移到FC

由于SCSI的接口方面的各种缺陷 , 现在是考虑把基于并行SCSI总线的存储网络架构全面迁移到FC提供的这个新的网络架构的时候了。但是FC协议只是定义了一套完整的网络传输体系 , 并没有定义诸如SCSI指令集这样可用于向磁盘存取数据的通用语言。而SCSI是一个高效的磁盘存取数据的指令集 , FC只需要将SCSI语言结合在一起 , 也就是SCSI语言承载于FC传输载体上进行传送。

SCSI-3协议规范中 , 将SCSI指令语义部分 ( OSI上三层 ) 和SCSI底层传输部分 ( OSI下四层 ) 分割开 , 使得SCSI指令集可以使用其他网络传输协议、方式进行传输 , 而不仅仅限于并行SCSI总线了。

FC的出现取代了SCSI协议集的底层传输模块 , 由FC协议的底层模块担当传输通道和手段 , 将SCSI协议集的上层内容传送到对方。可以说是SCSI协议集租用了FC协议 , 将自己的底层传输流程外包给了FC协议来做。FC协议定义了再FC4层上的针对SCSI指令集的特定接口 , 成为FCP , 也就是SCSI over FC 。

4.4.1 引入FC后的提升 :

提高了扩展性

SCSI时代 , 一条SCSI总线网络最多可以接入到16个节点 , 所有节点共享320MB/s带宽 , 理论上平均每台主机节点最多只能得到20MB/s的带宽 , 实际加上各种开销和随机IO的影响 , 估计每台主机能获得的吞吐量会不足10MB/s 。再加上SCSI线缆最长不能超过25米 , 用一条宽线缆去连接16台主机和阵列的难度可想而知。

而引入FC包交换网络之后 , 首先是速度提升了一大截 , 其次由于其包交换的架构 , 使用FC交换机 , 可以很容易的实现多个节点收发数据的目的。

增加了传输距离

FC携带有现代通信的最新技术特质 , 比如可以使用光纤 , 而这就可以使主机和远隔几百米甚至上千米 ( 使用单模光缆 ) 之外的盘阵相连并读写数据。

面向无连接的优势

并行SCSI总线网属于面向连接的网络 , 在数据交换环境中 , 通信双方要预先建立一条物理上的通路 ( 虚电路 ) , 不管路径上有没有数据传输 , 这条通路总是存在 , 其他节点的通信不管数据多么拥堵都不能使用这条通路。这样造成使用成本高 , 资源浪费 , 网络缺乏高可用性。

而面向无连接技术的FC交换网络中 , 数据流被封装成数据包 , 保障数据传输和流量控制 , 此时网络是共享的 , 网络按照Best Effect尽力而为的方式转发数据包 , 网络资源利用率高、通信效率高、成本低等特点。面向无连接的包交换网络比面向连接的网络有很多优势。面向无连接的包交换网络是网络通信的一种趋势。

传输方式的优势

FC网络串行传输在长距离高速传输方面 , 也必将取代并行传输。FC接口速度可以是1Gb、2Gb、4Gb甚至8Gb , 并且盘阵前端可以同时提供多个主机接口 , 所以它们带宽之和远远高于后端连接磁盘的并行SCSI总线提供的速度。

4.5 iSCSI

iSCSI ( Internet Small Computer System Interface , 互联网小型计算机系统接口 ) , 在这种协议中 , SCSI语言可以在Internet上来传递 , 也就是SCSI语言承载于TCP/IP上进行数据块传输的标准。它是由CiscoIBM两家发起的 , 并且得到了各大存储厂商的大力支持。iSCSI可以实现在IP网络上运行SCSI协议 , 使其能够在诸如高速千兆以太网上进行快速的数据存取备份操作。

iSCSI标准在20032月11日由IETF ( 互联网工程任务组 ) 认证通过。iSCSI继承了两大最传统技术 : SCSITCP/IP协议。这为iSCSI的发展奠定了坚实的基础。由此可见其扩展性是非常高的 , 只要IP可达 , 则两个节点之间就可以通过ISCSI通信。也就是说 , 国内的一台主机 , 可以通过ISCSI协议从Internet访问国外的存储空间。既然ISCSI协议是利用TCP/IP协议来传输SCSI语言指令 , 那么在通信的双方就一定需要先建立起TCP的链接。

基于iSCSI的存储系统只需要不多的投资便可实现SAN存储功能 , 甚至直接利用现有的TCP/IP网络。相对于以往的网络存储技术 , 它解决了开放性、容量、传输速度、兼容性、安全性等问题 , 其优越的性能使其备受始关注与青睐。

iSCSI的数据包结构 :

image-20250724010127342

工作流程 :

  • iSCSI系统由SCSI适配器发送一个SCSI命令。

  • 命令封装到TCP/IP包中并送入到以太网络。

  • 接收方从TCP/IP包中抽取SCSI命令并执行相关操作。

  • 把返回的SCSI命令和数据封装到TCP/IP包中 , 将它们发回到发送方。

  • 系统提取出数据或命令 , 并把它们传回SCSI子系统。

安全性描述 :

  • iSCSI协议本身提供了QoS及安全特性。

  • 可以限制initiator仅向target列表中的目标发登录请求 , 再由target确认并返回响应 , 之后才允许通信 ;

  • 通过IPSec将数据包加密之后传输 , 包括数据完整性、确定性及机密性检测等 ;

iSCSI的优势

  • 广泛分布的以太网为iSCSI的部署提供了基础。

  • 千兆/万兆以太网的普及为iSCSI提供了更大的运行带宽。

  • 以太网知识的普及为基于iSCSI技术的存储技术提供了大量的管理人才。

  • 由于基于TCP/IP网络 , 完全解决数据远程复制 ( Data Replication ) 及灾难恢复 ( Disaster Recover ) 等传输距离上的难题。

  • 得益于以太网设备的价格优势和TCP/IP网络的开放性和便利的管理性 , 设备扩充和应用调整的成本付出小。

5. 网络存储技术概述

5.1 概述

存储系统是整个IT系统的基石 , 是IT技术赖以存在和发挥效能的基础平台。早先的存储形式是存储设备 ( 通常是磁盘 ) 与应用服务器其他硬件直接安装于同一个机箱之内 , 并且该存储设备是给本台应用服务器独占使用的。

随着服务器数量的增多 , 磁盘数量也在增加 , 且分散在不同的服务器上 , 查看每一个磁盘的运行状况都需要到不同的应用服务器上去查看。更换磁盘也需要拆开服务器 , 中断应用。于是 , 一种希望将磁盘从服务器中脱离出来 , 集中到一起管理的需求出现了。不过 , 一个问题 : 如何将服务器和盘阵连接起来?

面临这样的问题 , 有厂商提出了SCSI协议 , 通过专用的线缆将服务器的总线和存储设备连接起来 , 通过专门的SCSI指令来实现数据的存储。后来发展到FC协议。这样 , 多个服务器可以通过SCSI线缆或光纤建立与存储系统的连接。这样的方式 , 我们称之为直接附加存储 ( DAS ) 。

5.2 DAS : 直接附加存储

image-20250724010547780

DAS ( Direct Attached Storage直接附加存储 ) 是指将存储设备通过SCSI线缆或光纤通道直接连接到服务器上。一个SCSI环路或称为SCSI通道可以挂载最多16台设备 ; FC可以在仲裁环的方式下支持126个设备 ;

DAS方式实现了机内存储到存储子系统的跨越 , 但是缺点依然有很多 :

  • 扩展性差 , 服务器与存储设备直接连接的方式导致出现新的应用需求时 , 只能为新增的服务器单独配置存储设备 , 造成重复投资。

  • 资源利用率低 , DAS方式的存储长期来看存储空间无法充分利用 , 存在浪费。不同的应用服务器面对的存储数据量是不一致的 , 同时业务发展的状况也决定这存储数据量的变化。因此 , 出现了部分应用对应的存储空间不够用 , 另一些却有大量的存储空间闲置。

  • 可管理性差 , DAS方式数据依然是分散的 , 不同的应用各有一套存储设备。管理分散 , 无法集中。

  • 异构化严重 , DAS方式使得企业在不同阶段采购了不同型号不同厂商的存储设备 , 设备之间异构化现象严重 , 导致维护成本据高不下。

image-20250724010800301

5.3 NAS : 网络附加存储

NAS ( Network Attached Storage网络附加存储 ) , 是一种文件共享服务。拥有自己的文件系统 , 通过NFSCIFS对外提供文件访问服务。

NAS包括存储器件 ( 例如硬盘驱动器阵列、CDDVD驱动器、磁带驱动器或可移动的存储介质 ) 和专用服务器。专用服务器上装有专门的操作系统 , 通常是简化的unix/linux操作系统 , 或者是一个特殊的win2000内核。它为文件系统管理和访问做了专门的优化。专用服务器利用NFSCIFS , 充当远程文件服务器 , 对外提供文件级的访问。

image-20250724010900616

提示 : NAS不一定是盘阵 , 一台普通的主机就可以做成NAS , 只要它自己有磁盘和文件系统 , 而且对外提供访问其文件系统的接口 ( NFSCIFS等 ) , 它就是一台NAS。一般来说NAS其实就是出于以太网上的一台利用NFSCIFS等网络文件系统的文件共享服务器。至于将来会不会有FC网络上的NAS , 就要看是否有人尝试了。

CIFS ( Common Internet File System ) , 是微软定义的一套规范 , 用于网络文件共享系统 , 意思是Internet范围的File System , 使用TCP/IP协议进行传输的。

NFS ( Network File System ) , LinuxUnix系统使用的一种网络文件共享系统 , 使用TCP/IP协议进行传输的。

以上两种可以统称为“网络文件系统” , 这种文件系统逻辑不是在本地运行 , 而是在网络上的其他节点上运行 , 使用者通过外部网络讲读写文件的信息传递给运行在远端的文件系统 , 也就是调用远程的文件系统模块 , 而不是在本地内存中调用文件系统的API来进行。所以网络文件系统又叫做远程调用式文件系统 , 也就是RPC FS ( Remote Procedure Call File System ) 。

NAS的优点 :

  • NAS可以即插即用。

  • NAS通过TCP/IP网络连接到应用服务器 , 因此可以基于已有的企业网络方便连接。

  • 专用的操作系统支持不同的文件系统 , 提供不同操作系统的文件共享。

  • 经过优化的文件系统提高了文件的访问效率 , 也支持相应的网络协议。即使应用服务器不再工作了 , 仍然可以读出数据。

NAS的缺点 :

  • NAS设备与客户机通过企业网进行连接 , 因此数据备份或存储过程中会占用网络的带宽。这必然会影响企业内部网络上的其他网络应用。共用网络带宽成为限制NAS性能的主要问题。

  • NAS的可扩展性受到设备大小的限制。增加另一台NAS设备非常容易 , 但是要想将两个NAS设备的存储空间无缝合并并不容易 , 因为NAS设备通常具有独特的网络标识符 , 存储空间的扩大上有限。

  • NAS访问需要经过文件系统格式转换 , 所以是以文件一级来访问。不适和Block级的应用 , 尤其是要求使用裸设备的数据库系统。

5.4 SAN : 存储区域网络

image-20250724011244777

5.4.1 什么是SAN?

SAN ( Storage Aera Network ) 存储区域网络 , 是一种通过网络方式连接存储设备和应用服务器的存储构架 , 这个网络专用于主机和存储设备之间的访问。当有数据的存取需求时 , 数据可以通过存储区域网络在服务器和后台存储设备之间高速传输。

SAN ( Storage Area Network , 存储局域网络 ) 的诞生 , 使存储空间得到更加充分的利用以及安装和管理更加有效。SAN是一种将存储设备、连接设备和接口集成在一个高速网络中的技术。SAN本身就是一个存储网络 , 承担了数据存储任务 , SAN网络与LAN业务网络相隔离 , 存储数据流不会占用业务网络带宽。

SAN网络中 , 所有的数据传输在高速、高带宽的网络中进行 , SAN存储实现的是直接对物理硬件的块级存储访问 , 提高了存储的性能和升级能力。

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

5.4.2 SAN的误区

SAN的发展历程较短 , 从90年代后期兴起 , 由于当时以太网的带宽有限 , 而FC协议在当时就可以支持1Gb的带宽 , 因此早期的SAN存储系统多数由FC存储设备构成 , 导致很多用户误以为SAN就是光纤通道设备 , 其实SAN代表的是一种专用于存储的网络架构 , 与协议和设备类型无关 , 随着千兆以太网的普及和万兆以太网的实现 , 人们对于SAN的理解将更为全面。

5.4.3 SAN的组成

SAN由服务器 , 后端存储系统 , SAN连接设备组成 ;

后端存储系统由SAN控制器和磁盘系统构成 , 控制器是后端存储系统的关键 , 它提供存储接入 , 数据操作及备份 , 数据共享、数据快照等数据安全管理 , 及系统管理等一系列功能。

后端存储系统为SAN解决方案提供了存储空间。使用磁盘阵列和RAID策略为数据提供存储空间和安全保护措施。

连接设备包括交换机 , HBA卡和各种介质的连接线。

SAN的优点 :

  • 设备整合 , 多台服务器可以通过存储网络同时访问后端存储系统 , 不必为每台服务器单独购买存储设备 , 降低存储设备异构化程度 , 减轻维护工作量 , 降低维护费用 ;

  • 数据集中 , 不同应用和服务器的数据实现了物理上的集中 , 空间调整和数据复制等工作可以在一台设备上完成 , 大大提高了存储资源利用率 ;

  • 高扩展性 , 存储网络架构使得服务器可以方便的接入现有SAN环境 , 较好的适应应用变化的需求 ;

  • 总体拥有成本低 , 存储设备的整合和数据集中管理 , 大大降低了重复投资率和长期管理维护成本 ;

5.4.4 FC SAN的问题

兼容性差 , FC协议发展时间短 , 开发和产品化的大厂商较少 , 而且厂商之间各自遵循内部标准 , 导致不同厂商的FC产品之间兼容性和互操作差 , 即使同一厂商的不同版本不同型号的FC产品也存在类似的问题 ;

成本高昂 , FC SAN的成本包括先期设备成本和长期维护成本 , 由于FC协议在成熟度和互联性上无法与以太网相比 , 导致FC协议只能局限于存储系统应用 , 无法实现大规模推广 , 这直接导致了FC产品价格的昂贵 ; 同样与FC-SAN相关的所有产品都身价高昂 , 无论是备份软件的FC-SAN模块 , 甚至SCSI硬盘简单更换连接口成为FC硬盘 , 都要翻上几倍的价钱 ; 另外兼容性差也导致了用户无法自己维护FC设备 , 必须购买昂贵的厂商服务 , 如果用户的环境中包括多种FC存储设备 , 用户每年花在FC-SAN的系统保修服务的费用占当年采购成本的15%左右。如果再算上系统安装部署阶段的专业服务费用支出 , 以5年计算 , 整个服务费用支出与系统采购达到1:1!

扩展能力差 , FC-SAN高昂的成本和协议封闭 , 使得产品的开发、升级、扩容代价高昂。从2000年以来 , 存储市场中最大的中端部分就一直5年不变地维持着前端两个存储控制器 , 后端两个 ( 最多四个 ) 光纤环路的结构。不仅产品本身无法进行性能和处理能力扩展 , 产品型号向上的升级付出的代价几乎相当于购买一套新的设备 ;

异构化严重 , 各厂商按照自有标准开发各种功能 , 如快照、复制、镜像等 , 导致不同厂商存储设备之间功能无法互通 , 结果又出现的DAS方式的各种问题 , 重复投资、难以管理的局面

SAN的出现 , 从根本上是要建立一个开放、高性能、高可靠、高可扩展性的存储资源平台 , 从而能够应对快速的业务变化和数据增长 , 然而以上问题使得用户使用网络存储的目标产生了严重的偏离 , 很多用户甚至开始质疑为什么要放弃DAS而使用昂贵复杂的FC-SAN

5.4.5 IP SAN

IP网络是一个开放 , 高性能 , 高可扩展 , 可靠性高的网络平台。IP网是国际互连网 , 企业内部网络的主要形式。经过多年发展 , IP网络实现了最高的可管理性和互操作性。TCP/IP协议弹性强 , 适应网络的各种变化 , 无需停止服务即可实网络变更。1G的以太网已经普及 , 2006年会扩展到10GFC2008年才能到4G。不同厂家的IP网设备兼容性好。网络设备采购成本低廉。以太网知识普及 , 以太网多年的发展培养了无数的网络管理人员。

既然SCSI能与FC结合 , 为什么SCSI不能与TCP/IP结合呢?经过实践和摸索 , 一套新协议系统诞生了 , 称为iSCSI , 即Internet Small Computer System Interface , 在这种协议中 , SCSI语言可以通过Internet来传递 , 也就是承载于TCP/IP协议上。后来 , 人们索性将iSCSI为代表的以TCP/IP作为传输方式的网络存储系统称作IP SAN , 即基于IP的存储区域网络。值得说明的是 , IP SAN并不一定要用以太网作为链路层 , 可以用任何支持IP的链路层 , 比如ATM(IPoA)、PPPHDLC , 甚至是Fibre Channel也可以作为IP的链路层。

image-20250724012237366

将数据块和SCSI指令通过TCP/IP协议承载 , 通过千兆/万兆专用的以太网络连接应用服务器和存储设备 , 这样的解决方案称为IP SAN

IP SAN遵循IETFiSCSI标准 , 通过以太网实现对存储空间的块级访问 , 由于早先以太网速度 , 数据安全性以及系统级高容错要求等问题 , 这一标准经历了三年的认证过程 , 在包括IBM、HP、SUN、COMPAQ、DELL、Intel、Microsoft、EMC、HDS、Brocade等众多家厂商的努力 , 和万兆/千兆以太网10GBit Ethernet支撑下 , IP SAN/iSCSI已解决了网络瓶颈 , 数据安全和容错等问题 , 进入了实用阶段。

IP SAN继承了IP网络的优点 :

  • 实现弹性扩展的存储网络 , 能自适应应用的改变。

  • 已经验证的传输设备保证运行的可靠性

  • 以太网从1G10G及更高速过渡 , 只需通过简单的升级便可得到极大的性能提升 , 并保护投资

  • IP跨长距离扩展能力 , 轻松实现远程数据复制和灾难恢复

  • 大量熟悉的网络技术和管理的人才减少培训和人力成本

  • 将以太网的经济性引入存储 降低用户总体拥有成本。

5.5 SAN和NAS

SANNAS经常被视为两种竞争技术 , 实际上 , 二者能够很好地相互补充 , 以提供对不同类型数据的访问。SAN针对海量、面向数据块的数据传输 , 而NAS则提供文件级的数据访问和共享服务。

5.5.1 SAN和NAS的区分

通俗上理解 , SAN是一个网络上的磁盘 , NAS是一个网络上的文件系统。根据SAN的定义 , 即“存储区域网络” , SAN其实只是一个网络 , 但是这个网络内包含着各种这样的元素 , 主机、适配器、网络交换机、磁盘阵列前端、盘阵后端、磁盘等。应该说 , SAN是一个最大的涵盖 , 它涵盖了一起后端存储相关的内容。所以从这个角度来看 , SAN包含了NAS , 因为NAS的意思是“网络附加存储” , 是一种网络存储方式 , 这样NAS没有理由不属于SAN的范畴。

5.5.2 SAN和NAS的定位

image-20250724012447165

SAN方式工作图

image-20250724013029271

NAS方式工作图

如上图所示 , NAS架构的路径在虚拟目录层和文件系统层通信的时候 , 用以太网络和TCP/IP协议代替了内存 , 这样做不但增加了大量的CPU指令周期 ( TCP/IP逻辑和以太网卡驱动程序 ) , 而且使用了低速传输介质 ( 内存速度要比以太网快得多 ) 。而SAN方式下 , 路径中比NAS方式多了一次FC访问过程 , 但是FC的逻辑大部分都由适配卡上的硬件完成 , 增加不了多少CPU开销 , 而且FC访问的速度比以太网高。所以很容易得出结论。如果后端磁盘没有瓶颈 , 那么除非NAS使用快于内存的网络方式与主机通信 , 否则其速度永远无法超越SAN架构。但是如果后端磁盘有瓶颈 , 那么NAS用网络代替内存的方法产生的性能降低就可以忽略。比如 , 在大量随机小块IO、缓存命中率低的环境下 , 后端磁盘系统寻道瓶颈达到最大 , 此时前端的IO指令都会处于等待状态 , 所以就算路径前端速度再快 , 也无济于事。此时 , NAS系统不但不比SAN慢 , 而且由于其优化的并发IO设计和基于文件访问而不是簇块访问的特性 , 反而可能比SAN性能高。

既然NAS一般情况下不比SAN快 , 为什么要让NAS诞生呢?既然NAS不如SAN速度快 , 那么它为何要存在呢?具体原因如下 :

  • NAS的成本比SAN低很多。前端只使用以太网接口即可 , FC适配卡以及交换机的成本相对以太网卡和以太交换机来说是非常高的。

  • NAS可以解放主机服务器上的CPU和内存资源。因为文件系统的逻辑是要靠CPU的运算来完成的 , 同事文件系统还需要占用大量主机内存用于缓存。所以 , NAS适合用于CPU密集的应用环境。

  • 由于基于以太网的TCP/IP传输数据 , 所以NAS可扩展性很强。只要有IP的地方 , NAS就可以提供服务 , 且容易部署和配置。

  • NAS设备一般都可以提供多种协议访问数据。网络文件系统只是其提供的一种接口而已 , 还有诸如HTTP、FTP等协议方式。而SAN只能使用SCSI协议访问。

  • NAS可以在一台盘阵上实现多台客户端的共享访问 , 包括同时访问某个目录或文件。而SAN方式下 , 除非所有的客户端都安装了专门的集群管理系统或集群文件系统模块 , 否则不能将某个LUN共享 , 强制共享将会损毁数据。

  • 经过特别优化的NAS系统 , 可以同时并发处理大量客户端的请求 , 提供比SAN方式更方便的访问方法。

  • 多台主机可以同时挂接NFS上的目录 , 那么相当于减少了整个系统中文件系统的处理流程 , 由原来的多个并行处理转化成了NFS上的单一实例 , 简化了系统冗余度。

NAS对于大块顺序IO密集的环境 , 要比SAN慢很多 , 所以在IO密集的环境中首选使用SAN。此外 , 如果是高并发随机小块IO环境或者共享访问文件的环境 , NAS会表现出很强的相对性能。如果SAN主机上的文件系统碎片比较多 , 那么读写某个文件时便会产生随机小块IO , 而NAS自身文件系统会有很多优化设计 , 碎片相对少。CPU密集的应用可以考虑使用NAS。SAN与NAS各有各的优点和缺点 , 需要根据不同的环境和需求来综合考虑。

NAS:

  • 适用在大量并发随机小块IO、且数据命中率低的环境中

  • CPU密集的应用中

SAN :

  • 大块顺序IO密集环境中

  • SAN主机上的文件系统碎片比较多

5.5.3 SAN与NAS的结合

尽管这两种技术类似 , 但严格意义上讲NAS其实只是一种文件服务。NAS和SAN不仅各有应用场合 , 也相互结合 , 许多SAN部署于NAS后台 , 为NAS设备提供高性能海量存储空间。

image-20250724012732614

NASSAN结合中出现了NAS网关这个部件。NAS网关主要由专为提供文件服务而优化的操作系统和相关硬件组成 , 可以看作是一个专门的文件管理器。NAS网关连接到后端上的SAN上 , 使的SAN的大容量存储空间可以为NAS所用。因此 , NAS网关后面的存储空间可以根据环境的需求扩展到非常大的容量。

NAS网关”方案主要是在NAS一端增加了可与SAN相连的“接口” , 系统对外只有一个用户接口。

NAS网关系统虽然在一定程度上解决了NASSAN系统的存储设备级的共享问题 , 但在文件级的共享问题上却与传统的NAS系统遇到了同样的可扩展性问题。当一个文件系统负载很大时 , NAS网关很可能成为系统的瓶颈。

5.5.4 IP SAN和NAS的定位

虽然iSCSI与NAS都是利用TCP/IP加以太网来实现的。但是二者所传输的语言是大相径庭的。NAS传输的是文件系统语言 , 而iSCSI传输的是SCSI指令语言。NAS设备上必须运行一种或者多种文件系统逻辑 , 才能成为NAS ; 而iSCSI Target设备上不需要运行任何文件系统逻辑 ( 盘阵自身操作系统文件管理除外。 ) 在相同的条件下 , iSCSINAS在速度与性能方面相差不大。

6. 磁盘阵列

磁盘阵列简称RAID ( Redundant Arrays of Inexpensive Disks , RAID ) , 有“价格便宜且多余的磁盘阵列”之意。其原理是利用数组方式来作磁盘组 , 配合数据分散排列的设计 , 提升数据的安全性。磁盘阵列主要针对硬盘 , 在容量及速度上 , 无法跟上CPU及内存的发展 , 提出改善方法。磁盘阵列是由很多便宜、容量较小、稳定性较高、速度较慢磁盘 , 组合成一个大型的磁盘组 , 利用个别磁盘提供数据所产生的加成效果来提升整个磁盘系统的效能。同时 , 在储存数据时 , 利用这项技术 , 将数据切割成许多区段 , 分别存放在各个硬盘上。

磁盘阵列还能利用同位检查 ( Parity Check ) 的观念 , 在数组中任一颗硬盘故障时 , 仍可读出数据 , 在数据重构时 , 将故障硬盘内的数据 , 经计算后重新置入新硬盘中。

磁盘阵列其样式有三种 , 一是外接式磁盘阵列柜、二是内接式磁盘阵列卡 , 三是利用软件来仿真。外接式磁盘阵列柜最常被使用大型服务器上 , 具可热抽换 ( Hot Swap ) 的特性 , 不过这类产品的价格都很贵。内接式磁盘阵列卡 , 因为价格便宜 , 但需要较高的安装技术 , 适合技术人员使用操作。另外利用软件仿真的方式 , 由于会拖累机器的速度 , 不适合大数据流量的服务器。

image-20250724013117339

上图 : 外接式磁盘阵列

6.1 磁盘柜、磁盘阵列

JBOD(盘柜) : Just a Bound Of Disks”磁盘柜 , 没有RAID控制器功能的磁盘箱成为“盘柜”。

磁盘阵列 : 自带RAID控制器的磁盘箱叫做“磁盘阵列”或“盘阵”。

盘阵是在盘柜的基础上 , 将内部的磁盘经过其自带的RAID控制器的分分合合 , 虚拟化成逻辑盘 , 然后经过外部SCSI接口连接到主机上端的SCSI接口。此时 , 整个盘阵对于主机来说 , 就是主机SCSI总线上的一个或者多个设备 , 具有一个或者多个SCSI ID。所有逻辑盘都是以LUN的相识呈现给主机。

磁盘阵列的类型 : SCSI-FC盘阵、FC-FC盘阵、SATA-FC盘阵、SCSI-SCSI盘阵等类型。

7. 数据一致性

7.1 数据一致性概述

数据一致性是指关联数据之间的逻辑关系是否正确和完整。问题可以理解为应用程序自己认为的数据状态与最终写入到磁盘中的数据状态是否一致。比如一个事务操作 , 实际发出了五个写操作 , 当系统把前面三个写操作的数据成功写入磁盘以后 , 系统突然故障 , 导致后面两个写操作没有写入磁盘中。此时应用程序和磁盘对数据状态的理解就不一致。当系统恢复以后 , 数据库程序重新从磁盘中读出数据时 , 就会发现数据再逻辑上存在问题 , 数据不可用。

7.2 Cache引起的数据一致性问题

引起数据一致性问题的一个主要原因是位于数据I/O路径上的各种Cache或Buffer ( 包括数据库Cache、文件系统Cache、存储控制器Cache、磁盘Cache等 ) 。由于不同系统模块处理数据IO的速度是存在差异的 , 所以就需要添加Cache来缓存IO操作 , 适配不同模块的处理速度。这些Cache在提高系统处理性能的同时 , 也可能会“滞留”IO操作 , 带来一些负面影响。如果在系统发生故障时 , 仍有部分IO“滞留”在IO操作中 , 真正写到磁盘中的数据就会少于应用程序实际写出的数据 , 造成数据的不一致。当系统恢复时 , 直接从硬盘中读出的数据可能存在逻辑错误 , 导致应用无法启动。尽管一些数据库系统 ( 如Oracle、DB2 ) 可以根据redo日志重新生成数据 , 修复逻辑错误 , 但这个过程是非常耗时的 , 而且也不一定每次都能成功。对于一些功能相对较弱的数据库 ( 如SQL Server ) , 这个问题就更加严重了。

解决此类文件的方法有两个 , 关闭Cache或创建快照 ( Snapshot ) 。尽管关闭Cache会导致系统处理性能的下降 , 但在有些应用中 , 这却是唯一的选择。比如一些高等级的容灾方案中 ( RPO为0 ) , 都是利用同步镜像技术在生产中心和灾备中心之间实时同步复制数据。由于数据是实时复制的 , 所以就必须要关闭Cache。

快照的目的是为数据卷创建一个在特定时间点的状态视图 , 通过这个视图只可以看到数据卷在创建时刻的数据 , 在此时间点之后源数据卷的更新 ( 有新的数据写入 ) , 不会反映在快照视图中。利用这个快照视图 , 就可以做数据的备份或复制。那么快照视图的数据一致性是如何保证的呢?这涉及到多个实体 ( 存储控制器和安装在主机上的快照代理 ) 和一系列的动作。典型的操作流程是 : 存储控制器要为某个数据卷创建快照时 , 通知快照代理 ; 快照代理收到通知后 , 通知应用程序暂停IO操作 ( 进入backup模式 ) , 并flush数据库和文件系统中的Cache , 之后给存储控制器返回消息 , 指示已可以创建快照 ; 存储控制器收到快照代理返回的指示消息后 , 立即创建快照视图 , 并通知快照代理快照创建完毕 ; 快照代理通知应用程序正常运行。由于应用程序暂停了IO操作 , 并且flush了主机中的Cache , 所以也就保证了数据的一致性。

image-20250724013859016

快照的创建过程

创建快照是对应用性能是有一定的影响的 ( 以Oracle数据库为例 , 进入Backup模式大约需要2分钟 , 退出Backup模式需要1分钟 , 再加上通信所需时间 , 一次快照需要约4分钟的时间 ) , 所以快照的创建不能太频繁。

7.3 时间不同步引起的数据一致性问题

引起数据不一致性的另外一个主要原因是对相关联的多个数据卷进行操作 ( 如备份、复制 ) 时 , 在时间上不同步。比如一个Oracle数据库的数据库文件、Redo日志文件、归档日志文件分别存储在不同的卷上 , 如果在备份或复制的时候未考虑几个卷之间的关联 , 分别对一个个卷进行操作 , 那么备份或复制生成的卷就一定存在数据不一致问题。

此类问题的解决方法就是建立“卷组 ( Volume Group ) ” , 把多个关联数据卷组成一个组 , 在创建快照时同时为组内多个卷建立快照 , 保证这些快照在时间上的同步。之后再利用卷的快照视图进行复制或备份等操作 , 由此产生的数据副本就严格保证了数据的一致性。

7.4 文件共享中的数据一致性问题

通常所采用的双机或集群方式实现同构和异构服务器、工作站与存储设备间的数据共享 , 主要应用在非线性编辑等需要多台主机同时对一个磁盘分区进行读写。

在NAS环境中 , 可以通过网络共享协议N FS或CIFS来做到数据的共享。但是如果不在NAS环境中 , 多台主机同时对一个磁盘分区进行读写会带来写入数据一致性的问题 , 造成文件系统被破坏或者当前主机写入后其它主机不能读取当前写入数据的问题。

可以通过使用数据共享软件装在多台主机上来实现磁盘分区的共享。由数据共享软件来调配多台主机数据的写入 , 保证数据的一致性。

8. 数据复制与容灾

8.1 灾难恢复/业务连续性

随着企业信息化进程的不断深化 , 信息系统成为了支撑企业业务运行的重要平台 , 企业的全部业务流程都依赖于信息系统提供的服务来运作。这种统一的业务运作平台在简化业务流程 , 提高工作效率的同时 , 也带来了安全性方面的全新要求。那就是信息系统必须具备抵抗灾难的能力 , 具备在灾后快速恢复的能力 , 只有这样 , 才能满足企业业务连续性的需求。

在国内 , 尽管企业对信息系统的重要性和容灾需求早有认识 , 但鉴于适用技术、方案成本等多方面原因 , 容灾系统的建设一直属于企业的自主行为。在9.11事件和印度洋海啸之后 , 国家充分认识到了重要信息系统容灾的必要性 , 要求一些重要行业的信息系统必须实现容灾。为了加强对信息系统安全的管理 , 规范对信息系统灾难性故障的响应和处置 , 国务院信息化办公室在2005年发布了《重要信息系统灾难恢复指南》 , 用于指导信息系统的使用和管理单位的灾难恢复规划工作 , 以及对信息系统灾难恢复规划项目的审批和监督管理。

《指南》给灾难下了一个清晰的定义 , 即“由于人为或自然的原因 , 造成信息系统运行严重故障或瘫痪 , 使信息系统支持的业务功能停顿或服务水平不可接受、达到特定的时间的突发性事件”。这个定义不仅给出了灾难的范围 , 也给出了灾难的判断标准。灾难不只包括自然灾难 ( 地震、海啸等 ) , 也包括人为的灾难 ( 如恐怖袭击、误操作、病毒等 ) 。另外 , 判断信息系统是否因灾难而故障的标准除“支持的业务停顿”之外 , “服务水平不可接受”也是一个方面。事实上 , “服务水平不可接受”是比较难以定量的分析判定的 , 这增加了实现自动化故障切换 ( 如“零秒”切换 ) 的难度。

参照国际相关标准 , 并结合国内实际情况 , 《指南》还将灾难恢复应具有的技术和管理支持分为6个等级 , 每个级别都包括数据备份系统、备用数据处理系统、备用网络系统、备用基础设施、技术支持、运行维护支持和灾难恢复预案这7个要素。在7个要素中 , 前三个属于IT技术的范畴 , 而后四个属于管理和服务的范畴。其中 , 数据备份系统面向的对象是数据 , 目的是实现数据的冗余备份 , 以便一份数据被破坏以后 , 还有另外一份数据可用 , 常用的技术有数据备份 ( Backup ) 和数据复制 ( Replication ) 等。备用数据处理系统面向的对象是应用服务器 , 目的是在主用数据处理系统发生故障以后 , 可以利用数据备份系统产生的冗余数据来恢复应用 , 常用的技术有服务器双机热备、服务器集群等。备用网络系统面向的是网络连接 , 目的是保证备用数据处理系统与其客户端、不同备用数据处理系统之间的网络 , 以便整个实现业务系统的恢复。

要素 级别

数据备份系统

备用数据处理系统

备用网络系统

备用基础设施

技术支持

运行维护支持

灾难恢复预案

级别1

级别2

级别3

级别4

级别5

级别6

七个要素的不同满足程度决定了容灾方案的等级 , 等级的划分最终反映在技术指标上 , 不同等级的容灾方案对应有不同的技术指标值。常用的容灾方案评价指标主要有RTO ( Recovery Time Object , 恢复时间目标 ) 、RPO ( Recovery Point Time , 恢复点目标 ) 和容灾半径。RTO是指“将信息系统从灾难造成的故障或瘫痪状态恢复到可正常运行状态 , 并将其支持的业务功能从灾难造成的不正常状态恢复到可接受状态”所需时间 , 其中包括备份数据恢复到可用状态所需时间、数据处理系统切换时间、以及备用网络切换时间等 , 该指标用以衡量容灾方案的业务恢复能力。RPO是指业务系统所允许的灾难过程中的最大数据丢失量 ( 以时间来度量 ) , 这是一个与数据备份系统所选用的技术有密切关系的指标 , 用以衡量灾难恢复方案的数据冗余备份能力。容灾半径是指生产中心和灾备中心之间的直线距离 , 用以衡量容灾方案所能防御的灾难影响范围。显然 , 具有零RTO、零RPO和大容灾半径的灾难恢复方案是用户最期望的 , 但受系统性能要求、适用技术及成本等方面的约束 , 这种方案实际上是不大可行的。所以 , 用户在选择容灾方案时应该综合考虑灾难的发生概率、灾难对数据的破坏力、数据所支撑业务的重要性、适用的技术措施及自身所能承受的成本等多种因素 , 理性地作出选择。

image-20250724014013255

RTO示意图

image-20250724014039220

RPO示意图

image-20250724014105038

灾难半径示意图

除技术指标以外 , 容灾方案的ROI ( Return of Investment , 投入产出比 ) 也是用户需要重点关注的 , 它用以衡量用户投入到容灾系统的资金与从中所获得的收益的比率。表明上看 , 容灾系统不像其它业务系统那样会给用户带来收益 , 但事实上 , 容灾系统确实是有收益的 , 而且收益是完全可以度量的。容灾系统的收益主要来源于发生灾难时为用户所挽回的损失 , 这种损失不只包括金钱方面的 , 信誉、客户忠诚度、法律风险等方面的损失也包含在内。业界统计数据表明 , 随着业务停运时间的延长 , 用户的损失会急剧增加。当然不同行业的损失程度有所不同 , 其中以金融、电信为最。如果容灾系统能够把由于灾难而导致的业务停运时间显著缩短 , 也就间接为客户创造了收益。基于容灾方案的技术指标、业界的统计数据和用户自身业务状况 , 用户是完全可以对容灾方案的收益作出一个适当的量化评估的。在ROI指标方面 , 基于新型IP SAN系统的容灾方案显得更有优势 , 因为这类方案不仅能大幅降低容灾系统的初始部署成本 , 而且管理成本也相对要低很多。

image-20250724014149660

8.2 数据备份系统

在构建容灾系统所涉及的7个要素中 , 数据备份系统是基础 , 只有保证了数据的安全可用 , 业务的恢复才有可能。数据备份系统采用的技术主要有数据备份 ( Backup ) 和数据复制 ( Replication ) 两种。

8.2.1 数据备份

数据备份 ( Backup ) 一般是指利用备份软件 ( 如VeritasNetBackupCABrightStor等 ) 把数据从磁盘备份到磁带进行离线保存 ( 最新的备份技术也支持磁盘到磁盘的备份 , 也就是把磁盘作为备份数据的存放介质 , 以加快数据的备份和恢复速度 ) 。备份数据的格式是磁带格式 , 不能被数据处理系统直接访问。在源数据被破坏或丢失时 , 备份数据必须由备份软件恢复成可用数据 , 才可让数据处理系统访问。

数据备份在一定程度上是可以保证数据安全的 , 但应用于容灾系统时却面临众多问题 :

  1. 备份窗口

    备份窗口是指应用所允许的完成数据备份作业时间。由于数据备份作业会导致应用主机的性能下降 , 甚至服务水平不可接受 , 备份作业必须在应用停机或业务量较小的时候进行。但随着备份数据量的不断增加和业务7×24小时连续运行需求的提出 , 备份窗口的问题越来越突出。问题的解决之道主要在于加快备份速度 ( 如采用高速带库、磁盘备份 ) 和实现在线备份。

  1. 恢复时间

    在容灾系统中 , 备份数据的恢复时间直接关系到容灾方案的RTO指标。当备份数据量较大或者备份策略比较复杂时 , 备份数据往往需要较长的恢复时间。

  1. 备份间隔

    鉴于备份作业对主机系统的影响 , 两次备份作业之间的间隔不能太密集。以常用的备份策略 ( 1个全备+6个增量备份 ) 为例 , 备份间隔为1天。也就是说如果在两次备份之间发生灾难 , RPO ( 数据的丢失量 ) 接近于1天 , 这对于一些重要的信息系统是完全不可接受的。

  2. 数据的可恢复性

    数据备份的目的就是为了数据恢复。但往往由于介质失效、认为错误、备份过程出错等原因 , 造成备份数据的不可恢复。

    image-20250724014813822

    备份数据恢复失败原因调查 ( 数据来源 : ESG )

  1. 介质的保管和运送

    在完成数据备份以后 , 为了保证备份数据的安全性 , 一般采用的方式是把备份介质运输到远程的数据中心进行保管。但是在运输过程中 , 可能会造成备份数据的丢失。最近爆出的美国银行丢失120万名客户资料的事件就是佐证。

  1. 备份的成本

    从提高备份速度和恢复速度 , 提高数据可恢复性方面来看 , D2D是个不错的选择 , 但是现有备份软件的D2D选件都非常昂贵 , 方案实施成本比较高。

综合以上分析可以知道 , 高等级的容灾方案不适合于采用数据备份 ( Backup ) 技术来保证数据安全 , 数据备份只适合于一些低等级的容灾方案 , 对RTORPO要求相对比较低。但这并不意味这高等级容灾系统中不需要数据备份 , 作为一种廉价、成熟的技术 , 数据备份可以为容灾系统提供更多一层的保护。

8.2.2 数据复制

数据复制 ( Replication ) 是指利用复制软件 ( 如EMCSRDFH3C同步异步镜像等 ) 把数据从一个磁盘复制到另一个磁盘 , 生成一个数据副本。这个数据副本是数据处理系统直接可以访问的 , 不需要进行任何的数据恢复操作 , 这一点是复制与D2D备份的最大区别。

数据复制有多种分类方法 , 依据复制启动点的不同 , 数据复制可分为同步复制、异步复制、基于数据增量的复制等几种。对于同步复制 , 数据复制是在向主机返回写请求确认信号之前实时进行的 ; 对于异步复制 , 数据复制是在向主机返回写请求确认信号之后实时进行的 ; 而基于数据增量的复制是一种非实时的复制方式 , 它依据一定的策略 ( 如设定数据变化量门限值、日历安排等 ) 来启动数据复制。业界经常把不间断的 , 实时的数据复制称为镜像 , 所以同步/异步复制又被称为同步/异步镜像。

image-20250724014944321

依据复制执行实体的不同 , 数据复制可分为基于主机的复制和基于存储设备的复制。基于主机的复制一般是由安装在主机中的软件插件来实施数据的复制 , 这会对主机系统的性能有所影响 , 典型的产品如Veritas的VVR , HP的OpenView SM等。基于存储设备的复制可以是由存储设备的控制器执行 ( 如EMC的SRDF、华为3Com的同/异步镜像等 ) , 也可以是由虚拟化的存储管理平台来执行 ( 如飞康IPStor的同/异步镜像和基于增量的复制 ) 。基于存储设备的复制独立于主机平台 , 不会对主机系统的性能造成影响。

image-20250724015127749

基于主机的数据复制

image-20250724015156152

基于存储设备的数据复制

image-20250724015221014

基于虚拟化存储管理平台的数据复制

另外 , 依据数据复制站点之间的距离的不同 , 复制还可分为远程复制和本地复制。一般来说 , 复制距离小于1~2Km时为本地复制 , 大于该值时为远程复制。

8.3 数据一致性

在进行数据备份和数据复制时 , 保证数据的一致性是非常重要的。数据一致性问题可以理解为应用程序自己认为的数据状态与最终写入到磁盘中的数据状态是否一致。

引起数据一致性问题的主要原因是位于数据I/O路径上的各种CacheBuffer ( 包括数据库Cache、文件系统Cache、存储控制器Cache、磁盘Cache等 ) 。由于不同系统模块处理数据IO的速度是存在差异的 , 所以就需要添加Cache来缓存IO操作 , 适配不同模块的处理速度。这些Cache在提高系统处理性能的同时 , 也可能会“滞留”IO操作 , 带来一些负面影响。如果在系统发生故障时 , 仍有部分IO“滞留”在IO操作中 , 真正写到磁盘中的数据就会少于应用程序实际写出的数据 , 造成数据的不一致。当系统恢复时 , 直接从硬盘中读出的数据可能存在逻辑错误 , 导致应用无法启动。尽管一些数据库系统 ( 如Oracle、DB2 ) 可以根据redo日志重新生成数据 , 修复逻辑错误 , 但这个过程是非常耗时的 , 而且也不一定每次都能成功。对于一些功能相对较弱的数据库 ( 如SQL Server ) , 这个问题就更加严重了。

目前来说 , 数据一致性问题的解决之道有两个 , 关闭Cache或创建快照 ( Snapshot ) 。尽管关闭Cache会导致系统处理性能的下降 , 但在有些应用中 , 这却是唯一的选择。比如一些高等级的容灾方案中 ( RPO为0 ) , 都是利用同步镜像技术在生产中心和灾备中心之间实时同步复制数据。由于数据是实时复制的 , 所以就必须要关闭Cache。

快照的目的是为数据卷创建一个在特定时间点的状态视图 , 通过这个视图只可以看到数据卷在创建时刻的数据 , 在此时间点之后源数据卷的更新 ( 有新的数据写入 ) , 不会反映在快照视图中。那么利用这个快照视图 , 就可以做数据的备份或复制。那么快照视图的数据一致性是如何保证的呢?这涉及到多个实体 ( 存储控制器和安装在主机上的快照代理 ) 和一系列的动作。典型的操作流程是 : 存储控制器要为某个数据卷创建快照时 , 通知快照代理 ; 快照代理收到通知后 , 通知应用程序暂停IO操作 ( 进入backup模式 ) , 并flush数据库和文件系统中的Cache , 之后给存储控制器返回消息 , 指示已可以创建快照 ; 存储控制器收到快照代理返回的指示消息后 , 立即创建快照视图 , 并通知快照代理快照创建完毕 ; 快照代理通知应用程序正常运行。由于应用程序暂停了IO操作 , 并且flush了主机中的Cache , 所以也就保证了数据的一致性。

image-20250724015042435

创建快照是对应用性能是有一定的影响的 ( 以Oracle数据库为例 , 进入Backup模式大约需要2分钟 , 退出Backup模式需要1分钟 , 再加上通信所需时间 , 一次快照需要约4分钟的时间 ) , 所以快照的创建不能太频繁。

8.4 总结

数据备份 ( Backup ) : 受备份策略、备份数据可恢复性等问题影响 , 不适合于在高等级的容灾方案 ( RPO小于24小时 ) 作为构建备份数据系统主要的技术。但由于实施方便 , 成本低廉 , 适合于低等级的容灾方案中 , 也可作为高等级容灾方案的辅助技术。在应用停机的情况下进行数据备份就不存在数据一致性问题 , 当需要在线备份时 , 一般由备份软件来保证数据一致性。

同步镜像 : 应用于最高等级的容灾方案 ( RPO等于0 ) 中 , 需要关闭主机Cache来保证数据一致性。对于连接生产中心和灾备中心的链路带宽和QoS要求很高 , 一般采用光纤直连、波分设备来保证 , 方案部署成本很高。

异步镜像 : 应用于较高级别的容灾方案 ( RPO接近于0 ) 中 , 无法有效保证数据一致性 ( 关闭主机中的Cache和快照都不适合 ) 。但对于连接生产中心和灾备中心的链路带宽和QoS要求一般 , 理论上带宽只要达到“日新增数据量/ ( 24×3600×8 ) ”即可。

增量复制 : 应用于较高级别的容灾方案 ( RPO小于1小时 ) 中 , 可以结合快照技术有效保证数据一致性。对于连接生产中心和灾备中心的链路带宽和QoS要求一般 , 理论上带宽只要达到“数据增量/复制间隔”即可。

9. 备份技术

9.1 什么是备份

备份顾名思义 , 就是将数据以某种形式保存下来 , 备份的根本目的在于恢复 , 在这些数据丢失、毁坏和受到威胁的时候 , 使用数据的备份来恢复数据。虽然备份的定义可能很简单 , 不过具体实施存储系统的备份却可能是一份艰巨的任务 , 其中包含了许多可以预见的以及不易预见的需要考虑的因素。

9.2 备份与拷贝、归档的区别

备份不能仅仅通过拷贝完成 , 因为拷贝不能留下系统的注册表等信息 ; 而且也不能留下历史记录保存下来 , 以做追踪 ; 当数据量很大时 , 手工的拷贝工作又是何其麻烦。备份=拷贝+管理。管理包括备份的可计划性、磁带机的自动化操作、历史记录的保存以及日志记录等等。

正如生命周期理论将在线数据分级为在线和近线数据一样 , 离线数据亦可分为备份与存档数据 , 以降低投资和运维成本。

存档的目的是将需要长期备查或转移到异地保存/恢复的数据存放到可移动存储介质上。严格意义上讲 , 存档的目的不是为了保障数据安全 , 而只是为了实现数据仓储。如果说备份相当于桌头的字典 , 工作时会经常翻用 , 存档则好像日常工作中生成的一些具长期保存价值的文字资料 , 被转移到书架上或档案馆里备查。

9.3 常规备份的实现方式

通常一套完整的备份系统包含备份软件、磁带机/磁带库、和备份服务器 , 具体的备份策略的制定、备份介质的管理以及一些扩展功能的实现 , 都是由备份软件来最终完成的。在备份服务器上安装备份软件的服务器端 , 在应用服务器端安装备份软件的客户端代理 , 如果是数据库应用还需要相应的数据库接口程序 , 客户端代理软件和服务器端软件协调工作 , 按照预先制定的备份策略自动或手动的将数据备份到磁带上。然而一个具有一定规模的数据中心的数据备份要涉及到多种UNIX平台和不同的数据库类型 , 可以想象每天的备份工作对于管理员来说都是一个挑战。

备份策略制定是备份工作的重要部分。一般来说需要备份的数据存在一个2/8原则 , 即20%的数据被更新的概率是80%。这个原则告诉我们 , 每次备份都完整的复制所有数据是一种非常不合理的做法。事实上 , 真实环境中的备份工作往往是基于一次完全备份之后的增量或差量备份。

完全备份很好理解 , 即把所有数据进行一次完整的备份 , 当进行恢复的时候只需要一盘磁带 ;

增量备份是只有那些在上次完全备份或者增量备份后被修改了的文件才会被备份 , 如下图 , 优点是备份数据量小 , 需要的时间短 , 缺点是恢复的时候需要多盘磁带 , 出问题的风险较大 ,

image-20250724015444561

差量备份是备份那些自从上次完全备份之后被修改过的文件 , 如下图 , 因此从差量备份中恢复速度是很快的 , 因为只需要两份磁带——最后一次完全备份和最后一次差量备份 , 缺点是每次备份需要的时间较长。

image-20250724015513416

备份窗口是在进行备份操作时 , 应用系统可以接受的最长备份时间 , 对于某些5X8类型的非关键应用备份窗口可以很大 , 但是对于7X24小时的应用备份窗口就会很小。

9.4 LAN Free和Serverless备份

所谓LAN Free Backup顾名思义 , 就是指释放网络资源的数据备份方式。在SAN架构中 , LAN Free Backup的实现机制一般如下图1所示。

备份服务器向应用服务器发送指令和信息 , 指挥应用服务器将数据直接从磁盘阵列中备份到磁带库中。在这个过程中 , 庞大的备份数据流没有流经网络 , 为网络节约了宝贵的带宽资源。在NAS架构中 , 情形十分类似 , 磁带库直接连接在NAS文件服务器上 , 备份服务器通过NDMP协议 , 指挥NAS文件服务器将数据备份到磁带库中。细心观察之下会发现 , 这两种方式虽然都节约了网络资源 , 但却增加了服务器的工作负荷 , 缺点是价格非常昂贵 , 大多数备份软件的LAN Free功能选项都需要用户付出高昂的价格。

Serverless Backup技术是以全面的释放网络和服务器资源为目的的 , 技术核心就是在SAN的交换层实现数据的复制工作 , 这样备份数据不仅无需经过网络 , 而且也不必经过应用服务器的总线 , 完全的保证了网络和应用服务器的高效运行。但是现实情况却没有这么理想 , Serverless Backup技术目前只能停留在纸面上 , 实际实施效果很差 , 完全不需要主机干预还不现实。

图1 LAN Free Backup典型组网图

image-20250724015557079


熊熊