Много серверов в стойках

Отказоустойчивая система — это очень легко, на самом деле. Залог успеха — вменяемая архитектура. Но может так случится, что заказчик не умеет в архитектуру. От слова «совсем». А его программисты не умеют в хороший код и лаконичные решения. Но уж очень они хотят получить защищённый от отказа оборудования вычислительный комплекс, не содержащий «специфических» решений (типа внешних дисковых контроллеров с двумя target-каналами). Понятно, что речь идёт о кластере из двух машинок с DRBD. И надо это так сделать, чтобы не влипнуть в настройку кособокого ПО заказчика… Короче, нужно разместить «корень» (корневой раздел) на DRBD! Попробуем собрать подобное решение? Для этого нам нужны две машины схожей конфигурации. Требуется заранее определится с сетевыми именами машин и их адресацией. В примере будут фигурировать хосты[…]

Vim-gtk с perl-документом

Однажды сильно припёрло написать свой dhcp-сервер. Для обслуживания кучи relay’ев. Функционал полный был даже не нужен. Точнее так: нужно было, чтобы он до конца не был реализован. Например, не нужно было сохранять время аренды адреса, но нужно было назначать параметры клиентам в зависимости от номера vlan’а, откуда к нам перенаправлен запрос. И решено было всё это написать на perl, благо даже модуль есть специальный — Net::DHCP::Packet. Так как, фактически, соотношение номера vlan’а и сетевая адресация происходили в определённой известной зависимости, своя реализация dhcp-сервера была выполнена в формате «запустил и забыл». Никакой необходимости в изменении конфигурации на лету. Просто незачем менять конфигурацию. А ещё отсутствовал ввод-вывод на диск (не надо было писать журнал), так что он (dhcp-сервер) как был запущен, так[…]

Первым постом поставим рецепт для поваренной книги! А то тут недавно аж на боевые сервера пришлось ломится, чтобы посмотреть, как оно настроено… Итак, по-умолчанию система под управлением ОС GNU/Linux отвечает на любые ARP запросы, полученные на любых «поднятых» интерфейсах, лишь бы они казались ей запросом «локального» IP-адреса. Это может вызвать ряд проблем, если это сервер виртуализации, например. Ведь как мы будем объяснять клиенту, что ему нельзя использовать «определённые» адреса… Короче, берём и скармливаем в sysctl следующие параметры: net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2