Всем привет. У кого-то ZFS в продакшене на FreeBSD работает? Как впечатления ? -- Sergey Smitienko
У кого-то ZFS в продакшене на FreeBSD работает? Как впечатления ?
Отлично работает уже года 4. Не забывайте только, что ему памяти много надо - не стоит крутить в production меньше чем с 2G RAM (хотя, у меня достаточно успешно работает и на 1G, но с затюненным loader.conf). -- ryzh-ripe
Отлично работает уже года 4. Не забывайте только, что ему памяти много надо - не стоит крутить в production меньше чем с 2G RAM (хотя, у меня достаточно успешно работает и на 1G, но с затюненным loader.conf).
О, а можно пару советов попросить? Я тут строю железку и хочу получить примерно такую конфигурацию: - 2 x 1 Tb в зеркале под систему - 6 x 1 Tb в raid5 под "всё остальное" :) Вот вопрос, зеркало на 1 Tb под систему наверное логично нарезать на ufs2, а как правильно построить один здоровый zfs на массив raid5? Заранее очень спасибо за подсказку :)
On 2011-08-11 7:49 PM, Andrew Stesin wrote:
- 2 x 1 Tb в зеркале под систему - 6 x 1 Tb в raid5 под "всё остальное" :) Вот вопрос, зеркало на 1 Tb под систему наверное логично нарезать на ufs2, а как правильно построить один здоровый zfs на массив raid5?
Диски в JBOD и собрать raidz средствами ZFS. Судя по http://blogs.oracle.com/bonwick/entry/raid_z в сравнении с пятым рейдом raidz не только избавляет от проблемы write hole, но и быстрей. Кстати, на счёт зеркала из двух 1TB дисков "под систему" я бы тоже подумал хорошенько - по моему опыту, при размере ufs2 раздела более нескольких десятков мегабайт процесс fsck при старте после креша превращается в многочасовую пытку, особенно если при этом одновременно ещё и пересобирается зеркало. Я поэтому обычно каждый диск разбиваю на три слайса: - 1 GB, который потом стыкуется в gmirror, под / - X GB, каждый или отдельно в swap, или gmirror и в swap; - остальное - в mirror zpool, и потом уже средствами ZFS нарезается /var, /usr, /tmp и /home. Также можно обойтись без UFS вообще и сделать ZFS-only систему, если разбивать диски через GPT, но я на практике такое не пробовал. -- ryzh-ripe
Hello, Andrew Stesin! On Thu, Aug 11, 2011 at 07:49:03PM +0300 stesin@gmail.com wrote about "Re: [uanog] FreeBSD 8.2 ZFS.":
Отлично работает уже года 4. Не забывайте только, что ему памяти много надо - не стоит крутить в production меньше чем с 2G RAM (хотя, у меня достаточно успешно работает и на 1G, но с затюненным loader.conf).
О, а можно пару советов попросить? Я тут строю железку и хочу получить примерно такую конфигурацию: - 2 x 1 Tb в зеркале под систему - 6 x 1 Tb в raid5 под "всё остальное" :)
Вот вопрос, зеркало на 1 Tb под систему наверное логично нарезать на ufs2, а как правильно построить один здоровый zfs на массив raid5? Заранее очень спасибо за подсказку :)
Советую еще FreeBSD 8.2-stable, а не релиз. В ней много доработок в ядре по поводу дисковой подсистемы и zfs-v28, а не 15 как в релизе. Можно поднять пару zfs-пулов из разных дисков, один пул для системы, а другой для данных. ОЗУ не жалейте. -- Lystopad Olexandr
2011/8/11 Lystopad Olexandr
Советую еще FreeBSD 8.2-stable, а не релиз. В ней много доработок в ядре по поводу дисковой подсистемы и zfs-v28, а не 15 как в релизе.
Спасибо, я еще года с 96 пользуюсь исключительно *-stable и остерегаюсь релизов :) практика показала :) так что это будет 8-stable "as of today" на дату установки, однозначно; потом по мере необходимости пересборка из свежих сорцов
Можно поднять пару zfs-пулов из разных дисков, один пул для системы, а другой для данных. ОЗУ не жалейте.
С пулами буду разбираться и думать, а насчет "ОЗУ не жалеть" - можно подробнее с этого места? напомню, речь идет о raidz на 6 Тб
Скажите, а тоже самое на OpenSolaris можно реализовать?
2011/8/11 Anton Tolchanov
У кого-то ZFS в продакшене на FreeBSD работает? Как впечатления ?
Отлично работает уже года 4. Не забывайте только, что ему памяти много надо - не стоит крутить в production меньше чем с 2G RAM (хотя, у меня достаточно успешно работает и на 1G, но с затюненным loader.conf).
-- ryzh-ripe
-- VEL-[RIPE|UANIC]
On 11.08.2011 13:49, Andrew Stesin wrote:
Отлично работает уже года 4. Не забывайте только, что ему памяти много надо - не стоит крутить в production меньше чем с 2G RAM (хотя, у меня достаточно успешно работает и на 1G, но с затюненным loader.conf).
О, а можно пару советов попросить? Я тут строю железку и хочу получить примерно такую конфигурацию: - 2 x 1 Tb в зеркале под систему - 6 x 1 Tb в raid5 под "всё остальное" :)
Вот вопрос, зеркало на 1 Tb под систему наверное логично нарезать на ufs2, а как правильно построить один здоровый zfs на массив raid5? Заранее очень спасибо за подсказку :)
UFS не нужен. Зачем тебе два разных дисковых cashe для UFS и ZFS ? И каждый хочет памяти... Отдельные винты для системы тоже сомнительно, но случаи разные бывают, решай сам. Каждый винт в JBOD, склеивать на уровне контроллера в RAID5 не надо. FreeBSD бери 8-STABLE. Диски в GPT размечай. Вот хороший пример как GPT разметку строить: http://www.opennet.ru/tips/info/1844.shtml Там только пару неточностей есть потому как статья старая, для 8-STABLE ни make.conf ни конфиг ядра по сравнению в default настройками править не надо. У меня несколько лет уже ZFS используется. Характерный пример - бекапный сервер куда я по ночам сбрасываю резервные копии виртуальных машин Vmware. После upgrade на ZFS v28, коефициент дедупликации 13 (!!) и еще 2.5 на компресии. Памяти надо много, если будешь компрессиию и дедупликацию использовать то минимум 8Gb а еще лучше 16. И также для дедупликации и компрессии нужен просессор чем быстрее тем лучше. ZFS очень любит память и процессор. И любит их непрерывно... Глюки на которые я наступал: Загрузочный массив из 4 винтов. Я с него грузился. В какой-то момент решил переставить его с интелловских портовых SATA на LSI 1068E (прошитый в TI). И опаньки, к моему немерянному изумлению не то что не загрузилось а еще и посыпалось ошибками в большом количестве. Переставил обратно на ICH10, не грузится. Чинил с флешки при помощи: zpool import -nfFX zpool import -fFX Долго, часов 15 тыгыдымкало. Потеря данных за последние 37 сек. Всё остальное восстановилось. Другой раз, я загрузочный pool поставил в gzip-9 и перекомпилял ядро. После reboot понял что с gzip не грузимся. Опять пришлось с загрузочной флешки чиниться. В общем впечатления от ZFS очень положительные. Но надо уметь готовить. -- Andrew Biryukov amb@amb.kiev.ua
2011/8/11 Sergey Smitienko
Всем привет. У кого-то ZFS в продакшене на FreeBSD работает? Как впечатления ?
Вполне себе живет на ftp.ua.freebsd.org raidz, чувствует себя великолепно. Из хинтов: - размечай диски GPT (не забывая выровнять по 4к, а еще лучше по 128к - в надежде на SSD :>) - pool собирай на метках, а не на физических устройствах, чтобы упростить тусовку между контроллерами, если понадобится - памяти надо не меньше 4Gb, а лучше 8Gb - чем больше памяти, тем быстрее zfs - только amd64, на i386 адекватно жить не будет - если памяти будет 4 Gb - не забываем насильно включить prefetch: vfs.zfs.prefetch_disable=0 в loader.conf - zfs почему-то оно считает, что все-таки меньше 4Gb стоит :> - довольно хороша схема stripe over 2xRAID-Z
On Thu, Aug 11, 2011 at 05:40:53PM +0300, Sergey Smitienko wrote:
Всем привет. У кого-то ZFS в продакшене на FreeBSD работает? Как впечатления ?
"работает" - вот пока все... raidz2 - тормозит порой не по детски, там где нужна производительность - зеркало из 4х дисков :). И все равно фигня (ну, 300-400 iops с диска вроде и видно - но "куда они деваются" - непонятно :)). Короче - SSD для нее актуально очень, и патч для ashift=12 (для 4КБ блоков). Самое занятное - если сжатие использовать на SSD - ashift пришлось чуток уменьшить, т.к. recordsize данных должен помещаться в блок ФС, иначе они займут 2 блока. Большой recordsize = офигенный CPU&memory bandwidth overhead при случайном доступе, меньше - может не оптимально влезать в блок = перерасход места/ресурса - но в солярке те же грабли. в 9-current когда-то натыкался на необъяснимый затык после 100 дней аптайма (+-), попытка ls, например, зависала - как и любое другое обращение к ФС. watchdogd сполняющий df - оч помог :). 32бит - лучше не пытайтесь, в продакшн не жизнеспособно. -- Best regards, Paul Arakelyan.
On Thu, Aug 11, 2011 at 11:10:51PM +0400, Lystopad Olexandr wrote:
Hello, Andrew Stesin!
On Thu, Aug 11, 2011 at 07:49:03PM +0300 stesin@gmail.com wrote about "Re: [uanog] FreeBSD 8.2 ZFS.":
Отлично работает уже года 4. Не забывайте только, что ему памяти много надо - не стоит крутить в production меньше чем с 2G RAM (хотя, у меня достаточно успешно работает и на 1G, но с затюненным loader.conf).
О, а можно пару советов попросить? Я тут строю железку и хочу получить примерно такую конфигурацию: - 2 x 1 Tb в зеркале под систему - 6 x 1 Tb в raid5 под "всё остальное" :)
Вот вопрос, зеркало на 1 Tb под систему наверное логично нарезать на ufs2, а как правильно построить один здоровый zfs на массив raid5? Заранее очень спасибо за подсказку :)
Советую еще FreeBSD 8.2-stable, а не релиз. В ней много доработок в ядре по поводу дисковой подсистемы и zfs-v28, а не 15 как в релизе. что означает, что надо будет для рекавери иметь рядом "поновее" сборку и диск с релизом ничем не поможет. Или на релизе создать все ФС...
ZFS-only очень плохо тем, что если чего приапгрейде ломается - так до исходников хрен добраться будет :). А libzfs и ядро запросто могут рассинхронизироваться. 10-20ГБ отрезать от начала диска и либо миррор, либо я просто копию раздела на другие диски кидаю - при неудачном апгрейде достаточно грузануться с другого диска. Одно доп. телодвижение при замене диска в массиве или созданию массива из новіх дисков - запись MBR на диск из файла/другого диска.
Можно поднять пару zfs-пулов из разных дисков, один пул для системы, а другой для данных. ОЗУ не жалейте. Полезно пулов вагончик поднимать. Ситуации очень разные бывают, производительность дисков в начале и в конце разная, seek через весь диск - тоже не 0. У нас, например, основное на зеркале 4х живет, как сказал один сотрудник - "это что, для того если что, если что, если что ?" "всякий мусор" - raidz2. Я "везучий", и у меня были вылеты 2-х из 3х дисков, и даже в одном датацентре 3 из 4х теряли :).
ОЗУ - сейчас копейки стоит 16ГБ, "вот и поставьте". Дома 16ГБ - дык почти не задумываюсь, чего запущено... -- Best regards, Paul Arakelyan.
On Thu, Aug 11, 2011 at 10:24:53PM +0300, Vladimir Velychko wrote:
Скажите, а тоже самое на OpenSolaris можно реализовать? ХЕРОВО. шедулер в солярке - точно ГАВНО. Поставьте Х и поиграйте музыку. Если неубедительно - включите в пуле сжатие gzip-9 и туда чего-нить побольше писните, попутно напустив пинг. пинги потеряются. А уж hyperthreading включить - добавит остроты ощущений.... Короче, заклинивания ядра и непонятно что делать с firewall/ppp всякими - это первое, что приходит в голову.
Отлично работает уже года 4. Не забывайте только, что ему памяти много надо - не стоит крутить в production меньше чем с 2G RAM (хотя, у меня достаточно успешно работает и на 1G, но с затюненным loader.conf). Ну - на 32 бит это не всегда помогает, просто крэши системы не критичны для данных :)
-- Best regards, Paul Arakelyan.
On Sat, Aug 13, 2011 at 09:10:02PM -0300, Andrew Birukov wrote:
On 11.08.2011 13:49, Andrew Stesin wrote:
Вот вопрос, зеркало на 1 Tb под систему наверное логично нарезать на ufs2, а как правильно построить один здоровый zfs на массив raid5? Заранее очень спасибо за подсказку :)
UFS не нужен. Зачем тебе два разных дисковых cashe для UFS и ZFS ? И каждый хочет памяти... Не нужен - только если есть с чего грузануться/починить в произвольный момент. Если нет - то /usr/src и /usr/obj весьма полезно на UFS иметь. Если UFS в работе мучать никто не будет (syslogd мож только) - то и памяти оно особо не сожрет.
У меня несколько лет уже ZFS используется. У меня ещё FreeBSD 8.0-CURRENT #0: Thu Apr 17 2008 живет в одном месте. Виснет иногда, хз почему - там в сервере за 50С температура дисков запрыгивает порой :), но вообще-то грузилово там - UFS в основном, ZFS - только сложить какие-нить "редко-нужные" данные.
Характерный пример - бекапный сервер куда я по ночам сбрасываю резервные копии виртуальных машин Vmware. После upgrade на ZFS v28, коефициент дедупликации 13 (!!) и еще 2.5 на компресии. Дык - "специфика" :)
И также для дедупликации и компрессии нужен просессор чем быстрее тем лучше. ZFS очень любит память и процессор. И любит их непрерывно... Ага. У меня 2 ядра i7 жрёт сжатие (gzip-3, кажется), и столько же - кучка других процессов :). Паралелится всё чудно, хоть на 8 ядер (dd на раздельчик с gzip-9).
Глюки на которые я наступал: Загрузочный массив из 4 винтов. Я с него грузился. LSI 1068E (прошитый в TI). И опаньки, к моему немерянному изумлению не Кривой контроллер может ухерачить пул в Ж. На солярке, похоже, Ж будет больше :).
Чинил с флешки при помощи: zpool import -nfFX zpool import -fFX "Не знал", а жаль... Надо почитать.
Другой раз, я загрузочный pool поставил в gzip-9 и перекомпилял ядро. Не знаю, как во фре - но в солярке ядро крэшилось, если у данных на диске CRC совпадает/отсутствует, а gzip их не может расжать из-за ошибок данных. Красота - смотрим файл, система падает мгновенно - хорошо хоть в логах понял, где грабли... После reboot понял что с gzip не грузимся. хи-хи. Вообще-то сжатие же "на лету" меняется - хоть каждую секунду меняй. Поэтому пол-файла может быть сжато одним методом, пол-другим.
Опять пришлось с загрузочной флешки чиниться. во-во :(
В общем впечатления от ZFS очень положительные. Но надо уметь готовить. Надо или думать, что делаешь, и проверять "перед тем, как", или иметь вагон времени для ZFS-only. Типичная процедура "собери ядро+мир-поставь ядро-ребут-поставь мир-ребут" не работоспособна в определенных обстоятельствах для ZFS-only. И удаленно ZFS-only использовать нельзя, если туда ногами дойти - проблема.
-- Best regards, Paul Arakelyan.
В общем впечатления от ZFS очень положительные. Но надо уметь готовить. Надо или думать, что делаешь, и проверять "перед тем, как", или иметь вагон времени для ZFS-only. Типичная процедура "собери ядро+мир-поставь ядро-ребут-поставь мир-ребут" не работоспособна в определенных обстоятельствах для ZFS-only. И удаленно ZFS-only использовать нельзя, если туда ногами дойти - проблема.
А почему ZFS-only нельзя использовать удаленно ? В чем принципиальная разница по сравнению с UFS? У zfs-only я вижу следующие преимущества: 1. Вся свободная память идёт в zfs. Даже если UFS хочет "немного", то его всё равно жалко, потому что пользы от этого никакой. 2. В ядре поддержку UFS выкидываем. 3. Нужно знать только навыки по администрированию одной ZFS а как там UFS устроена можно забыть навсегда.. А недостатков у zfs-only не вижу никаких.... -- Andrew Biryukov amb@amb.kiev.ua
On Mon, Aug 15, 2011 at 09:19:22AM +0300, Alexandr Kovalenko wrote:
2011/8/11 Sergey Smitienko
: Всем привет. У кого-то ZFS в продакшене на FreeBSD работает? Как впечатления ?
Вполне себе живет на ftp.ua.freebsd.org raidz, чувствует себя великолепно.
Из хинтов: - размечай диски GPT (не забывая выровнять по 4к, а еще лучше по 128к - в надежде на SSD :>) SSD - 512k/1M вообще-то страницы - винда по 1МБ выравнивает. Вообще наткнулся на бяку, виндовый diskpart не может сделать 4 раздела одинакового размера... Как я не бился с ним... Во фре gpart - аналогично.
- pool собирай на метках, а не на физических устройствах, чтобы упростить тусовку между контроллерами, если понадобится это пофиг, таскаю пулы между фрёй и соляркой, и контроллеры тосую "как в голову придёт", и диски на каналах - никаких проблем... максимум - грохнуть кэш-файл где описано "где искать".
- памяти надо не меньше 4Gb, а лучше 8Gb - чем больше памяти, тем быстрее zfs Иллюзия, если префетчер не включать - а он всё "лишнее" выжрет. только amd64, на i386 адекватно жить не будет Точнее, система будет то вешаться, то крэшиться :)
- если памяти будет 4 Gb - не забываем насильно включить prefetch: vfs.zfs.prefetch_disable=0 в loader.conf - zfs почему-то оно считает, что все-таки меньше 4Gb стоит :> Нафиг надо... Часто это просто приведет к излишней нагрузке на диски и жору памяти, конечно у вас нагрузка специфичная - ничего кроме раздачи... С случайным доступом - только мешать будет.
- довольно хороша схема stripe over 2xRAID-Z Это типа поиграем с теорией вероятности ?
-- Best regards, Paul Arakelyan.
2011/8/20 Paul Arakelyan
On Mon, Aug 15, 2011 at 09:19:22AM +0300, Alexandr Kovalenko wrote:
2011/8/11 Sergey Smitienko
: Всем привет. У кого-то ZFS в продакшене на FreeBSD работает? Как впечатления ?
Вполне себе живет на ftp.ua.freebsd.org raidz, чувствует себя великолепно.
Из хинтов: - довольно хороша схема stripe over 2xRAID-Z Это типа поиграем с теорией вероятности ?
Не понял посыла. Четности в такой схеме более чем достаточно. Смысл stripe over N x RAID-Z - увеличение объема FS при необходимости использования RAID-Z для надежности. Сам raidz расширять нельзя. Единственный минус - больше места уходит на четность, что, при стоимости современных HDD - не волнует, зато расширять место можно как попало.
On Sat, Aug 20, 2011 at 01:03:19AM +0300, Alexandr Kovalenko wrote:
2011/8/20 Paul Arakelyan
: On Mon, Aug 15, 2011 at 09:19:22AM +0300, Alexandr Kovalenko wrote:
2011/8/11 Sergey Smitienko
: Всем привет. У кого-то ZFS в продакшене на FreeBSD работает? Как впечатления ?
Вполне себе живет на ftp.ua.freebsd.org raidz, чувствует себя великолепно.
Из хинтов: - довольно хороша схема stripe over 2xRAID-Z Это типа поиграем с теорией вероятности ?
Не понял посыла. Четности в такой схеме более чем достаточно. Ну, вероятность выпадения сразу 2-х дисков в такой схеме сразу раза в 2 возрастает :).
Смысл stripe over N x RAID-Z - увеличение объема FS при необходимости использования RAID-Z для надежности. Сам raidz расширять нельзя. Хм, обычно "тыкать некуда". Или raidz из 3-х дисков?
Единственный минус - больше места уходит на четность, что, при стоимости современных HDD - не волнует, зато расширять место можно как попало. Хм, я меньше raidz2 не использую... И переезд с такого - вообще не представляю, то есть "долго, очень долго".
-- Best regards, Paul Arakelyan.
2011/8/20 Paul Arakelyan
On Sat, Aug 20, 2011 at 01:03:19AM +0300, Alexandr Kovalenko wrote:
2011/8/20 Paul Arakelyan
: On Mon, Aug 15, 2011 at 09:19:22AM +0300, Alexandr Kovalenko wrote:
2011/8/11 Sergey Smitienko
: Всем привет. У кого-то ZFS в продакшене на FreeBSD работает? Как впечатления ?
Вполне себе живет на ftp.ua.freebsd.org raidz, чувствует себя великолепно.
Из хинтов: - довольно хороша схема stripe over 2xRAID-Z Это типа поиграем с теорией вероятности ?
Не понял посыла. Четности в такой схеме более чем достаточно. Ну, вероятность выпадения сразу 2-х дисков в такой схеме сразу раза в 2 возрастает :).
Я наверное что-то пропустил из новшеств в теории относительности. Ну или ты, Паша, меня неправильно понял :) Я имел в виду вот такую схему: NAME STATE READ WRITE CKSUM storage ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 gpt/storage0 ONLINE 0 0 0 gpt/storage1 ONLINE 0 0 0 gpt/storage2 ONLINE 0 0 0 raidz1-1 ONLINE 0 0 0 gpt/storage3 ONLINE 0 0 0 gpt/storage4 ONLINE 0 0 0 gpt/storage5 ONLINE 0 0 0 Четности тут в 2 раза больше, чем если был один raidz1 из 6 дисков.
On Sun, Aug 21, 2011 at 01:30:52PM +0300, Alexandr Kovalenko wrote:
2011/8/20 Paul Arakelyan
: Ну, вероятность выпадения сразу 2-х дисков в такой схеме сразу раза в 2 возрастает :).
Я наверное что-то пропустил из новшеств в теории относительности. Ну или ты, Паша, меня неправильно понял :) Тут не только теория относительности, тут ещё что-то из курса конструирования электроники с механикой :) и "везучести".
или ты, Паша, меня неправильно понял :)
Я имел в виду вот такую схему: Я так и понял, потом "не открутишь" пол-массива, даже если в них ничего не писать.
NAME STATE READ WRITE CKSUM storage ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 gpt/storage0 ONLINE 0 0 0 gpt/storage1 ONLINE 0 0 0 gpt/storage2 ONLINE 0 0 0 raidz1-1 ONLINE 0 0 0 gpt/storage3 ONLINE 0 0 0 gpt/storage4 ONLINE 0 0 0 gpt/storage5 ONLINE 0 0 0
Четности тут в 2 раза больше, чем если был один raidz1 из 6 дисков.
Да, но только она к половинкам массива относится. Т.е., в лучшем случае столько же, сколько было, но в целом надежность упала. Если предположить, что вероятность вылета у всех дисков - одинакова (строго говоря, у новых в течении первого полугода...года - гораздо выше - отсюда пляшут гарантийные сроки на электронику), то, "при особой удачливости", можно получить вылет 2х дисков в половинке, и тогда "ОЙЙЙ". У меня был случай с "похреновело 2/3 raid3" - еле выкрутился, там всего-то несколько секторов упали, и кажись (не уверен) даже не под данными. Короче, raidz2 и бэкап с рестором или просто 2 независимых пула делать. Для линейного чтения больших файлов raidz2 вроде вменяемую производительность дает (хотя, нередко оффлайн одному диску её повышает, разработчики-недоработчики :)), для случайного доступа и мелких файлов - только зеркала/SSD :(. -- Best regards, Paul Arakelyan.
participants (9)
-
Alexandr Kovalenko
-
amb@amb.kiev.ua
-
Andrew Birukov
-
Andrew Stesin
-
Anton Tolchanov
-
Lystopad Olexandr
-
Paul Arakelyan
-
Sergey Smitienko
-
Vladimir Velychko