我有两个基于通用设置的问题。一个快速的免责声明:我正在使用 freenas 并且没有完全消化 ZFS 术语和 freenas butchers ZFS 术语在他们的 UI 中。我会接受使用终端或 Freenas UI 的答案(两者都有加分;))。
我有一个包含 1 个镜像 vdev 的卷(zpool?),由两个 3TB 磁盘组成。
物理移除其中一个磁盘然后放回原位的正确程序是什么?
可能是不明智的,我在没有执行任何命令的情况下删除了其中一个磁盘。我立即收到警报,音量已降级(预期)。在我将驱动器放回原位后,此状态仍然存在(它似乎没有将驱动器识别为已移除的驱动器 - 或者如果它确实是我不知道如何重新连接它)。我重新启动了服务器,它现在显示卷是健康的,但在卷管理器->卷统计下,一个驱动器的校验和列中有一个 182,但另一个驱动器没有(虽然我不知道那是否事先存在)。
- 我应该如何处理这种情况?
- 这会导致数据丢失还是 ZFS 应该从这种情况中恢复正常?
- 如果它会导致数据丢失/损坏/whathaveyou,我该如何检查并从中恢复?
最后,对于非教科书的简洁 ZFS 入门链接的额外奖励积分,并且不会深入研究 ZF 中无用的晦涩部分。:P
免责声明:我没有亲自使用过 FreeNAS,所以一些答案可能不是规范的方法 - 请事先查阅手册。也就是说,它们是 Oracle 推荐的方式,所以它背后应该有一些真相。
zpool replace poolname olddevice newdevice
.zpool detach poolname olddevice
(用于zpool attach poolname olddevice newdevice
重新附加)。zpool offline poolname olddevice
. 如果对较大的阵列进行故障排除,这很有用,我在这里只是为了完整性而编写它。zpool export poolname
以下操作zpool import poolname
来实现相同的目的。在导入池之前,您可能必须在插入后配置磁盘(这是标准 illumos 系统上的情况)。如果您不想关闭池,也可以移除故障设备,然后更换它。这样您就没有停机时间,而是重新同步。我个人总是选择第一个解决方案,除了大型阵列,因为它更安全。zpool clear poolname
删除错误消息。如果校验和错误出现在两个驱动器上,则取决于具体情况。通常 ZFS 会告诉您是否以及哪些文件受到影响。加分回答:
man zpool
,man zfs
以及man /usr/bin/chmod
用于 zpool、文件系统和 ACL 配置。它们也可以从 Oracle 在线获得,它们非常非常好。事实上,您几乎不需要其他任何东西,因为它们也有大量真实世界的示例(比 GNU 手册页好得多)。