Solaris 10 发行版中存在下列文件系统错误。
如果最初为非全局区域配置了使用 `add fs 子命令挂载的 ZFS 文件系统,并指定了 mountpoint=legacy,则后续区域安装会失败。将显示以下错误消息:
ERROR: No such file or directory: cannot mount </zones/path/root/usr/local> in non-global zone to install: the source block device or directory </path/local> cannot be accessed |
解决方法:安装了非全局区域后,添加对 ZFS 文件系统的访问权限。
ZFS 旨在成为与 POSIX 兼容的文件系统,并且在大多数情况下,ZFS 与 POSIX 兼容。但是,存在两种 ZFS 不能达到 POSIX 兼容测试标准的边界情况:
更新 ZFS 文件系统容量统计信息。
修改达到容量极限的文件系统的现有数据。
相关 CR:
6362314
6362156
6361650
6343113
6343039
如果使用 fdisk -E 命令修改 ZFS 存储池使用的磁盘,该存储池将不可用,并可能导致 I/O 故障或系统出现紧急情况。
解决方法:
请勿使用 fdisk 命令修改 ZFS 存储池使用的磁盘。如果要访问 ZFS 存储池使用的磁盘,请使用 format 实用程序。通常情况下,不应修改文件系统正在使用的磁盘。
以下是 Veritas NetBackup 和 Brightstor ARCserve Backup 产品的问题。
Veritas NetBackup 产品可用于备份 ZFS 文件,且此配置是受支持的。但是,该产品目前不支持备份或恢复 ZFS 文件中的 NFSv4 样式 ACL 信息。传统的权限位和其他文件属性可以被正确地备份和恢复。
如果用户试图备份或恢复 ZFS 文件,则 ZFS 文件中的 NFSv4 样式 ACL 信息将被删除。不会显示任何指示 ZFS 文件中的 ACL 信息被删除的错误消息。
对 ZFS/NFSv4 ACL 的支持功能正处于开发过程中,预计在下一 Veritas NetBackup 发行版中提供。
解决方法 1:
从 Solaris 10 8/07 发行版开始,tar 和 cpio 命令都可以正确处理具有 NFSv4 样式 ACL 的 ZFS 文件。
使用带有 -p 选项的 tar 命令或带有 -P 选项的 cpio 命令将 ZFS 文件写入一个文件。然后,使用 Veritas NetBackup 备份 tar 或 cpio 归档文件。
解决方法 2:
除使用 Veritas NetBackup 之外,还可以使用 ZFS send 和 receive 命令备份 ZFS 文件。这些命令会正确地处理 ZFS 文件的所有属性。
BrightStor ARCserve Backup (BAB) Client Agent for UNIX (Solaris) 可用于备份和恢复 ZFS 文件。
但在备份过程中不保留 ZFS NFSv4 样式 ACL。将保留传统 UNIX 文件权限和属性。
解决方法:如果要保留具有 NFSv4 样式 ACL 的 ZFS 文件,请使用带有 -p 选项的 tar 命令或带有 -P 选项的 cpio 命令,将 ZFS 文件写入一个文件。然后,使用 BAB 备份 tar 或 cpio 归档文件。
如果在运行 Solaris 10 6/06 发行版之前版本的系统(该系统中没有 embedded_su 修补程序)中添加 Solaris 10 8/07 发行版中的 SUNWzfsg 软件包,则 ZFS Administration 应用程序向导无法完全正常工作。
如果尝试在没有 embedded_su 修补程序的系统上运行 ZFS Administration 应用程序, 您将只能浏览 ZFS 配置。将显示以下错误消息:
/usr/lib/embedded_su: not found |
解决方法:
在运行 Solaris 10 6/06 发行版之前版本的系统中添加 embedded_su 修补程序 (119574-02)。
对于一个使用 Solaris iSCSI 软件启动器连接的目标设备,如果主机的文件系统 I/O 出现了紧急情况,该 I/O 可能无法刷新或同步该目标设备。这种无法刷新或同步的情况可能导致文件系统损坏。不会显示任何错误消息。
解决方法:
使用日志文件系统(如 UFS)。从 Solaris 10 开始,缺省情况下启用 UFS 日志记录功能。有关 UFS 的更多信息,请参见《系统管理指南:设备和文件系统》中的“Solaris 10 发行版中文件系统方面的新增功能”。
将 NFSv4 服务器从 6/05 升级到 Solaris Express 7/05 或更高版本(包括所有 Solaris 10 更新)之后,程序可能会遇到 EACCES 错误。另外,各目录可能错误地显示为空。
要避免这些错误,请卸载,然后重新挂载客户机文件系统。在卸载失败的情况下,可能需要通过使用 umount -f 强制卸载文件系统。另外,也可以重新引导客户机。
如果使用不同的 Solaris 10 早期版本在网络中安装客户机和服务器,则 NFSv4 访问控制列表 (ACL) 功能可能无法正常运行。使用这些功能的受影响的 ACL 功能和命令行实用程序如下所示:
acl()
facl()
getfacl
setfacl
有关这些功能和实用程序的更多信息,请参见它们各自的手册页。
例如,在包含下列配置的网络中可能观察到错误:
运行 Solaris 10 Beta 软件的客户机
运行 Solaris 10 软件的服务器
下表说明对于不同的 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 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 命令可能无法在具有某一特定磁盘几何参数 (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)。
在以下情况下,使用 newfs 命令创建 UFS 文件系统可能会失败:
片的大小过小,大约小于 4 MB。
磁盘的大小超过 8 GB。
导致该错误的原因是文件系统需要大量的元数据。显示下列警告消息:
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: # |
解决方法:以超级用户身份执行以下解决方法之一:
解决方法 1:使用 newfs 命令时指定磁轨数量。执行以下步骤。
使用 format 命令确定要指定的磁轨数量。例如:
# format Searching for disks...done AVAILABLE DISK SELECTIONS: 0. c0t0d0 <SUN18G cyl 7506 alt 2 hd 19 sec 248> /pci@1f,4000/scsi@3/sd@0,0 Specify disk (enter its number): |
在该示例中,磁轨数量为 19。
为使用 newfs 命令创建的文件系统指定该数量。例如:
# newfs -v -t 19 /dev/dsk/c0t0d0s6 newfs: construct a new file system /dev/rdsk/c0t0d0s6: (y/n)? y mkfs -F ufs /dev/rdsk/c0t0d0s6 4712 -1 19 8192 1024 16 10 167 2048 t 0 -1 8 128 n mkfs: bad value for nsect: -1 must be between 1 and 32768 mkfs: nsect reset to default 32 Warning: 152 sector(s) in last cylinder unallocated /dev/rdsk/c0t0d0s6: 4712 sectors in 8 cylinders of 19 tracks, 32 sectors 2.3MB in 1 cyl groups (16 c/g, 4.75MB/g, 2304 i/g) super-block backups (for fsck -F ufs -o b=#) at: 32, # |
解决方法 2:在 newfs 命令中指定每个 inode 的字节数 (number of bytes per inode, nbpi) 以减小文件系统中的 inode 密度。例如:
# newfs -i 4096 /dev/dsk/c0t0d0s6 newfs: construct a new file system /dev/rdsk/c0t0d0s6: (y/n)? y Warning: 1432 sector(s) in last cylinder unallocated /dev/rdsk/c0t0d0s6: 4712 sectors in 1 cylinders of 48 tracks, 128 sectors 2.3MB in 1 cyl groups (16 c/g, 48.00MB/g, 11648 i/g) super-block backups (for fsck -F ufs -o b=#) at: 32, # |
系统在大小大于或等于 1 TB 的分区上不能生成转储。如果系统中存在此类设备,则在系统引导后,在发生系统紧急情况后可能发生下列问题:
系统不保存转储。
将显示以下消息:
0% done: 0 pages dumped, compression ratio 0.00, dump failed: error 6 |
解决方法:将系统的转储设备大小配置为小于 1 TB。
如果使用 smosservice 命令将 OS 服务添加到 UFS 文件系统,会显示没有足够可用磁盘空间的消息。此错误特定于贴有 EFI 标签的磁盘上的 UFS 文件系统。
解决方法:完成以下解决方法。
应用 SMI VTOC 磁盘标签。
重新创建文件系统。
重新运行 smosservice 命令。