Назад | Перейти на главную страницу

ZFS добавлены зеркальные новые диски, которые не сообщают правильный размер

Я использую Ubuntu 16.04 на ZFS.

У меня есть ОС на rpool и мои данные в / tank

Проблема: я добавил в свой zvol 2 диска по 6 ТБ с помощью следующей команды:

# zpool add -f tank mirror $ {DISK1} $ {DISK2}

Приводы добавлены. Я ожидал получить что-то около 6 ТБ, но я получил еще 2 ТБ. Вот результат df -h /tank

Filesystem      Size  Used Avail Use% Mounted on
tank            2.1T     0  2.1T   0% /tank

и вот результат # zpool list tank

NAME   SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
tank  2.57T   460G  2.12T         -     7%    17%  1.00x  ONLINE  -

Вот результат # zpool status

pool: rpool
state: ONLINE
scan: scrub repaired 0 in 0h0m with 0 errors on Sun Feb 12 00:24:58 2017
config:

NAME                                                     STATE     READ WRITE CKSUM
rpool                                                    ONLINE       0     0     0
  mirror-0                                               ONLINE       0     0     0
    ata-Samsung_SSD_850_EVO_250GB_S2R5NB0HA87070Z-part1  ONLINE       0     0     0
    ata-Samsung_SSD_850_EVO_250GB_S2R5NB0HB09374D-part1  ONLINE       0     0     0

errors: No known data errors

pool: tank
state: ONLINE
scan: scrub repaired 0 in 1h8m with 0 errors on Sun Feb 12 01:32:07 2017
config:

NAME                                             STATE     READ WRITE CKSUM
tank                                             ONLINE       0     0     0
  mirror-0                                       ONLINE       0     0     0
    wwn-0x50014ee0561bff3f-part1                 ONLINE       0     0     0
    wwn-0x50014ee1011a7ad7-part1                 ONLINE       0     0     0
  mirror-1                                       ONLINE       0     0     0
    ata-ST6000NE0021-2EN11C_ZA14Q289             ONLINE       0     0     0
    ata-ST6000NE0021-2EN11C_ZA13YT32             ONLINE       0     0     0
cache
  ata-Samsung_SSD_850_PRO_512GB_S39FNX0J102027A  ONLINE       0     0     0

errors: No known data errors

Я попытался # zpool set autoexpand=on tank но без радости. По-прежнему сообщает о 2,5 ТБ.

Вот результат # lsblk

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   477G  0 disk 
├─sda1   8:1    0   477G  0 part 
└─sda9   8:9    0     8M  0 part 
sdb      8:16   0     2T  0 disk 
├─sdb1   8:17   0     2T  0 part 
└─sdb9   8:25   0     8M  0 part 
sdc      8:32   0     2T  0 disk 
├─sdc1   8:33   0     2T  0 part 
└─sdc9   8:41   0     8M  0 part 
sdd      8:48   0 596.2G  0 disk 
└─sdd1   8:49   0 596.2G  0 part 
sde      8:64   0 596.2G  0 disk 
└─sde1   8:65   0 596.2G  0 part 
sdf      8:80   0 232.9G  0 disk 
├─sdf1   8:81   0 232.9G  0 part 
├─sdf2   8:82   0  1007K  0 part 
└─sdf9   8:89   0     8M  0 part 
sdg      8:96   0 232.9G  0 disk 
├─sdg1   8:97   0 232.9G  0 part 
├─sdg2   8:98   0  1007K  0 part 
└─sdg9   8:105  0     8M  0 part 
sr0     11:0    1  1024M  0 rom  
zd0    230:0    0     4G  0 disk [SWAP]

Ключ:

sda = L2ARC для танка (samsung pro)

sdb & sdc = Диск Seagate Ironwolf 6 ТБ (новое зеркало в баке)

sdd & sde = WD 596G диск в зеркале бака

sdf & sdg = зеркало rpool

Вы знаете, почему моя машина видит эти новые диски только как 2 ТБ?

Что я могу с этим поделать?

Нужно ли мне уничтожить мой танк, чтобы решить проблему (если есть решение)?

Здесь происходят две вещи.

  1. Ваш контроллер SATA, скорее всего, не поддерживает диски> 2 ТБ. Вам потребуется новый контроллер, чтобы получить от них полную мощность.
  2. Вы добавили зеркало 2 ТБ (диски 6 ТБ) в пул с зеркалом vdev размером 596 ГБ. Хотя технически это даст вам дополнительное хранилище для пула, это плохая настройка для производительности. Рассмотрим случай, когда бассейн пуст. Записи распределяются по полосатым vdev для увеличения производительности. 596 ГБ vdev заполняется намного быстрее, чем vdev 2 ТБ, заставляя ZFS писать почти исключительно в vdev 2 ТБ. Это сводит на нет любой выигрыш в производительности, который вы могли бы увидеть при использовании полосатых зеркал.

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

Что я могу с этим поделать?

Вы не можете удалить vdev теперь, когда они добавлены, но вы можете заменить диски дисками большего размера. Если вам нужна оптимальная производительность, вы можете

  • a) Получите контроллер SATA, который поддерживает диски> 2 ТБ и еще 2 диска по 6 ТБ, чтобы заменить диск 596 ГБ.
  • б) Возьмите 4 диска по 2 ТБ и замените все 4 диска, а диски по 6 ТБ используйте для чего-то другого.

Нужно ли мне уничтожить мой танк, чтобы решить проблему (если есть решение)?

Ни с одним из вышеперечисленных решений. Если вы хотите удалить одно из зеркал, вам придется воссоздать бассейн.

Глядя на lsblk Выходные данные, ваши устройства представлены как диски емкостью 2 ТБ. Это означает, что разрушение и воссоздание пула не повлияет на доступное пространство.

Настроены ли ваши порты SATA в режиме Legacy / IDE? Если да, попробуйте перевести их в режим AHCI.

Кроме того, опубликуйте вывод dmesg | grep -i sdb