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! 👻

Ути-пути

Какая вне­зап­но кавай­ная сер­вер­ная!!

Это ама­зо­нов­ский дата-центр, обслу­жи­ва­ю­щий вычис­ли­тель­ный кла­стер «Рей­нир», на кото­ром рабо­та­ет систе­ма искус­ствен­но­го интел­лек­та «Клод» ком­па­нии Антро­пик.

Игри­во-розо­вые шка­фы на перед­нем плане — это бло­ки пита­ния и жид­кост­но­го охла­жде­ния для каж­дой «ули­цы» сто­ек. Пита­ют­ся они, как пра­ви­ло, от трёх­фаз­ных 480 вольт. Оран­же­вое — несу­щие кон­струк­ции, жёл­тое, по всей види­мо­сти, — сило­вые линии, синее — ком­му­ни­ка­ции, серое — теп­ло­но­си­тель. Всё про­ду­ма­но до мело­чей — япон­ский бог, тут при­драть­ся реши­тель­но не к чему. Неспе­ци­а­ли­сту, навер­ное, непо­нят­но, чем я тут так вос­хи­ща­юсь, но поверь­те мне — это очень кру­то при­ду­ма­но, сде­ла­но, и выпол­не­но.

Рабо­тать, впро­чем, в таком месте, навер­ное, непро­сто. Вон сотруд­ни­ца совер­шен­но пра­виль­но наде­ла науш­ни­ки — шум в подоб­ном дата-цен­тре, долж­но быть, сто­ит про­сто нече­ло­ве­че­ский.

Даже страш­но пред­ста­вить, сколь­ко кило­ватт жрёт вся эта кра­со­та в сум­ме.

Вот так, доро­гие дру­зиа… выгля­дит капи­та­лизм.

Отсю­да и ещё фоток.

Эка напасть

Не про­шло и меся­ца с тех пор, когда рух­нул AWS по при­чине паде­ния DNS, как здрас­ь­те — рух­нул Мик­ро­софт Ажур, а мы в нём в основ­ном про­жи­ва­ем. И тоже, ЧСХ, из-за отка­за сер­ви­са DNS. Всё тор­мо­зит и рабо­та­ет через зад­ни­цу.

Повто­рим кар­тин­ку, что ещё делать оста­ёт­ся.

Будет инте­рес­но почи­тать деталь­ный раз­бор полё­тов.