转载

NetApp 集群模式 Data ONTAP 8.3 快照管理

Snapshot 是数据保护的第一道防线。 任何存储产品都会快照技术,大同小异。一般有2种快照方式,Cow(Copy on write)和Row(Redirect on wirte), NetApp 用的第二种,EMC 的Celerra/VNX是用的第一种,Isilon比较另类,两个都有,一切自动运行,Isilon会根据数据的变化量的大小和类型自动选择一种方式。这个快照技术也是各大厂商吵架的地方,各有各的长处和短处,一般来说Row应用于顺序大量写操作以及删除操作,Cow则应用于元数据和目录的小IO操作。

Snapshot 非常重要,是很多高级功能的基础。你比如:

  • SnapRestore
  • SnapDrive
  • FlexClone
  • SnapProtect
  • SnapManager
  • SnapMirror
  • SnapVault
  • Deduplication

Snapshot 工作原理

Snapshot 是指传统卷或无限卷的一个只读映像,它可以捕获文件系统在某一时间点的状态。 Data ONTAP 8.3 的Snapshot技术和以前一模一样,其工作原理完全可以参考Data ONTAP 8.2 7-mode,参考《 NetApp Data ONTAP 8.2 7-Mode 快照管理 ( Snapshot 及SnapRestore) 》。

NetApp 集群模式 Data ONTAP 8.3 快照管理

用户对 Snapshot 的访问

和以前一模一样,参考《 NetApp Data ONTAP 8.2 7-Mode 快照管理 ( Snapshot 及SnapRestore) 》。

每个卷都有一个 .snapshot 目录。NFS 用户可使用 ls 命令访问此目录,而 CIFS 用户可以双击 ~snapshot 文件夹访问此目录。.snapshot 目录包含一组子目录,这些子目录会按类型、日期和时间进行标记。

[root@server1 nfs]# ls -al .snapshot/ total 40 drwxrwxrwx 10 root root 4096 Jul 25  2015 . drwxrwxrwx  3 root root 4096 Jul 22  2015 .. drwxrwxrwx  3 root root 4096 Jul 22  2015 daily.2015-07-24_0010 drwxrwxrwx  3 root root 4096 Jul 22  2015 daily.2015-07-25_0010 drwxrwxrwx  3 root root 4096 Jul 22  2015 hourly.2015-07-25_0605 drwxrwxrwx  3 root root 4096 Jul 22  2015 hourly.2015-07-25_0705 drwxrwxrwx  3 root root 4096 Jul 22  2015 hourly.2015-07-25_0805 drwxrwxrwx  3 root root 4096 Jul 22  2015 hourly.2015-07-25_0905 drwxrwxrwx  3 root root 4096 Jul 22  2015 hourly.2015-07-25_1005 drwxrwxrwx  3 root root 4096 Jul 22  2015 hourly.2015-07-25_1105

对于 NFSv2 和 NFSv3 客户端,始终会显示 .snapshot 目录,并且可从所在卷中访问该目录,而任何其他卷则不会显示该目录,但仍可访问它。对于 NFSv4 客户端,不会显示.snapshot 目录,但可从某个卷的所有路径下访问它。

创建 Snapshot

三种方式可以来创建Snapshot:

  1. Manually – 手工创建
  2. Automatically, based on schedule -按计划自动创建
  3. Through management and backup tool – 通过工具,比如 SnapManager

手工创建 Snapshot

我们来在命令行下创建一个Snapshot。

labcluster2::> volume snapshot show Sales_vol1_CIFS_volume          ---Blocks--- Vserver  Volume   Snapshot          Size Total% Used% -------- -------- ------------------------------------- -------- ------ ----- SVM_Sales_CIFS_NFS  Sales_vol1_CIFS_volume   daily.2015-07-24_0010    196KB     0%   42%   daily.2015-07-25_0010    180KB     0%   40%   hourly.2015-07-25_0605   144KB     0%   35%   hourly.2015-07-25_0705   140KB     0%   34%   hourly.2015-07-25_0805   144KB     0%   35%   hourly.2015-07-25_0905   148KB     0%   35%   hourly.2015-07-25_1005   156KB     0%   36%   hourly.2015-07-25_1105   136KB     0%   33% 8 entries were displayed. labcluster2::> volume snapshot create -volume Sales_vol1_CIFS_volume -vserver SVM_Sales_CIFS_NFS -snapshot snapshot_test1 labcluster2::> volume snapshot show Sales_vol1_CIFS_volume          ---Blocks--- Vserver  Volume   Snapshot          Size Total% Used% -------- -------- ------------------------------------- -------- ------ ----- SVM_Sales_CIFS_NFS  Sales_vol1_CIFS_volume   daily.2015-07-24_0010    196KB     0%   42%   daily.2015-07-25_0010    180KB     0%   39%   hourly.2015-07-25_0605   144KB     0%   34%   hourly.2015-07-25_0705   140KB     0%   34%   hourly.2015-07-25_0805   144KB     0%   34%   hourly.2015-07-25_0905   148KB     0%   35%   hourly.2015-07-25_1005   156KB     0%   36%   hourly.2015-07-25_1105   140KB     0%   34%   snapshot_test1    64KB     0%   19% 9 entries were displayed. 

按计划自动创建 Snapshot

Data ONTAP 会维护一个可配置的 Snapshot 计划,以便为每个 FlexVol 卷和无限卷自动创建和删除 Snapshot 副本。此外,您还可以根据自己的需求创建和删除 Snapshot 副本并管理 Snapshot 计划。

Snapshot 创建策略

这玩意儿是个新名词,比以前的snap Schedule灵活性大了很多。

默认Snapshot 创建策略

Data ONTAP 提供了每周、每天和每小时的 Snapshot 副本计划,您可以使用这些计划来创建 Snapshot 副本策略,以保留所需数量和类型的 Snapshot 副本。这里的策略指一个卷创建Snapshot的全部设置,包括创建计划,个数,标签等等。不要搞晕了。一个卷只能由一个Snapshot策略,但是这个策略可以包括很多计划。

这个SnapMirror标签有什么用呢?我们在SnapMirror时再来研究。

NetApp 集群模式 Data ONTAP 8.3 快照管理

下表介绍了可用的 Snapshot 副本计划类型:

类型 说明
每周 Data ONTAP 会在每个星期日的午夜过后 15 分钟创建这些 Snapshot 副本

每周 Snapshot 副本 名为 weekly. n ,其中 n 是一个格式为年-月-日的日期,年-月-日后面是下划线 (_) 和时间。例如,在 2012 年 11 月 25 日创建的每周 Snapshot 副本名为 weekly.2012-11-25_0015

每日 Data ONTAP 会在每晚的午夜过后 10 分钟创建这些 Snapshot 副本

每日 Snapshot 副本 名为 daily. n ,其中 n 是一个格式为年-月-日的日期,年-月-日后面是下划线 (_) 和时间。例如,在 2012 年 12 月 4 日创建的每日 Snapshot 副本名为 daily.2012-12-04_0010

每小时 Data ONTAP 会在每个整点过后 5 分钟创建这些 Snapshot 副本

每小时 Snapshot 副本 名为 hourly. n ,其中 n 是一个格式为年-月-日的日期,年-月-日后面是下划线 (_) 和时间。例如,在 2012 年 12 月 4 日 1:00 (1300) 创建的每小时 Snapshot 副本名为 hourly.2012-12-04_1305

Snapshot 策略如何与卷关联

除非您在创建 FlexVol 卷或无限卷时指定 Snapshot 策略,否则,该卷会继承与其所属的 Storage Virtual Machine (SVM) 关联的 Snapshot 策略。

在您创建 SVM 时,您可以指定 Snapshot 策略。带有 FlexVol 卷的 SVM 的默认 Snapshot 策略名为 default,而带有无限卷的 SVM 的默认 Snapshot 策略名为 default-1weekly。

当然你可以随时更改Snapshot 策略。

新建 Snapshot 策略

我们来使用System Manager创建一个新的Snapshot 策略。我的目标是每5分钟一个Snapshot,保存10个Snapshot。注意我创建在集群上面,这样的话所有SVM都可以使用这个策略。

NetApp 集群模式 Data ONTAP 8.3 快照管理

然后我们编辑卷,选择刚才创建的Snapshot策略即可。

NetApp 集群模式 Data ONTAP 8.3 快照管理

我们来看看10分钟后,2个前缀名为5min的Snapshot自动创建了。

labcluster2::volume> volume snapshot show Sales_vol1_CIFS_volume -field create-time vserver            volume                 snapshot              create-time ------------------ ---------------------- --------------------- ------------------------ SVM_Sales_CIFS_NFS Sales_vol1_CIFS_volume daily.2015-07-24_0010 Fri Jul 24 00:10:00 2015 SVM_Sales_CIFS_NFS Sales_vol1_CIFS_volume daily.2015-07-25_0010 Sat Jul 25 00:10:01 2015 SVM_Sales_CIFS_NFS Sales_vol1_CIFS_volume hourly.2015-07-25_0605  Sat Jul 25 06:05:00 2015 SVM_Sales_CIFS_NFS Sales_vol1_CIFS_volume hourly.2015-07-25_0705  Sat Jul 25 07:05:00 2015 SVM_Sales_CIFS_NFS Sales_vol1_CIFS_volume hourly.2015-07-25_0805  Sat Jul 25 08:05:00 2015 SVM_Sales_CIFS_NFS Sales_vol1_CIFS_volume hourly.2015-07-25_0905  Sat Jul 25 09:05:00 2015 SVM_Sales_CIFS_NFS Sales_vol1_CIFS_volume hourly.2015-07-25_1005  Sat Jul 25 10:05:00 2015 SVM_Sales_CIFS_NFS Sales_vol1_CIFS_volume hourly.2015-07-25_1105  Sat Jul 25 11:05:00 2015 SVM_Sales_CIFS_NFS Sales_vol1_CIFS_volume snapshot_test1        Sat Jul 25 11:17:14 2015 SVM_Sales_CIFS_NFS Sales_vol1_CIFS_volume 5min.2015-07-25_1225  Sat Jul 25 12:25:15 2015 SVM_Sales_CIFS_NFS Sales_vol1_CIFS_volume 5min.2015-07-25_1230  Sat Jul 25 12:30:00 2015 11 entries were displayed. 

SnapRestore 恢复数据

SnapRestore 就是 Snapshot 的恢复,还要单独的License。

这个和以前一样,具体测试步骤,参考《 NetApp Data ONTAP 8.2 7-Mode 快照管理 ( Snapshot 及SnapRestore) 》。

Snapshot 磁盘占用情况

Data ONTAP 会保留创建 Snapshot 副本时正在使用的所有磁盘块的指针。更改某个文件后,Snapshot 副本仍然会指向该文件在被修改之前所在的磁盘块,而所作的更改将写入新的磁盘块。

这个也和以前一样,具体测试步骤,参考《 NetApp Data ONTAP 8.2 7-Mode 快照管理 ( Snapshot 及SnapRestore) 》。

Snapshot 副本预留(Reserve)

Snapshot 副本预留会为 Snapshot 副本设置特定的磁盘空间百分比。 对于 FlexVol 卷,默认 Snapshot 副本预留设置为磁盘空间的 5%。 默认情况下,FlexVol 卷和聚合的 Snapshot 副本预留分别设置为磁盘空间的 5% 和 0%。活动文件系统无法使用 Snapshot 副本预留空间,但是在 Snapshot 副本预留空间耗尽时,可以使用活动文件系统中的空间。我们来看一下命令行的输出。

labcluster2::volume> show  -vserver SVM_Sales_CIFS_NFS -volume Sales_vol1_CIFS_volume -fields percent-snapshot-space,snapshot-space-used,snapshot-policy vserver            volume                 percent-snapshot-space snapshot-space-used snapshot-policy ------------------ ---------------------- ---------------------- ------------------- --------------- SVM_Sales_CIFS_NFS Sales_vol1_CIFS_volume 5%                     3%                  10-Every_5_mins

这个也和以前一样,参考《 NetApp Data ONTAP 8.2 7-Mode 快照管理 ( Snapshot 及SnapRestore) 》。

Snapshot 溢出

由于无法防止 Snapshot 副本占用的磁盘空间量超出为其预留的容量,因此,务必为 Snapshot 副本预留足够的磁盘空间,以便活动文件系统始终具有可用空间来创建新文件或修改现有文件。

一旦 Snapshot 副本占用的空间超出全部 Snapshot 预留空间,这些副本就会开始占用活动文件系统的空间。此过程称为 Snapshot 溢出。随着 Snapshot 副本不断占用活动文件系统的空间,系统将面临空间变满的风险。如果因 Snapshot 溢出而使系统空间变满,则您只有在删除了足够多的 Snapshot 副本之后才能创建文件。我司有太多这样的例子了,最后不得不删除Snapshot,否则生产系统完全用不了。

有意思的是,EMC的Celerra/VNX也有个Snapshot space Reserve,不过对于溢出的处理方式不同。Celerra/VNX是让Snapshot创建失败,或者自动删除旧Snapshot,从而让新的快照成功。

参考

正文到此结束
Loading...