Pull to refresh

Comments 37

ситуация, при которой внеплановый reset или сбой питания сервера FreeBSD приводит к остановке загрузки с настойчивым требованием запустить fsck от руки


Я правильно понимаю, что вы решили, что переехать на zfs проще, чем прописать fsck_y_enable в rc.conf? :)
да, правильно. fsck_y_enable не помогает.
что ж вы с бедным ufs делали? ни разу такого не было, кроме случаев «винту кабздец».
Автору скорее интересно обсудить его успех по ZFS, нежели ваши успехи по UFS :)
А случаи… они бывают такие разные.
да понимаю :)

я юзать в продакшене zfs пока, простите, сцу.
Мы примерно год уже используем, правда только под разделы с данными, саму ОС на ufs пока ставим. Полет нормальный )
тащем-то в бдсм до сих пор актуальна проблема локов при одновременном использовании ufs и zfs на одной машине, можно пошукать в рассылках, были терки. так что может быть у вас полет и нормальный, но, видимо, к производительности нет требований вообще.

да и смысла ставить систему на ufs, а данные на другое не вижу вообще.

ps: переезд на солярис, — правильное решение проблемы производительности zfs в бдсм.
Да ZFS пулы по производительности неплохо нагружены на многих серверах.
На UFS да, особой нагрузки нет.
UFO just landed and posted this here
А почему? Просто последнее время про zfs только хорошести слышу.

Я бы заюзал, но возможности нет :)
Авария на подстанции, переходим на ups, примерно через четыре часа сервер гасится изза падения заряда, ещё где-то через полчаса, собственник помещения запускает генератор но генератора хватает примерно на 3 минуты и изза перегрузки он глохнет, но за это время сервера уже успели подняться, но заряда батареек уже нет. В защиту UFS скажу что админу RHEL востанавливать пришлось значительно дольше.
А у нас ДГУ (дизель-генератор) включается через минуту после того, как гарантированное питание отрубилось. Минуту сбоя питания обычно держат стоечные источники аварийного питания. Отдельно стоящие источники бесперебойного питания включаются, когда уже совсем всё плохо: нету ни гарантийки, ни резервного питания, а часть серверного оборудования выключать ну никак нельзя.
если нет стабильности электропитания, то не важно какая файловая система, жесткие диски могут физически выходить из строя.

но fsck_y помогает вполне, надо лишь выключить к едрене фене SU и возможно некоторые разделы перевести в ro. будет ничуть не хуже. желающим иметь SU, стоит лишь понадеется на gjournal.

zfs конеш добро и радость, особенно по части менеджмента. :)
Soft Updates выключать никак нельзя — без него нарушается семантика транзакций на дисковые устройства.

> но fsck_y помогает вполне

Чем?

Опция background_fsck в rc.conf.local задаёт возможность автоматической проверки в фоне. Опция background_fsck_delay отложит проверку на более позднее время или выключит её совсем.
С fsck_y_enable сервер подниматься после отключения питания будет тем дольше, чем больше информации на дисках, подгруженные сервера с толстыми дисками могут подниматься даже десятки минут, да, они поднимутся, но надо ждать. У меня сервер на двух дисках в gmirror проверялся после вытыкания питания порядка 20 минут. А за это время мы успели получить кучу звонков от юзеров.

На zfs сервер в такой конфигурации поднимается сразу. Я поднимал на zfs сервер с подобной схемой, два диска zpool в mirror. Вытащил один из дисков, загрузился. Система загрузилась быстро, но пару минут тупила. Вырубил питание (именно вырубил без shutdown). Вставил второй диск. Включил сервер. Машинка поднялась сразу, немного потупила, примерно 2-5 минут и стала нормально реагировать на все. В zpool status через час второй диск стал ONLINE.

Мне лично очень нравится возможность юзать все место пула в одном из разделов файловой системы. На ufs часто было, что надо бы пару гиг добавить в /var, а все диски уже разбиты и приходилось как-то выкручиваться. В zfs /var или /usr может занять все свободное место на диске (вернее в пуле). Естественно, нужно помнить, что на корень надо сразу ставить резервирование в 1-2гб.
В 8.2 dedup появился, его можно на весь pool включать.
Не уверен — ZFS Deduplication available in ZFS v21 and higher. В 8.2-RELEASE из коробки v15.
В релизе да, в stable уже мержнули v28 как и в 9ке.
stable стремно на продакшен ставить :)
Фраза достойная занесения в скрижали!
В скрижалях, то есть в Руководстве, уже есть: «FreeBSD-STABLE является нашей веткой разработки, из которой делаются основные релизы. Изменения в этой ветке происходят с разной скоростью, и при этом предполагается, что сначала они были выполнены для FreeBSD-CURRENT в целях тестирования. Однако эта ветка остаётся веткой для разработки, а это значит, что в любой момент времени исходные тексты FreeBSD-STABLE могут оказаться неприменимы для некоторой задачи. Это просто ещё одна ветка при разработке, а не ресурс для конечных пользователей.»
Что еще раз подтверждает, что FreeBSD не для всех.
Я, как нуб со стороны, уверен что STABLE стабильна.

Не, я согласен, что это вопрос принятых обозначений, но всё-таки, обозначения вводят для внесения ясности, а не сумбура, разброса и шатания.
да, вы правы, current намного интересней ;)
А как же багфикс и заплатки? :)
А если вместо ssh можно использовать nc? Я не помню есть ли в Fixit nc… Но было бы проще. Можно тогда сетапнуть дефолтрут и скачать данные сразу в файл.
А вариант еще проще, написать свой инсталляционный скрипт. Убрать sysinstall.
Спасибо за заметку. Никогда не задумывался отходить от sysinstall, и так всё быстро. А такой вариант интересно попробовать.
Я бы ещё рекомендовал разбивать диск gpart'ом с отступом от начала диска, кратному 1Мбайту — это позволит нивелировать проблему 4Кб-секторных винтов, во всё большем количестве появляющихся в продаже.
Это не поможет.
Там надо специальным образом создавать пул ZFS.
Да ладно, каким это специальным? Указанием размера блока?
Есть скрипт от Martin Matuska — zfsinstall. Там предусмотрены разные варианты установки. Только там привязка не по gpt-label :/
Я ему слал патч, где привязка по gpt-label
zfsinstall моей редакции

теперь диски и swap привязаны к label
mfsbsd# zpool status tank
  pool: tank
 state: ONLINE
 scan: none requested
config:

        NAME            STATE     READ WRITE CKSUM
        tank            ONLINE       0     0     0
          gpt/disk-ad8  ONLINE       0     0     0


mfsbsd# cat /mnt/etc/fstab
/dev/gpt/swap-ad8 none swap sw 0 0


P.S. правки через github я не осилил. Не нашел возможности удалять/откатывать свой гавнокод коммиты.
SWAP можно разместить на ZVOL, тогда надобность в отдельной записи в /etc/fstab отпадёт:

% zfs create -V 1Gb poolname/swap
% zfs set org.freebsd:swap=on poolname/swap
% zfs set checksum=off poolname/swap
% swapinfo
Device 1M-blocks Used Avail Capacity
% swapon /dev/zvol/poolname/swap
% swapinfo
Device 1M-blocks Used Avail Capacity
/dev/zvol/poolname/swap 1024 0 1024 0%
%
Можно. ZVOL всегда можно успеть сделать на работающем пуле.
Но я все-таки надеюсь, чтоб как-то креш-дампы получать на ZFS.
А что может быть интересного от креш-дампов в SWAP? Неразработчику системы «бинарный мусор» неочевиден. Я, как пользователь системы, обычно отключаю креш-дампы и вообще, всю отладочную информацию, так как воспользоваться этим я не смогу, а откатиться на предыдущее состояние системы всегда в состоянии.
А мне частенько приходится натыкаться на проблемы и частенько приходится PR заполнять.
Sign up to leave a comment.

Articles