Рейтинг:0

ZFS/Zpool с ограниченным использованием диска?

флаг ve

У меня есть сервер с JBOD из 36 дисков по 14 ТБ, общая емкость которых составляет 12,7 ТБ (диски WUH721414AL5201).

Я создал два zpool:

  • zpool1, который содержит 3 vdev (каждый из них имеет 8 дисков и является raidz-1) с пулом, имеющим 3 горячего резерва.

  пул: zpool1
 состояние: ОНЛАЙН
конфигурация:

        ИМЯ СОСТОЯНИЕ ЧТЕНИЕ ЗАПИСЬ CKSUM
        zpool1 ОНЛАЙН 0 0 0
          raidz1-0 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
          raidz1-1 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
          raidz1-2 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
        запчасти
          scsi-35000 В НАЛИЧИИ
          scsi-35000 В НАЛИЧИИ
          scsi-35000 В НАЛИЧИИ

  • zpool2, который содержит 1 vdev (с 9 дисками и является raidz-2)

пул: zpool2
 состояние: ОНЛАЙН
конфигурация:

        ИМЯ СОСТОЯНИЕ ЧТЕНИЕ ЗАПИСЬ CKSUM
        zpool2 ОНЛАЙН 0 0 0
          raidz2-0 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0
            scsi-35000 ОНЛАЙН 0 0 0


Как вы можете видеть, согласно zfs, общий полезный размер zpool1 составляет ~ 306 ТБ, а zpool2 — ~ 115 ТБ, причем оба пула утверждают, что имеют несколько ТБ свободного места.


root:~# список zpool
НАЗВАНИЕ РАЗМЕР ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
zpool1 306T 296T 9,55T - - 47% 96% 1,00x ОНЛАЙН -
zpool2 115T 110T 4,46T - - 26% 96% 1,00x ОНЛАЙН -

Однако, когда я запускаю df -h, я получаю следующее:

корень:~# df -h
Используемый размер файловой системы Доступно Использование % Установлено на
zpool1 250T 250T 5.5M 100% /zpool1
zpool2 85T 84T 684G 100% /zpool2

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

Может кто-нибудь, пожалуйста, подтвердите, есть ли какой-то предел, который я нажимаю на linux или zfs? Мои первоначальные мысли заключались в том, что существует ограничение в 250 ТБ, однако это не объясняет, почему zpool2 также имеет 100% пропускную способность, когда в пуле всего 85 ТБ данных.

Если мои расчеты верны, то у пула1 должно быть не менее 266,7 ТБ полезного пространства, а у пула2 должно быть 88,9 ТБ, что основано на следующих расчетах:

бассейн1: 3 vdev-устройства raidz-1 (8 дисков, 7 используемых) = 7 * 3 = 21 диск * 12,7 ТБ каждый = 266,7

бассейн2: 1 x raidz-2 vdev (9 дисков, 7 используемых) = 7 * 12,7 ТБ каждый = 88,9 ТБ

PS: Извините за такой длинный пост, я новичок в хранении, поэтому я попытался объяснить как можно больше (может быть, слишком много!)

Добавлено для Zoredache:

root:~# список zfs
ИМЯ ИСПОЛЬЗУЕТСЯ ДОСТУПНО ССЫЛКА ТОЧКА МОНТАЖА
зпул1 249т 2.45м 249т /зпул1
зпул2 83,9 т 683 г 83,9 т / зпул2

Рейтинг:2
флаг in

The df command is an ancient tool, and doesn't doesn't really understand ZFS, the output from df for a ZFS filessytem is close to worthless. ZFS has more complicated allocation then what the df command understands. ZFS has features like snapshots, compression, de-duplication and more that all impact the usage and available capacity but will not change the apparent usage from perspective of 'df'.

You should be using zfs list and zpool list to inspect pools and zfs filesystems. Your zpool output clearly shows you are nearing the maximum capacity. The zfs list command will give more you details per dataset.

Also consider datasets can have quotas. They will have certain amounts of space reserved for critical filesystem storage to prevent your system from crashing.

Related, you shouldn't let your pools get to the point where they are as full as your that full. It will hurt the performance of your pools.

Birdy avatar
флаг ve
Спасибо за подробный ответ, в идеальном мире я бы откатил первоначальную настройку zfs, чтобы реструктурировать ее, но, к сожалению, у нас нет дополнительных 500 ТБ, которые можно использовать :-( и, как вы говорите ... скорее всего, производительность ZFS особенно страдает когда список zfs показывает следующее: NAME USED AVAIL REFER MOUNTPOINT зпул1 249т 2.45м 249т /зпул1 зпул2 83,9 т 683 г 83,9 т / зпул2

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.