Как я могу добавить один диск в существующий raidz zpool?

21

У меня есть сервер OpenSolaris с zpool, backupzсостоящий из четырех дисков SCSI:

-bash-3.2# zpool status backupz
  pool: backupz
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        backupz     ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            c7t0d0  ONLINE       0     0     0
            c7t1d0  ONLINE       0     0     0
            c7t2d0  ONLINE       0     0     0
            c7t3d0  ONLINE       0     0     0

errors: No known data errors

Я хочу добавить пятый диск ... но zpool add backupz raidz c7t4d0не работает ...

-bash-3.2# zpool add backupz raidz c7t4d0
invalid vdev specification: raidz requires at least 2 devices

Могу ли я не иметь конфиг raidz с 5 устройствами? Нужно ли добавлять два устройства одновременно? или я здесь что-то делаю не так?

мистифицировать
источник

Ответы:

14

Вы не можете расширить существующий raidz vdev, вы должны удалить его и создать его снова с новыми дисками. Смотрите другой ответ для более подробной информации.

Примечание: кто-то на самом деле решил, что технически возможно добавить диски в raidz, но функциональность не реализована. То же самое относится и к удалению диска.

Крис С
источник
5
Ооо Если это так, я где-то принял ужасное решение! = o
Джош
2
-1 Конечно, zpool можно расширить. Как вы думаете, что zpool addделает команда? Ограничение, с которым сталкивается Джош, заключается в том, что вы не можете изменить состав raidz vdev ("raidz1" в его примере). Вы можете просто добавить новые устройства в сам пул. Это одна из причин, почему предпочтение отдается
Вим Коенен
8
@ Wim, я хорошо знаю, что вы можете добавить дополнительные vdevs в пул. Это была незначительная опечатка, и нет причин прыгать на меня так.
Крис С
Круто, я не знал, что кто-то нашел способ обойти архитектуру, позволяющую добавлять диски! У вас есть ссылка, где я могу прочитать больше об этом?
Линде
31

Смотрите эту ветку в одном из списков FreeBSD: http://lists.freebsd.org/pipermail/freebsd-fs/2009-June/006327.html.

По словам Дана Наумова,

Повторим, вы не можете просто добавить один диск в пул raidz1 или raidz2. Это известное ограничение (вы можете проверить это с помощью документов SUN ZFS). Если у вас уже есть raidz, и вы ДОЛЖНЫ увеличить возможности хранилища этого пула, у вас есть 3 варианта:

1) Добавьте raidz той же конфигурации в пул (например, 3 диска raidz + 3 диска raidz или 5 + 5, например)

2) Замените каждый (и каждый) диск в вашем пуле raidz один за другим, позволяя ему восстанавливаться после установки каждого обновленного диска.

3) Сделайте резервную копию ваших данных, уничтожьте ваш пул и создайте новый пул raidz с большим количеством дисков.

казарка
источник
3
+1: спасибо @brent! Ваш ответ был более подробным, чем у Криса, однако он предоставлял мне подробную информацию в чате, поэтому я принял его ответ. Я ценю информацию!
Джош
1
Почему нужно добавить RAIDZ той же конфигурации и не может, например, добавить RAIDZ с 8 дисками к одному с 3? Разве данные не распределяются по всем VDEV или RAIDZ?
Торстен
@Thorsten Schöning Ответ - производительность, ZFS лучше всего работает с VDEV одинакового размера: serverfault.com/a/564436/333397
Торстен