转到主要内容
Oracle® Hierarchical Storage Manager and StorageTek QFS Software 维护和管理指南
发行版 6.0
E56775-02
  转至文档库
转至目录
目录
转至索引
索引

上一页
上一页
 
下一页
下一页
 

4 管理文件和目录

本章介绍以下主题:

设置 Oracle HSM 文件属性

用户可以通过熟悉的“标准 UNIX 文件系统”界面进行交互是 Oracle Hierarchical Storage Manager and StorageTek QFS Software 的一项重要优势。大多数用户甚至不需要知道差异。但是,在必要时,Oracle HSM 文件系统可以向高级用户提供更强大的功能。Oracle HSM文件属性允许用户优化文件系统处理单个文件和目录的行为。如果用户了解自己的工作负荷以及数据特性,则可以极大地提高各个文件的性能。例如,用户可以根据给定文件或目录中数据的特性指定直接 I/O 或缓冲 I/O。用户可以预分配文件系统空间,以便大型文件能以更加连续的方式写入,并可在写入特定文件或目录时指定分散读写宽度。

setfa 命令可对新的和现有的文件和目录设置这些文件属性。该命令可以创建不存在的指定文件或目录。当应用于目录时,该命令可对该目录中的所有文件和子目录设置指定属性。后续创建的文件和目录会继承这些属性。

下面概述了一些基本任务(有关其他信息,请参见 setfa 手册页)。

恢复默认文件属性值

  1. 登录到文件系统主机。

    user@solaris:~# 
    
  2. 要将文件重置为默认属性值,请使用命令 setfa -d file,其中 file 是文件的路径和名称。

    在该示例中,将文件 /samfs1/data/2014/03/series3.15 重置为默认值:

    user@solaris:~# setfa -d /samfs1/data/2014/03/series3.15
    
  3. 要以递归方式将某个目录及其所有内容重置为默认值,请使用命令 setfa -r directory,其中 directory 是目录的路径和名称。

    在该示例中,将子目录 /samfs1/data/2014/02 重置为默认值:

    user@solaris:~# setfa -r /samfs1/data/2014/02/
    
  4. 在此处停止。

预分配文件系统空间

为文件预分配空间可保证在写入文件时有足够的空间按顺序写出整个文件。以连续块形式读写大型文件可以减少与寻找块以及缓冲较小、较分散的数据块有关的开销,从而提高效率和整体性能。因此,预分配最适合写入数量可预测的较大数据块。文件关闭时,预分配但未使用的空间仍属于文件,在删除整个文件之前,不会释放此空间用于其他用途。

  1. 登录到文件系统主机。

    user@solaris:~# 
    
  2. 如果需要预分配空间来写入已包含数据的现有文件,请使用命令 setfa -L number-bytes file,其中 k 是一个整数或整数加 k(表示千字节)、m(表示兆字节)或 g(表示千兆字节),而 file 则是文件的名称。

    命令 setfa -L 使用标准分配。该命令支持分散读写。预分配的文件可以增长至超过其预分配大小。在该示例中,将预分配 121  MB 给现有的文件 tests/series119b

    user@solaris:~# setfa -L 121m tests/series119b
    
  3. 如果需要预分配空间以写入未分配存储块的新文件,请使用命令 setfa -l number-bytes file,其中:

    • l 是小写字母 "L"。

    • number-bytes 是整数或整数加 k(表示千字节)、m(表示兆字节)或 g(表示千兆字节)。

    • file 是文件的名称。

    命令 setfa -l 可预分配指定的字节数。结果文件的大小固定在为其预分配的大小,不能高出也不能小于其预分配大小。在该示例中,将创建文件 data/2014/a3168445,并为其内容预分配 2 GB 的空间:

    user@solaris:~# setfa -l 2g data/2014/a3168445
    
  4. 在此处停止。

为文件指定循环分配或分散读写分配

默认情况下,Oracle HSM 文件系统使用在挂载时为文件系统指定的分配方法。但是,用户可以为指定的目录或文件指定一个首选分配方法:循环分配或者具有指定分散读写宽度的分散读写分配。

  1. 登录到文件系统主机。

    user@solaris:~# 
    
  2. 要指定循环分配,请将分散读写宽度指定为 0(零)。使用命令 setfa -s 0 directory-or-file,其中 directory-or-file 是要使用指定的分配方法写入的目录或文件的名称。

    分散读写宽度为 0(零)时,指定无分散读写的循环分配。文件系统在下一个可用设备上开始写入文件。文件系统在同一个设备上为文件写入连续的磁盘分配单元 (disk allocation unit, DAU),直到文件完成或者设备空间耗尽。如果设备空间耗尽,文件系统将移到下一个可用设备,然后继续写入磁盘分配单元。该过程会重复到文件完成。在该示例中,为写入到 data/field-reports 目录的所有文件指定循环分配:

    user@solaris:~# setfa -s 0 data/field-reports
    
  3. 要指定分散读写分配,请指定分散读写宽度。使用命令 setfa -s stripe-width directory-or-file,其中 stripe-width 为 [1–255] 范围内的一个整数,directory-or-file 是要使用指定分配方法写入的目录或文件的名称。

    如果分散读写宽度在 [1–255] 范围内,即指定分散读写分配。文件系统以并行方式向多个设备写入分散读写宽度中指定的磁盘分配单元 (DAU) 数量,直到文件完成。在该示例中,为写入到相应目录中的所有文件指定分散读写宽度为 1 的分散读写分配(即写入到 data/field-reports 目录 data/2014/ 的所有文件的文件分配),这样文件系统将向每个可用设备写入一个磁盘分配单元,直到文件完成:

    user@solaris:~# setfa -s 1 data/2014/
    
  4. 在此处停止。

在指定的分散读写组设备上分配文件存储

用户可以指定循环分配或分散读写分配应从哪个分散读写组设备开始。Oracle HSM 分散读写组是在多个物理卷上分散读写数据的逻辑卷。使用循环文件分配时,会在指定的分散读写组上写入整个文件。使用分散读写分配时,会在指定的分散读写组上进行第一次分配。

  1. 登录到文件系统主机。

    user@solaris:~# 
    
  2. 要将整个文件写入特定的分散读写组,请使用循环分配。使用命令 setfa -s 0 -gstripe-group-number,其中 stripe-group-number 为 [0-127] 范围内的一个整数,用于标识指定的分散读写组。

    在本示例中,我们在写入文件 reports/site51 时指定从分散读写组 0 开始的循环分配:

    user@solaris:~# setfa -s 0 -g0 reports/site51
    
  3. 要在从指定分散读写组开始的多个分散读写组上分散读写文件,请使用分散读写分配。使用命令 setfa -s stripe-width -gstripe-group-number,其中 stripe-width 为 [1–255] 范围内的一个整数,用于指定一定数量的磁盘分配单元;stripe-group-number 是在 [0-127] 范围内的整数,用于标识指定的分散读写组。

    在本示例中,我们为文件 assessments/site52 指定分散读写分配。我们为每个组指定三个磁盘分配单元(从分散读写组 21 开始):

    user@solaris:~# setfa -s 3 -g21 assessments/site52
    
  4. 在此处停止。

适应大型文件

Oracle HSM 文件系统特别适合处理超大文件。本节介绍以下主题:

管理特大型文件的磁盘高速缓存

在处理特大型文件时,请特别注意可用的磁盘高速缓存大小。如果尝试写入的文件比磁盘高速缓存大,则非归档文件系统将返回 ENOSPC 错误,而归档文件系统则会等待可能永远也不会变得可用的空间,从而导致应用程序受阻。

Oracle HSM 提供了两种可能的备选方法来增加磁盘高速缓存的大小:

文件分段

为文件设置 Oracle HSM 分段属性时,文件系统会将文件分成指定大小的段,并管理访问请求,从而使得在任何给定时间只有当前需要的段位于磁盘上。文件的剩余部分位于可移除介质上。

对大型文件分段有多项优势:

  • 用户可以创建和访问大于可用磁盘高速缓存大小的文件。

    由于在任何给定时间只有一些段位于高速缓存中,因此只需要选择适合磁盘高速缓存的段大小。整个文件可以增长到介质能容纳的任何大小。

  • 用户可以更快地访问从磁盘高速缓存中释放的大型文件。将大型文件的一部分回写到磁盘比等待整个文件回写要快得多。

  • 文件分段后,归档的速度和效率都会提升,因为仅重新归档每个文件发生更改的部分。

  • 可以在挂载到多个驱动器的可移除介质卷上分散读写文件。随后,可以继续以并行方式进行归档和回写操作,从而进一步提高性能。

存在两项限制:

  • 不能在共享文件系统中进行文件分段。

  • 不能将二进制可执行文件分段,因为 Solaris 内存映射函数 mmap() 无法将分段文件中的字节映射到进程的地址空间。

要创建分段文件,请执行如下操作:

将文件分段

  1. 登录到文件系统主机。

    user@solaris:~# 
    
  2. 选择或者在必要时创建需要分段的文件。

  3. 要将单个文件分段,请使用命令 segment [-s stage_ahead] -l segment_size file-path-name,其中:

    • stage_ahead(可选)是一个整数,用于指定在访问给定段时要读取的连续额外段的数量。恰当地选择值可以提高系统页面高速缓存的利用率,从而提高 I/O 性能。默认值为 0(禁用)。

    • segment_size 是一个整数及单位,放在一起来指定每个分段的大小。支持的单位包括 k(千字节)、m(兆字节)以及 g(千兆字节)。最小大小为一兆字节(1m1024k)。

    • file-path-name 是文件的路径和文件名。

    有关完整的详细信息,请参见 segment 手册页。在示例中,使用 1.5 兆字节 (1536k) 段大小对文件 201401.dat 分段:

    user@solaris:~# segment -l 1536k 201401.dat 
    
  4. 要以递归方式对某个目录及其所有子目录中的文件分段,请使用命令 segment [-s stage_ahead] -l segment_size -r directory-path-name,其中 directory-path-name 是起始目录的路径和名称。

    在示例中,使用 1 兆字节 (1m) 段大小对 /samqfs1/data 目录及其子目录中的所有文件分段:

    user@solaris:~# segment -l 1m -r /samqfs1/data 
    
  5. 在此处停止。

在多个卷上分散读写分段文件

通过将分段文件分配给指定了多个驱动器的归档集,可以为分段文件配置分散读写 I/O。执行如下操作:

  1. root 用户身份登录主机。

    root@solaris:~# 
    
  2. 在文本编辑器中打开文件 /etc/opt/SUNWsamfs/archiver.cmd

    在示例中,使用 vi 编辑器打开该文件:

    root@solaris:~# vi /etc/opt/SUNWsamfs/archiver.cmd
    # Configuration file for Oracle HSM archiving file systems ...
    
  3. 要在多个驱动器上分散读写分段文件,请为包含分段文件的每个归档集的每个副本指定至少使用两个驱动器。在 archiver.cmd 文件中,找到 params 部分。确保每个副本的参数包含 -drives number 参数,其中 number 是二 (2) 或更多。进行所需的更改,保存文件,然后关闭编辑器。

    在该示例中,archiver.cmd 文件为所有配置的归档集的全部三个副本指定了两个驱动器:

    root@solaris:~# vi /etc/opt/SUNWsamfs/archiver.cmd
    # Configuration file for Oracle HSM archiving file systems ...
    ...
    #-----------------------------------------------------------------------
    # Copy Parameters
    params
    allsets -sort path -offline_copy stageahead -reserve set
    allsets.1 -startage 10m -drives 2
    allsets.2 -startage 24h -drives 2
    allsets.3 -startage 48h -drives 2
    endparams 
    ...
    :wq
    root@solaris:~# 
    
  4. 检查 archiver.cmd 文件中的错误。使用命令 archiver -lv

    archiver -lv 命令将 archiver.cmd 文件输出到屏幕,如果未发现错误将生成一个配置报告。否则,将记录所有错误并停止。

    root@solaris:~# archiver -lv
    Reading '/etc/opt/SUNWsamfs/archiver.cmd'.
    ...
     Total space available:  300T
    root@solaris:~# 
    
  5. 指示 Oracle HSM 软件重新读取 archiver.cmd 文件并相应地重新配置自身。使用 /opt/SUNWsamfs/sbin/samd config 命令。

    root@solaris:~# samd config
    
  6. 在此处停止。

将可移除介质文件用于大型数据集

Oracle HSM 可移除介质文件完全位于可移除介质上,因此从来不会占用文件系统磁盘高速缓存中的空间。文件系统将可移除介质文件直接读取到内存中。因此,存储介质根本不会限制文件的大小。超过单个介质磁带容量的可移除文件可能会成为多磁带卷溢出文件。文件系统按顺序读取数据并将其写入介质。

在大多数方面,可移除介质文件就像是典型的 UNIX 文件。其具有权限、用户名、组名和文件大小。用户或应用程序请求可移除介质文件时,系统会自动挂载对应的卷,用户从内存中访问数据,就像数据在磁盘上一样。但是,可移除介质文件不同于其他 Oracle HSM 文件的地方主要在两个方面:Oracle Hierarchical Storage Manager 软件从不对其归档,并且在 NFS 中不支持这类文件。

Oracle Hierarchical Storage Manager 软件不管理可移除介质文件。永远不会归档或释放这类文件,也永远不会回收包含它们的介质。当需要将可移除介质用于归档以外的目的时,可移除介质文件很有用。这类文件非常适合创建可移除的灾难恢复卷,用于备份 Oracle HSM 配置文件和元数据转储文件。还可以从外部卷(由其他应用程序创建的卷)读取数据,即以只读方式装入卷并将文件作为可移除介质文件读取到内存中。

由于无法释放可移除介质文件,并且不能回收关联的卷,因此,通常应将可移除介质文件单独放在专用卷上,而不应将它们与归档副本混合存放。

创建可移除介质或卷溢出文件

  1. 登录到文件系统主机。

    user@solaris:~# 
    
  2. 为可移除介质文件选择 Oracle HSM 文件系统、路径和文件名。

    创建了可移除介质文件之后,文件系统将使用来自可移除介质的数据响应对此路径和文件名的请求。

  3. 创建可移除介质文件。使用命令 request -m media-type -v volume-specifier data-file,其中mediatype附录 A 设备类型词汇表中列出的两字符介质类型代码之一,data-file 是为可移除介质文件选择的路径和名称,volume-specifier 是以下对象之一:

    • 卷序列号或以斜杠分隔的卷序列号列表

      在第一个示例中,在 LTO (li) 卷 VOL080 上创建了 file1

      user@solaris:~# request -m li -v VOL080 /samqfs1/data/file1
      

      在第二个示例中,在 LTO (li) 卷 VOL080VOL082VOL098 上创建了 file2

      user@solaris:~# request -m li -v VOL081/VOL082/VOL098 /samqfs1/data/file2
      
    • -l volume-list-file,其中 volume-list-file 是文件的路径和名称;在每一行上,列出一个卷序列号以及可选的空格和十进制或十六进制数值,该数值指定在指定卷上的开始位置(十六进制数值带 0x 前缀)。

      在示例中,使用 vi 编辑器在文件 vsnsfile3 中列出的 LTO (li) 卷上创建 file3

      user@solaris:~# vi vsnsfile3
      VOL180
      VOL181
      VOL182
      :wq
      user@solaris:~# request -m li -v -l vsnsfile3 /samqfs1/data/file3
      
  4. 在此处停止。

读取外部磁带卷作为可移除介质文件

  1. 登录到文件系统主机。

    user@solaris:~# 
    
  2. 确保外部磁带有条码、启用写保护、以只读方式打开并且定位到 0

  3. 为可移除介质文件选择 Oracle HSM 文件系统、路径和文件名。

    创建了可移除介质文件之后,文件系统将使用来自外部磁带的数据响应对此路径和文件名的请求。

  4. 使用 -N(外部介质)选项创建可移除介质文件。使用命令 request -m media-type -N -v volume-serial-number data-file,其中:

    • mediatype附录 A 设备类型词汇表中列出的两字符介质类型代码之一。

    • volume-serial-number 是外部磁带的卷序列号。

    • data-file 是可移除介质文件的路径和名称。

    在该示例中,为外部 LTO (li) 卷 FOR991 创建了一个可移除介质文件:

    user@solaris:~# request -m li -N -v FOR991 /samqfs1/foreignfile
    
  5. 在此处停止。

使用 Linear Tape File System (LTFS) 卷

Linear Tape File System 是自描述磁带格式,可将顺序访问磁带介质上的数据组织到文件系统中,以便可以像文件位于随机访问磁盘上一样对其进行访问。Oracle HSM 提供对 LTFS 的广泛支持。该软件支持在 Oracle HSM 文件系统中使用 LTFS 文件,并提供了创建、访问和管理 LTFS 介质的工具。

本节介绍以下主题:

将 LTFS 介质导入到磁带库

Oracle HSM 软件会自动识别 LTFS 介质。因此,可以使用 samimport 命令导入 LTFS 卷,就像导入其他任何介质一样。有关其他信息,请参见导入和导出可移除介质samimport 手册页。

将 LTFS 目录和文件连接到 Oracle HSM 文件系统

Oracle HSM 软件可以将 Linear Tape File System (LTFS) 目录和文件连接到 Oracle HSM 文件系统,使这些目录和文件可以当作 Oracle HSM 文件进行访问和管理。该软件将 LTFS 元数据从 LTFS 卷复制到 Oracle HSM 文件系统中的空目录。使用此元数据,Oracle HSM 就像管理归档的 Oracle HSM 文件一样管理 LTFS 介质和文件。用户依次访问 LTFS 文件或者同时访问这些 LTFS 文件时,只要 LTFS 元数据就位,就将 LTFS 文件从 LTFS 介质回写到 Oracle HSM 磁盘高速缓存供使用。将应用 Oracle HSM 文件系统的归档和空间管理策略,就像对待任何 Oracle HSM 文件一样。

本节介绍以下任务:

使 LTFS 文件可按需访问

将 LTFS 文件连接到 Oracle HSM 文件系统时,Oracle HSM 软件会将文件系统元数据从 LTFS 卷复制到 Oracle HSM 文件系统中的指定目录。然后,在用户访问这些文件时,将其回写到磁盘高速缓存。要连接 LTFS 文件,请执行如下操作:

  1. 登录到文件系统主机。

    user@solaris:~# 
    
  2. 在承载 LTFS 文件的 Oracle HSM 文件系统中,创建用于存放 LTFS 元数据的目录。

    在该示例中,在文件系统挂载点 /samqfs1 下创建了目录 ltfs1/

    user@solaris:~# mkdir /samqfs1/ltfs1
    user@solaris:~# 
    
  3. 将 LTFS 文件连接到 Oracle HSM 文件系统。使用命令 samltfs attach LTFS-media-type.LTFS-volume-serial-number SAMQFS-directory,其中:

    • LTFS-media-type 是存放 LTFS 数据的介质类型的两字符介质类型代码(请参见附录 A 设备类型词汇表)。

    • LTFS-volume-serial-number 是 LTFS 卷的六字符卷序列号(使用字母数字)。

    • 指定的介质类型和卷序列号用于标识目录列为 LTFS 卷的卷。

      在 Oracle HSM 目录中,LTFS 介质是无标签的并标记为 non-SAMtfs

    • SAMQFS-directory 是将存放 LTFS 元数据的目录的路径和名称。

    在该示例中,连接了 LTO (li) 卷 TFS233

    user@solaris:~# samltfs attach li.TFS233 /samqfs1/ltfs1
    user@solaris:~# 
    
  4. 在此处停止。

使 LTFS 文件在磁盘高速缓存中可立即访问

将 LTFS 文件获取 到 Oracle HSM 文件系统中时,Oracle HSM 软件会将文件系统元数据从 LTFS 卷复制到 Oracle HSM 文件系统中的指定目录,并立即将所有文件回写到磁盘高速缓存。要获取 LTFS 文件,请执行如下操作:

  1. 登录到文件系统主机。

    user@solaris:~# 
    
  2. 在承载 LTFS 文件的 Oracle HSM 文件系统中,创建用于存放 LTFS 元数据的目录。

    在该示例中,在文件系统挂载点 /samqfs1 下创建了目录 ltfs2/

    user@solaris:~# mkdir /samqfs1/ltfs2
    user@solaris:~# 
    
  3. 将 LTFS 文件获取到 Oracle HSM 文件系统中。使用命令 samltfs ingest LTFS-media-type.LTFS-volume-serial-number SAMQFS-directory,其中:

    • LTFS-media-type 是存放 LTFS 数据的介质类型的两字符介质类型代码(请参见附录 A 设备类型词汇表)。

    • LTFS-volume-serial-number 是 LTFS 卷的六字符卷序列号(使用字母数字)。

    • 指定的介质类型和卷序列号用于标识目录列为 LTFS 卷的卷。

      在 Oracle HSM 目录中,LTFS 介质是无标签的并标记为 non-SAMtfs

    • SAMQFS-directory 是存放 LTFS 元数据的目录的路径和名称。

    在该示例中,获取了 LTO (li) 卷 TFS234

    user@solaris:~# samltfs ingest li.TFS234 /samqfs1/ltfs2
    user@solaris:~# 
    
  4. 在此处停止。

使用 Oracle HSM 软件访问 LTFS 介质

Oracle HSM 软件还可以在主机上装入和卸载 LTFS 介质,以及使用 Oracle HSM defaults.conf 文件中指定的 LTFS 挂载点挂载或卸载 LTFS 文件系统。

将 LTFS 卷装入磁带机并挂载 LTFS 文件系统

  1. 登录到文件系统主机。

    user@solaris:~# 
    
  2. 将 LTFS 卷装入磁带机并在 defaults.conf 文件中指定的挂载点上挂载文件系统。使用命令 samltfs load LTFS-media-type.LTFS-volume-serial-number,其中:

    • LTFS-media-type 是存放 LTFS 数据的介质类型的两字符介质类型代码(请参见附录 A 设备类型词汇表)。

    • LTFS-volume-serial-number 是 LTFS 卷的六字符卷序列号(使用字母数字)。

    • 指定的介质类型和卷序列号用于标识目录列为 LTFS 卷的卷。

      在 Oracle HSM 目录中,LTFS 介质是无标签的并标记为 non-SAMtfs

    在该示例中,装入 LTO (li) 卷 TFS434 并将其挂载到 defaults.conf 文件中指定的目录 /mnt/ltfs 下:

    user@solaris:~# samltfs load li.TFS234
    
  3. 在此处停止。

卸载 LTFS 文件系统,并从磁带机中卸载卷

  1. 登录到文件系统主机。

    user@solaris:~# 
    
  2. 卸载 LTFS 文件系统,并从磁带机中卸载对应的卷。使用命令 samltfs unload LTFS-media-type.LTFS-volume-serial-number,其中:

    • LTFS-media-type 是存放 LTFS 数据的介质类型的两字符介质类型代码(请参见附录 A 设备类型词汇表)。

    • LTFS-volume-serial-number 是 LTFS 卷的六字符卷序列号(使用字母数字)。

    • 指定的介质类型和卷序列号用于标识目录列为 LTFS 卷的 LTFS 卷。

      在 Oracle HSM 目录中,LTFS 介质是无标签的并标记为 non-SAMtfs

    在该示例中,卸载 LTFS 文件系统并卸载 LTO (li) 卷 TFS435

    user@solaris:~# samltfs unload li.TFS435
    
  3. 在此处停止。

使用 Oracle HSM 软件管理 LTFS 介质

Oracle HSM 软件提供了创建、清除和验证 LTFS 介质所需的基本工具:

将卷格式化为 LTFS 文件系统

  1. 登录到文件系统主机。

    user@solaris:~# 
    
  2. 对 LTFS 文件系统的可移除介质卷进行分区和格式化。使用命令 samltfs mkltfs media-type.volume-serial-number,其中:

    • media-type 是 LTFS 兼容介质类型的两字符介质类型代码(请参见附录 A 设备类型词汇表)。

    • volume-serial-number 是使用字母数字的六字符卷序列号。

    在该示例中,对 LTO (li) 卷 VOL234 分区并将其格式化为 LTFS 卷:

    user@solaris:~# samltfs mkltfs li.VOL234
    
  3. 在此处停止。

清除 LTFS 数据,并从卷中删除格式和分区

  1. 登录到文件系统主机。

    user@solaris:~# 
    
  2. 清除 LTFS 卷并将其恢复为一般用途。使用命令 samltfs unltfs media-type.volume-serial-number,其中:

    • media-type 是 LTFS 兼容介质类型的两字符介质类型代码(请参见附录 A 设备类型词汇表)。

    • volume-serial-number 是使用字母数字的六字符卷序列号。

    在该示例中,清除 LTFS 文件系统数据和元数据,并删除 LTO (li) 卷 VOL234 上的分区:

    user@solaris:~# samltfs unltfs li.VOL234
    
  3. 在此处停止。

检查 LTFS 文件系统的完整性

  1. 登录到文件系统主机。

    user@solaris:~# 
    
  2. 检查 LTFS 文件系统的完整性。使用命令 samltfs ltfsck LTFS-media-type.LTFS-volume-serial-number,其中:

    • LTFS-media-type 是存放 LTFS 数据的介质类型的两字符介质类型代码(请参见附录 A 设备类型词汇表)。

    • LTFS-volume-serial-number 是 LTFS 卷的六字符卷序列号(使用字母数字)。

    • 指定的介质类型和卷序列号用于标识目录列为 LTFS 卷的 LTFS 卷。

      在 Oracle HSM 目录中,LTFS 介质是无标签的并标记为 non-SAMtfs

    在该示例中,检查 LTO (li) 卷 VOL234 上的 LTFS 文件系统:

    user@solaris:~# samltfs ltfsck li.VOL234
    
  3. 在此处停止。

显示 LTFS 配置和状态信息

要显示 LTFS 的配置和状态,请使用命令 samltfs status

user@solaris:~# samltfs status

管理 WORM 文件

为文件系统配置一次写入多次读取 (write-once read-many, WORM) 支持后,可以为目录和文件启用 WORM。本节首先简要介绍 Oracle HSM 的 WORM 实施,以便了解 WORM 文件系统。然后,提供执行以下任务的说明:

了解 WORM 文件系统

出于法律或归档原因,要在许多应用程序中使用 WORM 文件。启用 WORM 的 Oracle HSM 文件系统支持默认的和可定制的文件保持期、数据和路径的不可更改性以及 WORM 设置的子目录继承性。根据文件系统的配置情况,可以使用两种 Oracle HSM WORM 模式中的一种:

  • 标准符合性模式(默认)

    标准 WORM 模式在用户设置对目录或不可执行文件 (chmod 4000 directory|file) 的 UNIX setuid 权限时开始 WORM 保留期。由于对可执行文件设置 setuid在执行时设置用户 ID)会带来安全风险,因此无法使用此模式保留同时具有 UNIX 执行权限的文件。

  • 仿真模式

    WORM 仿真模式在用户使可写入文件或目录变为只读 (chmod 555 directory|file) 时开始 WORM 保留期,因此可以保留可执行文件。

标准模式和仿真模式具有严格的 WORM 实施和不太严格的轻量级实施。轻量级实施会放松对 root 用户的一些限制。在触发了对文件或目录的保留之后,严格实施和轻量级实施都不允许更改数据或路径。严格实施不允许在保留期结束之前缩短指定的保留期(默认为 43,200 分钟 = 30 天)或者删除文件或目录。严格实施也不允许使用 sammkfs 来删除存放当前保留的文件和目录的卷。因此,严格实施适用于满足法律和法规遵从性要求。轻量级实施允许 root 用户使用 sammkfs 命令缩短保留期、删除文件和目录。

可以使用触发器操作创建 WORM 目录和文件。使用 worm_capableworm_lite 挂载选项挂载的文件系统使用标准遵从性模式触发器,而使用 worm_emulemul_lite 选项挂载的文件系统则使用仿真模式触发器。

触发器操作会对目录和文件产生不同的影响。应用于目录时,触发器操作会对目录启用 WORM 支持,但不会对用户在目录中创建和编辑文件产生其他影响。只要启用 WORM 的目录不含 WORM 文件,就可将其删除。应用于启用了 WORM 的目录中的文件时,触发器会为文件设置保留期,并且文件系统不再允许修改文件数据或数据路径。保留期到期时,只能删除文件或者延长保留时间。因此,在应用 WORM 触发器时必须慎重,因为文件系统级的更改不可撤消。

可以创建到 WORM 文件的硬链接和软链接。只能对启用了 WORM 的目录中的文件创建硬链接。创建硬链接后,该链接与原始文件具有同样的 WORM 特征。也可以创建软链接,但软链接无法使用 WORM 功能。可以对 Oracle HSM 文件系统的任何目录中的 WORM 文件创建软链接。

有关创建和配置 WORM 文件系统的完整信息,请参见客户文档库 (http://docs.oracle.com/en/storage/#sw) 中的《Oracle Hierarchical Storage Manager and StorageTek QFS Software 安装和配置指南》。

为文件激活 WORM 保留

  1. 登录文件系统服务器。

    user@solaris:~# 
    
  2. 查看存放文件的目录是否已启用 WORM。使用命令 sls -Dd directory,其中 directory 是目录的路径和名称。在该命令的输出中查找属性 worm-capable

    有关该命令的完整信息,请参见 sls 手册页。通常,目录会启用 WORM,因为当用户为目录启用 WORM 时,所有当前的和将来的子目录都将继承 WORM 功能。在第一个示例中,目标目录 /samqfs1/records 已启用 WORM:

    user@solaris:~# sls -Dd /samqfs1/records/2013/
    /samma1/records/2013:
      mode: drwxr-xr-x    links:   2  owner: root        group: root      
      length:      4096  admin id:      0  inode:     1048.1
      project: user.root(1)
      access:      Mar  3 12:15  modification: Mar  3 12:15
      changed:     Mar  3 12:15  attributes:   Mar  3 12:15
      creation:    Mar  3 12:15  residence:    Mar  3 12:15
      worm-capable        retention-period: 0y, 30d, 0h, 0m
    

    但在第二个示例中,目标目录 /samqfs1/documents 没有 启用 WORM:

    user@solaris:~# sls -Dd /samqfs1/documents
    /samqfs1/documents
      mode: drwxr-xr-x    links:   2  owner: root        group: root      
      length:      4096  admin id:      0  inode:     1049.1
      project: user.root(1)
      access:      Mar  3 12:28  modification: Mar  3 12:28
      changed:     Mar  3 12:28  attributes:   Mar  3 12:28
      creation:    Mar  3 12:28  residence:    Mar  3 12:28
    
  3. 如果目录未启用 WORM,但挂载文件系统时使用了 worm_capableworm_lite 挂载选项,则可使用标准遵从性模式触发器为目录启用 WORM。使用 Solaris 命令 chmod 4000 directory-name,其中 directory-name 是将存放 WORM 文件的目录的路径和名称。

    命令 chmod 4000 为文件设置 setuid在执行时设置用户 ID)属性,这是标准遵从性模式的触发器操作。在该示例中,为目录 /samqfs1/documents 启用 WORM 并使用 sls -Dd 检查结果:

    user@solaris:~# chmod 4000 /samqfs1/documents
    user@solaris:~# sls -Dd /samqfs1/documents
    /samqfs1/documents
      mode: drwxr-xr-x    links:   2  owner: root        group: root      
      length:      4096  admin id:      0  inode:     1049.1
      project: user.root(1)
      access:      Mar  3 12:28  modification: Mar  3 12:28
      changed:     Mar  3 12:28  attributes:   Mar  3 12:28
      creation:    Mar  3 12:28  residence:    Mar  3 12:28
      worm-capable        retention-period: 0y, 30d, 0h, 0m
    
  4. 如果目录未启用 WORM,但挂载文件系统时使用了 worm_emulemul_lite 挂载选项,则可使用仿真模式触发器为目录启用 WORM。使用 Solaris 命令 chmod 555 directory-name,其中 directory-name 是将存放 WORM 文件的目录的路径和名称。

    命令 chmod 555 删除目录的写权限,这是仿真模式的触发器操作。在该示例中,为目录 /samqfs1/documents 启用 WORM 并使用命令 sls -Dd 检查结果:

    user@solaris:~# chmod 555 /samqfs1/documents
    user@solaris:~# sls -Dd /samqfs1/documents
    /samqfs1/documents
      mode: drwxr-xr-x    links:   2  owner: root        group: root      
      length:      4096  admin id:      0  inode:     1049.1
      project: user.root(1)
      access:      Mar  3 12:28  modification: Mar  3 12:28
      changed:     Mar  3 12:28  attributes:   Mar  3 12:28
      creation:    Mar  3 12:28  residence:    Mar  3 12:28
      worm-capable        retention-period: 0y, 30d, 0h, 0m
    
  5. 如果文件需要保留的期限与文件系统的默认设置不同,可通过更改文件的访问时间来指定所需的保留时间。使用 Solaris 命令 touch -a -texpiration-date,其中 expiration-date 是由四位数的年份、两位数的月份、两位数的日期、两位数的时间、两位数的分钟和(可选的)两位数的秒数组成的数字字符串。

    请注意,Oracle Solaris UNIX 实用程序(如 touch)不能将保留期延长到 2038 年 1 月 18 日下午 10:14 之后。这些实用程序使用带符号的 32 位数字表示自 1970 年 1 月 1 日以来的时间(以秒为单位)。因此,如果需要将文件保留到此截止日期之后,请使用默认保留期。

    在该示例中,对于文件 /samqfs1/plans/master.odt,将保持期设置为于 2018 年 3 月 4 日上午 11:59 到期:

    user@solaris:~# touch -a -t201803041159  /samqfs1/plans/master.odt
    
  6. 如果挂载文件系统时使用了 worm_capableworm_lite 挂载选项,则可使用标准遵从性触发器来为文件激活 WORM 保留。使用 Solaris 命令 chmod 4000 directory-name,其中 directory-name 是将存放 WORM 文件的目录的路径和名称。

    标准符合性模式的触发器操作 chmod 4000 将为指定文件设置 setuid在执行时设置用户 ID)属性。为可执行文件设置此属性是不安全的。因此,如果挂载文件系统时使用了 worm_capableworm_lite 挂载选项,将无法为 UNIX 可执行文件设置 WORM 保留。

    在该示例中,为文件 master.odt 激活 WORM 保留。使用 sls -D 检查结果,请注意 retention 现在为 active

    user@solaris:~# chmod 4000 /samqfs1/plans/master.odt
    user@solaris:~# sls -Dd /samqfs1/plans/master.odt
    /samqfs1/plans/master.odt:
      mode: -r-xr-xr-x    links:   1  owner: root        group: root      
      length:       104  admin id:      0  inode:     1051.1
      project: user.root(1)
      access:      Mar  4 2018  modification: Mar  3 13:14
      changed:     Mar  3 13:16  retention-end: Apr  2 14:16 2014
      creation:    Mar  3 13:16  residence:    Mar  3 13:16
      retention:   active        retention-period: 4y, 0d, 0h, 0m
    
  7. 如果挂载文件系统时使用了 worm_emulemul_lite 挂载选项,则可使用仿真模式触发器来为文件激活 WORM 保留。使用 Solaris 命令 chmod 555 directory-name,其中 directory-name 是将存放 WORM 文件的目录的路径和名称。

    命令 chmod 555 删除目录的写权限,这是仿真模式的触发器操作。在该示例中,为文件 master-plan.odt 激活 WORM 保留。使用 sls -D 检查结果,请注意 retention 现在为 active

    user@solaris:~# chmod 555 /samqfs1/plans/master.odt
    user@solaris:~# sls -Dd /samqfs1/plans/master.odt
    /samqfs1/plans/master.odt:
      mode: -r-xr-xr-x    links:   1  owner: root        group: root      
      length:       104  admin id:      0  inode:     1051.1
      project: user.root(1)
      access:      Mar  4 2018  modification: Mar  3 13:14
      changed:     Mar  3 13:16  retention-end: Apr  2 14:16 2014
      creation:    Mar  3 13:16  residence:    Mar  3 13:16
      retention:   active        retention-period: 4y, 0d, 0h, 0m
    
  8. 在此处停止。

查找并列出 WORM 文件

要查找并列出符合指定搜索条件的 WORM 文件,请使用 sfind 命令。执行如下操作:

  1. 登录文件系统服务器。

    user@solaris:~# 
    
  2. 要列出受 WORM 保护并在保留期内的文件,请使用命令 sfind starting-directory -ractive,其中 starting-directory 是需要列表进程开始列举的目录的路径和名称。

    user@solaris:~# sfind /samqfs1/ -ractive 
    /samqfs1/documents/2013/master-plan.odt
    /samqfs1/documents/2013/schedule.ods
    /samma1/records/2013/progress/report01.odt
    /samma1/records/2013/progress/report02.odt
    /samma1/records/2013/progress/report03.odt ...
    user@solaris:~# 
    
  3. 要列出保留期已到期的受 WORM 保护的文件,请使用命令 sfind starting-directory -rover,其中 starting-directory 是需要列表进程开始列举的目录的路径和名称。

    user@solaris:~# sfind /samqfs1/  -rover 
    /samma1/documents/2007/master-plan.odt
    /samma1/documents/2007/schedule.ods
    user@solaris:~# 
    
  4. 要列出保留期将在指定日期和时间到期的受 WORM 保护的文件,请使用命令 sfind starting-directory -rafter expiration-date,其中 starting-directory 是需要列表进程开始列举的目录的路径和名称,expiration-date 是由四位数字的年份、两位数字的月份、两位数字的日期、两位数字的小时、两位数字的分钟以及(可选的)两位数字的秒数组成的数字字符串。

    在该示例中,列出保留期将在 2015 年 1 月 1 日午夜后一分钟到期的所有文件:

    user@solaris:~# sfind /samqfs1/ -rafter 201501010001
    /samqfs1/documents/2013/master-plan.odt
    user@solaris:~# 
    
  5. 要列出必须保留在文件系统中至少指定时间的 WORM 保护的文件,请使用命令 sfind starting-directory -rremain time-remaining,其中:

    • starting-directory 是在目录树中开始搜索的位置。

    • time-remaining 是由非负整数与以下时间单位组成的字符串:y(表示年数)、d(表示天数)、h(表示小时数)、m(表示分钟数)。

    在该示例中,在目录 /samqfs1/ 下查找至少还要保留三年的所有文件:

    user@solaris:~# sfind /samqfs1/ -rremain 3y
    /samqfs1/documents/2013/master-plan.odt
    user@solaris:~# 
    
  6. 要列出必须保留在文件系统中超过指定时间量的 WORM 保护的文件,请使用命令 sfind starting-directory -rlonger time,其中:

    • starting-directory 是在目录树中开始搜索的位置。

    • time-remaining 是由非负整数与以下时间单位组成的字符串:y(表示年数)、d(表示天数)、h(表示小时数)、m(表示分钟数)。

    在该示例中,在目录 /samqfs1/ 下查找将保留三年零九十天以上的所有文件:

    user@solaris:~# sfind /samqfs1/ -rremain 3y90d
    /samqfs1/documents/2013/master-plan.odt
    user@solaris:~# 
    
  7. 要列出必须在文件系统中永久保留的受 WORM 保护的文件,可使用命令 sfind starting-directory -rpermanent

    在该示例中,在目录 /samqfs1/ 下没有要永久保留的文件:

    user@solaris:~# sfind /samqfs1/ -rpermanent
    user@solaris:~# 
    
  8. 在此处停止。

管理 SMB/CIFS 共享中的目录和文件

本节介绍以下主题:

管理 SMB/CIFS 共享中的扩展系统属性

扩展文件属性通过将 Oracle HSM 文件与可使用 Microsoft Windows 文件系统解释的非 UNIX 元数据关联来支持 SMB/CIFS 文件共享。本节首先简要介绍 Oracle HSM 支持的扩展属性。然后,提供以下任务的基本说明:

Oracle HSM 支持的扩展系统属性

扩展系统属性是布尔值(true 或 false),用属性 name 与值 true 或者名称的求反 noname 与值 false 表示。Oracle HSM 提供了以下扩展系统属性来支持 SMB/CIFS 文件共享:

  • appendonly 表示用户只能将数据附加到文件。noappendonly 表示此限制无效。

  • archive 表示文件自上次复制或备份以来已发生更改。noarchive 表示文件自上次复制或备份以来未发生更改。Oracle HSM 当前不使用此属性。

  • hidden 表示默认情况下文件不在文件列表中显示。nohidden 表示默认情况下显示文件。

  • immutable 表示不能更改或删除目录或文件及其内容。noimmutable 表示可以更改或删除目录或文件。

  • nodump 表示不能备份文件。nonodump 表示可以备份文件。Oracle Solaris 不使用此属性。

  • nounlink 表示不能删除或重命名文件或目录及其内容。nonounlink 表示可以删除或重命名文件或目录及其内容。

  • offline 表示已从 Oracle HSM 文件系统释放文件。Microsoft Windows 系统不预览文件。nooffline 表示文件处于联机状态,并且尚未从 Oracle HSM 文件系统释放。

  • readonly 表示不能删除或修改文件。noreadonly 表示可以删除或修改文件。在应用于目录时,将忽略该属性。

  • sparse 表示存储的文件仅包含非零数据,并且零已缩减到在不支持稀疏文件的文件系统中访问此文件或者将此文件复制到此类系统时,文件系统可以恢复零的范围中。nosparse 表示文件不是稀疏文件。

  • system 表示文件对 Microsoft Windows 操作系统很重要,不得更改或删除,并且默认情况下不应在列表中显示。nosystem 表示文件不是系统文件。

显示扩展系统属性

要查看 Oracle HSM 文件的扩展系统属性,请使用 Solaris 命令 ls -/v file,其中 file 是文件的路径和名称。

在该示例中,列出了文件 /samqfs1/documents/master-plan.odt 的扩展属性:

user@solaris:~# ls -/v /samqfs1/documents/master-plan.odt
-rw-r--r--   1 root root  40560 Mar 4 15:52 /samqfs1/documents/master-plan.odt
{archive,nohidden,noreadonly,nosystem,noappendonly,nonodump,noimmutable,nonounlink, nooffline,nosparse}
user@solaris:~# 

修改扩展系统属性

要将文件的系统属性值更改为指定值,请使用 Solaris 命令 chmod S+v{attributes),其中 attributes 是以逗号分隔的 Oracle HSM 支持的扩展系统属性列表。

有关语法和可用选项的全面说明,请参见 chmod 手册页。在该示例中,将归档属性从 noarchive (false) 更改为 archive (true):

root@solaris:~# ls -/v /samqfs1/documents/master-plan.odt
-r-xr-xr-x 1 root root 40561 Mar 4 15:52 /samqfs1/documents/master-plan.odt
{noarchive,nohidden,readonly,nosystem,noappendonly,nonodump,noimmutable, nonounlink,offline,nosparse}
root@solaris:~# chmod S+v{archive} /samqfs1/documents/master-plan.odt
root@solaris:~# ls -/v /samqfs1/documents/master-plan.odt
-r-xr-xr-x 1 root root 40561 Mar 4 15:52 /samqfs1/documents/master-plan.odt
{archive,nohidden,readonly,nosystem,noappendonly,nonodump,noimmutable, nonounlink,offline,nosparse}

访问控制列表

访问控制列表 (Access Control List, ACL) 是定义文件或目录访问权限的表。该表中的每个记录或访问控制条目 (Access Control Entry, ACE) 定义特定用户、组或者一类用户或组的访问权限。默认情况下,使用 Oracle HSM 发行版 6.0 创建的新文件系统使用在网络文件系统 (Network File System, NFS) 版本 4 和 Solaris 11 中引入的访问控制列表 (Access Control List, ACL) 实施。

Solaris ACL 管理、语法和用法的全面介绍不在本文档的范围内。有关完整信息,请参见 Oracle Solaris 11.1 信息库(位于 docs.oracle.com 中)中提供的《Oracle Solaris 11.1 管理:ZFS 文件系统》一书中的“使用 ACL 和属性保护 Oracle Solaris ZFS 文件”一章。另请参见 Solaris lschmod 手册页。