У меня есть zpool с именем storage, который содержит массив из пяти устройств raidz1.
Сегодня я пошел и купил другое устройство 3TB и положил его в свой корпус. Однако вместо создания нового пула и добавления этого устройства я сделал ошибку и добавил его в свой существующий пул хранения.
Теперь у меня есть устройство верхнего уровня, которое я хочу удалить, называется sdg
(это новый диск). Каждый раз, когда я пытаюсь удалить его, я получаю:
cannot remove sdg: only inactive hot spares, cache, top-level, or log devices can be removed.
Итак, как мне удалить это устройство сейчас? Если это устройство выходит из строя, весь мой пул будет недоступен. Я думаю, мне следует пойти и купить другой диск, и, по крайней мере, он будет зеркальным, но я просто не могу поверить, что нет подходящего способа сделать это.
Это мой статус дампа:
pool: storage
state: ONLINE
scan: scrub canceled on Wed Jul 23 17:26:08 2014
config:
NAME STATE READ WRITE CKSUM
storage ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ata-ST3000DM001-1CH166_Z1F1PYM6 ONLINE 0 0 0
ata-ST3000DM001-1CH166_W1F24CSC ONLINE 0 0 0
ata-ST3000DM001-1CH166_W1F2372R ONLINE 0 0 0
ata-ST3000DM001-1CH166_W1F24BTK ONLINE 0 0 0
ata-ST3000DM001-1CH166_Z1F2KKLW ONLINE 0 0 0
sdg ONLINE 0 0 0
errors: No known data errors
sdg
теперь это часть чередующегося пула хранения. Поскольку пул является полосатым, а не зеркальным, его невозможно удалитьsdg
из пула. Единственный способ вернуть его - скопировать данные изstorage
пула на другое устройство, уничтожить пул и воссоздать его без sdg. Затем создайте новый пул для sdg, чтобы делать то, для чего вы хотите его использовать.zfs convert
функциональности.Ответы:
К сожалению, удаление vdev (которым является этот диск) из пула в настоящее время не поддерживается ZFS (но продолжается работа по его поддержке). Обходной путь - сбросить данные из пула и воссоздать их, а затем вернуть обратно.
источник