浅谈数据保护

1.什么是数据保护:
    数据保护是保护重要数据免受损坏、损害或丢失的过程,并提供在发生导致数据不可访问或不可用的情况下将数据恢复到功能状态的能力
1.2.为什么需要数据保护:
    数据是现代企业最重要的资产。在当今世界,丢失数据就是损失金钱。让我们考虑一个银行的例子。财务数据的丢失意味着收入的损失,更不用说品牌的损失了——你会考虑把你的钱放在一家银行里吗?它说:“我们损失了你的钱,因为我们的服务器磁盘损坏了。”

企业不必忍受飓风或地震的愤怒来丢失数据。意外删除数据是导致数据丢失的最常见原因之一。

无论范围或原因如何,无论是硬件故障还是人为错误,任何系统都不能完全避免数据丢失。

虽然数据保护很重要,但它只有在数据丢失时才有用。在此之前,公司必须在数据保护解决方案上花钱,即使这种投资不会产生任何收入(例如,直到数据丢失)。由于这个原因,一些组织可能不愿意实现这样的解决方案。就像一些汽车司机可能不愿意坚持安全驾驶,因此政府实施交通法律以避免事故,政府也提出法律法规来确保组织保护必要的数据。

数据保护允许遵守法律和法规要求,以便在很长一段时间内检索和提供特定的业务信息。例如,对于税务记录来说,这样的期限可能是7年,对于政府文件来说,可能是30年,对于人寿保险单来说,可能是客户的一生或更长时间。商业账户、法律合同、会议记录和人寿保险单细节都是您可能需要检索的案例很长一段时间后的数据。

2. 同样的问题,不同的解决办法。
    确保“数据在任何情况下都能得到保护并得以利用”的问题可以通过采用不同的技术手段来解决。
    诸如磁盘、磁带或云存储设备等存储介质可用于保存数据的副本(即“备份”)。
    - 反映技术可用于创建网站或文件的精确复制品,从而使其能在多个地方被访问到。
    存储快照能够自动生成一组指向存储在磁带或磁盘上的信息的指针,从而实现更快捷的数据恢复。
    持续数据保护(CDP)功能会随时对企业的所有数据进行备份,只要发生了任何更改
究竟采用哪种解决方案取决于数据的重要性、我们希望多快将其恢复过来,当然还有我们愿意为该解决方案投入多少钱。相对来说较为廉价的解决方案(例如备份到磁带设备)可能意味着恢复所需的时间会更长。而速度更快的解决方案,比如镜像和 CDP(连续数据保护),则意味着数据可以在瞬间恢复上线,而客户根本察觉不到这一过程,但这类解决方案可能会成本高昂。
从充分恢复数据到企业恢复正常运营之间的时间间隔必须由组织的具体业务需求来确定。一个组织会根据未能执行这些关键业务流程给企业带来的财务风险来定义恢复这些流程的要求。这些成本因具体行业而有很大差异。

3. 备份/恢复的基础知识

3.1 备份与恢复服务的作用

备份服务会将重要数据从主存储设备复制到辅助存储设备。主存储设备支持用于正常处理的数据的工作副本。辅助存储设备则提供与原始数据相隔离的数据副本,该副本不会受到后续更新和更改的影响。在数据存储和处理所依赖的主存储设备出现故障的情况下,辅助存储设备中的副本得以保留。当在诸如磁带之类的存储介质上进行备份时,还可以将其物理移动到异地位置。

恢复服务会将备份服务先前生成的数据从备份副本中复制到原始系统或替换系统中。恢复服务的总体目标是将备份数据恢复到系统中,使其处于数据一致且可用的状态。利用恢复服务进行的恢复操作的范围可能很窄,比如恢复单个文件,也可能很宽泛,比如恢复整个系统或数据中心以及它所支持的所有业务流程。

备份服务可用于防范业务数据的丢失,其做法是定期对支持组织关键流程的数据进行复制。这些备份副本引入了一定程度的数据冗余,并为恢复操作提供了基础。

设计合理的备份服务能够保障数据安全,并提供一种高效且经济实惠的数据丢失灾难性后果防范策略。该备份服务的设计应确保在适当的时间间隔内获取足够的数据副本,并将其妥善存储于恰当的位置,以支持数据恢复的场景和需求。

恢复服务是支持由业务连续性管理策略所定义的恢复流程的服务。恢复和备份的概念直接相关联。丢失数据的恢复需要恢复数据和处理能力,然后对丢失的工作进行可能的重新处理。恢复需求是规划有效备份策略的起点。恢复是最终交付备份服务的时间关键型服务。

3.2 Types of backups
    Full Backup Vs Incremental Backup Vs Differential Backup Vs Synthesized full backup
3.2.1.1 完全备份(Full Backup):
完整备份会包含所有被选作备份的数据。这意味着包括在文件系统级别所选中的所有文件/文件夹,或者整个卷(有关此内容的更多详细信息,请参阅下文的块级备份)在内的所有内容都会被备份。
它们使得恢复操作更加可靠,因为您的整个系统总是有一盘完整的、最新的备份存放在磁带上或一组磁带上。恢复起来也很容易,因为我们只需要恢复一个备份映像即可。
但这同时也意味着他们需要更多的空间来存放备份图像,并且这样做会耗费大量时间——因为所有内容都要进行复制。
与完整备份不同,存在多种部分备份方式,它们只会复制自上次备份以来发生变化的文件/数据。

3.2.1.2 增量备份(Incremental Backup):
增量备份仅包含自上次完整备份或增量备份以来发生变化的文件/数据块。增量备份与差分备份的区别在于,增量备份并非累加式的。

3.2.1.3. 差异备份(Differential Backup/Cumulative incremental backup):
差异备份包含自上次完整备份或增量备份以来所有发生变化的文件/数据块。与增量备份的区别在于,差异备份是累积性的。在进行差异备份之后,每次后续的差异备份都会备份与上一次差异备份相同的文件。此外,它还会备份自上次完整备份或增量备份以来的所有新文件或已更改的文件。
How does backup software identify the changed files or blocks? There are many possible solutions:
- Relying on last modified time
- Relying on archive bit
- Relying on journaling solutions such as change journal in NTFS
- For block level changes, relying on OS's metadata
- For block level changes, relying on custom filter driver to identify changes
- For applications, relying on the application APIs (e.g. databases)
- For applications, relying on log files of the database applications
- For applications, relying on custom reverse engineered solution to find out the change

3.2.1.4. 合成备份
合成备份消除了执行周期性完整备份的需求。它是由一次完整备份(称为基准备份)以及后续的增量备份组合而成的。由此产生的合成备份随后成为新的基准备份。在创建下一个合成备份之前,只需要执行增量备份。这很有用,因为通常完整备份所需的时间要比增量备份长得多。通过消除周期性完整备份,但仍保持备份软件中的完整合成副本,从而实现了两者之间的最佳平衡。周期性备份运行速度更快且所需时间更短。由于我们仍然有每周的完整副本以及一系列增量副本,恢复过程保持不变。

合成备份的组成部分如下:
基线备份:基线备份是与合成备份相关联的首次完整备份。全基线备份仅运行一次,并在运行时备份选定计算机上的所有文件。
重复的增量备份:增量备份作业会备份在基线备份之后发生变化的文件。
重复的合成备份:合成备份过程将基线备份的数据和增量备份的数据组合起来,形成选定计算机的合成完整备份。这个合成完整备份成为新的基线备份,并与后续的增量备份集一起形成新的合成备份。

3.2.2 基于块级备份与对象(文件)级备份的分类:
块级备份是将字节级别的磁盘映像复制到备份设备的过程。这要求将整个卷作为一个连续的整体进行备份,而不论该卷中存在哪些文件。
对象/文件级别的备份会将所有逻辑实体复制到备份设备中。物理备份能够使数据按顺序读取,并以设备的全速返回。因此,它们通常比逻辑备份的速度要快得多。
块级增量备份的速度可能会更快,因为只有文件中发生变化的块才会被备份(而不是整个发生变化的文件)。块级增量操作通常需要一个卷级过滤驱动程序来找出哪些卷块发生了变化。请注意,如果一个大文件是以某种方式编辑的,使得最后只增加了几个字节,通常只会导致这几个块发生变化。块级增量备份只会选取这些块,而不是像逐个文件的增量备份那样会把整个文件都当作已更改的文件来处理。
块级恢复需要将所有完整备份和增量备份映像挂载起来以创建完整视图。如果其中一个增量备份集丢失或损坏,那么就无法进行恢复。与此相反,文件级增量备份可以单独进行恢复,无需之前的备份。
由于块级备份能够被挂载以创建某一时间点的综合视图,因此该视图可以被导出到其他应用程序中,作为数据的只读副本进行使用,从而可用于进行数据挖掘。

3.3 恢复类型

3.3.1 文件/文件夹级别恢复:
单独的文件或文件夹会被恢复。这是最简单的恢复类型。如果备份是通过逐个文件的方式进行的,那么只需要一个包含增量文件的备份映像即可完成恢复操作。但如果备份是通过块级备份方式进行的,那么就需要从最新增量映像到最后一个完整映像的所有集合。

3.3.2 应用程序级别恢复(数据库、电子邮件)
当应用程序数据作为一个整体进行备份(例如包含多个用户邮箱邮件内容的 Exchange 数据库)时,这些数据可以作为一个单一的数据库文件(对于 Exchange 而言,即.edb 文件)进行备份。这种备份方式有助于恢复整个数据库(即所有用户的全部邮箱内容)。但要恢复单个电子邮件该怎么办呢?备份应用程序应该能够从数据库中找到该邮件——所以它需要了解电子邮件软件存储其数据的格式!那么当我们已经备份了整个数据库时,如何恢复数据库中的一个表呢?

这个问题通常可以通过以下几种方式来解决:
- 数据库应用程序通常会导出 API 来实现对数据库及其内部实体的备份和恢复操作。备份软件可以使用这些 API 来执行备份和恢复操作。
- 备份应用程序能够尝试理解数据库应用程序所采用的数据存储格式。倘若这种格式是公开的,那么备份应用程序就能够利用它。

3.3.3 灾难恢复(DR)
这与简单的恢复操作略有不同,因为在这里我们想要恢复整个机器——包括操作系统状态以及所有数据。如何恢复操作系统本身呢?嗯,备份软件可以利用内存盘、USB 盘以及诸如 WinPe 这样的解决方案来获取启动环境。Windows 预安装环境(也称为 Windows PE 和 WinPE)是用于部署个人电脑、工作站和服务器的轻量级 Windows 版本,或者是在操作系统离线时对其进行故障排除。WinPE 可以用于启动系统,并使用旧的操作系统文件恢复旧的状态,然后进入该分区可以启动机器。

3.4 一些重要术语
3.4.1 恢复时间目标(Recovery Time Objective)
恢复时间目标是指在灾难(或中断)发生后业务流程必须恢复的预期持续时间以及在此期间内必须达到的服务水平,以避免因业务连续性中断而产生不可接受的后果。

例如,1 小时的恢复时间目标(RTO)意味着,如果服务出现故障,需要在 1 小时内恢复运行。

3.4.2 恢复点目标(Recovery Point Objective)
恢复点目标(RPO)指的是在重大事件发生后,数据(交易)可能丢失的最大可容忍时间段。
注:此翻译符合中文表达习惯,自然流畅。

设想有一台数据库服务器,它全天候不间断地记录着财务交易数据。倘若这台服务器出现故障,而恢复点目标(RPO)设定为 5 分钟,且故障发生在今天下午 3 点,那么昨晚所做的备份将无法用于恢复操作,因为这样的备份副本只会将数据库恢复到昨晚的状态,而非今天的状态!因此,从昨晚到今天这段时间内的所有数据都会丢失。所以,设定“5 分钟的 RPO”这一决策实际上决定了需要采用何种技术来进行数据保护。

在公认的业务连续性规划方法中,在业务影响分析(BIA)过程中,由流程的所有者确定恢复时间目标(RTO)和恢复点目标(RPO),包括确定备用或手动工作方法的时间框架等选项。

RPO(恢复点目标)衡量的是在发生重大事件的情况下,近期数据可能永久丢失的最长时间段,它并非此类丢失数据量的直接衡量指标。例如,如果 RPO 设定为 1 小时,但假设在灾难发生前的短短一小时内发生了若干笔交易,那么就会有大量的数据丢失。

RTO(恢复时间目标)和 RPO(恢复点目标)必须达到平衡,要考虑到业务风险,同时还要遵循所有其他主要的系统设计标准。对于大量高价值交易数据,硬件可以分布在两个或更多的站点;跨地理区域进行拆分能够增强系统的弹性。

3.4.3 备份窗口(Backup Window)
备份窗口(通常为每日时段)是为备份应用程序预留的时间段,用于执行应用程序或数据的备份操作。这是一个预先设定/安排好的时间,在此期间备份软件被允许在计算机系统上启动备份流程。

例如,“6 点至 6 点晨”这个备份窗口意味着,对于其他所有用户而言,应用服务器在 6 点至 6 点晨这段时间内会处于繁忙状态,因此如果备份应用程序在此期间尝试执行备份操作,将会对正常业务运营造成影响,导致应用服务器运行速度变慢以及网络资源被占用。相反,一旦“正常负载”在 6 点结束,备份软件就可以从 6 点至次日 6 点开始对应用进行备份操作。

3.4.4 备份服务级别协议(Backup SLA(service level agreement))
SLA 指的是服务级别协议。这是一种常见的做法,即备份工作由第三方公司负责管理。SLA 是指执行备份操作的个人/公司与数据所有者(即实际执行备份操作的人与为备份付费的人)之间的协议。

它通常会明确说明(或指明)

备份服务的计划安排和执行频率
备份服务的服务级别
备份服务的维护地点(例如:本地保存一份副本,异地保存一份副本)
因未能提供上述服务而产生的财务条款
备份窗口、恢复点目标(RPO)、恢复时间目标(RTO)可能是其中的一部分内容

为什么它很重要?
如果服务级别协议(SLA)规定公司内所有服务器每天都要进行一次备份,但若每日数据量巨大,那么备份窗口可能无法容纳完成所有备份操作所需的时间。如果备份频繁超出备份窗口,这可能意味着当前的数据保护基础设施不够完善。

3.4.5 保留期限(Retention period)
备份的保留期限指的是备份被保存或“留存”的时间长度。

信息的保留期限会因信息的不同类型而有所差异,这取决于其内容以及多种其他因素,包括内部组织的需求、检查或审计的监管要求、诉讼时效的法律规定、卷入诉讼的情况、税务和财务报告的需求,以及由当地、地区、州、国家和/或国际管理机构所界定的其他因素。

4. 存储设备
备份软件从包含数据的服务器中读取要备份的数据,并将其复制到不同的存储介质上。任何一款优秀的备份软件都会支持多种存储设备/介质。每种存储设备/介质都有其自身的优点和缺点。

4.1 目标设备的类型
4.1.1 磁带:
自 20 世纪 50 年代以来,磁带驱动器就已被用于数据存储。尽管其受欢迎程度多年来有所起伏,但磁带在现代数据中心中仍具有重要意义。由于其容量大且耐用,磁带常用于存储大型文件或众多文件,例如文件系统的存档副本。与写入磁盘相比,写入磁带的速度更快,但磁带是一种顺序访问介质(而非像磁盘那样随机访问),这意味着我们可以顺序读取或写入。
单个磁带的容量越大,就意味着可以将更多的备份信息保存在该磁带上,而且只需一个磁带盒就能完成恢复操作。
磁带盒是可以移动的(就像音频磁带和磁带播放器那样),因此备份可以转移到异地存放。而磁盘则不行(除非数据通过广域网传输)。
磁带相比磁盘来说也更可靠,因为磁盘上的读写操作需要磁头和磁盘片的物理移动。
磁带驱动器有多种尺寸(以及价格)可供选择。独立的磁带驱动器一次只能写入一盘磁带,而大型磁带库(大到能容纳一间屋子的空间——人们甚至能走进去)则可以内置多个驱动器,从而实现多道读写操作、自动移动空白磁带介质至驱动器等操作,这些操作都是通过机械臂来完成的。

4.1.2 磁盘:
磁盘有一个磁带无法提供的优势——随机访问,并且能够轻松地挂载数据。

磁盘每 TB 的成本每年都在下降,但与磁带相比仍可能较为昂贵。平均而言,磁带备份系统的成本为每 TB 33 美元。与此同时,磁盘系统曾经价格要高得多,但技术的改进使得磁盘系统的成本降至每 TB 45 至 50 美元之间。

由于磁盘能够实现对随机数据块的读取或写入操作,因此它能够提供一些在磁带介质上无法实现的解决方案。例如,在备份映像上原位挂载以执行部分恢复。如果备份映像包含诸如 VHD 或 VMDK 这样的虚拟磁盘文件格式,那么这一点就显得尤为重要。这些格式允许对映像进行离线挂载,从而使得诸如“即时恢复”之类的解决方案成为可能——而这些在磁带备份中是无法实现的。

某些类型的备份,例如块级备份仅适用于磁盘。这是因为增量备份映像中的数据仅包含已更改的块,除非与完整的以及之前所有的增量备份映像一起挂载,否则自身无法使用。只有在完成此挂载过程之后,卷才能被访问。

如果这些备份存储在磁带上,那么就必须将它们全部(完整备份加上所有增量备份)恢复到磁盘上,然后执行挂载操作,接着再进行恢复操作。这样做效率不高,尤其是当我们只需要恢复单个文件时更是如此。

4.1.3 重复数据删除:
(注:此内容似乎并非出自某个特定文档或语境,因此无法根据

数据去重是一种用于消除重复数据副本的技术。备份通常会包含相同数据的多个重复副本。例如,公司内所有计算机上的操作系统文件很可能都是相同的。如果一封包含大附件的电子邮件被发送给几个人,那么所有人的邮箱都会拥有相同的大型文件。正因为如此,执行数据去重操作的存储设备对于备份来说是一种颇具吸引力的存储介质,因为这意味着存储容量需求以及存储成本需求会大幅降低。

关于重复数据删除的一些说明:

重复数据删除设备的底层存储通常是磁盘介质。
重复数据删除可以作为数据写入存储系统时的内联过程来运行,也可以作为后台进程在数据写入磁盘之后来消除重复项。
检查内容是否存在重复的粒度从文件级别到块级别不等。
对于文件级别的重复数据删除,也称为单实例存储,会将整个文件与其他文件进行比较,以确定其是否完全相同。如果是完全相同的,则用指向单个文件副本的逻辑链接来替换它们。显然,即使副本中的哪怕只是一个字节发生变化,也不会被视为完全相同,因此会被单独存储。
由于单实例存储效率不高,大多数常见的数据重复删除实现形式是将文件分成称为“块”的较小片段,然后将这些数据块与其他数据块进行比较以检测重复项。要实现这一点,每个数据块都会被赋予一个标识,这个标识是由软件计算得出的,通常使用诸如 SHA-1、SHA-2 或 SHA-256 这样的加密哈希函数,这些函数会生成哈希值,该哈希值被视为该数据块的标识。
如果两个数据块的哈希值匹配,它们就被视为是相同的。
商业去重实现方式因分块方法和架构的不同而有所差异。
在某些系统中,数据块的大小是固定的(例如 4KB 块),而在某些系统中,分块通常被认为是滑动块。在滑动块中,一个窗口会沿着文件流移动,以寻找更自然出现的内部文件边界。虽然这种过程比固定的分块更耗费 CPU 资源,但它能实现更好的去重比率。

<assignment: implement a simple file-level dedup system using existing tools which calculate hash of a file. Use database to store hash as you add files to the system and compare the hash with existing when you add a new file to system.>

<assignment: find out about hash collision. Find out how commercial dedup systems handle hash collision>

4.1.4 Cloud

不同的云服务供应商提供存储即服务(Storage-as-a-Service)模式,即云服务供应商通过订阅模式向客户提供存储空间。客户根据其使用的存储量来付费。这成为一项颇具吸引力的方案,原因在于:

客户能够获得无限存储空间的优势,却无需实际购买。因为他们只需为实际使用的存储空间付费,所以他们可以持续向存储空间写入数据,而无需担心何时存储空间会满,或者担心其他存储管理方面的问题(例如磁盘损坏)。
云供应商会提供有关存储可用性的保证。
云供应商通常会在更多的地点复制数据,并将其以加密形式保存。这为数据提供了地理级别的冗余和安全性。
云供应商可以使用初始播种选项来加快首次在线备份的速度。播种的工作原理是将初始备份放在一个设备上,并将其发送给供应商进行上传。之后,只有增量更改才会备份到云端。
云供应商还会根据客户的不同需求提供不同的存储形式。这些存储形式在性能保证和相关成本方面有所不同。
例如,在撰写本文时,亚马逊提供以下存储类别:
S3 标准:
S3 智能分级(Intelligent-Tiering) - 自动优化具有变化访问模式的数据的存储成本
S3 标准-低频访问型存储(Standard-Infrequent Access) - 适用于访问频率较低但需要在需要时快速获取的数据。
S3 冰川(Glacier) - 一种低成本存储类别,用于数据归档,具有三种检索选项,检索时间从几分钟到数小时不等。
S3 冰川深存档(Glacier Deep Archive) - 专为客户设计的最低成本存储类别,特别是那些在金融服务业、医疗保健业和公共部门等高度监管行业中运营的客户,他们需要将数据集保留 7 至 10 年或更长时间以满足合规要求。
您可以在此处 https://aws.amazon.com/s3/storage-classes/?nc=sn&loc=3 查找到关于这些存储类别的更多信息,包括其功能和性能保证等。

将备份迁移到云端有几个需要考虑的因素。

首先,将数据备份到云端意味着您不再掌控备份介质。相反,您的备份控制权掌握在您的云服务提供商手中。
其次,云端备份有可能会增加您的备份时间。将数据备份到云端意味着备份数据需要通过互联网进行传输,这就意味着可能会存在安全和延迟方面的问题。
传输到云端的数据本身需要进行加密,以防止任何未经授权的访问。
到云端进行备份和恢复的时间也会受到网络延迟的影响,这可能会延长您的恢复时间。

许多备份管理员倾向于先将数据备份到本地设备(比如磁带或磁盘),然后再将其复制到云端。这样一来,主服务器在备份到本地设备期间所占用的时间会大大减少,而将数据备份到云端的次级副本仍能提供云端的所有优势。

4.2 备份存储介质的相关考虑因素
在选择一种(或多种)存储介质时,需要考虑几个因素。在挑选存储解决方案时,您应当考虑以下几点:
在选择存储介质时,您需要考虑的因素包括但不限于以下几点:介质类型、存储容量、存储速度、可靠性、兼容性、价格以及可扩展性等。这些因素

与设备和介质相关的直接成本和间接成本
存储硬件和介质的价格范围差异很大,从几百美元到数万美元不等。与大多数产品一样,可靠性更高、效率更高的存储设备往往价格更高。重要的是要为您的环境选择适当的硬件和介质水平。如果您的组织不需要那种级别的数据保护,或者您的备份没有充分利用所有硬件和介质的能力,那么在尖端技术上花费数千美元就是浪费金钱。或者,如果备份设备的预算过低,您可能会面临更高的人工成本或(备份)失败的风险。

该设备的数据传输速度
传输速度是一个重要的考量因素。您应当使用所宣称的固有传输速率来估算磁带设备可用的带宽。然而,大多数设备都包含一定程度的硬件压缩。通常,制造商只会给出压缩后的速度,而这些速度可能过于乐观。在比较相对速度时,请考虑到这一点。

理想情况下,您可以假设不进行压缩的情况下比较传输速度。数据到达时间(time-to-data)是另一个与传输速度相关的考虑因素。如果您的环境中有很多恢复请求针对的是单个文件,请考虑选择具有较短时间到达值的备份设备,例如磁盘。这些设备能够在极短的时间内加载卷、找到卷上的适当位置并开始读取数据。

该技术的可靠性
备用设备的可靠性与该设备每天的使用时长直接相关。存储设备的运转部件比您计算机环境中的大多数其他组件都要多,机械故障几乎是不可避免的。经常出现故障的设备会影响您的数据和系统可用性,但通常不会导致数据丢失。设备制造商会给出平均故障间隔时间(MTBF)值作为衡量可靠性的手段。然而,这些统计数据往往有些夸大。通过定期进行清洁操作,可以降低备用设备出现故障的概率。备份介质随着时间的推移必然会老化。介质可能会受到诸如空气中的湿气、污染物或磁场等因素的影响。当备份介质上所包含的数据无法通过常规手段恢复时,就会出现这种情况。如果长期数据保存是优先考虑的问题,可以向介质制造商咨询介质的使用寿命以及推荐的存储方法。

4.3 用于备份存储的其他重要存储技术
4.3.1 加密(Encryption)
传输过程中的加密:当备份软件从数据服务器读取数据并通过网络将其发送至存储设备时,如果数据未加密,任何人都可以窥探到这些数据。对于敏感数据(例如财务记录)而言,这种情况尤其危险。备份解决方案通过网络传输提供加密服务来解决这一问题。数据在读取后立即加密,并在发送至套接字之前进行加密。
静态加密:这指的是对存储在备份介质上的数据进行加密。考虑到数据存储不在同一公司内部时这一点可能很重要。这种情况可能会出现在第三方供应商管理备份解决方案时,或者当数据被发送至云端时。
加密是一个对 CPU 耗时较大的过程,因此可能会拖慢备份速度。为了实现更快的备份速度,同时又能保证安全性,采用了对称加密算法和非对称加密算法的组合。
(加密方式等不在本次讨论的范围之内,假定您已知晓各类加密方式及其各自的优缺点等。)
4.3.2. 压缩(Compression)
压缩能够降低总体存储需求。但与此同时,它具有较高的计算强度。还有一个因素是,被压缩的数据不适合进行重复数据删除操作,因为这会导致重复数据删除比率不佳。
4.3.3 不可变存储(Immutable Storage)
不可变存储突然变得流行起来,这要归功于近期发生的勒索软件攻击事件。一旦将数据存储在不可变存储设备上,就无法对其进行修改或更改。这一点在涉及恶意软件或勒索软件时尤为重要。如果您的备份是不可变的,那么它就不会受到新勒索软件感染的影响。通过保存不可变备份的存档,您可以确保在遭受勒索软件攻击时能够从上次记录的干净备份中恢复过来。

5. 其他考虑因素及术语
5.1 快照(Snapshot)
对大型数据集进行完整备份可能会耗费很长时间才能完成。在多任务或多用户系统中,在进行备份时可能会对该数据进行写入操作。这使得备份无法实现原子性,并引入了版本偏差,可能导致数据损坏。例如,如果用户将一个文件移动到一个已经备份过的目录中,那么该文件在备份介质上就会完全缺失,因为备份操作在添加该文件之前就已经完成了。版本偏差还可能导致在读取过程中大小或内容发生变化的文件出现损坏。对于应用程序备份,情况会变得更加棘手。在事务进行期间,如果我们备份数据库,备份中的数据库状态会是什么样的?我们能否使用这样的备份来恢复数据库呢?
一种安全备份实时数据的方法是在备份期间暂时禁用数据的写入权限,要么通过停止相关应用程序的运行来实现,要么利用操作系统提供的锁定 API 来强制实现独占读取权限。对于低可用性系统(例如台式电脑和小型工作组服务器,在这些设备上正常的停机时间是可以接受的),这种方法是可以容忍的。然而,对于全天候运行的高可用性系统来说,服务中断是无法容忍的。
为了避免出现停机情况,高可用性系统可能会采用另一种方式来进行备份,即利用数据集在某一特定时间点所形成的只读副本(即快照)来进行备份,并允许应用程序继续向其数据写入数据。
“快照”是一个常见的行业术语,指的是能够记录存储设备在任何特定时刻的状态,并将其快照保存下来作为在存储设备出现故障时恢复该设备的参考依据。快照主要创建的是数据的某一时刻的副本。通常情况下,快照副本是即时生成的,并可供诸如数据保护、数据分析与报告以及数据复制等其他应用程序使用。数据的原始副本仍能不间断地为应用程序所使用,而快照副本则用于对数据执行其他操作。
大多数快照实现方式都高效,能够以 O(1) 的时间复杂度创建快照。换句话说,创建快照所需的时间和 I/O 操作量不会随着数据集大小的增加而增加;相比之下,直接备份所需的时间和 I/O 操作量则与数据集的大小成正比。
在某些系统中,一旦对数据集进行了初始快照,后续的快照只会复制发生变化的数据,并通过一种指针系统来引用初始快照。这种基于指针的快照方法比对数据集反复克隆所消耗的磁盘容量要少。

5.1.1 写时复制(Copy-on-write)
使用预先指定的空间创建存储卷的快照。当首次创建快照时,仅复制有关原始数据存储位置的元数据。在创建快照时,不会对数据进行物理复制。因此,快照的创建几乎是瞬间完成的。然后,快照副本会跟踪原始卷上发生变化的块,当对原始卷进行写入操作时也是如此。正在写入的原始数据会被复制到为快照预留的指定存储池中,在原始数据被覆盖之前不会对其进行覆盖,这就是“写时复制”的名称由来。
在对某个块进行写入操作之前,复制写入操作会将原始数据块移动到快照存储中。这样做的目的是保持快照数据与快照创建时的精确时间一致。对于快照卷中未发生变化的数据块的读取请求,会将其重定向到快照中的“复制”块;而对于已更改的活动数据块的读取请求,则会导向原始卷。快照包含描述自快照首次创建以来发生变化的数据块的元数据。请注意,只有在首次收到写入请求时,原始数据块才会一次性复制到快照存储中。
“写时复制”快照在创建快照时可能会对原始卷的性能产生一定影响,因为对原始卷的写入请求必须等待原始数据被“复制出来”到快照中之后才能执行。如果正在读取的数据未发生变化,那么对快照的读取请求将从原始卷中获取数据。然而,这种方法在空间利用方面非常高效,因为创建快照所需的存储空间仅需保留正在变化的数据即可,而无需保留原始数据本身。此外,快照需要原始数据的完整副本是有效的。

5.1.2 写时重定向(Redirect-on-write)
这种方法与写时复制(copy-on-write)颇为相似,但没有双重写入的代价,并且它能提供存储空间和性能高效的快照。对原始卷的新写入操作会被重定向到为快照预留的另一位置。重定向写入操作的优势在于只进行一次写入,而在写时复制中则会进行两次写入(一次将原始数据复制到存储空间,另一次是复制已更改的数据)。

然而,在采用写时重定向技术的情况下,原始副本包含的是某一时间点的数据,即快照数据,而被更改的数据则存放在快照存储中。当快照被删除时,必须将快照存储中的数据重新整合回原始卷中。此外,随着多个快照的创建,对原始数据的访问、对快照中的数据和原始卷的跟踪以及快照删除时的数据整合变得更加复杂。快照依赖于数据的原始副本,而原始数据集很快就会变得碎片化。

5.1.3 分割镜像(Split mirror)
分割镜像会创建存储实体(例如文件系统、卷或 LUN)的物理副本,该副本与正在创建快照的实体类型相同且大小完全一致。原始卷的全部内容会被复制到一个单独的卷上。克隆副本具有高可用性,因为它们是原卷在单独存储空间上的精确副本。然而,由于数据复制,此类快照无法即时创建。或者,通过将卷的预存在镜像“分割”成两个部分,可以即时使克隆副本可用,但这样会导致原始卷少一个同步镜像。这种快照方法所需的存储空间与每个快照对应的原始数据相同。这种方法在写入镜像副本时存在同步性能开销。

5.1.4 日志结构文件架构(Log structure file architecture)
此解决方案利用日志文件来追踪对原始卷的写入操作。当需要恢复或回滚数据时,会按照相反的顺序运行来自日志文件的事务。对原始卷的每次写入请求都会像关系型数据库那样被记录下来。

5.1.5 软件快照与硬件快照?
除了不同的快照实现方法之外,快照解决方案可以在存储栈的多个层中实现。大致而言,快照可以在软件层或硬件层创建。这也被归类为基于控制器(存储设备或硬件驱动)的快照或基于主机(文件系统或卷管理器)的快照。
基于控制器的快照由存储子系统硬件供应商进行管理,并集成到磁盘阵列中。这些快照是在 LUN 级别(块级别)进行的,并且独立于操作系统和文件系统。
基于主机的快照是在设备驱动程序和文件系统层面之间实现的。快照可以由文件系统、卷管理器或者第三方软件来执行。基于主机的快照不存在依赖关系。

5.1.6 用快照作为备份?
存储阵列提供了基于硬件的快照功能,为何不将其直接用作备份呢?快照可以作为备份解决方案的一部分加以使用,但不应将其视为真正的数据库备份。
有了出色的快照工具,您可以自行决定要为快照预留多少存储空间。快照保存速度快,恢复起来也很迅速,而且在版本控制方面表现优异。
备份在长期来看对于保障数据安全非常有效。它们占用的存储空间可能相当大,但不会因系统故障而受到影响。它们能更好地保护您免受系统或驱动器故障以及恶意软件的侵害。

5.2 应用程序(数据库)及备份
任何应用程序通常都会将数据存储在文件系统文件、专有格式文件以及数据库中。既然我们已经讨论过文件系统文件的相关内容,那么让我们试着来理解一下数据库备份的复杂之处吧。
数据库通常会以一种自定义格式将数据存储在 db 文件中,这样一来,要了解自上次备份以来数据发生了哪些变化就变得很困难了。在这种情况下,增量备份是不可能实现的。为了解决这个问题,数据库供应商提供了自定义的 API 来备份和恢复数据库,同时还提供了读取和写入数据的 API。
此类 API 及其功能集因数据库供应商而异。很多时候,数据库供应商还会提供(多种不同的)实用程序和工具来执行此类任务,从而不仅使软件编写者能够编写脚本来处理日常备份任务,也让脚本编写者能够如此操作。支持的备份类型也因不同的数据库供应商而有所差异。
举个例子,让我们来看看微软 SQL Server 在备份方面做了些什么。

在您阅读 5.2 节的各个小节时,您会发现,对 SQL Server 进行备份涉及诸多细节的理解。请注意,以下各节只是高层面的概述,省略了许多(有时是关键的)细节,但目的是为了给您一个大致的概念——对于备份应用程序而言,备份任何类型的数据库都需要理解所有此类细节,而且这些细节会因数据库供应商的不同而有所差异。

5.2.1 理解 SQL Server 如何将数据存储在文件中
要能够备份任何数据——无论是文件系统文件还是数据库数据,关键在于理解数据实际上是如何存储的。这涉及到理解如何识别该对象中的更改。通常情况下,数据库会以专有且未公开的格式存储数据,这使得其他人难以理解。随着数据库的普及,人们通过逆向工程来找出其格式。但此类信息不可靠,因为这并非公开格式,数据库供应商随时可能对其进行更改。因此,为了处理数据库,备份软件通常依赖于供应商提供的 API 或工具。

数据文件
在 SQL Server 中,数据存储的基本单位是页面。数据库中数据文件(.mdf 或 .ndf)所占用的磁盘空间在逻辑上被划分为从 0 到 n 编号连续的页面。磁盘 I/O 操作是在页面级别执行的。也就是说,SQL Server 会读取或写入整个数据页面。扩展区是八个物理上连续页面的集合,并用于高效地管理页面。所有页面都组织成扩展区。
拿一本普通的书来说:书中的所有内容都是写在书页上的。与之类似,在 SQL Server 中,所有的数据行也都写在页面上。在书中,所有的页面都是相同的物理尺寸。同样,在 SQL Server 中,所有的数据页面都是相同的大小——8 千字节。在书中,大多数页面包含数据——即书中的主要内容——而有些页面包含关于内容的元数据——例如目录和索引。同样,SQL Server 也没有什么不同:大多数页面包含用户存储的实际数据行;这些被称为数据页面和文本/图像页面(在特殊情况下);索引页面包含有关数据位置的索引引用;最后还有系统页面,用于存储关于数据组织的各种元数据(PFS、GAM、SGAM、IAM、DCM、BCM 页面)。
数据行是按顺序依次排列在页面上的,从页面的顶部开始排列。一个行偏移量表从页面的末尾开始,每个行偏移量表包含页面上每一行的一个条目。每个行偏移量条目记录该行的第一个字节距离页面起始位置有多远。因此,行偏移量表的功能是帮助 SQL Server 非常快速地定位页面上的行。行偏移量表中的条目是按照与页面上行的顺序相反的顺序排列的。

日志文件
日志文件并不包含页面;它们包含一系列的日志记录。SQL Server 事务日志在逻辑上运作方式就如同事务日志是一串日志记录。每个日志记录都通过一个日志序列号(LSN)来标识。每个新的日志记录都会写入日志的逻辑末尾,并且其 LSN(序列号)高于之前记录的 LSN。日志记录会按照创建时的顺序以串行方式存储,这样如果 LSN2 大于 LSN1,由 LSN2 所引用的日志记录所描述的变化发生在由 LSN1 所引用的日志记录所描述的变化之后。每个日志记录都包含它所属事务的 ID。对于每个事务,与该事务相关的所有日志记录都会通过使用后向指针单独链接成链来关联起来,从而加快事务的回滚速度。
关于数据文件和日志文件的上述信息只是汇总级别的信息。更多详细信息请参见:
页面和区架构指南
https://docs.microsoft.com/en-us/sql/relational-databases/pages-and-extents-architecture-guide?view=sql-server-ver15
SQL Server 事务日志架构与管理指南
https://docs.microsoft.com/en-us/sql/relational-databases/sql-server-transaction-log-architecture-and-management-guide?view=sql-server-ver15

5.2.2 Understanding recovery models
5.2.3 Understanding backup methods
5.2.3.1 Full Database Backups
5.2.3.2 Differential Backups
5.2.3.3 Log backup

5.3 备份与数据复制管理(Backup and Copy Data Management)
由于出现了使用机器学习和数据挖掘的应用程序,组织内出现了多种需要组织内人员获取数据库只读副本的情况。他们之所以需要这样的副本,是因为这样他们就可以基于这些数据运行其应用程序和算法以做出决策。但在大型公司中,要迅速获得这样的数据副本可能会很困难。此外,由于机器学习的性质,当数据科学家处理某些数据时,他们通常会得出结论,认为他们需要从其他数据库获取更多数据以更好地理解这些数据。正如您所看到的,如果获取数据本身的过程会很缓慢(因为需要获得批准,实际上需要在开始对数据运行算法之前获取大量数据副本),那么这样的过程显然是不可行的。
数据复制管理(CDM)旨在解决上述大型组织通常面临的此类问题,它通过提供快速的只读数据副本来实现这一目标——通常是来自备份集。在这种情况下,备份并非仅仅用于恢复和灾难恢复。数据的备份副本还被积极用于其他目的——例如数据挖掘。但是,我们能否更改数据的备份副本呢?不行。CDM 通过提供一个虚拟的只读副本来解决这个问题——这通常是通过过滤驱动程序和写时复制到临时位置而非备份位置来实现的。
备份软件和其他企业应用程序是独立运行的,经常创建相同数据的多个副本。然而,相同数据的冗余副本可能会浪费存储空间、降低网络性能,并使访问或恢复关键任务数据变得更加困难。CDM 软件可以通过减少全量副本的数量来帮助消除这些问题,使用数据虚拟化来实现这一点。
大多数复制数据管理软件的工作原理是创建一个完整的数据虚拟副本。当生产环境中的独特更改发生时,该软件会在块级别创建并存储增量更改的快照。快照机制创建一个具有父子关系的可读/写差异磁盘,与备份副本无关,无需创建一个全新的副本。由于写操作不是直接指向备份副本,管理员不必担心主备份的内容被意外更改。减少完整副本的数量也能降低服务器冗余的情况,并对成本产生积极影响,因为存储空间不会被不必要的数据副本所占用。
复制数据管理的优势
通过快速、简便且自主可控地访问适当格式的复制数据,加快应用程序的发布周期,改善决策制定,并提高效率和生产力。
通过对复制数据使用情况的更高可见性来确保合规性并降低安全风险。
通过集中控制、自动化和编排来降低存储管理成本。
通过在适当的存储策略下拥有正确数量的数据副本来降低存储成本。
复制数据管理与备份
虽然复制数据管理是一种有用的备份工具,但它不应被视为传统备份的替代品。复制数据管理并非为数据保护而设计,而是主要为存储效率而创建的。虽然复制数据管理可用于创建数据恢复点,但它并不能创建数据源的真实备份。存储快照在传统数据备份和 CDM 中均有应用,一些组织将快照视为备份的替代方案。然而,由于快照和备份通常都能通过冗余来提供安心保障,因此 CDM 可能无法达到同样的效果。

5.4 备份与归档(长期保存)
恢复和恢复工作存在不同的要求,所提供的解决方案也会相应地有所不同。请考虑以下要求。
- 我正在处理的文档丢失了。请从最近的备份中恢复它。
- 我删除了来自客户的重要的电子邮件。请从最近的备份中恢复它。
- 我们包含客户记录数据库的服务器因磁盘故障而宕机。请从最新的备份中恢复。
- 公司 X 正在起诉我们公司,并且法院要求提供员工 ABC 过去三年的所有电子邮件。
- 税务部门要求提供 2014-2015 年和 2017-2018 年的所有财务记录。
如您所见,这些请求在紧急程度上有所不同,而且满足时间也有所不同。
例如,“来自客户的重要的电子邮件”可能需要在 20 分钟内得到,而“2014-2015 年的税务记录”可能需要在接下来的 15 天内得到。
通常,备份旨在为在当前或近期使用中的数据提供快速恢复数据的手段,涵盖从数据损坏或意外删除到全面灾难恢复(DR)等各种情况。恢复速度至关重要。数据归档旨在作为需要长期保存的数据的存储库,这些数据的保存期限可能长达数十年。从数据归档中恢复数据的速度通常不如从数据备份中恢复数据的速度那么关键,但可搜索性至关重要。
鉴于此,针对备份和归档所提供的解决方案在技术层面和能力方面存在差异。它们在解决一些关键问题的方法上也有所不同。
备份应用程序倾向于以专有格式保存数据,这对于长期数据保留来说可能是个问题。许多企业在大约十年的时间里可能会经历多次数据备份软件的升级,这很可能意味着旧备份很快就会变得无法读取。因此,数据归档应由专门为此设计的应用程序来处理,并以原生格式将文件移动到归档位置。
能够搜索数据归档至关重要,出于商业和合规原因,尤其是在正式的法律搜索可能因迟交信息而施加处罚的情况下。对于数据备份,您通常会知道您想要查找哪些文件和文件夹以及备份介质的位置。对于那些历经数年积累而成的数据档案来说,情况就不会是这样了,所以您很可能需要通过关键词来进行搜索。数据归档软件会在存储的数据上构建元数据索引,以便能够实现相当快速的搜索。

6. 现代数据保护格局
如今,企业数据保护已成为一个具备多项关键功能的平台,这些功能有助于实现更强大的数据保护。

自动化 - 随着数据量的增长,自动化随处可见。我们有专门的岗位负责处理某些功能,比如系统管理员、数据库管理员、存储管理员。关键目标是减少整个企业的手动流程。有了自动化的响应机制,无论何时您启动或关闭虚拟机或向系统添加新的数据源,数据保护都是自动实现的。同样,管理功能也是系统固有的,并在所有数据集中实现自动化。

功能 - 自动发现和保护:因此,备份产品具有能够自动发现和自动保护实体而不需要人工干预甚至遗漏的功能。例如,可以定义保护规则,使得在保护策略中包含某些客户端上运行的所有 Oracle 实例。这意味着:如果 DB 管理员删除现有实例并在一段时间后启动新的实例,新启动的虚拟机实例将自动受到保护。这是自动发现的,并包含在列表中。

编排 - 平台方法能够协调跨异构系统和数据存储的数据使用情况。在这种模式下,名称、网络、大小属性和缓存都会进行编排和协调,从而确保可见性和互操作性。存储需求和网络基础设施会保持一致,同时企业内部的数据创建活动也会得到协调。

功能 - 资源编排 - 有了数据编排,就能够通过单一输入来管理整个部门的数据使用情况,而无需管理数百个不同的流程。这可能包括恢复到备用域、迁移、灾难恢复或自助服务。此外,该平台能够有效地、智能地对工作负载资源的计算和 I/O 限制进行负载均衡,从而确保业务生产系统不会不堪重负。

可见性 - 要有效地保护和利用数据,您需要了解您拥有的数据以及它们的存放位置。企业领导者需要对可用资源有一个清晰的理解,以及与所使用数据相关的成本。特性 - 新的数据保护平台能够在系统和流程之间提供单一的真相来源,以支持强有力的保护和恢复流程。在传统系统中,碎片化会导致数据丢失或被忽视。数据在移动到不同层级的过程中会被报告和审计。在整个企业范围内实现可见性是确保在不断扩大的数据源范围内实现可发现性的关键。

风险 - 平台方法能够提供有关风险状态的关键见解。换句话说,您的恢复基础设施有多强的恢复能力?如果数据系统中发生了负面事件,您能在多快的时间内恢复?您环境中的变更是否会影响恢复能力?您将通过何种方式恢复?您的实际恢复路径是什么样的?了解风险状态有助于对恢复能力的理解,并将推动重要的业务决策。

通过准备来证明 - 任何出色的数据保护解决方案的关键在于能够了解自身的风险状态。无缝且自动化的数据恢复演练或消防演习确保企业领导者能够展示恢复时间和流程,证明系统的弹性,使他们能够为任何可能发生的情况做好准备。频繁的演练将模拟数据恢复流程,确保关键资产的可恢复性,并暴露环境中存在的任何潜在风险。灾难恢复消防演习为企业领导者提供了可操作的见解,使他们能够降低风险并强化关键任务系统。

6.1 容器与备份
容器介绍
从以虚拟机为中心的世界过渡到容器(Docker)和 Pod。

向虚拟化技术转型的关键优势在于能够缩减数据中心的占地面积并实现资源的有效利用。通过在同一台物理机上运行多个虚拟机(VM),更多的应用程序能够在更少的物理机器上运行。
虚拟机解决了资源利用方面的难题,但开发和运营团队的复杂性问题依然存在。

给出示例:
例如:
假设您已在 ESX(虚拟机管理程序)上启动了 VM1 运行状态。应用程序 1 和应用程序 2 都运行在 Windows 2016 系统上。
现在是时候进行升级了,而且碰巧的是,Application1 要求操作系统升级到 Windows 2016 SP2 版本,否则 Application2 将无法正常运行。
因此,应用程序及其依赖项之间的共存关系开始变得重要起来,需要加以识别和解决。
对于这类情况,您打算如何应对?
在这种情况下,我们得做些什么才能确保这两个应用程序都能正常运行呢?
应用管理的各个方面,包括依赖关系、版本控制、更新以及应用组件的迁移,都必须进行深入研究和仔细考量。

容器的持久存储

容器最初被认为是没有状态的。然而,许多应用程序必须持久地存储数据。为了运行需要在容器实例之间保持数据的完整性的容器化应用程序,就需要一个名为“持久存储”的层,它独立于容器自身的生命周期存在。持久存储指的是在单个容器的生命周期结束后仍能保持可用的存储,并且使得在容器中运行有状态的应用程序成为可能。
虽然容器可以根据需要动态地启动和停止,但持久存储必须始终是可访问的,这样数据就不会丢失,并且容器可以在需要时随时访问数据。作为主机附加或网络存储的持久存储并不能使容器具有可移植性,可移植性意味着在数据中心和公共云之间移动数据。

从备份的角度来看,将持久存储进行备份变得至关重要,因为只有这样才能确保容器能够正常运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值