Я унаследовал пул хранилищ ZFS в Linux (CentOS), и у меня есть неисправное многопутевое устройство ( mpathah
) в мой пул:
raidz3-6 DEGRADED 0 0 0
...
...
mpathba ONLINE 0 0 0
mpathbb ONLINE 0 0 0
mpathbc ONLINE 0 0 0
mpathah FAULTED ...
Я вольно выполнил инструкции Solaris ZFS по замене неисправного диска и заменил диск. Кажется, что multipathd
автоматически выбирает новый диск и назначает ему mpathcn
, поэтому теперь я пытаюсь заменить старое устройство, но получаю следующую ошибку:
$ zpool replace mypool mpathah mpathcn
invalid vdev specification
use '-f' to override the following errors:
/dev/mapper/mpathcn contains a filesystem of type 'vfat'
Действительно, похоже, что остальная часть устройства с несколькими путями на этом vdev отформатированы по-другому:
$ blkid /dev/mapper/mpathcn
/dev/mapper/mpathcn: LABEL="HDD" UUID="xxxx-xxxx" TYPE="vfat"
$ blkid /dev/mapper/mpathbc
/dev/mapper/mpathbc: LABEL="mypool" UUID="xxxx" UUID_SUB="xxxx" TYPE="zfs_member"
Как правильно это сделать? Я нашел аналогичный предыдущий вопрос - это правильно?
$ pvcreate /dev/mapper/mpathcn
Скорее всего, ваш новый виртуальный диск имеет файловую систему VFAT на нем и не был удален перед повторным использованием.
Можно безопасно использовать его с zpool replace -f
, но это уничтожит все старые данные на диске, так как ZFS немедленно начнет перенастройку.