Вопрос или проблема
Я добавил диск на сервер Solaris 10 и пытался добавить устройство в существующий пул с одним диском как зеркалируемое устройство, однако вместо использования команды “zpool attach tank c1t5d0” я использовал “zpool add tank c1t5d0”
Команда zpool status выдает следующий вывод
пул tank –
состояние ONLINE –
конфигурация
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
c1t4d0 ONLINE 0 0 0
c1t5d0 ONLINE 0 0 0
ошибки: Нет известных ошибок данных
Когда я пытаюсь удалить устройство с помощью zpool remove или detach или offline, я получаю следующие ошибки.
#zpool offline tank c1t5d0: Невозможно отключить c1t5d0: нет действительных реплик
#zpool remove tank c1t5d0: Невозможно удалить c1t5d0: можно удалять только неактивные горячие резервные, кэш, верхнеуровневые или журнальные устройства.
#zpool detach tank c1t5d0: Невозможно отсоединить c1t5d0: применимо только к зеркалам или заменяемым vdev.
Я попробовал # zpool add tank mirror c1t4d0 c1t5d0, но получаю:
неверная спецификация vdev
Используйте ‘-f’, чтобы переопределить следующую ошибку:
/dev/dsk/c1t4d0s0 является частью активного ZFS пула tank. Пожалуйста, смотрите zpool(1M).
Когда я использую ‘-f’, я получаю следующую ошибку:
неверная спецификация vdev
Следующие ошибки должны быть исправлены вручную:
/dev/dsk/c1t4d0s0 является частью активного ZFS пула tank. Пожалуйста, смотрите zpool(1M).
Я получаю те же ошибки с # zpool attach.
Любая помощь будет очень appreciated.
Ответ или решение
Чтобы удалить устройство vdev из пула ZFS на сервере Solaris 10, нужно учитывать несколько ключевых моментов, особенно учитывая, что вы ввели устройство в пул по ошибке, используя команду zpool add
, вместо zpool attach
. Давайте рассмотрим, как можно решить эту проблему шаг за шагом.
Шаг 1: Понимание текущей конфигурации пула
Согласно выводу команды zpool status
, у вас есть пул tank
, который содержит два устройства:
- c1t4d0
- c1t5d0
Вы добавили устройство c1t5d0 в качестве отдельного устройства, а не как зеркало (mirror) для c1t4d0. Это значит, что c1t5d0 стал топ-уровневым vdev, и в итоге вы не можете его просто так удалить, так как он не является частью реальной реплики (mirror).
Шаг 2: Устранение проблемы с удалением
Попробуем несколько команд для решения проблемы. К сожалению, в Solaris 10 нет прямой команды для удаления топ-уровневых vdevs, добавленных в пул. Но вы можете использовать следующие шаги:
-
Перезагрузите систему: Иногда перезагрузка может помочь сбросить статусы и упростить дальнейшие команды.
-
Создание резервной копии данных: Если у вас еще нет резервной копии данных из пула, настоятельно рекомендуется сделать это перед выполнением каких-либо операций с хранилищем. Вы можете использовать
zfs snapshot
для создания моментального снимка, а затем переместить данные на временный носитель. -
Проверка состояния устройств: Выполните команду
zpool status -v
, чтобы проверить, нет ли проблем с вашими устройствами, которые могут помешать процессу удаления.
Шаг 3: Попробуйте удалить vdev
Для попытки удалить c1t5d0 вам необходимо сначала освободить его. В некоторых случаях можно использовать команду zpool export
и zpool import
для того, чтобы переработать метаданные пула. Однако, учтите, что это может временно сделать ваши данные недоступными.
zpool export tank
zpool import -f tank
После этого попробуйте снова выполнить команду для удаления:
zpool remove tank c1t5d0
Если эта команда не сработает, вам, возможно, придется прибегнуть к радикальным мерам.
Шаг 4: Создание нового пула
Если вышеозначенные шаги не сработают, самое крайнее решение — это создание нового пула и перенос данных. Для этого:
-
Создайте новый пул:
zpool create newtank mirror c1t4d0 c1t5d0
(Убедитесь, что используете правильные устройства, и что вы создали зеркало, если это необходимо).
-
Перенесите данные:
Скопируйте данные со старого пула на новый. -
Удалите старый пул:
После того как все данные были перенесены и проверены, удалите старый пул:zpool destroy tank
Заключение
Управление vdev-ами в ZFS требует тщательности и понимания системы. Ваша ситуация является распространенной ошибкой, и ее решение может потребовать упорного труда и внимательности. Всегда старайтесь иметь резервные копии важной информации и изучите команды ZFS перед их выполнением. Если вам потребуется дополнительная помощь, сообщества Solaris и ZFS могут предложить множество ресурсов.