7

У меня есть пул хранения, который называется точно storage с двумя дисками в нем. Первоначально я хотел добавить второй диск в качестве зеркала, но сделал ошибку новичка в ZFS при использовании zpool add storage <device> вместо zpool attach storage <device> .

Каждая попытка remove или detach второе устройство из пула терпит неудачу, потому что ZFS жалуется на отсутствие избыточных дисков. Прочитав это, я понимаю проблему и почему это так. Однако я не смог найти решение, как удалить диск, чтобы снова подключить его, или просто преобразовать весь пул в зеркальный, а не в полосатый. Я также несколько озадачен тем фактом, что, похоже, нет простого способа сделать это.

Есть ли способ добиться этого, разрушив и воссоздав бассейн? Я бы предпочел не покупать другой диск емкостью 4 ТБ и не копировать все эти данные.

2 ответа2

2

К сожалению, на данный момент у вас есть два хороших варианта:

  • Уничтожьте и заново создайте пул с нужной конфигурацией, затем восстановите данные из копии для восстановления
  • Получите еще два диска (минимальный размер каждого из которых у вас уже есть) и увеличьте пул до двух зеркальных пар вместо двух отдельных дисков.

Последнее может быть выполнено на месте, и имеет бонус, предоставляя вам дополнительное место для хранения, но требует, чтобы вы приобрели больше оборудования (что вы сказали в вопросе, который вы не хотите делать). Первое не может быть сделано на месте, но дает вам хорошую возможность протестировать вашу стратегию восстановления (у вас есть стратегии восстановления, я полагаю?).

Как вы узнали, удалить компонент JBOD из пула ZFS невозможно. add а не attach новый диск, вы создали ситуацию JBOD с несколькими дисками.

Если вы идете с расширением бассейна, я предлагаю сильно рассматриваю вопрос о расширении в raidz2 вместо двух зеркальных пар. Вы получаете (по существу) такую же полезную емкость хранилища, но возможность пережить сбой любых двух дисков, а не только один на пару. Вы можете создать raidz2 vdev с двумя разреженными файлами, а затем удалить эти файлы, прежде чем заменять их дисками, с которых вы переносите данные, чтобы перейти с текущей ситуации с 2-дисковым JBOD на 4-дисковый RAIDZ2, добавив только еще два диска.

0

К сожалению, уничтожение и воссоздание бассейна будет вашим единственным вариантом.

Если вы просто хотите извлечь этот отдельный диск (по другим причинам, например, если он имеет более низкую производительность, чем все другие диски), вы можете подключить зеркальный диск к vdev, а затем отсоединить старый диск от vdev, тем самым "извлекая" диск, оставляя бассейн нетронутым (минус время восстановления, конечно). Но в вашем случае это не сильно помогает.

Поэтому я бы предложил купить диск большего размера, который в любом случае содержит полные данные пула, так как в противном случае у вас нет резервной копии. ZFS может быть самой безопасной файловой системой, широко доступной, но она не безошибочна. Умирающий контроллер, одновременная смерть обоих дисков, неисправность источника питания, ошибка администратора, мошеннический злоумышленник или просто ошибка в ZFS или хост-системе - все это может привести к частичной или полной потере данных без резервного копирования. RAID не является резервной копией и не является ZFS.

Обратите внимание, что вы можете передавать все свои данные с помощью ZFS send/recv, поэтому, помимо вложенных денег и времени на передачу, это довольно просто.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .