Solaris 10 6/06 发行说明

文件系统

下列文件系统错误适用于 Solaris 10 发行版。

ZFS 和 UNIX/POSIX 的兼容问题

ZFS 被设计为一个与 POSIX 兼容的文件系统,并且在大多数情况下,ZFS 与 POSIX 兼容。但是,存在两种 ZFS 不能满足 POSIX 兼容测试的边缘情况:

  1. 更新 ZFS 文件系统容量统计信息。

  2. 修改达到容量极限的文件系统的现有数据。

相关 CR:

向 Solaris 10 6/06 系统中添加 ZFS 修补程序将导致产生伪警告消息 (6429860)

使用 patchadd 命令向 Solaris 10 6/06 系统中添加 ZFS 修补程序将产生伪警告消息,因为这是首次向系统中添加 ZFS 软件包。将显示以下错误消息:


The following requested patches have packages not installed on the system:
	Package SUNWzfskr from directory SUNWzfskr in patch 122641-03 
	is not installed on the system.

	Changes for package SUNWzfskr will not be applied to the system.

解决方法:

忽略这个由 patchadd 命令产生的伪警告消息。

ufsrestore 不使用 acl_set() 设置 ACL (6421216)

如果将带有 POSIX ACL 的 UFS 归档文件恢复至 ZFS 文件系统中,ufsrestore 实用程序将发生错误。文件被正确恢复,但 ACL 信息被忽略。

执行 ufsrestore 操作期间,将生成以下错误消息:


setacl failed: Invalid argument

解决方法:

使用以下任一识别 ACL 的命令将带有 ACL 的 UFS 文件传输到 ZFS 文件系统:

POSIX ACL 将转换为等效的 NFSv4 样式 ACL。

fdisk -E 可能会在不发出警告的情况下清理 ZFS 所使用的磁盘 (6412771)

如果使用 fdisk -E 命令修改 ZFS 存储池使用的磁盘,该存储池将不可用,并可能导致 I/O 故障或系统出现紧急情况。

解决方法:

请勿使用 fdisk 命令修改 ZFS 存储池使用的磁盘。如果要访问 ZFS 存储池使用的磁盘,请使用 format 实用程序。通常情况下,不应修改文件系统正使用的磁盘。

x86: 在 Sun Ultra 20 或 Sun Fire X2100 上使用 ZFS 后,重新引导时,BIOS 会挂起 (6363449)

如果连接到 Sun UltraTM 20 工作站或 Sun FireTM X2100 服务器的磁盘包含 ZFS 存储池,则重新引导时,这些系统可能会挂起。

可能出现此问题的 BIOS 版本有:

解决方法:

  1. 在重新引导系统之前断开 ZFS 使用的磁盘,直到在这些系统上安装了支持 ZFS 的最低 BIOS 版本。

  2. 从发行版 1.4 补充 CD 安装支持 ZFS 的最低 BIOS 版本。

    支持的 BIOS 版本包括:

    • 对于 Sun Ultra 20 工作站,BIOS 的版本为 2.2.3。

    • 对于 Sun Fire X2100 服务器,BIOS 的版本为 1.1.1。

    还可以从以下位置下载发行版 1.4 的补充 CD 映像:

ZFS 及第三方备份产品的问题

以下是使用 Veritas NetBackup 和 Sun StorEdgeTM Enterprise Backup Software(EMC 和 Legato NetWorker®)产品时存在的问题。

Veritas NetBackup 不能备份和保留带有 ZFS/NFSv4 ACL 的文件 (6352899)

Veritas NetBackup 产品可用于备份 ZFS 文件,且此配置是受支持的。但是,该产品目前不支持备份或恢复 ZFS 文件中的 NFSv4 样式 ACL 信息。传统的权限位和其他文件属性可以被正确地备份和恢复。

如果用户试图备份或恢复 ZFS 文件,则 ZFS 文件中的 NFSv4 样式 ACL 信息将被删除。不会显示任何指示 ZFS 文件中的 ACL 信息被删除的错误消息。

对 ZFS/NFSv4 ACL 的支持功能正处于开发过程中,预计在下一 Veritas NetBackup 发行版中提供。

解决方法 1:

从 Solaris 10 06/06 发行版开始,tarcpio 命令将可以正确地处理带有 NFSv4 样式 ACL 的 ZFS 文件。

使用带有 -p 选项的 tar 命令或带有 -P 选项的 cpio 命令将 ZFS 文件写入一个文件。然后,使用 Veritas NetBackup 备份 tarcpio 归档文件。

解决方法 2:

除使用 Veritas NetBackup 之外,还可以使用 ZFS send receive 命令备份 ZFS 文件。这些命令会正确地处理 ZFS 文件的所有属性。

Legato Networker 需要支持 ZFS/NFSv4 ACL (6349974)

目前,Sun StorEdge Enterprise Backup Software 产品不能用于备份或恢复 ZFS 文件。

如果用户尝试备份或恢复 ZFS 文件,将显示以下错误消息:


save: Unable to read ACL information for '/path': Operation not applicable

预计在即将发布的 Sun StorEdge EBS 7.3 Service Update 1 发行版中提供对 ZFS/NFSv4 ACL 的支持。

解决方法:

  1. 使用 NFSv4 将 ZFS 文件系统挂载到另一系统。

  2. 从挂载 NFSv4 的目录备份或恢复 ZFS 文件

在每个向导开始时,ZFS GUI 应检查 /usr/lib/embedded_su (6326334)

如果在运行 Solaris 10 6/06 发行版之前版本的系统(该系统中没有 embedded_su 修补程序)中添加 Solaris 10 6/06 发行版中的 SUNWzfsg 软件包,则 ZFS Administration 应用程序向导无法完全正常工作。

如果尝试在没有 embedded_su 修补程序的系统上运行 ZFS Administration 应用程序, 您将只能浏览 ZFS 配置。将显示以下错误消息:


/usr/lib/embedded_su: not found

解决方法:

在运行 Solaris 10 6/06 发行版之前版本的系统中添加 embedded_su 修补程序 (119574-02)。

du 报告错误的 RAID-Z 大小信息 (6288488)

对于 RAID-Z 虚拟设备,执行以下命令将报告夸大的“已用空间”和“可用空间”大小信息:

所报告的空间信息包括用于存储奇偶校验数据的空间。

发生紧急情况时无法同步文件系统 (6250422)

对于一个使用 Solaris iSCSI 软件启动器连接的目标设备,如果主机的文件系统 I/O 出现了紧急情况,该 I/O 可能无法刷新或同步该目标设备。这种无法刷新或同步的情况可能导致文件系统损坏。不会显示任何错误消息。

解决方法:

使用日志文件系统(如 UFS)。从 Solaris 10 开始,缺省情况下启用 UFS 日志记录功能。有关 UFS 的更多信息,请参见《System Administration Guide: Devices and File Systems》中的“What’s New in File Systems in the Solaris 10 Release?”

需要解决方案以使中断的 scrubresilver 不必重新启动 (2136811)

如果在执行数据 scrubresilver 操作期间创建 ZFS 快照,则 scrubresilver 操作将从头重新启动。如果频创建快照,scrubresilver 操作可能永远无法完成。

解决方法:

请勿在执行 scrubresilver 操作期间创建快照。

从某些 Solaris Express 或 Solaris 10 发行版升级需要重新挂载文件系统

将 NFSv4 服务器从 6/05 升级到 Solaris Express 7/05 或更高版本(包括所有 Solaris 10 更新)之后,程序可能会遇到 EACCES 错误。另外,各目录可能错误地显示为空。

要避免这些错误,请卸载,然后重新挂载客户机文件系统。在卸载失败的情况下,可能需要通过使用 umount -f 强制卸载文件系统。另外,也可以重新引导客户机。

NFSv4 访问控制列表功能可能无法正常运行

如果使用不同的 Solaris 10 早期版本在网络中安装客户机和服务器,则 NFSv4 访问控制列表 (ACL) 功能可能无法正常运行。使用这些功能的受影响的 ACL 功能和命令行实用程序如下所示:

有关这些功能和实用程序的更多信息,请参见它们各自的手册页。

例如,在包含下列配置的网络中可能观察到错误:

下表说明对于不同的 Solaris 10 发行版,客户机-服务器配置中的 ACL 功能的结果。

操作 

客户机 S10 OS 

服务器 S10 OS 

结果 

获取 ACL 

S10 Beta 

S10 OS 

创建 ACL * 

获取 ACL 

S10 OS 

S10 Beta 

正常运行 

设置 ACL 

S10 Beta 

S10 OS 

正常运行 

设置 ACL 

S10 OS 

S10 Beta 

错误:EOPNOTSUP 

解决方法:要使 NFSv4 ACL 功能正常运行,请在服务器和客户机上完全安装 Solaris 10 OS。

Solaris NFSv4 客户机与 NFSv4 服务器之间的访问问题

在当前 Solaris 10 版本中,NFSv4 访问控制列表 (ACL) 的 Solaris 实现现在与 RFC 3530 规范兼容。不过,在使用 Solaris 10 Beta 2 或 Beta 1 版本的 NFSv4 客户机上发生错误。这些客户机不能在使用当前 Solaris 10 发行版的 NFSv4 服务器中创建文件。将显示以下错误消息:


NFS getacl failed for server_name: error 9 (RPC: Program/version mismatch)

解决方法:无。

使用 mkfs 命令在非常大的磁盘上创建文件系统可能会失败 (6352813)

mkfs 命令可能无法在具有某一特定磁盘几何参数 (disk geometry) 且大小超过 8 GB 的磁盘上创建文件系统。由此得到的柱面组大小对于 1 KB 碎片来说太大。柱面组的大小过大意味着在一个块中无法容纳多余的元数据。

将显示以下错误消息:


With 15625 sectors per cylinder, minimum cylinders
per group is 16. This requires the fragment size to be
changed from 1024 to 4096.
Please re-run mkfs with corrected parameters.

解决方法:改用 newfs 命令。或者,如果使用 mkfs 命令,请指定较大的碎片大小(如 4096)。

在小片上创建文件系统可能会失败 (6346510)

在以下情况下,使用 newfs 命令创建 UFS 文件系统可能会失败:

导致该错误的原因是文件系统需要大量的元数据。显示下列警告消息:


Warning: inode blocks/cyl group (295) >= data blocks (294) in last
     cylinder group. This implies 4712 sector(s) cannot be allocated.
/dev/rdsk/c0t0d0s6:     0 sectors in 0 cylinders of 48 tracks, 128 sectors
         0.0MB in 0 cyl groups (13 c/g, 39.00MB/g, 18624 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
#

解决方法:以超级用户身份执行以下解决方法之一:

文件系统已满的 NFSv4 客户机中未检测出写入错误 (6346204)

文件系统接近其容量极限的 NFSv4 客户机将无法正确处理从服务器返回的错误代码。客户机从服务器收到正确的 (NFS4ERR_NOSPC) 错误代码。但是,客户机无法将 (ENOSPC) 错误代码传送到应用程序。应用程序没有通过常规系统函数(如 write()close()fsync())收到错误通知。因此,应用程序连续尝试写入或修改数据可能会导致数据丢失或数据破坏。

以下错误消息记录在 /var/adm/messages 中:


nfs: [ID 174370 kern.notice] NFS write error on host hostname







:
No space left on device.
nfs: [ID 942943 kern.notice] File: userid=uid, groupid=
gid
nfs: [ID 983240 kern.notice] User: userid=uid, groupid=
gid
nfs: [ID 702911 kern.notice] (file handle: 86007000 2000000 a000000 6000000
32362e48 a000000 2000000 5c8fa257)

解决方法:请勿在文件系统接近其容量极限的客户机系统上执行操作。

在大于 1 TB 的设备上系统故障转储失败 (6214480)

系统在大小大于或等于 1 TB 的分区上不能生成转储。如果系统中存在此类设备,则在系统引导后,在发生系统紧急情况后可能发生下列问题:

解决方法:将系统的转储设备大小配置为小于 1 TB。

使用 smosservice 命令添加 OS 服务导致出现磁盘空间不足的消息 (5073840)

如果使用 smosservice 命令将 OS 服务添加到 UFS 文件系统,会显示没有足够可用磁盘空间的消息。此错误特定于贴有 EFI 标签的磁盘上的 UFS 文件系统。

解决方法:完成以下解决方法。

  1. 应用 SMI VTOC 磁盘标签。

  2. 重新创建文件系统。

  3. 重新运行 smosservice 命令。