15.5. 访问 USB 海量存储设备

15.5.1. 设备节点和链接 (Oracle Solaris)
15.5.2. 设备节点和链接 (Oracle Linux)
15.5.3. 挂载点
15.5.4. 设备所有权和漫游办公
15.5.5. 海量存储设备和闲置会话
15.5.6. 常见磁盘操作的命令 (Oracle Solaris)
15.5.7. 常见磁盘操作的命令 (Oracle Linux)
15.5.8. 如何从客户端卸载海量存储设备
15.5.9. 海量存储设备故障排除

此部分提供有关如何管理连接到 Sun Ray Client 的 USB 海量存储设备的信息。

15.5.1. 设备节点和链接 (Oracle Solaris)

海量存储设备有两种类型的设备节点:块设备节点和原始设备节点,客户端的 dev 目录中创建了这两种节点。在客户端的 dev/dsk 目录中创建的是指向块设备的链接,在 dev/rdsk 目录中创建的是指向原始设备的链接。

设备链接有一个表示分片号的后缀。分片 s2 就是所谓的备份分片,表示整个磁盘。其他分片则根据该磁盘的文件系统进行编号。对于 UFS 磁盘,分片号源自磁盘的标签。对于 FAT 磁盘,分片(在这种情形中为分区)则是从 s0 进行编号的。在进行诸如格式化或者弹出之类的磁盘操作时,应该定向到分片 s2。对于诸如 mountfstyp 的分区操作,则应该定向到单独的相关分片上。有关示例,请参见第 15.5.5 节 “海量存储设备和闲置会话”

15.5.2. 设备节点和链接 (Oracle Linux)

海量存储设备节点是块特殊节点。它们创建于 dev/dsk 目录中。请注意,对于海量存储设备,设备节点不是在设备目录中创建的,并且不创建设备链接。

设备节点使用分区标识符后缀命名。表示整个磁盘的设备节点不具有这样的后缀。例如:

  • disk3p2 表示磁盘 3 的分区 2。

  • disk3 表示整个磁盘。

在进行诸如弹出之类的磁盘操作时,应该定向到整个磁盘。在进行诸如挂载之类的分区操作时,应该定向到各个分区。有关示例,请参见表 15.2 “常见磁盘操作的命令 (Oracle Linux)”

15.5.3. 挂载点

将海量存储设备插入客户端时,如果它具有操作系统可以识别的文件系统,则会自动挂载到用户的挂载父目录下的某个目录中。挂载父目录位于 $DTDEVROOT/mnt/ 中。用户还可以通过使用 utdiskadm 命令的 -l 选项来确定挂载点的位置。

% utdiskadm -l

15.5.4. 设备所有权和漫游办公

当用户会话从客户端断开时,用户就失去了访问海量存储设备的权限,设备的所有暂挂 I/O 都会停止。这种情况可能会造成设备上的数据受损。在执行漫游办公或从客户端拔下磁盘之前,用户应该使用 utdiskadm -r 安全地卸载所有文件系统。用户还应结束对挂载点文件和目录的所有引用,以确保该设备处于空闲状态。

15.5.5. 海量存储设备和闲置会话

如果您使用的是远程漫游办公验证 (Remote Hotdesk Authentication, RHA)、非智能卡移动性 (Non-Smart Card Mobility, NSCM) 或基于智能卡的验证,则在 Sun Ray Client 上使用海量存储设备时,长时间的 I/O 操作可能会失败。

如果由于长时间没有使用键盘和鼠标而激活屏幕锁定,导致这些类型的会话变成空闲会话,则会话会被分离。用户无法继续访问存储设备,这会导致进行中的 I/O 停止,且数据可能受损。

为避免出现这种情况,可以采用以下方法:

  • 保持键盘或鼠标处于活动状态

  • 充分延长屏幕锁定空闲时间,使 I/O 操作足以顺利完成

  • 禁用屏幕锁定程序

  • 禁用 NSCM 或 RHA 策略

  • 找到更安全地执行 I/O 操作的替代方法,例如,将设备直接插入到加锁的服务器机房中的 Sun Ray 服务器

注意

其中有些方法可能在安全性和方便性方面各有利弊,应该慎重权衡这些因素与超时问题来确定采取哪一种方法才最适合您的站点。

15.5.6. 常见磁盘操作的命令 (Oracle Solaris)

表 15.1 “常见磁盘操作的命令 (Oracle Solaris)”是常用磁盘操作和用于执行这些操作的命令汇总。有关各个命令的更多信息,请参阅 Oracle Solaris 文档和相关手册页。

表 15.1. 常见磁盘操作的命令 (Oracle Solaris)

操作

命令

设备名称参数示例 (SPARC)

设备名称参数示例 (x86)

格式化

rmformat

整个磁盘的路径 $UTDEVROOT/dev/rdsk/disk3s2

整个磁盘的路径 $UTDEVROOT/dev/rdsk/disk3p0

创建文件系统

mkfs

分区的路径 $UTDEVROOT/dev/rdsk/disk3s0

分区的路径 $UTDEVROOT/dev/rdsk/disk3p1

创建 UFS 文件系统

newfs

分片的路径 $UTDEVROOT/dev/rdsk/disk3s0

分片的路径 $UTDEVROOT/dev/rdsk/disk3s0

挂载

utdiskadm -m

分区名称 disk3s0

分区名称 disk3p1

卸载

utdiskadm -u

挂载点 $DTDEVROOT/mnt/label1

挂载点 $DTDEVROOT/mnt/label1

准备拔下

utdiskadm -r

设备别名 disk3

设备别名 disk3

弹出介质

utdiskadm -e

设备别名 disk3

设备别名 disk3

检查介质

utdiskadm -c

设备别名 disk3

设备别名 disk3

创建 fdisk

fdisk

整个磁盘的路径 $UTDEVROOT/dev/rdsk/disk3s2

整个磁盘的路径 $UTDEVROOT/dev/rdsk/disk3p0

修复文件系统

fsck

原始分片的路径 $UTDEVROOT/dev/rdsk/disk3s0

原始分区的路径 $UTDEVROOT/dev/rdsk/disk3p1

显示文件系统容量

df -k

挂载点 $DTDEVROOT/mnt/label1

挂载点 $DTDEVROOT/mnt/label1

显示分片容量

prtvtoc

备份分片的路径 $UTDEVROOT/dev/rdsk/disk3s2

备份分片的路径 $UTDEVROOT/dev/rdsk/disk3s2

列出设备

utdiskadm -l


15.5.7. 常见磁盘操作的命令 (Oracle Linux)

表 15.2 “常见磁盘操作的命令 (Oracle Linux)”是常用磁盘操作和用于执行这些操作的命令汇总。

表 15.2. 常见磁盘操作的命令 (Oracle Linux)

操作

命令

设备名称参数示例

创建文件系统

mkfs

分区的路径 $UTDEVROOT/dev/dsk/disk3p1

挂载

utdiskadm -m

分区名称 disk3p1

卸载

utdiskadm -u

挂载点 $DTDEVROOT/mnt/label1

准备拔下

utdiskadm -r

设备别名 disk3

弹出介质

utdiskadm -e

设备别名 disk3

检查介质

utdiskadm -c

设备别名 disk3

创建 fdisk

fdisk

整个磁盘的路径 $UTDEVROOT/dev/dsk/disk3

修复文件系统

fsck

分区的路径 $UTDEVROOT/dev/dsk/disk3p1

显示文件系统容量

df -k

挂载点 $DTDEVROOT/mnt/label1

列出设备

utdiskadm -l


15.5.8. 如何从客户端卸载海量存储设备

注意

Oracle Linux 不会立即将数据写入磁盘。如果在拔下海量存储设备之前未能运行 utdiskadm -r,则会导致数据丢失以及挂载点过时。在拔下任何海量存储设备之前一定要运行 utdiskadm -r

% /opt/SUNWut/bin/utdiskadm -r device_name

15.5.9. 海量存储设备故障排除

此部分提供海量存储的故障排除信息。

15.5.9.1. 问题:设备节点未创建。

要了解设备节点未创建的原因,请检查日志文件 /var/opt/SUNWut/log/utstoraged.log。有些海量存储设备类型不受支持。

15.5.9.2. 问题:设备未自动挂载。

有关错误消息,请检查日志文件 /var/opt/SUNWut/log/utmountd.log

当 Sun Ray 操作系统无法识别存储设备的文件系统时,会出现这种情况。

15.5.9.3. 问题:设备未自动卸载。

在已拔下存储设备或用户的会话已断开时,如果用户仍然有对挂载点的打开引用,会出现这种情况。挂载点会变成过时挂载点并持续存在,直到系统重新引导或者管理员将其删除。

使用下面的过程查找和删除过时挂载点。

  1. 搜索过时挂载点:

    # utdiskadm -s
  2. 对于每个过时挂载点,关闭对挂载点的所有引用。

  3. 对于每个过时挂载点,终止引用挂载点的所有进程。

  4. 删除挂载点。

    # umount stale_mount_path