跳转到主内容

Snapshot预留的工作原理

Views:
171
Visibility:
Public
Votes:
0
Category:
ontap-9
Specialty:
CORE
Last Updated:

适用场景

  • ONTAP 9

问题解答

快照保留如何工作

既然快照会消耗磁盘空间,为什么要为它们预留空间呢?为什么不让它们随意使用所需的空间呢?为了理解这个问题,请设想一下,如果文件管理器在磁盘已满时创建了快照,会发生什么情况。从活动文件系统中删除文件不会产生任何可用空间,因为活动文件系统中的所有内容都会被新创建的快照引用。文件管理器必须先删除快照,然后才能创建任何新文件。

默认情况下,快照预留空间为磁盘空间的 20%。有关如何调整快照预留空间的信息,请参阅更改快照预留空间

考虑一下,如果在活动文件系统已满且快照预留空间仍有剩余的情况下,文件管理器创建快照,会发生什么情况。df 输出可能会显示:

Filesystem kbytes used avail capacity
/ 3000000 3000000 0 100%
/.snapshot 1000000 500000 500000 50%

如果您删除 100 MB 的文件,这些文件的数据将不再属于活动文件系统,因此这些空间将计入快照。新的 df 输出如下:

Filesystem kbytes used avail capacity
/ 3000000 2900000 100000 97%
/.snapshot 1000000 600000 400000 60%

请注意,文件管理器会将活动文件系统中的 100 MB 空间重新分配给快照预留空间。由于快照预留了空间,因此从活动文件系统中删除文件会释放空间用于新文件。

即使设置了快照预留空间,管理快照磁盘空间消耗的工作仍然至关重要。没有办法阻止快照消耗的磁盘空间超过为其预留的空间。想象一下,如果活动文件系统中的所有文件都被删除,示例文件系统中会发生什么情况。删除之前, df 的输出为:

Filesystem kbytes used avail capacity
/ 3000000 3000000 0 100%
/.snapshot 1000000 500000 500000 50%

删除文件系统中的所有数据后,df 命令会生成以下内容:

Filesystem kbytes used avail capacity
/ 3000000 2500000 500000 83%
/.snapshot 1000000 3500000 0 350%

活动文件系统中的全部 3 GB 空间都已移入快照,加上之前快照中的 500 MB,总计 3.5 GB 的快照数据。这比为快照预留的空间多 2.5 GB。由于活动文件系统无法使用该空间,因此即使该空间实际上没有任何文件,也会显示为已被活动文件系统使用。

每当快照消耗的快照预留空间超过 100% 时,系统就面临被填满的风险。在这种情况下,您只能在移除足够多的快照后才能创建文件。例如,如果在上述示例中向活动文件系统添加了 500 MB 的数据,则df命令将生成以下信息:

Filesystem kbytes used avail capacity
/ 3000000 3000000 0 100%
/.snapshot 1000000 3500000 0 350%

一旦文件管理器创建新的快照,系统中的每个块都会被某个快照引用,因此无论您从活动文件系统中删除多少文件,都仍然没有空间添加更多文件。恢复这种情况的唯一方法是删除足够多的快照以释放更多磁盘空间。有关如何使用 snap list 命令确定要删除哪个快照的信息,请参阅显示快照统计信息。

 
多个相同快照的磁盘消耗

示例:某个快照包含一个 1 MB 的文件,该文件自文件管理器创建该快照以来未发生任何更改。如果从活动文件系统中删除该文件,则该快照将占用 1 MB 的磁盘空间。

该 1 MB 文件的同一版本可能被多个不同的快照引用:hourly.0、hourly.1 和 hourly.2。如果这些快照都包含自文件管理器创建这些快照以来未更改的 1 MB 文件,则即使所有三个快照都包含该文件,快照也只会占用 1 MB 的磁盘空间。

df 命令如何显示快照

要提供有关快照磁盘利用率的信息,df文件管理器上的命令将快照视为与活动文件系统不同的分区。以下是df命令:

toaster> df
Filesystem kbytes used avail capacity
/ 3000000 2000000 1000000 65%
/.snapshot 1000000 500000 500000 50%

注意:本例中的数字已四舍五入,以使示例更易于理解。

文件管理器有 4 GB 的磁盘空间,其中 1 GB(即 25%)预留给快照(稍后将更详细地介绍为快照预留空间的概念)。这样,剩余 3 GB 空间用于活动文件系统,而其中 2 GB 的文件系统正在使用中。需要注意的是,/.snapshot行计数仅存在于快照中的数据。由于活动文件系统中也存在的数据无论如何都需要存储在磁盘上,因此如果文件管理器将空间分配给快照,则会产生误导。在本例中,实际使用了为快照预留的 1 GB 空间的一半。

 

追加信息

不适用

 

NetApp provides no representations or warranties regarding the accuracy or reliability or serviceability of any information or recommendations provided in this publication or with respect to any results that may be obtained by the use of the information or observance of any recommendations provided herein. The information in this document is distributed AS IS and the use of this information or the implementation of any recommendations or techniques herein is a customer's responsibility and depends on the customer's ability to evaluate and integrate them into the customer's operational environment. This document and the information contained herein may be used solely in connection with the NetApp products discussed in this document.