Я унаследовал пул хранилищ 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'
В самом деле, кажется, что остальные устройства multipath на этом 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 немедленно начнет перенос данных.