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. 在此处停止。

使用扩展文件属性

与其他 Solaris 和 Linux 文件系统一样,Oracle HSM 文件系统支持扩展文件属性。扩展属性存放由用户或应用程序(而非文件系统本身)与某个文件关联的任意元数据。扩展属性已用来存放文件摘要、作者姓名、源应用程序的名称以及文本文件使用的字符编码。

从 发行版 6.1 开始,Oracle HSM 存储小型扩展属性文件,这些文件在元数据分区内的扩展 inode 中(而不是数据分区中的块)包含 464 个或更少字符。当使用扩展属性且文件系统元数据存储在较快的设备(如闪存)上时,新方法会显著提高文件系统性能。

每当您创建新文件系统或者从恢复点 (samfsdump) 文件恢复旧文件系统时,扩展文件属性会自动启用。有关使用扩展属性的更多信息,请参见 Solaris fsattr(5) 和 Linux xattr(7) 手册页。

适应大型文件

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) 段大小对 /hsm/hsmfs1/data 目录及其子目录中的所有文件分段:

    user@solaris:~# segment -l 1m -r /hsm/hsmfs1/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 /hsm/hsmfs1/data/file1
      

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

      user@solaris:~# request -m li -v VOL081/VOL082/VOL098 /hsm/hsmfs1/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 /hsm/hsmfs1/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 /hsm/hsmfs1/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 元数据的目录。

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

    user@solaris:~# mkdir /hsm/hsmfs1/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 /hsm/hsmfs1/ltfs1
    user@solaris:~# 
    
  4. 在此处停止。

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

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

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

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

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

    user@solaris:~# mkdir /hsm/hsmfs1/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 /hsm/hsmfs1/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

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

本节介绍以下主题:

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

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

Oracle HSM 支持的系统属性

系统属性是布尔(true 或 false)值,它由值为 true 的属性 name 或者值为 false 的名称求反 noname 表示。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 是文件的路径和名称。

在示例中,列出了文件 /hsm/hsmfs1/documents/master-plan.odt 的系统属性:

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

修改系统属性

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

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

root@solaris:~# ls -/v /hsm/hsmfs1/documents/master-plan.odt
-r-xr-xr-x 1 root root 40561 Mar 4 15:52 /hsm/hsmfs1/documents/master-plan.odt
{noarchive,nohidden,readonly,nosystem,noappendonly,nonodump,noimmutable, nonounlink,offline,nosparse}
root@solaris:~# chmod S+v{archive} /hsm/hsmfs1/documents/master-plan.odt
root@solaris:~# ls -/v /hsm/hsmfs1/documents/master-plan.odt
-r-xr-xr-x 1 root root 40561 Mar 4 15:52 /hsm/hsmfs1/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.1 创建的新文件系统使用在网络文件系统 (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 手册页。