LINUX.ORG.RU
решено ФорумAdmin

ZFSonLinux: zpool expand/autoexpand при увеличении объема LUN у кого-нибудь работает?

 ,


0

1

Проблема: есть LUN, который я получаю по FC

# fdisk -l /dev/disk/by-vdev/LVM-SAMBA

Disk /dev/disk/by-vdev/LVM-SAMBA: 107.4 GB, 107374182400 bytes, 26214400 sectors
Units = sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 524288 bytes


Создаю на нем пулл:

#zpool create -f -o ashift=12 SMB /dev/disk/by-vdev/LVM-SAMBA

#zpool list -v
NAME   SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
SMB  99.5G   276K  99.5G         -     0%     0%  1.00x  ONLINE  -
  LVM-SAMBA  99.5G   276K  99.5G         -     0%     0%

# fdisk -l /dev/disk/by-vdev/LVM-SAMBA
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

Disk /dev/disk/by-vdev/LVM-SAMBA: 107.4 GB, 107374182400 bytes, 26214400 sectors
Units = sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 524288 bytes
Disk label type: gpt


#         Start          End    Size  Type            Name
 1         2048     26195967   99.9G  Solaris /usr &  zfs
 9     26195968     26212351     64M  Solaris reserve


Теперь я хочу увеличить размер LUN-а (из dmesg):

[1215785.131463] sd 2:0:0:8: [sdm] 91750400 4096-byte logical blocks: (375 GB/350 GiB)
[1215785.132673] sdm: detected capacity change from 107374182400 to 375809638400

# fdisk -l /dev/disk/by-vdev/LVM-SAMBA

Disk /dev/disk/by-vdev/LVM-SAMBA: 375.8 GB, 375809638400 bytes, 91750400 sectors
Units = sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 524288 bytes
Disk label type: dos
Disk identifier: 0x00000000

                      Device Boot      Start         End      Blocks   Id  System
/dev/disk/by-vdev/LVM-SAMBA1               1    26214399   104857596   ee  GPT


Пытаюсь расширить пулл:

# zpool online  -e SMB /dev/disk/by-vdev/LVM-SAMBA


Раздел вроде расширился:

# fdisk -l /dev/disk/by-vdev/LVM-SAMBA
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

Disk /dev/disk/by-vdev/LVM-SAMBA: 375.8 GB, 375809638400 bytes, 91750400 sectors
Units = sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 524288 bytes
Disk label type: gpt


#         Start          End    Size  Type            Name
 1         2048     91731967  349.9G  Solaris /usr &  zfs
 9     91731968     91748351     64M  Solaris reserve


Но размер пула остался прежний:

# zpool list -v
NAME   SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
SMB  99.5G   372K  99.5G         -     0%     0%  1.00x  ONLINE  -
  LVM-SAMBA  99.5G   372K  99.5G         -     0%     0%


Что я делаю не так?

ЗЫ: с autoexpand ситуация аналогичная, за исключением того, что еще и раздел не увеличивается.

Ответ на: комментарий от EvgGad_303

Включал, и после создания пула включал, и при создании пула включал...

# zpool labelclear /dev/disk/by-vdev/LVM-SAMBA
# zpool create -f -o ashift=12 -o autoexpand=on SMB /dev/disk/by-vdev/LVM-SAMBA
# zpool list -v
NAME   SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
SMB  99,5G   276K  99,5G         -     0%     0%  1.00x  ONLINE  -
  LVM-SAMBA  99,5G   276K  99,5G         -     0%     0%


Увеличиваю LUN (со 100 Гб до 350):

#dmesg
..................
[1251019.829657] sd 2:0:0:8: [sdm] 26214400 4096-byte logical blocks: (107 GB/100 GiB)
[1251019.831877]  sdm: sdm1 sdm9
[1251219.285245] sd 2:0:0:8: [sdm] 91750400 4096-byte logical blocks: (375 GB/350 GiB)
[1251219.286080] sdm: detected capacity change from 107374182400 to 375809638400

# fdisk -l /dev/disk/by-vdev/LVM-SAMBA

Disk /dev/disk/by-vdev/LVM-SAMBA: 375.8 GB, 375809638400 bytes, 91750400 sectors
Units = sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 524288 bytes
Disk label type: dos
Disk identifier: 0x00000000

               Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/disk/by-vdev/LVM-SAMBA1               1    26214399   104857596   ee  GPT


т.е. LUN увеличился, а autoexpand не сработал...

увеличиваю вручную

#zpool set autoexpand=off SMB
#zpool online -e SMB /dev/disk/by-vdev/LVM-SAMBA
# fdisk -l /dev/disk/by-vdev/LVM-SAMBA
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

Disk /dev/disk/by-vdev/LVM-SAMBA: 375.8 GB, 375809638400 bytes, 91750400 sectors
Units = sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 524288 bytes
Disk label type: gpt


#         Start          End    Size  Type            Name
 1         2048     91731967  349,9G  Solaris /usr &  zfs
 9     91731968     91748351     64M  Solaris reserve

# zpool list -v
NAME   SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
SMB  99,5G   372K  99,5G         -     0%     0%  1.00x  ONLINE  -
  LVM-SAMBA  99,5G   372K  99,5G         -     0%     0%


т.е. если вручную, раздел увеличился, а пул нет...

Sigizmund
() автор топика

Сработала такая последовательность (LUN уже расширен):

zpool -e POOL /dev/.... (расширяем раздел)
zpool export POOL
sfdisk -R /dev/.... (перечитывем таблицу разделов)
zpool import POOL (в zpool list уже видим EXPANDSZ)
zpool -e POOL /dev/....(на этом этапе пул фактически расширяется)


Насколько я понимаю, пул нормально (как задумано) не расширяется, т.к. при zpool -e не перечитывается таблица разделов, а пока пул активен zfs не дает перечитать разделы, поэтому нужен экспорт.

ЗЫ: как вариант можно использовать, но хотелось-бы более кошерного решения...

ЗЫЗЫ:
zfs-0.6.5.3
kernel-3.11.10
openSUSE 13.1 (x86_64)

Sigizmund
() автор топика
Ответ на: комментарий от vxzvxz

У меня не тот случай: в пуле 1 LUN получаемый по SAN, который, при необходимости, увеличивается в объеме...

Sigizmund
() автор топика
Ответ на: комментарий от EvgGad_303

и zfs тут не при чём.

Еще как причем! Диск/ЛУН увеличился? Да! ZFS от ядра не зависит, у нее все свое. Так почему же оно не может? Раздел перечитать? Дык нет там раздела — весь диск отдан зфс'у

anonymous
()
Ответ на: комментарий от anonymous

Видел я и без zfs, когда после увеличения lun и рескана шины fdisk и ко вроде как видят новый размер, но сделать с ним ничего не могут.

Так почему же оно не может?

Потому что гладиолус. В соляре таких проблем нет.

EvgGad_303 ★★★★★
()
Ответ на: комментарий от anonymous

есть там разделы....просто если весь диск отдается, zfs сама его размечает...

# fdisk -l /dev/sdm

Disk /dev/sdm: 483.2 GB, 483183820800 bytes, 117964800 sectors
Units = sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 524288 bytes
Disk label type: gpt


#         Start          End    Size  Type            Name
 1         2048    117946367  449,9G  Solaris /usr &  zfs
 9    117946368    117962751     64M  Solaris reserve

Sigizmund
() автор топика
9 декабря 2016 г.

долго не давал мне покоя этот autoexpand, но....гланды через задний проход вырвать удалось...

далее без соблюдения синтаксиса, просто чтоб понятно было (диск с ЛУН-ом sdm)....

losetup loop0 /dev/sdm
zpool create POOL /dev/loop0
zpool export POOL
losetup -D
zpool import POOL

увеличиваем ЛУН

dmesg | tail
[745726.945211] sd 2:0:0:8: [sdm] 209715200 512-byte logical blocks: (107 GB/100 GiB)
[745726.945218] sd 2:0:0:8: [sdm] 4096-byte physical blocks
[745726.946083] sdm: detected capacity change from 80530636800 to 107374182400

zpool online -e /dev/sdm
zpool list
NAME        SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
POOL  99,5G   420K  99,5G         -     0%     0%  1.00x  ONLINE  -

fdisk -l /dev/sdm

Disk /dev/sdm: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 524288 bytes


вуаля!!!
похоже фишка в том, что autoexpand нормально отрабатывает на vdev-ах без разделов, а неделать разделов (whole disk) на устройствах с major=8 zpool не умеет (или я не нашел как)...

Sigizmund
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.