Линукс-вей
Пятница, 9 августа, 3:30
https://askubuntu.com/questions/599208/how-to-list-grubs-menuentries-in-command-line
Изумительный пример линукс-вея.
Проблема — в grub2 более сложные конфиги и непонятно как сделать чтобы загружалось нужное ядро (в 1.99 и ранее был простой конфигурационный файл с простым списком, который можно было редактировать вручную).
Довольно быстро можно нагуглить, чтоб для того, чтобы задать нужный номер, теперь нужно не редактировать конфиг, а нужно просто указаеть его в параметре для grub-set-default.
Но если у вас сервер без ipmi или вдс без vnc, то кажется, что нет простого штатного способа получить список возможных ядер с их номерами, чтобы задать нужное.
И вот люди пишут разные скрипты, которые грепают конфиги и строят списки доступных ядер с номерами. Всё это в какой-то момент, вероятно, работало, но в текущий момент все решения по ссылке при построении списка высчитывают слегка разные номера для ядер. И некоторые из решений уже точно не считают корректно.
И вот в конце всего обсуждения человек заметил, что если у вас bash с автодополнением, то оказывается штатный скрипт умеет по двойному TAB показывать список возможных вариантов (хотя не показывает при этом варианты с windows):
I just found out that you can just use auto-complete (pressing
Изумительный пример линукс-вея.
Проблема — в grub2 более сложные конфиги и непонятно как сделать чтобы загружалось нужное ядро (в 1.99 и ранее был простой конфигурационный файл с простым списком, который можно было редактировать вручную).
Довольно быстро можно нагуглить, чтоб для того, чтобы задать нужный номер, теперь нужно не редактировать конфиг, а нужно просто указаеть его в параметре для grub-set-default.
Но если у вас сервер без ipmi или вдс без vnc, то кажется, что нет простого штатного способа получить список возможных ядер с их номерами, чтобы задать нужное.
И вот люди пишут разные скрипты, которые грепают конфиги и строят списки доступных ядер с номерами. Всё это в какой-то момент, вероятно, работало, но в текущий момент все решения по ссылке при построении списка высчитывают слегка разные номера для ядер. И некоторые из решений уже точно не считают корректно.
И вот в конце всего обсуждения человек заметил, что если у вас bash с автодополнением, то оказывается штатный скрипт умеет по двойному TAB показывать список возможных вариантов (хотя не показывает при этом варианты с windows):
I just found out that you can just use auto-complete (pressing
tab twice) on commands like grub-reboot or grub-set-default and it'll give you a list of the available boot menu entries.
Бекапы
Среда, 26 июня, 1:38
Переехали на новый тип бекапных серверов — современное железо, 3 диска HE10 по 10 терабайт в raidz1.
Это работает почти ровно в два раза быстре на любой околобекапной нагрузке, чем было раньше (зеркало 2х3 терабайта).
Следующая хотелка — дорасти до конфигов по 12 дисков с кешем на ссд. Но это 750+ т.р. за сервер :(
Это работает почти ровно в два раза быстре на любой околобекапной нагрузке, чем было раньше (зеркало 2х3 терабайта).
Следующая хотелка — дорасти до конфигов по 12 дисков с кешем на ссд. Но это 750+ т.р. за сервер :(
Deprecation of my() in a false conditional
Четверг, 20 июня, 15:58
Открытие дня, цитирую:
To people wondering why this syntax persisted so long: the bug produced by this syntax was actually the only way to have state variables, before the keyword
https://dev.to/dams/comment/c3mi
А мне то казалось, что так просто код выглядит читабельнее в ряде случаев...
To people wondering why this syntax persisted so long: the bug produced by this syntax was actually the only way to have state variables, before the keyword
state was introduced. This is why the bug was not fixed. Some people actually used it as a short syntax to implement a state variable:$ perl -E 'sub flip_flop { my $t if 0; $t = !$t; say $t ? "flip" : "flop"} flip_flop() for 1..4'
flip
flop
flip
flophttps://dev.to/dams/comment/c3mi
А мне то казалось, что так просто код выглядит читабельнее в ряде случаев...
tank в ZFS
Среда, 19 июня, 3:25
Я когда начинал пробовать что-то делать с ZFS, тестировать какие-то сценарии, всегда непонимал, почему принято основной pool называть 'tank'. И называл его 'zfs'. А недавно понял. На клавиатуре печатать 'tank' — элементарно быстрее.
Переход с OpenVZ на LXC/LXD
Пятница, 7 июня, 9:23
Бодро делаем новое хостинговое окружение на LXC/LXD в целях замены OpenVZ.
Получается, неожиданно, весьма неплохо и, например, много лучше, чем получилось у Proxmox, но..
Напомню, с OpenVZ мы имеем:
Получается, неожиданно, весьма неплохо и, например, много лучше, чем получилось у Proxmox, но..
Напомню, с OpenVZ мы имеем:
- базирование на Centos и систематическое существенное отставание от современного мира (да, что-то бекпортится, что-то не так критично, но современные шедулеры, zfs, местами многократные ускорения чего-то в новых ядрах линкса, которые сюда никак...). В случае с Virtuozzo 7 мы имеем еще и проблемы стабильности.
- плохая поддержка — как от разработчиков, так и от "community", и коллеги, которые пробовали платную поддержку, говорят что различий нет
- плохое состояние OpenVZ как продукта (в последние года)
- более плохая работа коммерческой версии, чем опенсурсной, с точки зрения конечного потребителя
- местами жесткая заточенность и залоченность на сомнительные (ext4, Virtuozzo Storage), с точки зрения потребителя, технологии
- отличная документация
- отличная (!!!) техническая продуманность фич, которые сделаны
- хорошая и изначальная заточенность под около-хостинговые задачи
- современные ядра, фичи, драйвера и т.д.
- де-факто полностью отсутствующее комьюнити и абсолютно нулевая поддержка — в русскоязычных местах невозможно получить ответ (даже плохой и глупый) ни на один вопрос, в англоязычных местах нестандартные сценарии в целях шаред хостинга вызывают недоумение и непонимание, с тем же конечным результатом
- продуктом, в форме именно продукта, оно не является. Начиная с ~ LXD 2.0 всё неплохо, но это пока все еще просто инструмент, причем сильно не самодостаточный
- возможность использовать ZFS и разные современные штуки, но, пока, недостаточно хорошая интеграция с . Например, мы уже придумали как прокидывать юзер-левел квоты, но вот это все — надо пока самостоятельно. Хотя, казалось бы, проблема общая, массовая, и непонятно почему всё так.
- Документация чуть лучше формальной. Чтобы понять, как сделать что-то, требуются гораздо более фундаментальные знания об администрировании и сетях, прочитать только родную документацию никогда не является достаточным (ну и см. п.3)
- Некоторые очевидные фичи непонятно как получить (==отсуствуют), при этом, кажется, писать свои патчи здесь много сложнее.
- полная непродуманность под около-хостинговые задачи. Как реализовывать многие нестандартные сценарии, которые у нас фактически были, причем частоиспользуемы — загадка.