跳过导航链接 | |
退出打印视图 | |
![]() |
Sun Storage Archive Manager 5.3 配置和管理指南 Sun QFS and Sun Storage Archive Manager 5.3 Information Library (简体中文) |
对文件进行归档不需要操作人员的操作。归档程序将文件写入归档介质上的卷中。归档介质中可以包含一个或多个卷。每个卷都由称为卷序列名 (volume serial name, VSN) 的唯一标识符来标识。
默认情况下,归档程序会为每个归档集创建一个副本,但您最多可以要求创建四个副本。归档集和副本份数意味着占用一系列卷。归档集的副本在不同的卷中提供文件的复件。
要成为备选的归档或重新归档文件,必须更改文件中的数据。如果只是访问文件而未执行更改,则不会对文件归档。例如,对某个文件运行 touch 命令,并不会导致系统对该文件进行归档或重新归档。如果使用 mv 命令重命名某个文件,该文件可能会移动到不同的归档集。在这种情况下,归档程序软件将重新评估归档副本,以确定是否需要对该文件进行归档或重新归档。
注 - 由于运行 mv 命令只是更改文件名称,而没有更改文件数据,如果计划通过 tar 文件进行恢复,则此操作可能会导致灾难恢复。
归档操作受以下因素的影响:
归档时限。自上次修改文件以来所经过的时间段。用户可以为每一个归档副本定义归档时限。
使用 touch 命令可将其文件的默认时间基准更改成过去或将来的时间。请注意,这种做法可能导致意外的归档结果。为了避免发生问题,归档程序会调节该时间基准,以使它们始终处于文件的创建时间和当前时间之间的某个点。
归档优先级。此值根据文件属性特征以及与归档集关联的文件属性乘数计算得出,如下所示:
archive-priority = file-property-value x property-multiplier
大多数 file-property-value 数值为 1(代表 true)或 0(代表 false)。例如,如果正在创建第 1 个归档副本,则第 1 个属性副本的值为 1,因此,副本 2、3 和 4 的值为 0。其他属性(如归档时限和文件大小)可具有 0 或 1 之外的值。
property-multiplier 的值由归档集的 -priority 参数决定。可以为文件的各个方面(例如时限或大小)设定值以确定归档请求的优先级。所有属性乘数的默认值均为 0.0。有关 -priority 参数的更多信息,请参见《Sun QFS and Sun Storage Archive Manager 5.3 Reference Manual》中的"archiver.cmd(4)"。
archive-priority 和 property-multiplier 的值是浮点数值。
以下几节介绍了归档程序执行的步骤,包括从最初的文件扫描进程到文件复制进程:
单独的 sam-arfind 进程将监视每个挂载的文件系统,确定哪些文件需要归档。当某个文件的更改影响它的归档状态时,文件系统都会向此 sam-arfind 进程发出通知。此类更改包含文件修改、重新归档、取消归档以及重命名。
sam-arfind 进程将检查文件,确定该文件所属的归档集以及所要执行的操作。
sam-arfind 进程使用以下文件属性说明确定文件的归档集:
文件名中的目录路径部分,以及采用了正则表达式的完整文件名(可选)
文件属主的用户名
文件属主的组名
最小文件大小
最大文件大小
sam-arfind 进程执行以下评估来确定归档操作:
如果文件的一个或多个副本到达或超出归档时限,sam-arfind 进程会将该文件添加到归档集的一个或多个归档请求中。归档请求是属于同一个归档集的文件的集合。归档请求位于 /var/opt/SUNWsamfs/archiver/file_sys/ArchReq 目录中。此目录中的文件为二进制文件。要显示它们,请使用 showqueue 命令。对于尚未归档和需要重新归档的文件,则采用单独的归档请求。这允许您独立地控制这两种类型文件的预定。
如果文件的一个或多个副本未达到归档时限,该文件所在的目录以及将到达归档时限的时间会被添加到扫描列表中。一旦到达扫描列表中列出的时间,将对目录进行扫描。并将到达归档时限的文件添加到归档请求中。
如果文件处于脱机状态,则 sam-arfind 进程会选择将用作归档副本来源的卷。如果文件副本需要重新归档,则 sam-arfind 进程将选择包含这个需要重新归档的归档副本的卷。
如果文件已被分成数段,此进程将仅选择已发生更改的文件段进行归档。分段文件的索引不含用户数据,因此这些分段文件将被视为文件系统归档集的成员而单独进行归档。
可使用以下方法完成归档操作:
使用连续归档方法时,归档程序会对文件系统进行处理,以确定哪些文件需要归档。
连续归档为默认归档方法(archiver.cmd 文件参数为 examine=noscan),并按以下默认开始条件操作:
每两个小时进行一次归档。
归档一直等待,直到数据至少 90% 的 archmax 值已准备好进行归档。
归档一直等待,直到有至少 500,000 个文件要归档。
满足任一项预定开始条件时,sam-arfind 进程都会将每个归档请求发送至归档程序守护进程 sam-archiverd 进行预定,以将文件复制到归档介质。
要控制归档操作的预定,可使用 -startage、-startcount 和 -startsize 参数为每个归档集指定开始条件。这些条件允许您根据已完成的归档工作优化归档时效。例如:
如果创建您想要同时归档的文件需要花费 1 个小时,请将 -startage 参数设置为 1 小时 (-startage 1h),以确保在发生归档请求前,所有文件均已创建完毕。
如果希望所有归档请求的数据不得小于 150 GB,请将 -startsize 指定为 150 GB (-startsize 150g),以指示归档程序在可以归档的数据达到 150 GB 时,才进行归档。
如果知道可归档 3000 个文件,请指定 -startcount 3000,确保同时对这些文件进行归档。
有关归档参数的更多信息,请参见全局归档指令。
使用扫描方法时,归档程序将定期检查文件系统,然后选择要归档的文件。要启用扫描方法和禁用连续扫描,请在 archiver.cmd 文件中指定 examine=scan。
sam-arfind 进程将定期扫描每个文件系统,确定哪些文件需要归档,并将它们放置在归档请求中。第一个扫描过程是目录扫描,在此扫描期间,sam-arfind 按从上到下的顺序递归遍历目录树。该进程将检查每一个文件,如果文件不需要进行归档,则将其文件状态标志设置为 archdone。在连续扫描期间,sam-arfind 进程将扫描 .inodes 文件,并只检查无 archdone 标志的 inode。
完成扫描之后,sam-arfind 进程会将每个归档请求发送至归档程序守护进程 sam-archiverd 进行预定,以将文件复制到归档介质。sam-arfind 进程随后进入休眠状态,休眠时间为 interval= time 指令所指定的时间。在时间间隔结束时,sam-arfind 进程将重新开始扫描。
有关控制 archdone 标志设置的信息,请参见setarchdone 指令:控制 archdone 标志的设置。
无论使用的是哪种归档方法,sam-arfind 进程都会将每个归档请求发送至归档程序守护进程 sam-archiverd 进行组合。本节将介绍此组合过程。
组合是指从归档请求中选择一次要对哪些文件进行归档的过程。可能无法同时对归档请求中的所有文件进行归档,这取决于归档介质的容量或归档程序命令文件中指定的控制条件。完成归档请求的归档复制操作后,如果仍有需要归档的文件,则会重新组合归档请求。
sam-archiverd 守护进程会根据某些默认条件和特定于站点的条件,来放置归档请求中的文件。默认操作是按照全路径名将一个归档请求中的所有文件归档,这样,相同目录中的文件也会全部位于归档介质上。您可以通过指定特定于站点的条件,来控制按什么顺序对文件进行归档,以及如何将它们分布到不同的卷中。这些条件称为归档集参数,其检验顺序为:-reserve、-sort、-rsort(反向排序)和 -drives。有关更多信息,请参见《Sun QFS and Sun Storage Archive Manager 5.3 Reference Manual》中的"archiver.cmd(4)"。
如果指定 -reserve owner 参数,sam-archiverd 守护进程将依据文件的目录路径、用户名或组名对归档请求中的文件排序。将选择属于 owner 的文件进行归档。剩余文件将在以后进行归档。
如果指定 -sort 或 -rsort 参数,sam-archiverd 守护进程将依据指定排序方法(如时限、大小或目录位置)对文件排序。
如果归档请求同时包含联机和脱机文件,则会首先选择联机文件进行归档。
如果没有指定的排序方法,脱机文件将按照归档副本所在的卷进行排序。此规则可确保同一卷中每一个归档集内的所有文件可以按它们在介质上的存储顺序同时回写。在为脱机文件创建多个归档副本期间,脱机文件不会被释放,直到创建完所有要求的副本。与第一个文件处于同一卷中且要回写的所有文件都将被选作首先进行归档的文件。
注 - 归档脱机文件期间,使用 -sort 和 -rsort 参数会对性能产生负面影响。如果要归档文件的顺序与脱机文件所需卷的顺序不一致,则会产生这一负面影响。请仅对所要创建的第一个归档副本使用这些参数。开始创建其他副本时,如果归档介质有足够的空间,则其他副本必须采用第一个副本的归档顺序进行归档。
组合之后,归档请求会进入 sam-archiverd 守护进程的预定队列。
出现以下情况之一时,sam-archiverd 守护进程中的调度程序将立即执行:
归档请求进入预定队列。
已完成某个归档请求的归档。
从目录服务器收到介质状态发生变化的消息。
收到更改归档程序状态的消息。
预定队列中的归档请求按优先级排列。调度程序每次运行时,都会检查所有归档请求,以确定是否可以将其指定给 sam-arcopy 进程,从而将它们的文件复制到归档介质中。
要预定归档请求,必须满足以下条件:
必须存在可用于创建文件副本的驱动器。
必须存在可供使用的卷,且有足够的空间来容纳归档请求中的文件。
如果为归档集指定了 -drives 参数,sam-archiverd 守护进程会将归档请求中的选定文件分配至多个驱动器。如果可用的驱动器数量少于 -drives 参数指定的数量,则使用实际可用的数量。
如果归档请求中的文件大小总量小于 -drivemin 值,则只使用一个驱动器。-drivemin 值可以是 -drivemin 参数指定的值,也可以是 archmax 值。archmax 值是由 -archmax 参数指定的值或为介质定义的值。有关 -archmax 参数和 archmax= 指令的更多信息,请参见《Sun QFS and Sun Storage Archive Manager 5.3 Reference Manual》中的"archiver.cmd(4)"。
如果归档请求中的文件大小总量大于 -drivemin 值,则所用驱动器的数量根据文件大小总量除以 -drivemin 值来确定。如果可用的驱动器数量少于 -drives 参数指定的数量,则使用实际可用的数量。
不同的驱动器归档文件所花的时间各不相同。-drivemax 参数指定在重新预定驱动器接受更多数据前,将写入该驱动器的最大字节数。可使用 -drivemax 参数来获得更佳的驱动器利用率。
要使归档能够执行,至少必须存在一个卷,该卷具有足够空间,至少可以容纳归档请求中的某些文件。如果归档集最近使用过的卷具有足够空间,则它即为所预定的卷。该卷不应是归档程序正在使用的卷。
如果可用于归档集的卷正在使用中,除非指定了 -fillvsns 参数,否则会选择其他卷。如果指定了该参数,则不能预定归档请求。
如果归档请求太大,无法装入一个卷中,则系统会选择只将这个卷所能容纳的文件归档于其中。如果归档请求包含的文件太大,无法装入一个卷中,并且未为归档请求选择卷溢出功能,则这些文件无法归档。此时,系统会将一则说明此情况的消息发送至日志中。
您可以使用 -ovflmin 参数为归档集指定卷溢出,或使用 ovflmin= 指令为介质指定卷溢出。有关 -ovflmin 参数和 ovflmin= 指令的更多信息,请参见《Sun QFS and Sun Storage Archive Manager 5.3 Reference Manual》中的"archiver.cmd(4)"。ovflmin 规范决定文件大小阈值,如果文件大小超过该阈值,将指定其他卷或介质进行归档。为归档集指定的 ovflmin 值优先于为介质指定的 ovflmin 值。
如果文件的大小小于 ovflmin 的值,则文件无法归档。此时,系统会将一则说明此情况的消息发送至日志中。如果文件的大小大于 ovflmin 的值,则会根据需要指定其他卷。系统将按卷容量的大小顺序选择卷(即先大后小),以最大限度地减少所需卷的数量。如果找不到可用于归档请求的卷,则归档请求会等待,直至具有可用卷为止。
在确定某个特定归档请求的预定优先级时,除归档优先级之外,系统还将参照某些其他属性,例如文件是处于联机状态还是处于脱机状态。有关定制优先级乘数的更多信息,请参见 archiver.cmd(4) 手册页中所述的 -priority 参数。
对于每一个归档请求,sam-archiverd 守护进程都会通过将归档优先级和与各种系统资源属性相关联的乘数相加,来确定预定优先级。这些属性与以下各项相关:归档请求排队的时间(秒数);归档过程中使用的第一个卷是否已装入驱动器;以及其他方面。
sam-archiverd 守护进程利用经调整的优先级,指定每一个可进行复制的归档请求。
当归档请求已经准备就绪,可以进行归档时,sam-archiverd 守护进程将标记归档文件界限,以使每一个归档文件的大小小于指定的 -archmax 值。如果单个文件的大小大于该值,它将成为归档文件中的唯一文件。
对于每一个归档请求和要使用的每一个驱动器,sam-archiverd 守护进程均会将归档请求指定给 sam-arcopy 进程,以便将文件复制到归档介质。归档信息会输入至 inode。
如果已启用归档日志功能,则会创建归档日志条目。
对于每一个已回写的文件,系统会释放其磁盘空间,直到列表中的所有文件归档完毕。
多种错误以及文件状态改变都会导致文件复制失败。这些错误包括从磁盘高速缓存读取时和向卷写入数据时发生的错误。状态的改变包括在选择文件后对文件进行了修改,打开文件以写入数据,或文件被删除。
sam-arcopy 进程退出后,sam-archiverd 守护进程将检查归档请求。如果有文件尚未归档,则会重新组合归档请求。
您还可以在 archiver.cmd 文件中指定归档操作超时。该指令如下所示:
timeout = [operation | media] time
operation 为以下各项之一:
read-从磁盘读取文件。默认超时时间为 1 分钟。
request-请求归档介质。默认超时时间为 15 分钟。
stage-回写要归档的文件。默认超时时间为 0 分钟。
write-写入归档介质。默认超时时间为 15 分钟。
也可以针对单个介质分别指定写入操作的 timeout 值。
可以在 archiver.cmd 文件中配置 -queue_time_limit time 归档集参数,以便在归档请求位于预定队列中的时间超过特定时间时向管理员发出通知。如果归档请求在该时间结束时仍位于队列中,则会向系统管理员发送电子邮件。
以下示例显示了 archiver -l 命令的输出样例。
# archiver -l Archive media: default:mo media:mo archmax:5000000 media:lt archmax:50000000 Archive devices: device:mo20 drives_available:1 archive_drives:1 device:lt30 drives_available:1 archive_drives:1 Archive file selections: Filesystem samfs1: samfs1 Metadata copy:1 arch_age:240 big path:. minsize:512000 copy:1 arch_age:240 all path: copy:1 arch_age:30 Archive sets: all copy:1 media:mo big copy:1 media:lt samfs1 copy:1 media:mo