LINUX.ORG.RU
ФорумAdmin

FreeBSD + zfs


2

2

Я спрашивал про zol, теперь хочу спросить у iZEN:

Идея такова:

FreeBSD 9.0 , несколько гигов ОЗУ 3-4.

Есть:

2 диска по 500 gb 2 диска по 2tb

Миграция возможна только поэтапная, то есть: берём сперва по одному диску: 500 gb и 2 tb - собираем из них нечто, переносим данные с оставшихся дисков. Подключаем оставшиеся диски как зеркальные.

Т.е.: из этого барахла хочется собрать отказоустойчивый zfs том с дедупликацией. - Возможно выделение небольшого диска под ОС.

Какая самая оптимальная схема будет в моём случае?

Вопросы: Насколько оно будет надёжно?

Что будет в случае пропадания питания? - zfs не будет пересобирать полностью RAID массивы как это делает gmirror, о выборе которого в продакшине я сейчас страшно жалею из-за этой его особенности?

Что будет если система выйдет из строя? zfs данные я смогу получить?

Слышал, что можно поставить FreeBSD на zfs корень, но не хочется эксперементов. И также слышал про некий raidz, но так и не понял будет-ли профит от него в моей ситуации?

И желательна возможность дальнейшего расширения пула.

P.S. мне нужна надёжность! То есть предлагать использовать фичу которая только вышла мне не следует. Если не возможно создать один пул из моих дисков, лучше создам два и сделаю две точки монтирования, главное - надёжность!

★★★★★

несколько гигов ОЗУ 3-4
отказоустойчивый zfs том с дедупликацией

очень мало оперативки. очень.

Komintern ★★★★★ ()

несколько гигов ОЗУ 3-4

zfs том с дедупликацией

Даже не надейся.

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

без разницы. вот тебе использование мозгов на сервере с FreeBSD 9.0, зеркалом из двух 500Гб веников, и дедупликацией только на одном volume размером менее 100Гб:

Mem: 2593M Active, 9824M Inact, 17G Wired, 283M Cache, 1308M Free

производительность хорошая, в основном благодаря тому что ARC-у хватает оперативки.

Komintern ★★★★★ ()

Какая самая оптимальная схема будет в моём случае?

Два пула: 500 ГБ и 2 ТБ.

Сначала на единичных дисках, после переезда данных и очистки высвободившихся дисков приаттачиваются соответствующие зеркальные пары — получаются два пула-зеркала.

что будет в случае пропадания питания? - zfs не будет пересобирать полностью RAID массивы

Не будет. Сделает незаметный откат на последнюю завершённую группу транзакций. Если ZIL на отдельном энергонезависимом носителе, то запишет с него последнюю транзакцию, которая не попала в систему хранения.

Что будет если система выйдет из строя? zfs данные я смогу получить?

Есть инструмент отладки ZFS — zdb(8).

Слышал, что можно поставить FreeBSD на zfs корень, но не хочется эксперементов.

Это давно уже не эксперимент. Используйте последнюю версию FreeBSD 9.1 (будет доступна в ближайшее время).

И желательна возможность дальнейшего расширения пула.

Расширять каждый пул лучше аналогичными по ёмкости девайсами и vdev'ами.

P.S. мне нужна надёжность! То есть предлагать использовать фичу которая только вышла мне не следует. Если не возможно создать один пул из моих дисков, лучше создам два и сделаю две точки монтирования, главное - надёжность!

Конфигурация mirror (RAID-1) и их комбинация (RAID-10) довольно надёжны и быстры, но неэкономны в плане использования дискового пространства. Лучше смотреть в сторону RAIDZ2 (RAID-6, минимум 4 диска) или RAIDZ3.

FAQ: http://forum.ixbt.com/topic.cgi?id=11:44215

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

Сначала на единичных дисках, после переезда данных и очистки высвободившихся дисков приаттачиваются соответствующие зеркальные пары — получаются два пула-зеркала.

И получится две точки монтирования? На этих пулах-зеркалах создать файловую систему не выйдет? Если читать Вашу ссылку, то вроде как должно получиться.

Так а что про дедупликацию? Если я размер блока установлю в 128 килобайт, хватит мне ОЗУ - (я ссылку выше давал)? - Вы её пробовали? Я zfs хочу только из-за дедупликации. - Есть большая файло-помойка, и почта - и там разумеется пользователи один и тотже файл по 100 раз пересылают друг-другу... - Вот чтоб не хранить один и тотже файл тысячу раз хочу zfs.

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

Если я размер блока установлю в 128 килобайт, хватит мне ОЗУ

Тебе же сказали, что не хватит. Минимум 8 Гб, а лучше - 12-16 Гб.

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

Я не увидил особых аргументов. Ок. Максимум можно думать мне о 8ми гигабайтах, т.к. более МП. не поддерживает.

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

А, пул это уже можно сказать файловая система. Понял что глупость написал. В общем не получится.

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

И получится две точки монтирования?

От одной и более точек монтирования на каждый пул — каждая ФС в пуле может иметь собственную точку монтирования.

На этих пулах-зеркалах создать файловую систему не выйдет?

Можно создать один пул из четырёх носителей: сначала делается VDEV из одиночного носителя (например, 2 ТБ), потом к нему добавляется (zpool add) второй VDEV на одиночном носителе (500 ГБ). Далее, после высвобождения и очистки других носителей к каждому VDEV приаттачивается (zpool attach) соответствующей ёмкости носитель (2 ТБ к 2 ТБ, 500 ГБ к 500 ГБ). Получается этакий RAID-10 общей ёмкостью 2500 ГБ. Внутри пула можно делать другие ФС, которые будут делить общее пространство пула между собой, назначить дедупликацию отдельным ФС. Сжатие «lzjb» лучше сразу включить (zfs set compress=lzjb poolname) для всего пула — создаваемые ФС отнаследуют это свойство.

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

Диски лучше отдавать в пул размеченными в GEOM Label целиком. Разметка в GPT лишняя.

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

Во, теперь всё понял. Спасибо!

А что скажете на: lzjb + dedup?

И ещё раз такие пироги я решил рассмотреть следующий вариант:

Пока сделать так:

  • Беру один диск на 2tb
  • Делаю на нём GPT + 4kb смещение, чтобы FreeBSD туда установить.
  • Создаю на нём пул - сжатие + дедупликация.
  • Создаю на нём файловую систему с размером кластера 128 килобайт.
  • Беру FreeBSD 9.1
  • Ставлю прям в созданную файловую систему FreeBSD - так можно? Инталлятор увидит всё это добро?
  • Пользуюсь. - Т.е. ОС + данные будут прям в одном пуле и в одной файловой системе.
  • Потом делаю: zpool attach второй винт на 2тб - также через GPT, чтобы одинаковые были VDEV по размеру. - И получаю зеркало, на котором и данные и система. (Пофиг, что на втором винте не будет загрузчика FreeBSD)
  • Если места становится мало, покупаю новые винты, делаю на них VDEV (зеркальный)
  • Добавляю всё это добро: в ранее созданый пул.
  • Получаю большой зеркальный пул, на котором и система и всё добро.
DALDON ★★★★★ ()
Ответ на: комментарий от DALDON

скажу что производительность ZFS напрямую зависит от размера ARC, и что даже без дедупликации рамы для этой ФС маловато.

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

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

ktulhu666 ☆☆☆ ()
Ответ на: комментарий от Kindly_Cat

Даже не надейся.

Работать будет так медленно, что лучше бы не работало.

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

А что скажете на: lzjb + dedup?

Что сказать? Работает. У меня эта связка свойств для SWAP на ZVOL включена, но и только.

Создаю на нём файловую систему с размером кластера 128 килобайт.

Чего вы привязались к этому значению? Это дефолтный размер блока в ZFS, вообще-то.

Делаю на нём GPT + 4kb смещение, чтобы FreeBSD туда установить.
Ставлю прям в созданную файловую систему FreeBSD - так можно? Инталлятор увидит всё это добро?

В этом случае в GPT создаётся минимум два раздела: один маленький раздел для загрузчика gptzfsboot, другой раздел — под непосредственно сам Z-пул.

Инталлятор увидит всё это добро?

Наверно. Через инсталлятор меньше шансов столкнуться с неожиданным поведением и конфигурацией. Я всё руками делал и, честно говоря, не смогу повторить алгоритм запуска FreeBSD с ZFS, даже имея запротоколированные записи от предыдущей установки, без дополнительных проб. Есть несколько вариантов задействования загрузочного пула, нужно выбрать только один — подходящий под условия использования. Иногда требования к условиям использования не определены до конца. Инсталлятор, по идее, должен всё правильно настроить — и разметку, и обеспечить запуск самой системы, отбрасывая детали, которые можно настроить потом.

Пофиг, что на втором винте не будет загрузчика FreeBSD

От загрузчика (в маленьком разделе GPT) на втором винчестере не нужно отказываться. Они не будут взаимозеркалироваться, но подменит один другого в случае вылета одного винта.

Если места становится мало, покупаю новые винты, делаю на них VDEV (зеркальный)
Добавляю всё это добро: в ранее созданый пул.
Получаю большой зеркальный пул, на котором и система и всё добро.

Ну да. Принцип уяснили. Новые добавляемые VDEV'ы необязательно должны быть зеркалами (mirror), но могут быть и варианты RAIDZ.

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

Я всё руками делал и, честно говоря, не смогу повторить алгоритм запуска FreeBSD с ZFS

Охренеть как всё в этой вашей бесде запущено :D

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

скажу что производительность ZFS напрямую зависит от размера ARC

Производительность записи на ZFS зависит от быстродействия ZIL (достаточно вынести его на отдельный SSD типа SLC небольшого объёма ~16-32 ГБ).

Производительность чтения с ZFS также зависит от наличия/отсутствия L2ARC (желательно организовать этот кэш второго уровня на нескольких MLC SSD на шине PCI-E).

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

Охренеть как всё в этой вашей бесде запущено :D

FreeBSD 8.0-RELEASE в 2009 году ещё не имела инсталлятора на ZFS.

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

так девятка тоже не имеет. или имеет, но я не нашел?

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

Инсталлятор из последних версий FreeBSD не использовал — ничего не могу сказать, как он работает.

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

ну короче авторитетно заявляю, что он научился создавать разметку GPT, но в нем нет ни слова о ZFS. и врядли в 9.1 ситуация поменяется =(

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

Вот чего прочитал:

Для начала, важное замечание: ZFS рассчитан на то, что все девайсы в пуле имеют одинаковый размер. Иначе, например если добавить 2Тб диск в пул из 1Тб дисков, на 2Тб диске в результате окажется в два раза больше данных, и он начнёт влиять на суммарный IOPs системы — алгоритм аллокатора учитывает процент заполнения, а не количество данных в байтах.

Ссылка: http://habrahabr.ru/post/161055/

Ну это как бы КЭП, и в этом нет ничего страшного? Просто тут говорится о том, что данные будут больше собираться на 2tb диске, и туда будет более частое обращение, или это говорит о чём-то более страшном?

P.S. ушёл вытягивать инсталлер FreeBSD 9.1

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

Вначале и предложил делать два пула из попарно-одинаковых дисков. Что не так?

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

Ну да. Ну в этом свете: mdraid + LVM выглядит вкуснее... - Вы не находите?

Считайте: я взял два диска, сделал mdadm raid 1, создал LVM. Потом нужно ещё: создал mdadm из парных дисков любого размера. Растянул LVM, растянул ext4.

В случае чего, эту связку можно даже и в обратную сторону тягать! - То есть на уменьшение тома!

Но с zfs выглядит это так: уменьшить пул нельзя. Разные диски в пул лучше не устанавливать. Дедупликацию мне тут никто не советует. - Так в чём тогда плюс zfs то?

Я реально не знаю, я боюсь на критичных данных пользовать zfs уже...

P.S. я без троллинга.

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

Но с zfs выглядит это так: уменьшить пул нельзя. Разные диски в пул лучше не устанавливать. Дедупликацию мне тут никто не советует. - Так в чём тогда плюс zfs то?

В практичности и надёжности.

Я реально не знаю, я боюсь на критичных данных пользовать zfs уже...

А Ext4 не боитесь?

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