我正在将 VROC 用于带有一些 NVMe 驱动器的 CPU RAID。我有一个似乎有问题的 RAID 1 阵列。我有一个更笼统的问题,而不是让你厌烦细节。
VROC(或一般的 RAID 1 控制器)如何处理驱动器位不一致的情况?它无法知道哪个是正确的,因为没有奇偶校验位。
大多数 RAID 控制器如何处理这个问题?
我正在将 VROC 用于带有一些 NVMe 驱动器的 CPU RAID。我有一个似乎有问题的 RAID 1 阵列。我有一个更笼统的问题,而不是让你厌烦细节。
VROC(或一般的 RAID 1 控制器)如何处理驱动器位不一致的情况?它无法知道哪个是正确的,因为没有奇偶校验位。
大多数 RAID 控制器如何处理这个问题?
RAID 控制器从不从两个镜像驱动器中读取数据来比较数据。所以答案是——你会得到不一致的读取,你必须在文件系统级别检测和处理。现代文件系统,如 ZFS、BtrFS 甚至是死去的 ReFS,都可以选择散列元数据和实际数据。
传统的 RAID1 实施不会检查两个镜像以进行比较,无论是在正常活动期间还是在清理期间。例如,Linux MDRAID 几乎总是从第一个镜像分支读取,而一些硬件控制器使用循环方法。
这意味着即使一个镜像分支上存在一个好的版本,经典 RAID1 也可以返回不一致的数据。毕竟,不使用数据校验和,RAID1 阵列如何区分坏副本和好副本?
BTRFS 和 ZFS 镜像是完全不同的事情:通过使用数据校验和,它们可以立即识别(并纠正)坏/损坏的数据。