?

Log in

No account? Create an account
Cat-light

klink0v


Блохи в свитере деда Сергеича


Вот хрен знает...
Cat-light
klink0v

Иду сегодня утром на работу. Заснуть ночью опять не получилось, так что от нечего делать поехал рано: в 6:20 был уже на проспекте Мира. Топаю себе, никого не трогаю. И вижу, возле "Сити Банка" лежит тело. Вроде молодое. Вроде живое. Вроде по запаху на алкоголика со стажем не очень похоже. И судя по мокрым следам на асфальте, лежит там давно.

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

20 минут спустя мне перезванивает рассерженный и крайне возмущенный экипаж "скорой", который утверждает, что они не могут найти тело по указанному мной адресу и предлагают мне вернуться на место с целью продемонстрировать им наглядно собственно предмет вызова. А я-то может и не прочь прогуляться ещё разок, только мне топать дотуда те же самые 20 минут. В итоге мне на повышенных тонах популярно объяснили, что я поступил очень нехорошо, сдёрнув почём зря людей по ложной (?) тревоге и что мне следовало оставаться вместе с телом и дождаться приезда кареты "не отходя от кассы".

Теперь я сижу и чешу репу. С одной стороны, фельдшеров я тоже понять могу. Пёрлись куда-то рано утром, и выяснилось что зря. А у самих и без того забот хватает. С другой стороны, чисто по внешним проявлениям лично я не способен отличить, например, инсульт или приступ эпилепсии от неожиданно настигшего здорового сна. Пытаться же тормошить сопоставимое со мной по размерам мужское тело посреди пустынной улицы для того чтобы разобраться по какой причине оно там лежит, я тоже как-то морально не готов. Да и стоять ждать как дурак пусть и 20 минут неизвестно чего не представляется мне особо привлекательным вариантом.

И как предлагается поступать в подобных ситуациях? Пройти мимо? А если человеку реально нехорошо? Тормошить и дожидаться приезда скорой? Дык у меня как бе и свои собственные дела есть. Вот хрен знает...


Бюджет России
Cat-light
klink0v

Наткнулся на боян. Древний, но прикольный.

Чё-то мне в последнее время думается, что наши доблестные экономисты и депутаты верстают бюджет России по схожему принципу.


ProxMox 2: в два раза кривее
Cat-light
klink0v

Так уж исторически сложилось, что мне по наследству достались production-системы, построенные на базе ProxMox VE. Хоть разработчики гордо утверждают, что это "самостоятельный продукт с огромным community", но по факту это просто красивая веб-морда для OpenVZ+KVM с набором удобных утилит.

Как известно, опыт системного администратора растёт прямо пропорционально количеству испорченного оборудования. По мере хождения по граблям выяснилось следующее.

I. Касательно OpenVZ

  • OpenVZ можно использовать только для примитивных проектов уровня LAMP. Шаг вправо, шаг влево — kernel panic. А поскольку ядро там одно на всех, то последствия понятны.
  • В OpenVZ существует куча ограничений на используемые внутри контейнеров ресурсы. Например, нельзя "из коробки" без серьезных ухищрений примонтировать чужую CIFS или пользовать OpenVPN.
  • Реализация NFS в OpenVZ — это вообще из серии "понемногу средь багов нащупал дорогу".
  • При малейшем дуновении ветра под OpenVZ отказывается работать Live (online) Migration без объяснения причин.
  • В некоторых случаях OpenVZ-flavoured ядро улетает в Kernel Panic просто в момент банальной штатной остановки контейнера.

II. Касательно самого ProxMox 1.x

  • Если попытаться выкинуть кривое OpenVZ-ное ядро и пользовать "родное" Debian-овское чисто под KVM, то утилита бэкапа виртуалок vzdump отказывается работать под предлогом того, что не может получить из sysfs список VZ-контейнеров. И неважно, что тебя интересуют только KVM-ные виртуалки. Пофиг. Если хочешь автоматизированных бэкапов — будь добр ставить PVE-шное ядро, без вариантов. Ну или хакать Perl-овые модули компонентов ProxMox-а.
  • Забавно реализована миграция виртуалок между хостами. Она может происходить только посредством rsync поверх SSH. Получается что. К примеру, две крутых железки в одном датацентре соединены гигабитным шлангом. А скорость миграции максимум 40 МБайт/с. Почему? А всё упирается в SSH-шифрование, которое никак нельзя отключить и до кучи ещё и не распараллеливается между ядрами процессора.
  • Коммуникации между узлами "кластера" строятся на отсылке нодами друг другу команд через SSH. Всё бы ничего, но это делается из-под root-а с авторизацией по RSA keys. Безопасность такая безопасная...
  • Именование и зависимости DEB-пакетов выстроены настолько бездарно, что нормальным прямым способом на "чистую" уже готовую Debian-систему это не ставится. Только раком и через одно место. Вместе с тем "автоматический" инсталлятор "для чайников" ничего не спрашивая размечает жесткий диск так, что лучше бы он вообще этого не делал.

III. Касательно ProxMox 2.x

Ну там уж вообще как в анекдоте: "А потом приехал поручик Ржевский, и тут тако-о-о-ой разврат начался". Ребята-разработчики решили забубенить супер-мега кластер из адской помеси Corosync, SQLite3 и FUSE. Софт они взяли из Debian, ядро от RedHat. При этом им пришлось пересобрать часть Debian-пакетов; что-то они выдрали из тестируемой ветки в стабильную, что-то не мудрствуя лукаво стырили из backports. Молодцы, чо. Народ с хабра попробовал попользовать в этом коктейле какие-нибудь кластерные файловые системы типа OCFS и GFS. Не получилось. И я почему-то совсем не удивлён.

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

  1. Если косячит веб-интерфейс, выдает ошибки 401 и 500, не дает залогиниться. Apache матерится и не стартует. Скорее всего, нужно заново сгенерировать приватные ключи и сертификаты.
    pvecm updatecerts
    Если что, там есть ещё ключик "--force" для совсем тяжелых случаев. После этого требуется рестартовать службы pvedaemon и apache2.
  2. Если нужно откатиться к "дефолтной" конфигурации. Например, развалить неудачно построенный кластер (штатным способом сделать этого нельзя).
    Остановить службу cman
    Остановить службу pve-cluster
    pmxcfs -l
    rm /etc/cluster/cluster.conf
    rm -rf /var/lib/pve-cluster/*
    rm /var/lib/cluster/*
    rm /var/lib/corosync/*
    rm -rf /etc/pve/*
    Снова остановить службу pve-cluster, убедиться что процесс pmxcfs сдох.
    Запустить pve-cluster
    Запустить cman
    Далее смотри пункт 1. Шаманство ещё то, блин. И да, разумеется конфиги всех виртуалок перед этими манипуляциями нужно обязательно забэкапить. Как вариант, можно грохнуть не весь /etc/pve, а только папку nodes и всё что внутри. Но тут как повезёт. Может, и прокатит.
  3. Разумеется, у вас в настройках ssh должны быть включены
    PermitRootLogin yes
    PubkeyAuthentication yes
    AuthorizedKeysFile      %h/.ssh/authorized_keys
    Сам смотрю на это безобразие и плАчу горькими слезами. А что делать? Только FireWall-ом закрывать.
  4. Перед построением кластера следует обязательно проверить содержимое /etc/hostname и /etc/hosts. Именно на их основании утилиты принимают решение о том, на каком интерфейсе поднимать соответствующие службы. И если машина multihomed и ты случайно инициировал кластер не на том интерфейсе, то потом начинается тако-о-о-ой геморрой чтобы всё раздерибанить, а потом собрать заново... Смотри пункт 2.
  5. Иногда там начинает кривить fencing, и тогда самый простой способ вылечить — перезагрузка. Смешно, факт.

Короче говоря, ProxMox хоть и бесплатен, но безобразен. И чем дальше, тем чудесатее и чудесатее. На первое время и для решения простеньких задач оно вполне пойдет. Для начинающего сисадмина, делающего свои первые шаги в виртуализации, тоже годное решение. Но для серьезного production — увольте.

Теперь вот сижу и мучительно размышляю, куда бы с энтого ProxMox-а свалить. Как всегда, хочется чтобы система была простой в обращении, умела автоматизированные backup-ы, Live Migration, High Availability и имела красивую веб-морду. Изучаю список совместимых с KVM фронтендов в количестве 30 штук. Он повергает меня в уныние. :(