Рубрика «freebsd» - 7

Аннотация

Одним из вариантов повышения стабильности подключения к сети Интернет является использование двух внешних каналов связи, что подразумевает автоматическое переключение между ними. В статье кратко рассмотрены некоторые варианты решения данной задачи. Предложен свой способ решения с использованием скриптов на языке bash в ОС FreeBSD, приведены инструкции по созданию конечной системы и исходные тексты необходимых для этого скриптов.
Читать полностью »

Офисный переключатель интернета
Провели нам в офис вторую линию интернета. Так как основная (дальше я буду называть её первой) хоть и хороша по-скорости, но ограничена по трафику. Вторая немного медленнее, но безлимитна. Днём вторая линия почти свободна и выдаёт хорошую скорость, поэтому и была выбрана основной для рабочего дня. К вечеру скорость сильно падает из-за нагрузки на канал и приходится переключаться на первую. Так бывает не всегда, но достаточно часто.
Потому возник вопрос в переключении линий. Роутером у нас трудится обычный компьютер с FreeBSD на борту. Городить хитрую логику проверки скорости канала смысла не было, к тому же нужна была индикация активного подключения. Настроив переключение каналов на консольные команды с помощью sh скриптов в папке /bin, возникли 2 проблемы:
1. Доступ к консоли только у админа, а он не всегда на месте, да и дёргать ради переключения каналов тоже не очень удобно.
2. Нет индикации актвного, на данный момент, подключения.
Поэтому было принято решение сделать переключатель физическим и снабдить идикаторами.
Читать полностью »

Часто возникает ситуация, когда надо быстро оценить, чем занимается ваш веб-сервер. Иногда для успокоения «вроде не он». Когда на сервере один апач, один сайт, нагрузка небольшая — проблем нет. Зашел, top посмотрел. /server-status посмотрел, tail -f на логи сделал, помедитировал — и обычно всё понятно. Однако бывает ситуация, когда сайтов много, много самих apache (почти все ОС сейчас из коробки умеют подымать несколько веб-серверов apache, но этим редко пользуются почему-то). Бывает ситуация, когда apache уже и ответить не может. Как было бы хорошо, хотя бы примерно прикинуть, что делают (или уже делали) воркеры апача. Представьте — делаете вы ps -aux, а у вас там — кто какие URL запрашивает, какой ширины канал занят, какова скорость работы — ня!

Я достаточно давно использую патч для apache, который после разбора строки запроса пишет в имя программы IP, откуда был запрос, то, что пришло в заголовке Host и саму строку запроса. Но этот двухстрочный патч был написан 12 лет назад для Apache версии 1.3. А потом руки не доходили. Тем более, с того времени появилось множество (я за пять минут нашел как минимум два) разновидностей модулей для тех целей, для более новых версий Apache. Однако, со временем мне стало маловато просто строк запросов. И… я написал свой модуль.
Читать полностью »

В этой статье я опишу создание файл-сервера с установленной FreeBSD 9.2 (Samba-3.6) с авторизацией в домене Windows 2003.

Когда я впервые поднимал файл-сервер на FreeBSD, наткнулся на множество проблем, решение которых приходилось долго искать по тематическим сайтам и форумам. Поэтому здесь на каждом этапе будут описаны типичные проблемы и их решения. Думаю, многим эта статья поможет разрешить некоторые вопросы.

image
Читать полностью »

В основном про модем и про работу в разных ОС с интимными подробностями.
Режимы работы: HiLink, NCM (NDIS), modem (RAS).
Что и зачем нужно крутить в Windows и FreeBSD для того чтобы завёлся.
E3276 — тоже касается, железо аналогичное, прошивки совместимы.

image

Читать полностью »

В современных десктопных и (в особенности) мобильных процессорах применяется целый рад энергосберегающих технологий: ODCM, CxE, EIST и др. Сегодня нас будет интересовать, пожалуй, самая высокоуровневая из них: гибкое управление частотой и напряжением процессорного ядра во время работы — Cool 'n' Quiet, PowerNow! у AMD и Enhanced SpeedStep (EIST) у Intel.

Чаще всего пользователю компьютера или ноутбука достаточно просто включить (чаще — не выключать) поддержку той или иной технологии в BIOS и/или операционной системе — никакой тонкой настройки обычно не предусмотрено, хотя, как показывает практика, она может оказаться весьма полезной. В этой статье я расскажу о том, как можно управлять рабочим напряжением ядра процессора из операционной системы (на примере Intel Pentium M и FreeBSD), и зачем это может понадобиться.

Несмотря на большое количество руководств, редко где встречается обстоятельное описание технологии Enhanced SpeedStep с точки зрения операционной системы (а не конечного пользователя), особенно на русском языке, поэтому значительная часть статьи посвящена деталям реализации и носит в некоторой степени теоретический характер.

Надеюсь, статья окажется полезной не только пользователям FreeBSD: мы также немного коснемся GNU/Linux, Windows и Mac OS X. Впрочем, в данном случае конкретная операционная система имеет второстепенное значение.
Читать полностью »

Вводная

В СУБД PostgreSQL есть такое интересное техническое решение — перед тем как собственно начать что то менять в файлах самой базы данных СУБД пишет уже переведенные во внутренний формат команды в специальный журнал — Write-Ahead Log, а после успешного завершения транзакции делает в этом журнале пометку. Сделано это было для восстановления после сбоев, но в итоге пытливый ум разработчиков дошел до идеи использовать этот журнал для резервирования и репликации. В принципе логично, все ходы в нём записаны, более того можно не просто восстановить данные из бэкапа, но и восстановить состояние базы на определенный момент времени, прервав проигрывание записей WAL-лога в нужный момент.

Однако давайте рассмотрим такой сценарий — допустим в понедельник вы сделали базовый бэкап и запустили архивацию WAL-логов, в среду вы выполнили запрос на удаление с ошибочной маской, а обнаружили это только в пятницу, когда менеджер сообщил об исчезновении какой то нужной ему записи. В данной ситуации мы можем только восстановиться из бэкапа до среды, потеряв всю работу менеджеров за четверг и пятницу.

Возникает логичный вопрос, а нельзя ли сделать проигрывание WAL-логов с понедельника по пятницу, при этом исключив наш «ошибочный» запрос?

В обычной ситуации я ограничился бы вопросом на форум, но у меня было 2 дистрибутива FreeBSD, 10 тарболлов с исходниками PostgreSQL разных версий, 10Гб места на винте, gcc, две относительно незагруженных недели, а также текила, ром, ящик пива и обрывочные воспоминания о синтаксисе языка C. Не то чтобы это был необходимый запас для решения, но раз уж заглянул в исходные коды, то сложно остановиться…

Читать полностью »

Аннотация

Хотя один из героев второго плана — ИК-порт на материнской плате, не стану я рассказывать про пульты от телевизоров и переключение ими треков в любимом медиаплеере. В продолжение истории про сервер FreeNAS, построенный из старого железа, я расскажу, как снабдить его столь же нехитрым бортовым контроллером с последовательным портом (консолью) поверх IP (Serial-over-LAN), дистанционным сбросом (RESET) и управляемым питанием. Спрашивается: зачем? Ведь *nix и так неприхотлив в дистанционном управлении: включил тот же SSH и управляй себе на здоровье. Но что будет при аварии? Стартовом сбое операционной системы? Что, если надо нажать RESET? Сделать апгрейд системы? Или запустить fsck в single user? Или восстановить спиленный сук неверно настроенный firewall? Не ехать же на площадку каждый раз, подключать монитор, клавиатуру и торчать ночью в офисе на регламентных работах… или мозолить глаза днём сердитому Бизнесу.

Ещё один NAS своими руками, часть 4: призрак Чернобыля

Я давно понял, что лень — основной двигатель человеческого прогресса. Наверное, самые изящные формы лени встречаются в самой прогрессивной области: сфере информационных технологий, где лень уже часть профессии. Это мы внедряем сложные helpdesk-регламенты, чтобы не устанавливать пользователям нужные программы. Это мы два дня отлаживаем скрипт, чтобы потом сэкономить себе полчаса. Это мы управляем рабочим столом в соседней комнате, используя для этого сервер на соседнем континенте. Это мы придумали мораторий на работы, чтобы отдыхать ещё за неделю до Нового Года. Кто это там ждёт лифт в вечерний час пик, чтобы чинно спуститься на нём со второго этажа на первый? Бизнес снисходительно зовет нас айтишниками, но мы гордо величаем себя Инженерами ИТ…

Напрашивается устройство, часто именуемое off-band (baseboard) management controller, или автономный бортовой контроллер дистанционного управления. Это такая серебряная посеребрённая пуля, уменьшающая чрезмерные нагрузки на священный сисадминский зад. По функциям наше изделие близко к IPMI за некоторым вычетом, и до настоящих серверных продуктов вроде iLO или DRAC тут, конечно, далеко. Да, лучше купить готовый контроллер за половину стоимости старого компьютера (или серверную платформу за пятикратную стоимость), если того требует важность данных и связанные риски. Я же собрал рабочее устройство немногим дороже $70, которое к моменту публикации поста успело выручить меня уже несколько раз, чего и всем желаю.

Используете старый ПК-сервер Linux дома или в офисе? Некому нажать RESET? Не хватает денег на серверную платформу? Возможно, вы узнаете новые способы упростить себе жизнь. Программировать почти не будем, паяльник и Хор Друидов не потребуются, зато вспомним весёлые 90-е. Микроэлектроника — это просто!

Читать полностью »

Зачастую возникает необходимость принять аудиосигнал с множества несвязанных устройств и выдать полученный сигнал на множество несвязанных акустических систем. Многие делают это через медиаматрицы BiAMP, Kramer в связке с управлением через Kramer,Palantir и т.д., но это оборудование стоит денег, а деньги есть не всегда.

Осмелюсь описать бюджетный вариант, который в базовом функционале не уступает вышеописанным продуктам. А с точки зрения управления может быть более гибок.
В проекте используется 15 медиасерверов(Windows 7) с каждого из которых идёт свой видеоряд отображаемый на плазмах и проекторах, а также аудиопоток сопровождающий видеоряд. Также имеется 3 акустические системы на которые аудиопоток теоретически можно вывести.
Читать полностью »

Бенчмарк HTTP серверов (С/C++) в FreeBSD

Проведено сравнение производительности ядер HTTP-серверов, построенных с использованием семи C/C++ библиотек, а также (в познавательных целях) — других готовых решений в этой области (nginx и node.js).

HTTP-сервер — это сложный и интересный механизм. Есть мнение, что плох программист, не написавший свой компилятор, я бы заменил «компилятор» на «HTTP-сервер»: это и парсер, и работа с сетью, и асинхронность с многопоточностью и много чего еще....

Тесты по всем возможным параметрам (отдача статики, динамики, всевозможные модули шифрования, прокси и т.п.) — задача не одного месяца кропотливой работы, поэтому задача упрощена: будем сравнивать производительность ядер. Ядро HTTP-сервера (как и любого сетевого приложения) — это диспетчер событий сокетов и некий первичный механизм их обработки (реализованный в виде пула потоков, процессов и т.п.). Сюда же можно отнести парсер HTTP-пакетов и генератор ответов. На первый взгляд, все должно свестись к тестированию возможностей того или иного системного механизма обработки асинхронных событий (select, epoll и т.п.), их мета-обёрток (libev, boost.asio и др.) и ядра ОС, однако конкретная реализация в виде готового решения дает существенную разницу в производительности.

Был реализован свой вариант HTTP-сервера на libev. Конечно, реализована поддержка небольшого подмножества требований пресловутого rfc2616 (вряд ли ее полностью реализует хоть один HTTP-сервер), лишь необходимый минимум для соответствия требованиям, предъявляемым к участникам данного тестирования,
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js