如何将镜像磁盘添加到我的 OpenSolaris?

Jon*_*nas 3 opensolaris hard-drive zfs mirroring

我有一台有两个硬盘的机器。我已经在其中一个上安装了 OpenSolaris,现在我想在我的 zpool rpool 中添加另一个作为镜像驱动器。我想我必须先格式化第二个磁盘,然后将其添加到池中。我怎样才能做到这一点?

我曾试图按照OpenSolaris的ZFS的rpool镜,但是当我来到prtvtoc /dev/rdsk/c7t0d0s0 | fmthard -s - /dev/rdsk/c7t1d0s0然后我得到这个消息:fmthard: Cannot stat device /dev/rdsk/c7t1d0s0prtvtoc: /dev/rdsk/c7t0d0s0: No such file or directory

这是一些命令和我的输出(我已经删除了我认为不需要的部分输出:

pfexec format

AVAILABLE DISK SELECTIONS:
    0. c7d0
    1. c7d1
Run Code Online (Sandbox Code Playgroud)

zpool status

  pool: rpool
 state: ONLINE
 scrub: none requested
config: 
        NAME     STATE   READ   WRITE  CKSUM
        rpool    ONLINE     0       0      0
          c7d0s0 ONLINE     0       0      0   
Run Code Online (Sandbox Code Playgroud)

编辑:运行devfsadm -v以下命令后工作正常:

pfexec fdisk /dev/rdsk/c7d1s2
prtvtoc /dev/rdsk/c7d0s2 | fmthard -s - /dev/rdsk/c7d1s2
zpool attach -f rpool c7d0s0 c7d1s0
Run Code Online (Sandbox Code Playgroud)

zpool status

  pool: rpool
 state: ONLINE
status: One or more devices is currently being resilvered. The pool will
        continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
 scrub: resilver completed after 0h10m with 0 errors
config: 
        NAME     STATE   READ   WRITE  CKSUM
        rpool    ONLINE     0       0      0
          c7d0s0 ONLINE     0       0      0  
          c7d1s0 ONLINE     0       0      0 3,77G resilvered

errors: No known data errors
Run Code Online (Sandbox Code Playgroud)

但是我安装grub失败了

pfexec installgrub /boot/grub/stage1 /boot/grub/stage2 c7d1s0
cannot open/stat device c7d1s0
Run Code Online (Sandbox Code Playgroud)

knw*_*iss 5

  • 使用format获得可用硬碟的列表。
  • rpools 是特殊的。他们的磁盘不能有 EFI 标签。您可以使用 删除 EFI 标签format/fdisk
  • 在将驱动器添加到 zpool 之前,您不必对其进行格式化。但是在 rpools 的情况下,您需要将分区布局从第一个磁盘复制到第二个磁盘。您提到的命令是正确的,但您需要使用 s2(整个磁盘)而不是 s0 来调用它们。
  • 使用zpool attach添加一个新的镜像设备对现有设备。
  • 使用 验证新镜像zpool status rpool
  • 建议将整个磁盘添加到数据zpool(而不仅仅是单个切片/分区)。
  • 不要忘记安装grub在第二张磁盘上,以使其可启动。(也在 BIOS 中启用它作为引导驱动器。并测试它!)

所以最后这里是命令序列:

fdisk /dev/rdsk/c7d1s2  (confirm that you want a 100% Solaris partition)
prtvtoc /dev/rdsk/c7d0s2 | fmthard -s - /dev/rdsk/c7d1s2
zpool attach [-f] rpool c7d0s0 c7d1s0 (maybe use "-f" flag)
zpool status
installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c7d1s0
Run Code Online (Sandbox Code Playgroud)

如果您仍然无法让它工作,请向我们展示 的输出zpool status和驱动器列表的输出format