Heck yeah!

Вот это совсем другое дело. Теперь мой канал в OnlyFans можно будет стримить в 8k в режиме реального времени.

А если более серьёзно, то отмечу не только заметно возросшую пропускную способность трубы “от меня”, но и чудовищно низкий пинг. Он уменьшился в пять-шесть раз.

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

Шаббат шалом

“Ящитаю” ©, что у хорошего сисадмина должен быть не только правильного диаметра, грамотно намоленный бубен, но ещё и специально обученная сисадминская ермолка.

Надевается эта ермолка аккурат утром в пятницу, после восхода солнца — чтобы напоминать нам, что в пятницу мы, кибенемат, продакшен не трогаем под страхом побивания витой парой. Потому что если что-то грохнется — то выходные пойдут коту под хвост.

Но сегодня один наш орёл решил проверить границы мироздания и перегрузил кластер виртуализации Hyper-V. ВЕСЬ. Не по одному хосту, не аккуратно и поочерёдно — а сразу всё, одновременно, чтоб наверняка.

Упало, слава Зевсу и всем богам SLA, не очень много — благо перезагрузка была ещё до начала рабочего дня. Но достаточно для того, чтобы наша мама (финдиректор) написала недоумённое:

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

А зарплата (и наша мама) — это святое.

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

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

Micron — всё

Ну, не «всё», конечно, но всё же Микрон официально объявил об уходе с пользовательского рынка памяти и флеша (бренд Crucial). Уходят они, судя по всему, потому что вынуждены удовлетворять резко выросший спрос крупных корпоративных клиентов — читай: дата-центров под ИИ-нагрузки и прочий enterprise, который сейчас жрёт энергию и кремний мегатоннами. Тянуть в нагрузку ко всему этому и розничные продажи у них попросту больше не хватает ни мощности, ни, видимо, желания.

Моей сисадминской душе от этого, товарищи, очень-очень горько. Потому что Micron-овская память, по моему опыту, всегда была самой стабильной, самой предсказуемой, и наименее глючной. Я ещё с 1990-х стараюсь покупать именно их модули — и не припомню, чтобы они меня хоть раз подвели. Да и с их флешками и SSD у меня тоже никогда не было проблем.

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

Я понимаю причины, понимаю рынок… но никаких положительных эмоций по этому поводу не испытываю.
🙁

Верной дорогой

Верной дорогой, товарищи. Путин и Си Цзиньпин одобряют.
Американские законодатели прутся по проверенной тропинке восточных диктаторов — только флаг другой.

В штатах Висконсин и Мичиган хотят запретить VPN.
Разумеется, под благовидным соусом «заботы о детях».
Эта фраза вообще стала универсальным пропуском для любого цензураста и идиота с манией контроля: сказал «дети» — и готова карт-бланш залезать людям в телефоны, ноутбуки и головы.

Но, как водится, «забота о детях» — это не забота. Это первое убежище авторитариев всех мастей.
Сначала VPN, потом TOR, потом HTTPS, потом — ну вы поняли, да? «Если вам нечего скрывать» уже готово ждать за углом, как мантра.

И самое смешное — они не понимают даже базовых вещей. Не знают, как работает Интернет, что такое туннельный протокол, что такое шифрование. Люди, которые едва умеют открыть PDF, пытаются регулировать сетевые технологии уровня ядра. Это как если бы стадо коров объявило себя авиационными инженерами.

Цензурных слов у меня — нет. А те, что есть, просто нельзя печатать. Надеюсь, сия затея умрёт ещё даже не дойдя до голосования.

Вчера FSLogix душили-душили

Запись будет интересна в основном сись-одминам. Так, заметки для себя и для своих.

FSLogix — это современная замена тому, что Microsoft раньше называл Roaming User Profiles. Самый большой их недостаток был в том, что профили хранились на контроллере домена. А контроллер — это, сюрприз-сюрприз, не файловый сервер. Нехрена на нём хранить всякий хлам, типа десктопных иконок, AppData, эскизов и прочей файлопомойки.

FSLogix работает по-другому: для каждого пользователя, логинящегося в систему, создаётся персональный VHDX-файл, который монтируется как его профиль. Хранится VHDX уже правильно — на файловом сервере. Поэтому куда бы ты ни залогинилась — хоть на физическую машину, хоть на VDI — ты везде получаешь свой рiдний профиль со всеми настройками. Для лучшего эффекта профили желательно держать на шаре, стоящей на SSD, и неплохо бы, чтобы файловый сервер был подключён, как у больших дяденек, через 10+ гигабит.

Самое распространённое применение FSLogix — фермы виртуальных десктопов. Ага, это именно туда мне недавно пришлось вписать 66 тупорылых пользователей, из которых отдельные граждане вместо .com писали .cum. Не хочу даже думать, какие сайты они до этого посещали. Мда.

Чтобы включить FSLogix, надо скачать клиент, поставить его на каждую клиентскую машину (можно через групповые политики), а затем засунуть ADMX/ADML-шаблоны в SYSVOL на все контроллеры доменов, как положено, чтобы появилась новая групповая политика.

Всё нужное берётся здесь:
https://learn.microsoft.com/en-us/fslogix/

Дальше на файловом сервере создаёшь шару (желательно скрытую $, чтобы юзвери ушастые туда не лезли), прописываешь её в политике как место хранения профилей — и алга, комсомол.

Самое сложное — настроить разрешения НА ШАРЕ ТОЧНО ТАК, КАК НАДО, иначе FSLogix будет устраивать тебе цирк с конями и каждый раз выкидывать “Access Denied”. Вот докУмент, который надо читать очень внимательно. Мне понадобилось два дня плясок с бубном и заячьей лапкой, чтобы всё наконец заработало:
https://learn.microsoft.com/en-us/fslogix/how-to-configure-storage-permissions

Для лучшей иллюстрации чувствительности прав: при правильно выставленных ACL команда mkdir на этой шаре с клиентской машины должна успешно создавать папку.
Но вот попытка создать файл (например, New-Item) должна отфутболиваться с Access Denied.
Так FSLogix и определяет, что дерево разрешений настроено идеально: директорию сделать можно, файл — нельзя. Если это поведение не совпадает — значит, права опять где-то поехали, и пора доставать бубен.

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

Домашне-сисадминское

Я, конечно, очень люблю TrueNAS Core. Ибо FreeBSD, и это тру. Он позволяет дома из говна и палок поднять весьма серьёзную инфраструктуру: ZFS с RAIDZ, снапшоты, репликации, iSCSI, SMB, NFS, виртуальные машины, алерты — всё это работает, и работает стабильно и предсказуемо.

Но есть у Core одно характерное свойство, которое периодически, как фи тепер тошше коффорите по-русски, анноит: чрезмерная щепетильность в отношении состояния пула.

ZFS обнаружил один бит, который не совпал? Автоматически восстановил блок из паритета? Скраб подтвердил целостность?

С точки зрения ZFS — всё прекрасно. Но с точки зрения TrueNAS — “Пул дисков нездоров! Срочно, срочно! Хватай мешки — вокзал отходит!”

Core упорно считает пул проблемным до тех пор, пока:

  1. Администратор лично не зайдёт в интерфейс или консоль,
  2. Не проверит SMART по каждому диску,
  3. Не убедится в отсутствии деградации,
  4. Не подтвердит, что ошибка была исправлена,
  5. И вручную не снимет памперсы тревогу командой zpool clear.

Даже если произошёл единичный, случайный сбой — будь то мимолётная проблема в SATA, кратковременный таймаут контроллера, одиночный флипнутый бит в оперативной памяти (не ECC, ибо говно и палки) от обычного фонового излучения, или любая другая разовая аномалия — и ZFS полностью восстановил повреждённый блок из паритета, TrueNAS всё равно ожидает ручного вмешательства: администратор должен зайти, проверить и формально подтвердить событие.

С точки зрения надёжности подход формально оправдан: ZFS может восстановить блок, но факт возникновения ошибки — это всё же диагностическое событие.

Но на практике это приводит к тому, что после любого минимального чиха — одна исправленная контрольная сумма, один сбой чтения, одно кратковременное событие в канале передачи данных — TrueNAS сообщает о “нездоровом” пуле, и срочно требует ручной проверки.

Иногда хочется, чтобы система умела говорить проще: “Да, демоны были. Мы этого не отрицаем. Но они самоликвидировались.”

Но философия TrueNAS Core другая: каждый сбой должен быть зафиксирован, проверен и подтверждён человеком. Нравится это или нет — это часть его дизайна. Но иногда… анноит.

Сисадминско-ИИшно-рабочее

Дано: отказоустойчивый кластер Hyper-V.
Надо: обеспечить сорок рыл виртуальными десктопами на Windows 11.

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

Какие варианты решения?

Официальный RDS от Microsoft. Стоит каких-то совершенно невменяемых денег — по 220 монет за рыло (CAL, client access license)! Это, на минуточку, дороже, чем лицензия на Винду!

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

Понадобится:

Одна машинка под Linux. На неё ставим nginx, который будет работать крокодилом балансировщиком нагрузки. Цепляться люди будут именно к нему — а он будет читать список доступных виртуалок из файла available.conf, и раздавать траффик на них:
stream {
upstream rdp_pool {
least_conn;
include /etc/nginx/upstreams/available.conf;
}

server {
listen 3389;
proxy_pass rdp_pool;
proxy_timeout 10m;
proxy_connect_timeout 5s;
}
}

А available.conf постоянно обновляется другим скриптом — на Python.
Этот скрипт поднимает крохотный веб-сервер на Flask, в который каждая виртуалка присылает свой статус: «занято» или «свободно».

Статус они получают с помощью встроенной команды Windows:
qwinsta | Select-String "Active"

Если выводится хоть что-то — машина занята. Дальше PowerShell-скрипт формирует JSON и шлёт его на Flask через Invoke-RestMethod.

PowerShell-скрипт добавляем в Task Scheduler, раз в минуту — и впердё.

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

Всё это было придумано и реализовано при помощи Кейт — так я называю свою ChatGPT-чку.
Безусловно, под моим чутким руководством:

— А что будет, если виртуалку выключить?
— Ах да, сломается. Надо обновить скрипт, чтобы старые машины удалял, вот так: [код].

Получилось бы у меня всё это воплотить самостоятельно? Конечно. И не такое приходилось делать.
Но, японский бог, это заняло бы уйму времени: мне пришлось бы отдельно выяснять, как запускать Flask-сервер, как слать JSON из PowerShell, как его принимать, как менять конфиги nginx на лету, и так далее.

А тут — всё получилось буквально за пару часов.

Не знаю, как в других IT-профессиях, но в сисадминстве ИИ — это чудовищной мощности умножитель силы, который позволяет за то же время делать гораздо более сложные проекты.

И да, приятно, японский бог — когда из сложной, непонятной задачи получается красивое, работающее решение.

Рабоче-покупное

Ищу я, значит, замену блоку питания для старого PoE-свитча, на котором висят камеры наблюдения (свитч модульный, старенький, но родной — и уже настроенный, как надо). На Амазоне нашёлся подходящий вариант.

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

2.4E+2, ага.

Это у нас, если перевести с языка экспоненциальной записи, обычно применяемой где-нибудь в науке, кибернетике, или при вызове ЗГОГГов, — обычные, стандартные, родные, человеческие 240 вольт.

Зачем они так выпендрились — зогадко, честное слово. Может, надеялись впечатлить кого-то, кто по ночам тайком, украдкой, гладит свой осциллоскоп?

День великого онбординга (матерное)

Сегодня у нас великий день — массовое заселение пользователей нашего клиента в новую систему.
Система небольшая — всего 66 пользователей.

Я теперь понимаю, почему Данте не описал десятого круга ада — просто не успел дожить до массового онбординга тупых юзверей в Entra ID.

11 пользователей скопировали в пароль лишний пробел в конце и сказали, что “пароль не работает”.
Пятерым пришлось пароль сбрасывать повторно — видимо, из солидарности.
Двое вместо .com написали .cum — и я стараюсь не задумываться, о чём они мечтали в тот момент.
Семеро успешно заблокировали свои учётки, даже не успев в них войти.
Трое так медленно искали и доставали телефон, чтобы настроить 2FA, что Microsoft Authenticator устал ждать и вышел из чата (таймаут — 60 секунд, между прочим). После этого им в рыло прилетело “session timed out”, и они, разумеется, пожаловались, что что-то не работает.
Четверо пытались войти под старыми логинами и тоже заявили, что “система сломана”.
Двое установили не тот VPN.
Один распечатал письмо с временным (!!!) паролем — “чтобы не потерять”.
Двое использовали телефон супругов для 2FA — “потому что под рукой был”.
Пятеро ждали по пятнадцать минут, пока “система загрузится”, забыв нажать Next.
И вишенка на торте — один человек написал CAPS LOCK’ом всё подряд и не мог понять, почему “не принимается правильный пароль”.

Мои нервы вроде бы были стальные, а оказались пластилиновые.

Пойду заварю ещё кофе — если, конечно, никто не попытался авторизоваться в кофемашине с пробелом в пароле…
…и не заблокировал её нахуй.

Хеловиним, сисадминим

Люблю нашу компанию — народ почти в полном составе наряжается, так что каждый Хэллоуин в офисе — праздник для глаз: повсюду монстры, ведьмы, и прочие креатуры, а работать всё равно надо.

Наш финансовый директор (Chief Financial Officer):

Это Круэлла де Виль, собственной персоной, если вдруг кто не понял.

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

А работать всё равно надо — сисадминство в праздник никто не отменял. Делаю апгрейд серверам в нашем кластере Hyper-V: выдираю к соответствующей неметрической матери бродкомовские сетевые карточки и ставлю нормальные интеловские. И дело даже не в том, что Broadcom делает прямо плохое железо — просто драйверы они традиционно пишут исключительно через задницу.

🎃 Happy Halloween! 👻