Я планирую построить файловый сервер поверх opensolaris, используя raid z1 или z2. Можно ли позже обновить диск за раз и сразу получить доступ к увеличенному хранилищу? Или увеличенное хранилище доступно только после обновления каждого устройства в raid z?
Кроме того, как обычные zpools относятся к устройствам разных размеров? Я не нашел по этому поводу определенных ответов. Возможно, мне придется начать с двух дисков разного размера в zpool без какого-либо резервирования. Я слышал от некоторых, что каждый диск рассматривается как размер наименьшего диска (как в zpools, так и в raid zs), но документация zfs, похоже, подразумевает иное.
Мне просто нужно было проверить это в VirtualBox. Оказывается, вы ограничены размером самого маленького диска в пуле. Таким образом, 2x500 ГБ и 1x250 ГБ в raidz1 дадут только 250 ГБ полезного пространства. После обновления последнего диска (и убедитесь, что zpool set autoexpand=on thepool
), то вы получаете доступ к дополнительному пространству.
Обычные zpools разделяют данные на столько дисков / vdev, которые есть в вашем пуле, и если один из них больше другого, он просто прекращает чередование, когда меньший диск заполнен.
Технически вы можете выполнить настройку RAIDZ, которая позволит вам обновлять диски по одному и иметь доступное дополнительное пространство. Но это требует настройки с разделами на всех дисках, а также требует создания разделов на новом диске, прежде чем его можно будет использовать. Это не так просто, хотя и не так уж сложно. Это просто требует небольшого планирования и хорошего понимания того, как работают ZFS и RAIDZ.
Это продемонстрировано в примере на http://www.cod3r.com/2010/04/zfs-on-different-sized-disks/
Если вы хотите иметь простой путь обновления и иметь запасные контроллеры дисков, использование нескольких зеркальных пулов может быть проще, как описано на https://blogs.oracle.com/constantin/entry/opensolaris_home_server_zfs_and
Вместо обновления дисков raidz, которые не помогут увеличить размер пула, пока не будут обновлены все диски, вы можете увеличить размер пула, добавив к нему совершенно новый raidz.
По поводу вашего второго вопроса, если вы не при использовании избыточности в пуле и использовании дисков разного размера доступный глобальный размер будет суммой каждого размера диска, а не ограничиваться наименьшим из них. Если вы используете избыточность (зеркалирование или raidz), будет применяться минимальный размер диска.