tag:blogger.com,1999:blog-58406786486133926072024-03-21T18:33:51.925+03:00Andrey V. ElsukovЗаметки об администрировании и программировании во FreeBSD.bu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.comBlogger62125tag:blogger.com,1999:blog-5840678648613392607.post-47838641123000717192017-04-04T12:40:00.000+03:002017-04-05T13:06:49.109+03:00Новые модули ядра ipfw_pmod, ipfw_nptv6 и ipfw_nat64
Вчера я закоммитил новый модуль для ipfw - ipfw_pmod, а так же смержил в stable/11 модули ipfw_nptv6 и ipfw_nat64.
Во FreeBSD 11.0 в ipfw было добавлено много нового, и среди прочего - поддержка "внешних действий", или external action. Она представляет собой интерфейс, который даёт возможность в рантайме добавлять и удалять в ipfw дополнительные действия для правил (actions, такие как allow, bu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com2tag:blogger.com,1999:blog-5840678648613392607.post-33840731889016718812017-03-24T16:25:00.000+03:002017-03-24T16:25:34.381+03:00Драйвер для принтера Brother DCP7060D
На прошлой неделе обновил свой рабочий ноутбук. Старенький Lenovo T520 ушёл на покой. Теперь свежая FreeBSD 12.0 установлена на Lenovo X1 Carbon 4th Generation. Пока не всё гладко и особо нет времени глубоко ковыряться, работать можно - этого пока достаточно.
Решил подключить свой старенький принтер Brother DCP7060D. Раньше я уже адаптировал линуксовый драйвер для него, но так как это bu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com0tag:blogger.com,1999:blog-5840678648613392607.post-83128454753506732312017-02-22T17:43:00.000+03:002017-02-25T14:33:52.920+03:00Использование if_ipsec во FreeBSD
Как многие уже знают, во FreeBSD 12.0-CURRENT был добавлен новый сетевой псевдоинтерфейс if_ipsec(4). На первый взгляд кажется, что он выполняет те же самые задачи что и уже существующий десятилетия if_gif(4). Но это не совсем так.
Оба интерфейса предоставляют виртуальный туннель, в который может маршрутизироваться трафик. Оба интерфейса настраиваются подобным образом: при помощи ifconfig(8) bu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com16tag:blogger.com,1999:blog-5840678648613392607.post-89705653406132605382017-02-10T18:39:00.003+03:002017-02-11T02:41:11.499+03:00Отключение проверки на "поддерживаемость" модулей для сетевых карт Intel XL710
Новое поколение сетевых карт Intel 710 серии обслуживается во FreeBSD драйвером if_ixl(4). И как это обычно любит делать Intel, если используемый с картой модуль не находится в "белом" списке производителя, то карта отказывается с ним работать. Во FreeBSD это сопровождается такими сообщениями:
ixl0: Link failed because an unqualified module was detected!
ixl1: Link failed because an unqualifiedbu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com0tag:blogger.com,1999:blog-5840678648613392607.post-32195789989438757772017-01-09T23:15:00.000+03:002017-01-09T23:15:11.275+03:00Новая реализация fastfwd в FreeBSD 11
Не так давно я смержил в stable/11 обновлённую реализацию fastfwd из head/. А сегодня подошло время MFC аналогичной реализации для IPv6. Для тех кто не знает, поясню чем отличается fastfwd от обычной маршрутизации. До выхода 11-ой версии в FreeBSD было две sysctl переменных, управляющих поведением маршрутизатора: net.inet.ip.forwarding и net.inet.ip.fastforwarding. Первая включает собственно bu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com1tag:blogger.com,1999:blog-5840678648613392607.post-32645374761994246332016-12-11T21:09:00.004+03:002016-12-16T10:10:15.879+03:00Тестирование projects/ipsec
Доброго времени суток.
Хочу предложить читателям (если таковые ещё остались) принять участие в тестировании обновлённой реализации IPsec во FreeBSD. Над этим проектом я в той или иной мере работал последние несколько месяцев. До этого я уже делал несколько "подходов" к коду IPsec, но в основном это были мелкие исправления. Затем измнения стали более сложными, что взволновало некоторых bu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com0tag:blogger.com,1999:blog-5840678648613392607.post-1879316845523460352016-01-11T12:41:00.000+03:002016-01-11T12:41:12.614+03:00Восстановление GPT - теперь чуть проще.
Вчера смержил в stable/10 патч, который учит ядро и загрузчик FreeBSD обнаруживать GPT при повреждённом PMBR. У этого есть два эффекта. Во-первых, теперь если повредить первые несколько секторов, то GPT всёравно будет определяться. Не нужно выполнять странных манипуляций с записью /boot/pmbr в первый сектор при помощи dd(1). Второй эффект следует из первого - теперь GPT не уничтожить простым bu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com2tag:blogger.com,1999:blog-5840678648613392607.post-59328018692134462792015-12-08T14:02:00.001+03:002015-12-09T12:48:01.447+03:00if_enc(4) интерфейс во FreeBSD
Ни для кого, наверное, не новость уже, что IPSec во FreeBSD 11 включён в GENERIC ядро. Но вот if_enc(4) туда включать почему-то не стали. Модулем оно загружаться не умеет, а временами его функционал бывает довольно полезен. Поэтому, вслед за if_gre(4) и if_gif(4), я решил переделать и if_enc(4). Теперь в head/ его можно загружать из модуля, а так же выгружать после использования.
Пару слов дляbu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com0tag:blogger.com,1999:blog-5840678648613392607.post-89816174635272797612014-09-03T22:39:00.001+04:002014-09-04T14:11:01.735+04:00Отладка ядра при помощи DTrace
Я не могу назвать себя большим специалистом в использовании DTrace, но время от времени я использую возможности этой технологии для отладки на живой системе. Особенно, когда систему нельзя перезагрузить, чтобы добавить в ядро дополнительные отладочные сообщения. В этой заметке я опишу некоторые способы и скрипты для dtrace. Возможно, кому-то они будут полезны, да и самому мне частенько bu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com1tag:blogger.com,1999:blog-5840678648613392607.post-86585155720511202092014-08-12T16:16:00.000+04:002014-08-12T16:16:45.775+04:00kern.geom.part.mbr.enforce_chs
Сегодня добавил в FreeBSD 11 sysctl kern.geom.part.mbr.enforce_chs, который позволяет отключить автоматическое выравнивание по дорожке диска в MBR. Теперь, если у вас диск с 4k секторами, создаваемый раздел можно будет без проблем выравнять по границам сектора. В 10-ую и 9-ую версию будет MFC, но там это нужно будет отключать с помощью этого sysctl, либо при помощи настройки в loader.conf.
bu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com0tag:blogger.com,1999:blog-5840678648613392607.post-65311386619428151402014-07-01T14:09:00.001+04:002014-07-01T14:09:15.697+04:00Реализация disklabel64 для FreeBSD
В этом посте я хочу рассказать о не так давно добавленной поддержке disklabel64 в GEOM_PART. Эта "таблица разделов" используется в DragonFlyBSD. На сколько я могу судить по коду, используется она там по-умолчанию. Я не являюсь пользователем DragonFlyBSD, но не смотря на это, я подписан на их рассылку для разработчиков, в которую посылаются commit messages. Так как это всё же форк FreeBSD, то ихbu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com0tag:blogger.com,1999:blog-5840678648613392607.post-10803605681921508582013-11-20T22:37:00.000+04:002013-11-20T22:37:02.356+04:00Изменение размера зеркала GEOM_MIRROR
Недавно мне был задан вопрос о том, как можно изменить размер зеркала, созданного при помощи geom_mirror(4), после замены дисков на бОльшие? Честно говоря, самому использовать geom_mirror мне довелось немного, а после появления zfs и совсем как-то перестал. Но посмотрев в код, понял, что простого способа нет.
В итоге требуемый функционал был добавлен и сейчас он уже включён в 11.0-CURRENT. bu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com7tag:blogger.com,1999:blog-5840678648613392607.post-19093208782170632142013-11-12T14:08:00.000+04:002013-11-12T14:08:18.763+04:00Автоматическое изменение размера в GEOM_PART
Некоторое время назад Edward Tomasz Napierala выполнял проект, который позволяет изменять размеры файловых систем без необходимости их размонтирования (при определённых условиях конечно). В результате выполнения этого проекта у GEOM появились новый метод класса g_resize и вспомогательная функция g_resize_provider(). Так же были сделаны соответствующие изменения для некоторых GEOM классов, чтобы bu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com0tag:blogger.com,1999:blog-5840678648613392607.post-17136163962374231872013-04-11T14:00:00.002+04:002013-04-11T16:02:24.052+04:00PCPU счётчики в ядре
Несколько дней назад Глеб Смирнов (glebius@) добавил в ядро FreeBSD 10-CURRENT новое API для работы со счётчиками - counter(9). Счётчики в системе используются для ведения статистики. Обычно это структура данных, значения полей которой изменяются при возникновении тех или иных событий. Например, получение сетевого пакета, обнаружение некорректных данных, подсчёт количества определённых действийbu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com0tag:blogger.com,1999:blog-5840678648613392607.post-13903022671684509032012-12-02T03:00:00.003+04:002012-12-08T23:33:14.284+04:00Что нового?
Начнём с того, что я сменил работу, и теперь она напрямую связана с FreeBSD. Теперь у меня больше времени и возможностей, которые можно направить на улучшение системы. Правда, работодатель рассчитывает, что я буду прикладывать их в другое русло - оптимизация сетевой подсистемы и ipfw. Чем я и занимаюсь :)
Первой ласточкой стало то, чего давно хотелось. Ещё когда я не был коммитером, хотелось bu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com11tag:blogger.com,1999:blog-5840678648613392607.post-10874761510771313152012-09-30T21:14:00.000+04:002012-09-30T21:14:43.723+04:00loader(8): оптимизация и результаты.
Наконец-то я нашёл время и ресурсы на проведение оптимизации в загрузчике системы. Организовал стенд на базе VMWare ESXi, в которой я создал несколько виртуалок с FreeBSD 10, установленных с использованием различных комбинаций таблиц разделов и файловых систем. Расшарил по NFS рабочий каталог с исходниками системы со своей машины, подключил его к виртуалкам и начал отладку... Ну как "отладку", bu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com3tag:blogger.com,1999:blog-5840678648613392607.post-28137768600811141052012-09-01T08:25:00.000+04:002012-09-06T12:36:25.690+04:00FreeBSD mini-summit в Москве
25-го августа в Москве состоялся уже второй саммит разработчиков FreeBSD. Как и в прошлый раз он проходил в офисе компании Рамблер, правда сейчас это уже был новый офис :)
Формат встречи был прежним - доклады, вопросы, затем обсуждения. Так как народу в этот раз было поменьше, а места было побольше, то обсуждения получились интересными и продуктивными.
Первый доклад сделал Максим Евменкин из bu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com3tag:blogger.com,1999:blog-5840678648613392607.post-71683138743644337072012-08-07T00:22:00.000+04:002012-08-07T00:22:00.626+04:00Обновление загрузчика
После долгого перерыва, не дождавшись каких-либо комментариев, я наконец-то закоммитил большую часть изменений в коде загрузчика в head/ ветку.
Немного об изменениях. Было добавлено два программных интерфейса, назовём их PART и DISK. Первый предоставляет функции для работы с различными таблицами разделов: поиск метаданных таблиц разделов, парсинг и формирование списков разделов, получение bu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com7tag:blogger.com,1999:blog-5840678648613392607.post-65827406066922727962012-06-27T16:27:00.001+04:002012-06-27T16:30:19.631+04:00Тестирование патчей для загрузчика
Прошло уже почти три месяца со дня публикации сообщения о патчах к загрузочному коду. И вот, на прошлой неделе я решил заняться этим вплотную. В итоге, создал бранч в SVN, куда стал коммитить свои наработки. Теперь все жалющие принять участие в тестировании могут это сделать :)
Историю изменений можно посмотреть здесь: http://svn.freebsd.org/base/user/ae/bootcode/
Патч относительно 10-CURRENT bu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com4tag:blogger.com,1999:blog-5840678648613392607.post-22607364483964895632012-04-02T18:48:00.000+04:002012-04-02T18:48:28.870+04:00Проблемы в работе zfsloader во FreeBSD
Сначала небольшой оффтопик - поддержка LDM уже включена во FreeBSD 10-CURRENT и в ближайшие пару недель будет перенесена в STABLE. В отличие от первоначальных патчей, текущая реализация умеет работать с дисками, размеченными GPT. А в остальном всё осталось примерно так же.
Теперь о теме сообщения. Возможно некоторые из вас замечали, что при загрузке FreeBSD c ZFS в качестве корневой файловой bu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com10tag:blogger.com,1999:blog-5840678648613392607.post-48380905965179442412012-03-12T15:49:00.001+04:002012-03-12T15:53:02.981+04:00FreeBSD и динамические диски Windows
Некоторое время назад в IRC обсуждалась тема невозможности доступа из FreeBSD к динамическим томам Windows, которые так же известны как тома LDM (Logical Disk Manager). Задача показалась мне интересной и вполне решаемой. В итоге, после проведения "обзора технической литераторы" и известных реализаций, оказалось, что формат метаданных не такой уж и тривиальный. К тому же, нет ниодной официальной bu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com0tag:blogger.com,1999:blog-5840678648613392607.post-21256715750923976142012-02-03T11:51:00.002+04:002012-02-08T11:21:33.997+04:00Проблемы при обновлении с FreeBSD 7+ до 9.0
Почти месяц прошёл со дня выхода FreeBSD 9.0 и уже (только сейчас!) появляются первые жалобы о неудачных обновлениях. Я буду говорить в первую очередь о том, что "сломал" я - это добавление проверок корректности метаданных в GEOM класс PART.
Эти проверки были добавлены более полугода назад. Расскажу (оправдаюсь) для чего они нужны. Во-первых, конечно же, что бы уберечь пользователей от потери bu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com5tag:blogger.com,1999:blog-5840678648613392607.post-2890823509981130612011-11-20T11:58:00.001+04:002011-11-21T10:07:20.876+04:00FreeBSD mini-summit в Москве
В субботу 19-го ноября в Москве, в офисе компании Рамблер прошёл "русскоязычный FreeBSD mini-summit". Организация этого мероприятия произошла довольно спонтанно, буквально три недели назад во внутренней рассылке Глеб Смирнов предложил провести встречу, подобную той, что была летом в Киеве, и вот - собралось почти 30 человек. Кроме коммитеров FreeBSD на саммите были гости из NetBSD, а так же bu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com3tag:blogger.com,1999:blog-5840678648613392607.post-78212899354446774752011-11-08T14:30:00.000+04:002011-11-08T14:31:07.238+04:00Ликбез по UEFI
Многие пользователи ПК имеют представление о том, что такое BIOS, для чего и как он работает. Но в последнее время появилась альтернатива, стремительно вытесняющая BIOS с наших ПК, а на серверном оборудовании уже прочно обосновавшаяся - это EFI и его более современный родственник UEFI.
Extensible Firmware Interface (EFI) впервые был предложен компанией Intel в качестве замены BIOS для своей bu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com5tag:blogger.com,1999:blog-5840678648613392607.post-5631714368676521882011-10-29T20:49:00.001+04:002011-10-29T20:58:40.729+04:00Отчёт: Август - ОктябрьПоследнее время на блог всё не находилось времени. Завал на работе, командировки, проверки, комиссии, отмена перехода на зимнее время... В общем, хочу рассказать обо всём понемногу.
Во-первых, хочу ещё раз поздравить Александра Черникова с награждением коммит битом за его настойчивость в продвижении своих патчей :).
По причине отсутствия времени и заморозки кода коммитил мало. Глядя на архив bu7cherhttp://www.blogger.com/profile/14489123396792252327noreply@blogger.com0