LINUX.ORG.RU
ФорумAdmin

В можно просто достать один диск из zfs mirror и прочитать в другом пк?

 , ,


0

1

Есть хотелка попробовать альтернативу текущему Linux raid, в котором мне очень греет возможность в любой момент достать один из дисков зеркала и прочитать его на любой другой машине
Вопрос может ли это zfs в принципе, есть ли совместимость между freebsd и zol (т.е. прочитает ли zol диск из массива созданного под фрёй), есть ли привязка к версии ядра (условно если создать фс под рхел8 с емнип 4.10 и воткнуть в свежее 5.хх то прочитается? А если наоборот?)?
И ещё вопрос - можно ли взять 4 диска по 1Тб организовать одно (!) зеркало на 2тб так чтобы:

  • иметь возможность прочитать один любой диск отдельно, получив половину данных (в идеале - первый 1Тб, т.е. если массив заполнен меньше чем на 1тб то все данные с него)
  • иметь понимание какие диски дубли (АА) а какие - последовательные (АВ) т.е. иметь возможность достать два диска что бы прочитать все 2тб на другой машине

И ещё вопрос :) если организовать в одной zfs два зеркала, то безопасно ли извлекать оба диска одного из зеркал и можно ли их перенести на другую машину в виде «как есть», чтоб они сразу подхватились зеркалом без пересчётов?

П.с. Логика вопросов следующая - данные медленные и в случае падения массива мне проще пересоздать его на новых дисках и заполнить данными с одного из старых дисков, а потом уже подкинуть новый диск в старый массив и обнулить его целиком.
Бонусом хочется сохранить возможность быстрого переноса в случае отказа не дисков а серва

★★★★

иметь понимание какие диски дубли (АА) а какие - последовательные (АВ)

zpool status покажет строение пула

иметь возможность прочитать один любой диск отдельно, получив половину данных (в идеале - первый 1Тб, т.е. если массив заполнен меньше чем на 1тб то все данные с него)

Разваливание пула может привести к его деградации.

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

Разваливание пула может привести к его деградации.

да, понятно что если смонтировать в rw либо пул с извлечённым диском либо сам извлечённый диск то зеркальность нарушится при первом чихе, но задача следующая:

  • пул пострадал (не важно - упал диск или сервер или нарушилась целостность по какой-то причине)
  • определяем (если сервер еще жив) какой диск жив (если сервер мёртв - дергаем наугад)
  • втыкаем в другую машину
  • читаем данные

в идеале сохранить возможность при чтении учитывать црц данных - собсно с линух-райдов одна из неочевидностей это какую из двух считанных копий считать верной если оба диска зеркала прочитались на другой машине поштучно (не в составе массива) но на выходе дали разные хэши образов

rukez ★★★★
() автор топика

есть ли совместимость между freebsd и zol

Да. Более того, новая ZFS на FreeBSD теперь из кодовой базы ZoL.

И ещё вопрос - можно ли взять 4 диска по 1Тб организовать одно (!) зеркало на 2тб

То, что ты получишь, называется raid10, а не зеркало.

иметь возможность прочитать один любой диск отдельно, получив половину данных

Нет, это ни один из видов RAID не поддерживает (ибо R - Redundant). У mdadm для этого есть linear array (non-RAID), но он очень малораспространён.

иметь понимание какие диски дубли (АА) а какие - последовательные (АВ) т.е. иметь возможность достать два диска что бы прочитать все 2тб на другой машине

Сложно, но вроде бы можно через zdb (но это неточно)

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

То, что ты получишь, называется raid10, а не зеркало.

вот мне как-раз нужен не райд10 а чтоб диски А-B-C-D писались так: А+B, A+B … до заполнения A+B, а дальше соотв. С+D, C+D - т.е. такой своеобразный jbod+1, в идеале чтоб служебка еще переносила данные с C+D на свободные места на A+B при дефраге

Нет, это ни один из видов RAID не поддерживает (ибо R - Redundant).

перефразирую вопрос - что будет если я достану 1 из 4 дисков и прочитаю его на другом пк?
в условиях примитивной фс где таблица в начале диска диски А и В должны прочитаться с ошибками границ фс а диски C и D не должны прочитаться вообще, но zfs же не примитивная фс :-)

rukez ★★★★
() автор топика
Последнее исправление: rukez (всего исправлений: 1)
Ответ на: комментарий от rukez

вот мне как-раз нужен не райд10 а чтоб диски А-B-C-D писались так: А+B, A+B … до заполнения A+B, С+D, C+D - т.е. такой своеобразный jbod+1, в идеале чтоб служебка еще переносила данные с C+D на свободные места на A+B при дефраге

Заполняй вручную. Средствами zfs так не сделать.

перефразирую вопрос - что будет если я достану 1 из 4 дисков и прочитаю его на другом пк?

Ничего. Пул не импортируется, устройств недостаточно для его импорта.

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

Заполняй вручную. Средствами zfs так не сделать.

вручную есть другой косяк - надо воротить транзакции на случай если дёрнули питание в процессе записи и при старте журналы разбежались (особливо если диски разные)
как-раз ради ухода от написания транзакций и хотелось попользовать zfs

Ничего. Пул не импортируется, устройств недостаточно для его импорта.

и в варианте 1 старый + 3 новых?
т.е. она даже не попытается воскресить кусок данных если единственный диск это А или В?

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

т.е. она даже не попытается воскресить кусок данных если единственный диск это А или В?

Нет, не пытается. И вроде как ни в какой реализации софтрайда нет дисков A и B?

Dimez ★★★★★
()

Многие такие вопросы (кроме переносимости между linux и freebsd и переносимости между разными версиями ZoL) решаются примерно таким путём:

$ fallocate -l 100M /tmp/zfs-01.img
$ fallocate -l 100M /tmp/zfs-02.img
$ fallocate -l 100M /tmp/zfs-03.img
$ fallocate -l 100M /tmp/zfs-04.img
$ sudo zpool create testpool /tmp/zfs-*.img
$ ...
$ DO SOME TESTS
$ ...
$ sudo zpool destroy testpool
$ rm -f /tmp/zfs-*.img
$ ...
$ PROFIT
Harliff ★★★★★
()
Ответ на: комментарий от Harliff

И вроде как ни в какой реализации софтрайда нет дисков A и B?

я видимо не совсем корректно их так называю - по сути это диск 1 и диск 2, на который пишутся А1 в общепринятой мнемоники райдов

Многие такие вопросы (кроме переносимости между linux и freebsd и переносимости между разными версиями ZoL) решаются примерно таким путём:

если я правильно понимаю, то это надо исполнять на живом серве
а мне надо вот как сегодня - взял с полки один диск, который в 2012ом был в программном raid1, воткнул его в новую мамку с совершенно левым для диска hba и спокойно прочитал все данные что были когда-то в массиве.
без подпрыгиваний с «чиорт, надо вспомнить что за версия софтрайда/тип контроллера был», сегодня был софтварный интелрайд, который кстати даже массив увидел когда второй диск воткнулся (10 лет прошло и дружочки снова вместе), но с линухрайдом так то-же прокатывало

а, тфу, я думал это экспорт живого пула :-D
понял, попробую

rukez ★★★★
() автор топика
Последнее исправление: rukez (всего исправлений: 1)
Ответ на: комментарий от rukez

Над совместимостью в ZFS хорошо подумали - почитайте про zpool features.

Harliff ★★★★★
()
Последнее исправление: Harliff (всего исправлений: 1)
Ответ на: комментарий от AVL2

А почему бы не использовать lvm тогда?

Использовать LVM для тестов ZFS (вместо файлов) или использовать LVM вместо ZFS для реализации пожеланий автора топика?

Если первое - то ок, можно и LVM. Если про второе - то ТС явно спрашивал про ZFS, и вроде бы, ZFS ему подходит. Раздувать тему флеймом «ZFS vs LVM» не хочется.

Harliff ★★★★★
()
Последнее исправление: Harliff (всего исправлений: 2)
Ответ на: комментарий от Harliff

Нет, вместо zfs. Автор сам не знает, что хочет. Называет раидом не раид путается в режимах и zfs явно видел только в интернетах. Вот и посоветовал альтернативу.

AVL2 ★★★★★
()

И ещё вопрос - можно ли взять 4 диска по 1Тб организовать одно (!) зеркало на 2тб так чтобы:

То что ты хочешь можно попробовать реализовать в MD или MD + LVM.
В ZFS такое низзя.

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