Virtualizare - cu și despre

Companiile foarte mari or să înghită, alea mici or să-și bage cracii și-or să se care. Mizeriile astea de abonamente trebuie să dispară, dar unele companii sunt prea mari/bine înfipte în nișele lor pentru a da greș.
 
Ba chiar deloc: companiile foarte mari o sa traga de licentele actuale pana nu mai sunt bune si apoi iti muta catrafusele la altii. Cel putin asta e planul meu si pe langa alea 1500 de VM ale mele pe platformele alea mai sunt inca vreo 10,000 sau mai mult. In ultimii 2-3 ani deja avem diverse proiecte pilot de inlocuit VMWare, asta e impulsul de a grabi un pic treaba.

Companiile mari au putere de negociere, mai ales cand CIO vorbesc intre ei la un golf sau o bere si unele decizii sunt contagioase.
 
M-a lovit răceala, așa că am 5 minute să caligrafiez niște cerneală virtuală.

A venit momentul să-mi bag oleacă picioarele prin proxmox. Dar să nu ne grăbim, ci să începem povestea de unde trebuie, și anume de la nevoi.

Momentan am nevoie să ruleze permanent în rețea un pihole. Pentru asta, un Raspberry Pi 3B+ este mai mult decât suficient și foarte eficient energetic. Iar pentru că rulez pihole într-un container docker care vine de-a gata pregătit cu toate dependențele ce-i mai trebuie, îmi permite să separ aplicația și datele/setările mele, și să automatizez complet actualizarea containerului fără să trebuiască să fac nici un fel de mentenanță. În curând însă vin nevoile unei case noi, cu un OpenHAB pentru smart home și integrarea diverselor sisteme, și un controller software pentru AP-urile TP-Link Omada. Pe RPi n-o să încapă toate astea, poate pe un Odroid N2+ sau ceva și mai potent.

Am prins anul trecut o pleașcă de Lenovo Tiny M710q, cu un procesor i5 generația a 8-a, 16GB de memorie, SSD, silențios, low power, crecă are și vPro și AMT, numa' bun pentru făcut chestii headless cu el. Iar acum am zis să încerc să pun proxmox pe el, ca să împart capacitatea în VM-uri și containere LXC, că doar cât poate să fie de greu.

Buuuuun... Am instalat PVE de vreo trei ori, că în două ocazii mi-am tăiat singur craca cu niște modificări la rețeaua virtuală încercând să rezolv o problemă - more on that in a bit. În cele din urmă l-am lăsat cum vine default la rețea și i-am pus un container pe template-ul Debian 12 pentru pihole, și încă un container pe template-ul Ubuntu 22.04 LTE pentru Omada.

Problema dubioasă era că din containerul Debian inițial părea că nu am acces la net, ceea ce era puțin ciudat fiindcă totuși containerul primea IP din LAN de la router. După niște alte încercări de a afla ce am setat prost la container în PVE, am descoperit că trafic pot face dacă destinația e un IP, doar DNS-ul nu merge. Și de ce nu merge DNS-ul? Fiindcă n-are nameservere setate în container, iar dacă le pun manual, la fiecare restart al containerului dispar. Asta putea fi de la PVE care modifică dinamic niște fișiere de configurare din containere în funcție de ce setări am pus la container în PVE, însă n-a fost asta. Pur și simplu pare a fi un bug în Debian, în care dacă pui manual IPv4 cu gateway și DNS-uri dar lași DHCP la IPv6, răspunsul DHCP primit la pornire face overwrite la setările manuale pentru IPv4 fiindcă le era prea gol frigiderul sau ceva. Nici o altă setare la interfețe nu l-au putut convinge, ultima opțiune ar fi fost să fac override la scriptul ce generează resolv.conf când primește răspunsul DHCP, dar am zis că așa ceva nu fac și adio. În cele din urmă am descoperit că dacă setez containerul să aibă și IPv6 manual dar fără să specific o valoare, asta dezactivează DHCP pe IPv6 în container și atunci păstrează DNS-urile setate manual. Amin.

Apoi am pus controllerul Omada în celălalt container. Asta a fost mai cu cântec, fiindcă TP-Link dă doar pachetul .deb la descărcat și e treaba ta să instalezi prerequisites: mongodb 3 sau 4, care are pachet doar pentru Ubuntu 20 jammy, cu niște biblioteci aferente, OpenJava 8 sau 11 și încă câteva chestii. Deja a început să mă râcâie containerizarea LXC comparativ cu eleganța docker-ului, unde am imagini gata făcute și doar trebuie să mapez niște căi din interiorul containerului spre storage-ul permanent de pe gazdă. Dar în cele din urmă l-am făcut să meargă și pe ăsta, descoperind că în mod curent mănâncă 1,7GB de memorie.

Problema care mi-a pus capacul e că am observat LED-ul de disc cum clipește o dată la câteva secunde. Niște căutări pe net mai târziu și aflu că proxmox are un istoric de a mânca pe pâine SSD-uri, cu recomandarea empirică a unora pentru SSD-uri enterprise, nu de-astea consumer level. Cineva stătuse cu microscopul pe un proxmox proaspăt instalat și care nu făcea nimic, și a descoperit că scria câteva zeci de GB de date pe zi fără ca să facă nimic. WTF.

Am dezactivat cele trei servicii pentru lucrul în cluster, că nu-s necesare pentru un nod standalone. Am configurat logging-ul la minim. Am instalat log2ram. M-am uitat cu iotop ce mai accesează discul pe-acolo. În containerul cu pihole am dezactivat logging-ul detaliilor de destinații și sisteme, și am setat retenția la baza de date long term la zero, dar write access la baza de date tot apare de câteva ori pe minut. Mai nasol a fost în containerul Omada, unde mongodb băgase zeci de MB în doar juma' de oră, și mai era și un log4j pe-acolo. Bine, de fapt aș putea să opresc controllerul cu totul că n-am nevoie de el decât la provizionarea unor echipamente noi în rețea (dacă mi-e lene să fac asta manual din aplicația de pe telefon), dacă vreau să fac monitorizare și jurnalizare istorică (nu vreau) și dacă vreau să rulez un portal captiv pentru autentificare în browser pentru guest network (nici aia nu vreau). Dar totuși... mongodb 4? Versiunea curentă parcă e 7...

Cu asta s-au mai liniștit accesările la disc, dar nu suficient. În continuare lucrează la fiecare 2-3 secunde jurnalizarea la ext4 căreia n-am ce să-i fac, și încă niște servicii de proxmox pe care nu le pot opri fără a se buși. Beculețul ăla de acces la disc pâlpâie fără nici un motiv funcțional o dată la 7 secunde, nu la 2-3. Adică nu-mi moare SSD-ul în juma' de an ci în vreun an jumate. Gee, thanks. Așa nu merge. Experimentul cu proxmox a fost interesant și edificator că nu mi se potrivește.

Pentru viitor aș putea să pun un Ubuntu ceva direct pe bare metal în loc de proxmox și să rulez containere Docker, eventual suplimentând SSD-ul cu un disc mecanic. Aș putea să iau un Odroid, la fel cu containere Docker, și eventual un stick USB3 pentru scrieri frecvente de aiureli de care să nu-mi pară rău dacă se buștește, dar protejând eMMC-ul. Dacă n-ar fi și OpenHAB-ul, aș putea sta bine mersi pe actualul Raspberry Pi fără nici o problemă.

Deci... rămâne cum am stabilit.
 
Nu asta-i problema, ci faptul că PVE (Proxmox Virtual Environment) nu poate fi făcut să se abțină de la a freca discul o dată la câteva secunde fără motiv, și asta încă fără ZFS. Deci dacă folosești PVE poți să-ți iei adio de la a opri automat discul/discurile în idle prelungit, și cam trebuie să monitorizezi prin SMART cât de repede progresează degradarea unui SSD ca să fii pregătit cu schimbarea lui și transferul datelor înainte de un crash.

Cu ESXi reușisem fără foarte mari dificultăți să-l fac să booteze și să ruleze integral de pe un stick USB montat în interiorul serverului, fără swap, fără logging, fără nimic. Practic scria pe stickul ăla doar când îi instalam actualizări. De-aia a și rezistat stick-ul timp de 6 ani în funcțiune 24/7, și acum e încă perfect funcțional la mine pe birou. Eh, asta nu se poate cu PVE.
 
  • Like
Reactions: Neo
E vorba de principiul opțiunii read-only sau măcar al controlului :biggrin: Altfel, pot pune unul din HDD-urile de 2,5" din colecție și-n Lenovo. Da, ar fi consumul 20W în loc de 10, dar aș avea un procesor intel compatibil cu o grămadă de chestii, nu un kernel antic cu backports și un Ubuntu Linux marțocărit de Hardkernel ca să ruleze cât de cât.

La nivelul ăsta de software ar trebui să poți configura extrem de ușor cel puțin ca toate log-urile să fie vărsate într-un remote syslog. Sau controllerul (enterprise wannabe) Omada să poți să-l configurezi cu un connection string spre ce server de baze de date vrei tu, nu să fie hardcoded la un mongodb versiunea ț neapărat instalat local. Dar atât s-a putut...
 
Nu asta-i problema, ci faptul că PVE (Proxmox Virtual Environment) nu poate fi făcut să se abțină de la a freca discul o dată la câteva secunde fără motiv, și asta încă fără ZFS. Deci dacă folosești PVE poți să-ți iei adio de la a opri automat discul/discurile în idle prelungit, și cam trebuie să monitorizezi prin SMART cât de repede progresează degradarea unui SSD ca să fii pregătit cu schimbarea lui și transferul datelor înainte de un crash.

Cu ESXi reușisem fără foarte mari dificultăți să-l fac să booteze și să ruleze integral de pe un stick USB montat în interiorul serverului, fără swap, fără logging, fără nimic. Practic scria pe stickul ăla doar când îi instalam actualizări. De-aia a și rezistat stick-ul timp de 6 ani în funcțiune 24/7, și acum e încă perfect funcțional la mine pe birou. Eh, asta nu se poate cu PVE.
Rulez Proxmox de ceva timp pe server și nu am observat să-mi frece discul de boot prea mult. Când face chestii face pentru că i-am spus să facă, altfel este liniștit.

O să-l monitorizez să văd cât scrie până mâine și revin cu detalii.
 
iotop -o -d 5 -a

1708022188150.png
 
Alea-s chunks de 32MiB, adică 32*153 => ~5GB. Eu rămân la ESXi, cât se mai poate (că o să-l facă subscription-based în curând).

crecă are și vPro și AMT, numa' bun pentru făcut chestii headless cu el
Altă chestie care s-a dus naibii. Probabil pe al tău încă merge VNC, pe cele mai noi versiuni îți trebuie (oficial) un windows server nouț cu un cârd de prereqs ca să faci management de vPro/AMT, sau cel puțin o altă mașină virtuală pentru niște dockers cu Open AMT.
 
1.78TB/an nu-i chiar groaznic față de cât de mult scrie Windows pe boot disk imo :biggrin:
 
miahi pentru AMT ai încercat cumva MeshCommander?

1.78TB/an nu-i chiar groaznic față de cât de mult scrie Windows pe boot disk imo :biggrin:
Asta e de parcă ai zice că nu-i așa rău să-ți dai cu un ciocan peste deget vs. a-ți da cu un bolovan peste deget. How about să nu-ți dai cu nimic peste deget???? :biggrin:

Mă duc în pivniță să aduc prizometrul să văd cât mănâncă Lenovo Tiny ăsta. Dacă-s 20W, aia înseamnă vreo 63€/an curent electric. Și apoi bag un hard disc înăuntru pentru temp/swap/logs/backups, și pun Ubuntu Server și Docker pe el. Și gata cu virtualizarea.
 
Asta e de parcă ai zice că nu-i așa rău să-ți dai cu un ciocan peste deget vs. a-ți da cu un bolovan peste deget. How about să nu-ți dai cu nimic peste deget???? :biggrin:
Păi da, dar inevitabil îți dai ciocane peste degete în 2024. Plus că la mine nu știu cât din chestiile alea sunt generate de ZFS and what not, chestia funcționează cum trebuie, nu văd de ce mi-aș face probleme :biggrin:
 
MeshCommander încă merge pe unele device-uri, dar nu e clar pentru cât timp și pe ce. L-am folosit o perioadă pentru un thinkpad mai vechi, e ok, merge, dar tot e dubioasă dispariția bruscă (au tăiat tot ce era la download).
 
Back
Top