Ubuntu 8.04 LTS Server Edition супротив Microsoft Virtual Server 2005

Мне всегда нравилась виртуализация от Microsoft благодаря её простоте использования и бесплатности. Когда мне нужно запустить на одном сервере несколько разных ОС, я всегда использую MS Virtual Server и совершенно не боюсь этого делать в Production.

А еще мне все больше нравится Ubuntu как ОС, когда мне нужен Unix. Например, я столкнулся с проблемой неправильности обработки русских тегов на моём блоге под FreeBSD-7.0, и решил попробовать поднять WordPress на Ubuntu в виртуальной машине.

Это оказалось совсем не просто. Если FreeBSD-7.0 устанавливалась в виртуальную машину без проблем и, по сравнению с реальным компьютером, надо было только решить проблему четкости работы часов, то с Ubuntu все пошло гораздо тяжелее. Виснет инсталляция, виснет ядро после инсталляции, опять же не работают правильно часы. Не буду вдаваться в подробности, а просто опишу как же все таки установить Ubuntu. Кстати кроме Ubuntu Server Edition существует еще и Ubuntu JeOS – специальная сборка Ubuntu для виртуальных машин. JeOS поставилась в виртуальную машину без особых проблем, но её ядро не увидело сетевой карты. Мне показалось что решить проблему со сменой или перекомпилированием ядра тяжелее чем заставить Server Edition, которая определяла сеть нормально, работать. Итак, последовательность такая:

Создаем виртуальную машину, подключаем образ диска, настраиваем автозапуск виртуальной машины. Запускаем виртуальную машину, в её биосе можно ничего не менять. Запускаемся с CD, выбираем язык:

Нажимаем F6 и добавляем перед двумя тире:
vga=791 noreplace-paravirt

Далее жмем Enter и запускаемся.

Vga=791 переводит экран в расширенный текстовый режим и избавляет от лишних проверок на тип графического адаптера. У меня несколько раз виртуальная машина входила в какой-то непонятный графический режим, а эта опция позволяет этого избежать. К тому же потом удобнее работать с большей в 2 раза консолью.

Дальше проводим инсталляцию как обычно по своим требованиям.

Если мы попытаемся запустить машину сразу после инсталляции, даже добавив vga=791 noreplace-paravirt к параметрам ядра, то мы получим вот такой красивый Stack-Trace и надпись BUG: Int 6: CR2 00000000.

Поэтому опять грузимся с компакт диска.

Выбираем “Rescue a broken system” и, конечно же, добавляем магические vga=791 noreplace-paravirt.

После того, как получаем доступ к командной строке (в окружении виртуального диска а не инсталлятора – первая опция), выполняем:
apt-get update
apt-get remove linux-server
apt-get install linux-386

Тем самым, мы обновляем репозиторий пакетов и меняем ядро с серверного на стандартное i386. Конечно же для всего этого требуется, что бы машина получила адрес по DHCP и работоспособность интернета.

Далее фиксируем параметры запуска ядра:
vim /boot/grub/menu.lst

Убираем две записи с -server ядром, а к -386 ядру добавляем нужные параметры:
vga=791 noreplace-paravirt noapic nolapic clock=pit
Будет выглядеть это вот так:

Кстати курсоры работать не будут, напоминаю, что в ViM можно использовать вместо курсоров клавиши H J K L.

Сохраняемся. Exit из шелла. Перегружаем систему и можно грузиться в установленную ОС! Все должно работать, при чем часы должны идти точно, не опаздывать и не спешить, благодаря noapic nolapic clock=pit.

Из скришота видно, что со временем погрешность не набегает, хотя, конечно же, это не отменяет необходимости запуска ntpd для того, что бы время всегда было актуальным в дальнейшей эксплуатации.

Вот и все – пущай работает!

Роутинг бывает красивым

Случайно попал на сайт pfSense и очень сильно поразился! Ребята сделали свою сборку FreeBSD для использования в качестве файрвола и роутера. Балансировки, авторизация, PPPOE, разные типы VPN – есть почти все и многое из этого очень вкусное. Хотя этим сейчас никого не удивишь, а удивился я, года увидел скриншоты:

Оказывается все управляется через веб интерфейс. И до чего же красиво!

Хотя бы эти картинки стоят того, что бы это попробовать.

ID3 тэги и имена файлов

Я храню свою коллекцию музыки в соответствиями с очень строгими правилами именования: Исполнитель – Альбом\Трэк – Название песни. При чем стараюсь, что бы каждая папка была копией какого то оригинального компакт диска с соблюдением очередности трэков и названий.

Теперь, с приобретением Zune, стало очень важно соблюдать порядок не только в именах файлов но и в ID3 тэгах. Как оказалось у меня там порядка не было совсем. Но исправить это получилось достаточно просто.

Бесплатная программка ID3 Renamer может массово применять теги к иерархии папок.

Например, я брал несколько папок и в 3 клика мышки менял жанр всем песням всех альбомов внутри, тем самым сократив количество жанров с нескольких десятков до 15, что гораздо более удобно в использовании.

Затем еще парой кликов мышки я применил вообще ко всей папке с музыкой действие, которое на основе регулярного выражения от полного пути файла получало переменные исполнитель, альбом, трэк, название песни и устанавливало их в ID3 тэге.

Вот этот regexp:

.*\\([^-]*) - (.*)\\(..) - (.*)

В имени папки исполнитель считается до первого тире. Если в имени исполнителя должно присутствовать тире с пробелами вокруг, то надо будет исправлять это вручную.

Update: ID3 Renamer в последнее время не особо развивается, пришлось перейти на Mp3tag Editor. Программо явно матерее. Вот паттерн для операции “Filename – Tag”:

%artist% - %album%\%track% - %title%

Но вообще то Mp3tag Editor настолько продуман и удобен, что можно было и не писать.

Борьба со спамом

Надоело наблюдать огромные потоки спама через факультетский ящик и я выделил время настроить на нём нормальный антиспам. Подошёл к вопросу всесторонне и изучил хаутушки, как сейчас это делают другие. Открыл для себя Greylisting, который оказался мощной штукой, хотя, якобы, обладает недостатками. В системе FreeBSD десятки портов для грейлистинга и очень много времени ушло на то, что бы понять какой из них надежен, эффективен, производителен и требует минимального обслуживания. Принять окончательное решение помог вот этот документ, который рекомендует различные реализации. Вот этот документ, кстати хорошо описывает недостатки грейлистинга и рассказывает про некий Selective Greylisting. Окончательным решением оказался Tumgreyspf. Он не требует для работы базы данных (хранит информацию о коннектах в иерархии папок), поддерживает SPF, легко ставится.

Итого приведу наблюдения по каждому из уровней обороны от спама:

  • RBL за прошлую пятницу отбил 407336 сообщений (!!!)
  • Greylisting: 54407
  • SPF: 400
  • AmavisD-New: 773 сообщения заблокировано, 2317 пропущено, но помечено как спам
  • Clam-AV: 1 (!!!) сообщение с вирусом
  • Успешно доставлено: 9014 сообщений (наверняка большая часть – спам)

Итого благодаря RBL, который практически не создает дополнительной нагрузки на сервер, блокируется большинство сообщений. Но еще 54 тысячи было блокировано грейлистингом, казалось бы гораздо меньше чем RBL, но ведь это все равно очень приличное число для обработки процессоро-интенсивным AmavisD-New.

Теперь, субъективно, в моем ящике стало появляться гораздо меньше спама.

Сверхнадёжное хранилище

Вчера долго не мог опубликовать пост с картинками – не показывались и все. Не выдержал и начал писать письмо в поддержку, пока писал письмо – заметил, что на сайте висит объявление о том, что сервис Amazon S3 слег и могут быть перебои с картинками.

Падение сервиса хорошо пересеклось с моими недавними размышлениями по поводу Cloud Computing . Не такие они уж и надежные это супер-современные технологии.

Foosball, Kicker или настольный футбол

Случилось замечательное событие в жизни нашего офиса, компания оплатила нам настольный футбол! Огромное спасибо всему руководству и отдельно Славе Панкратову! Вот фотография этого чуда (руки Олега Алистратова).

Немного фактов и ссылок.

  • Существуют патенты начиная с 1890 годов.
  • Скорость мяча может достигать 64 км в час в соревнованиях.
  • Робот KiRo, сконструированный для игры в кикер в Университете Фрайбурга, как утверждают, в состоянии выиграть у 85 % обычных людей.
  • Лучшим игроком в мире однозначно считается бельгиец Фредерик Коллиньон (Frederic Collignon). Он доминирует в игре на всех столах (что чрезвычайно трудно, так как техника игры очень различается) в одиночке, и если судить по личной статистике игрока на сайте ITSF, Колиньон проигрывает вообще не более 1-2 игр в год (!).
  • Статья на Wikipedia – хорошо описывает технику игры, кстати.
  • Федерация Настольного Футбола России – тут есть официальный перевод правил на русский язык.
  • Настольный Футбол в Украине
  • ITSF (Международная Федерация Настольного Футбола) – тут есть видео, фото, правила, рейтинги и многое другое.
  • YouTube/Foosball – тут есть много видео трюков и записей чемпионатов.

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

Во всех видео у игроков получается удерживать мяч придавливая его футболистом к поверхности. У нас этого не получалось – мяч моментально выскакивает. Мне начинает думаться, что у них какие то нескользящие мячи. Стоит позвонить продавцу нашего стола и узнать его производителя и бывают ли другие мячики и фигурки.

А вообще игра очень интересная, позволяет разгрузиться голове от рабочих вопросов (что, как известно, полезно делать несколько раз в день для улучшения качества той же работы) и, например у меня, приводит к всплескам очень яркой и неконтролируемой агрессии 🙂 . Так что совет руководству – надо повесить рядом со столом боксерскую грушу, что бы я не раздолбал всю мебель и стены вокруг стола, когда у меня ни черта не получается сохранить место вокруг стола в целости и сохранности.

Cloud Computing

“Потребители услуг Cloud Computing покупают объемы вычислений по требованию и обычно не беспокоятся о нижестоящих технологиях, которые используются для достижения возможностей серверов.” (c) Wikipedia. Сегодня я открыл для себя существование такого нового направления в хостинге как Cloud Computing.

Сравнительная табличка:

Сервера, балансировка и стораджы создаются взмахом курсора мышки.

В сервисе Amazon EC2 понравилась возможность создания custom образов машин со всем предустановленным софтом, которые в дальнейшем можно очень быстро разворачивать в любых количествах.

Непривычно, конечно, оценивать стоимость услуги от количества памяти или процессорного времени, которое потребляет твое приложение.

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