Был зеркальный пул на ada[23], из-за импорта которого все и началось, его и переделывал. Предварительно были очищены разметки - zpool destroy и gpart destroy. Все чисто, артефактов от старой разметки не выявлено.
1) Создание ZFS зеркала на GPT разделах, листинг подробный с отображением промежуточной информации для общей картины
По идее при использовании полной емкости диска, разметку надо делать на меньшем из дисков и клонировать на второй
Единственная проблема при этом перечитать диск /dev/ada3 чтобы появился лэйбл photo1 в /dev/gpt - ни наю как ((
Код: Выделить всё
#gpart create -s gpt /dev/ada2
#gpart add -l photo0 -t freebsd-zfs /dev/ada2
#gpart backup /dev/ada2 | gpart restore /dev/ada3
#gpart modify -i 1 -l photo1 dev/ada3
Но у меня диски идентичны, так что просто создаю разделы на каждом диске.
Код: Выделить всё
# Создание разметки диска, со схемой GPT
gpart create -s gpt /dev/ada2
ada2 created
gpart create -s gpt /dev/ada3 #
ada3 created
gpart show -lp /dev/ada[23]
=> 34 1953525101 ada2 GPT (932G)
34 1953525101 - free - (932G)
=> 34 1953525101 ada3 GPT (932G)
34 1953525101 - free - (932G)
# Создание партиции на весь диск на дисках /dev/ada[23], c меткой photo[01]
gpart add -l photo0 -t freebsd-zfs /dev/ada2
ada2p1 added
gpart add -l photo1 -t freebsd-zfs /dev/ada3 #
ada3p1 added
gpart show -lp /dev/gpt/photo[01]
=> 34 1953525101 ada2 GPT (932G)
34 1953525101 ada2p1 photo0 (932G)
=> 34 1953525101 ada3 GPT (932G)
34 1953525101 ada3p1 photo1 (932G)
ls /dev/gpt/photo*
/dev/gpt/photo0 /dev/gpt/photo1
# Создание геометрии c 4k размером блока
gnop create -S 4096 /dev/gpt/photo[01]
ls /dev/gpt/photo*
/dev/gpt/photo0 /dev/gpt/photo0.nop /dev/gpt/photo1 /dev/gpt/photo1.nop
# Создание пула zphoto на двух дисках с GPT партициями
zpool create -m /jail/homenas/shared/photo -f zphoto mirror /dev/gpt/photo[01].nop
zdb -C zphoto |egrep ashift\|path
ashift: 12
path: '/dev/gpt/photo0.nop'
phys_path: '/dev/gpt/photo0.nop'
path: '/dev/gpt/photo1.nop'
phys_path: '/dev/gpt/photo1.nop'
zfs list |grep photo
zphoto 528K 913G 144K /jail/homenas/shared/photo
zpool export zphoto #
gnop destroy /dev/gpt/photo[01].nop #
ls /dev/gpt/photo*
/dev/gpt/photo0 /dev/gpt/photo1
zpool import
pool: zphoto
id: 3576859738913535329
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:
zphoto ONLINE
mirror-0 ONLINE
gpt/photo0 ONLINE
diskid/DISK-9VPBWNRHp1 ONLINE
2)
diskid/DISK-9VPBWNRHp1 вот оно! Вместо GPT метки - DISKID, ладно, далее импорт и просмотр состояния
Код: Выделить всё
pool import zphoto
zpool status zphoto
pool: zphoto
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
zphoto ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
gpt/photo0 ONLINE 0 0 0
diskid/DISK-9VPBWNRHp1 ONLINE 0 0 0
errors: No known data errors
zdb -C zphoto | grep path
path: '/dev/gpt/photo0'
phys_path: '/dev/gpt/photo0'
path: '/dev/diskid/DISK-9VPBWNRHp1'
phys_path: '/dev/diskid/DISK-9VPBWNRHp1'
gpart show -lp /dev/ada[23]
=> 34 1953525101 ada2 GPT (932G)
34 1953525101 ada2p1 photo0 (932G)
gpart: No such geom: /dev/ada3.
Как видно все хорошо, за исключением
gpart: No such geom: /dev/ada3., хорошо экспорт и проверка GPT
Код: Выделить всё
zpool export zphoto
gpart show -lp /dev/ada[23]
=> 34 1953525101 ada2 GPT (932G)
34 1953525101 ada2p1 photo0 (932G)
=> 34 1953525101 ada3 GPT (932G)
34 1953525101 ada3p1 photo1 (932G)
Все на месте же! Тут закрадывается подозрение, что старые ZFS данные по дискам еще хранятся в системе
Ниже привожу варианты возможного импорта пула по diskid/gptid/gpt
Код: Выделить всё
zpool import -d /dev/diskid/
pool: zphoto
id: 3576859738913535329
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:
zphoto ONLINE
mirror-0 ONLINE
diskid/DISK-9VPBWVHQp1 ONLINE
diskid/DISK-9VPBWNRHp1 ONLINE
zpool import -d /dev/gptid/
pool: zphoto
id: 3576859738913535329
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:
zphoto ONLINE
mirror-0 ONLINE
gptid/c8a982f3-aab0-11e3-8ec1-bcaec598a128 ONLINE
gptid/fc7afe50-aab0-11e3-8ec1-bcaec598a128 ONLINE
zpool import -d /dev/gpt/
pool: zphoto
id: 3576859738913535329
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:
zphoto ONLINE
mirror-0 ONLINE
gpt/photo0 ONLINE
gpt/photo1 ONLINE
3)
gpt/photo1 ONLINE Что и нужно! Дале импорт с явным указанием предпочтения /dev/gpt/
Код: Выделить всё
zpool import -d /dev/gpt/ 3576859738913535329
zdb -C zphoto | grep path
path: '/dev/gpt/photo0'
phys_path: '/dev/gpt/photo0'
path: '/dev/gpt/photo1'
phys_path: '/dev/gpt/photo1'
Вот и славно, но далее то что за...
Код: Выделить всё
gpart show -lp /dev/ada[23]
=> 34 1953525101 ada2 GPT (932G)
34 1953525101 ada2p1 photo0 (932G)
gpart: No such geom: /dev/ada3.
# Как так когда
geom disk list ada2 ada3
Geom name: ada2
Providers:
1. Name: ada2
Mediasize: 1000204886016 (932G)
Sectorsize: 512
Mode: r1w1e3
descr: ST31000524AS
lunid: 5000c5002ded4e1f
ident: 9VPBWVHQ
fwsectors: 63
fwheads: 16
Geom name: ada3
Providers:
1. Name: ada3
Mediasize: 1000204886016 (932G)
Sectorsize: 512
Mode: r1w1e3
descr: ST31000524AS
lunid: 5000c5002de918dd
ident: 9VPBWNRH
fwsectors: 63
fwheads: 16
#Не понятно, но хотя бы GPT метки работают
gstat -f gpt/photo\[01\]
L(q) ops/s r/s kBps ms/r w/s kBps ms/w %busy Name
0 0 0 0 0.0 0 0 0.0 0.0| gpt/photo1
0 0 0 0 0.0 0 0 0.0 0.0| gpt/photo0
Тут окончательно становится понятно, что данные в системе остались от предыдущей конфигурации пула и дополнительно рождается теория что при создании старого пула zpool create zphoto mirror были явно указаны /dev/ad[01]p1 и так как система работала с флешки - их нумерация была 0 и 1 При импорте пула в систему где уже был /dev/ad0p1 - идентификация дисков сменилась на DISKID. Все логично! Для обновления GEOM-а осталось ребутнуться, ну или кто знает как - перечитать дисковую подсистему.
Код: Выделить всё
shutdown -r now
gpart show -lp /dev/ada[23]
=> 34 1953525101 ada2 GPT (932G)
34 1953525101 ada2p1 photo0 (932G)
=> 34 1953525101 ada3 GPT (932G)
34 1953525101 ada3p1 photo1 (932G)
gstat -f ada\[23\]
dT: 1.023s w: 1.000s filter: ada[23]
L(q) ops/s r/s kBps ms/r w/s kBps ms/w %busy Name
0 0 0 0 0.0 0 0 0.0 0.0| ada2
0 0 0 0 0.0 0 0 0.0 0.0| ada3
0 0 0 0 0.0 0 0 0.0 0.0| ada2p1
0 0 0 0 0.0 0 0 0.0 0.0| ada3p1
Все как и ожидалось! Параметры GEOM в норме!