使用三个磁盘安装带有 ZFS 和 raid1 的 Proxmox VE 3.4 后,我得到以下池:
root@pve:~# zpool status
pool: rpool
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sda3 ONLINE 0 0 0
sdb3 ONLINE 0 0 0
sdc3 ONLINE 0 0 0
Run Code Online (Sandbox Code Playgroud)
如果我正确理解设置,所有数据都将被镜像到三个磁盘上。尽管这将支持 2 个驱动器的模拟故障,但我认为将所有内容写入两个磁盘会降低性能。我觉得两个就够了。
如何将 sdc3 转换为热备份。我希望它自动激活并在驱动器出现故障时更换损坏的磁盘。
注意:在这种情况下使用热备份可能不是最好的主意。请参阅下文以了解其背后的原因,在所问问题的答案下方。
在减少池冗余之前,我强烈建议先运行一次完整的清理,以确保所有设备都在运行,并且没有潜在的数据错误:
# zpool scrub rpool
... wait for it to finish, check zpool status for the status of the scrub ...
Run Code Online (Sandbox Code Playgroud)
ZFS 镜像允许添加和删除镜像边(称为附加和分离),因此释放 sdc3 很容易:
# zpool detach rpool sdc3
Run Code Online (Sandbox Code Playgroud)
然后,您可以将其添加为备用。您可能需要先标记清除它(否则 ZFS 可能会抱怨它是现有池的一部分):
# zpool labelclear /dev/sdc3
Run Code Online (Sandbox Code Playgroud)
请注意,在 labelclear 之后,ZFS 将不知道如何读取设备,因此这会有效地从中删除所有数据。因此,请注意上述命令。
然后看看将它添加为热备份会做什么,而不做任何更改:
# zpool add -n rpool spare /dev/sdc3
Run Code Online (Sandbox Code Playgroud)
上面的结果应该是类似的配置:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sda3 ONLINE 0 0 0
sdb3 ONLINE 0 0 0
spares
sdc3 AVAIL
Run Code Online (Sandbox Code Playgroud)
请注意,“备件”部分可能不会显示;这里重要的是您不要在与 mirror-0 相同的级别添加另一个 vdev 。换句话说,下面的例子是错误的:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sda3 ONLINE 0 0 0
sdb3 ONLINE 0 0 0
sdc3 ONLINE 0 0 0
Run Code Online (Sandbox Code Playgroud)
一旦您对命令将执行您想要的操作感到满意,请删除-n以实现更改。特别是,除非您绝对确定它会做您想做的事,否则不要传递-f给。zpool add
请注意,以上仅涉及将设备实际配置为备用设备。我不知道如何在 Proxmox VE 上将其配置为热备份和自动替换。
请记住,热备件在需要时将需要重新同步器,并且在正常操作期间无法为任何读取请求提供服务,因此这样做实际上会降低池的故障恢复能力,并可能降低读取性能。目前,如果 sd[abc]3 中的任何一个出现故障,您仍然有两个驱动器在运行,提供冗余;使用热备用配置,如果 sd[ab]3 中的任何一个出现故障,则将需要唯一剩余的驱动器来支持热备用 sdc3 上的完整重新同步而不会出错。如果在重新同步到热备份以使其保持最新的过程中在单个功能驱动器上遇到任何读取错误,那么您将丢失数据。
假设 HBA 能够跟上负载,无论镜像中有多少设备,N 路镜像都将具有单个驱动器的写入性能,因为在认为写入完成之前必须更新所有设备,并且写入是跨物理设备并行执行的。在读取时,根据具体情况,您可以从一个驱动器的性能到所有 N 个驱动器的性能。
如果您的工作负载是同步写入繁重,我认为这是最有可能导致写入性能争用的情况,请考虑添加一个好的 SSD 来用作 SLOG。这应该会提高同步写入的写入性能。如果您的大部分写入都是异步的(这通常是默认值,除了 NFS 之类的内容),那么您不会看到太大的差异,但您也不会看到具有写入的三向镜像对性能产生太大影响只有一个驱动器的性能,直到用完 ARC RAM 并且双向镜像不会更快;如果是这种情况,请考虑为 ZFS添加更多 RAM以用作 ARC。
| 归档时间: |
|
| 查看次数: |
2753 次 |
| 最近记录: |