Tag Archives: nervi

unele zile…

Saptamana asta dupa ce am terminat de instalat si configurat un ESXi offline si am pus pe el un server de DHCP a venit vremea sa-l dau in productie sa inlocuiasca actualul server de DHCP. Easy peasy. Scoti cablul de la ala vechi din switch si il pui pe ala nou si gata.

Well… ieri m-am invartit ca un coi intr-o caldare toata ziua pentru ca dupa ce puneam serverul nou in switch, nu mergea DHCP-ul. Cu laptop si cablu direct infipt in el, mergea cum trebuie. Prin switch pula.

Am avut o zi din aia in care am avut un mica criza existentiala despre cunostintele mele de retelistica si Layer2 in special. M-am uitat in vSwitch-ul de pe ESXI mai atent decat m-am uitat vreodata la un switch virtual. La fel si pe portul de pe switch-ul fizic. N-a avut portul ala parte de atata atentie in viata lui.

Cablu direct merge, prin switch nu. Serverul de DHCP zicea ca oferea adrese IP clientilor, da aia nu faceau ACK. Si nu intelegeam de ce. De ce n-ar da? Le placea la clienti asa mult de serverul vechi ca protestau?

Pe la opt seara am cedat si m-am dus acasa deja aveam idei de schimbat cariera.

Am ajuns acasa, am desfacut o bere, am re-vazut jumate de Avengers si inainte sa ma culc am zis sa mai iau o data meniurile de pe switch la rand, chiar si optiunile alea care nu ar avea de ce sa se se aplice.

Si-am gasit ca pe switch exista un meniu de DHCP care are o optiune sa blocheze raspunsurile de DHCP de la adrese MAC necunoscute si doar sa accepte adrese permise. Adica scris MAC-ul acolo cu liniuta.

Primul MAC era pus acolo, pe al doilea l-am pus eu dupa alta criza de draci.

Unele zile…

netu’

De vreo aproape doua saptamani asa, tot mergea conexiunea la internet de acasa din ce in ce mai prost. Si aseara mi s-a luat si am sunat la suport la RDS sa investigheze problema.

Dadusem restart la router si AP si nimic. Am pus cablu direct in laptop si aceeasi viteza: 5.5Mbps maxim. Un fel de dial-up modern ca acu sa moara ma-sa orice site are 1MB…

Ma suna de dimineata unu’ de la suport, mai bagam un test de viteza, la fel. 5.5Mbps. Zice ca bine, trimite pe cineva.

Vine un baiat cu “laptop”-ul (ca asa s-au exprimat aia de la suport, ca daca nu merge cu restart de router o sa trimita pe cineva cu “laptop”-ul :))

Vine, baga cablu in laptop, user/pass de la mine si ce sa vezi, 87Mbps. Mi se aprinde si mie un beculet si incerc testul ala de viteza de pe telefon: 70Mbps. Daca ma ducea capul aseara si in zilele de dinainte nu mai trebuia sa fac azi pe prostul.

Ajunge baiatul cu laptopul la concluzia ca poate am virusi pe calculator si de aia merge asa greu, imi zice c-o sa ma coste 10RON interventia si aia e.

Ma mai gandii eu un pic si dadui un restart la laptopul meu, ca na… poate o fi ceva. Si ce sa vezi, 90Mbps.

Ii tot injuram pe aia de la suport cu “ati dat restart”… da uite ca aveau dreptate. Bagami-as.

Ocazie cu care sa le urez si astora de la Apple multa muie, ca ultimele drivere sunt de cacat si daca tii laptopul in sleep, dupa cateva saptamani se duce per penis treaba cu reteaua. Si cred ca problema e undeva la stack-ul lor de networking, ca la fel facea si pe WiFi si pe un adaptor pe USB.

O vreme o sa tac si-o sa merg pe burta cu chestiile de retea :))

mssql replication & log shipping

Acu ceva vreme am instalat la niste oameni niste multe servere de MSSQL pentru niste chestii de logistica.

Anul asta au zis oamenii ca bai, e important sa nu pierdem datele pe care le avem pe servere si hai sa facem un backup offsite.

Backup-ul offsite n-a fost sa fie ca latenta si TCP e picky cu latenta cand vrei sa transferi single-connection fisiere mari si eram intr-o situatie din aia in care dura mai mult de-o zi sa transfer un fisier de backup (mind you, gigabit in ambele parti, da TCP…). “Stiintific” treaba asta se cheama “long fat pipe problem” si necesita un pic de inginerie sa mearga cum trebuie, da’ in cazul de fata n’aveam ce inginerie sa fac ca tehnologia era la impuse.

Long story short, zic hai ca am solutia: facem replicare intre servere de MSSQL si o sa fie aproape realtime datele, eventual o sa se mai piarda cateva tranzactii, da’ nu e un capat de lume.

Si ma apuc eu si instalez un SQL server in alta parte si da-i sa fac replicare. Ma gandeam eu ca e la MySQL undeva faci un master/slave, restaurezi un backup pe ala remote si dupa aia trimiti binlog-urile pe al doilea sa le face replay si aia e. Simplu.

Well… not really, ca Microsoft fiind Microsoft au zis ca de ce sa fie simplu cand poate sa fie complicat si nu poti face replicare asa simplu. Ca de exemplu daca ai tabele fara primary key nu le poti include in replicare. Procedurile stocate nu se replica, because reasons…

Multa muie lor pe tema asta ca mi-au scos peri albi.

Zic bine, facem transaction log shipping care “replica” tot. O sa fie baza de date remote un pic in urma, da’ a zis lumea ca poate trai si daca se pierd 30min de date.

Acum, astia cu logistica sunt mai speciali… cam ca niste autisti de speciali, si ei nu cred in versiuni prea noi de software si asa am ajuns eu sa am si MSSQL 2014 si 2016, ca fiecare producator are versiunea lui de baza de date “suportata”.

Mno, acu aveam servere din astea diferite, zic hai ca pun MSSQL 2017 in locatia remote si stochez acolo toate bazele de date ca fiecare baza de date un Compatibility Level care e in functie de versiunea de SQL Server, gen 2014, 2016 si 2017.

Instalez eu serverul vietii, dau sa setez transcation log shipping: nu se poate prietene ca trebuie upgradata versiunea de baza de date pe serverul remote si ghinion ca tu ai o versiune mai veche. Morti si raniti si muie alora de-au programat mizeria asta.

Se pare ca desi poti bifa acolo Compatibility Level, intern MSSQL mai modifica un pic baza de date ca sa fie compatibila cu noul engine de SQL, da’ la suprafata se comporta ca ala vechi…

Alte ore pierdute aiurea, da-le-as muie la imbecilii pulii. Pai orice esti backward compatible ori nu esti.

Zic bine, hai ca pun un 2014 remote sa se impace cu 2014 local. Pun serverul pulii, setez acolo replicarea, face primul backup mare de pe sursa, il copiaza super repede pe destinatie si imi da prin gura: n-ai destul loc pe C:\ ca sa restaurez baza de date pe destinatie. Mi-au scapat instant multe mui inspre Microsoft pe tema asta…

Asta desi din setup era configurat sa tina bazele de date pe alt disk cu suficient de mult spatiu. Dar nu, el vrea musai pe C:\ pentru ca ma gandesc eu ca acolo are setat “Instance Root Directory” si simte nevoia s-o puna acolo desi ar trebui s-o puna in alta parte.

Varianta complicata a fost sa fac eu un backup full la o baza de date, s-o copiez in 3 ore in partea ailata si s-o restaurez unde trebuie si abia dupa aia sa setez transaction log shipping pe sursa si sa-i zic la sursa ca deja exista baza de date in partea ailalta.

Asta era azinoapte. Dupa un pic de investigatii descoperii ca de fapt nu merge log shipping.

Banuiesc ca e din cauza ca pana s-a copiat baza de date si s-a restaurat a trecut prea mult timp pe sursa si logurile pe care le genereaza nu au logica pe destinatie ca’s la prea mare distanta in timp.

Back to the drawing board. Sa moara in chinuri aia de la MS care in loc sa faca un setup simplu, l-au complicat pana i-au scos mucii pe cur. Unfuckingbelieveable…

(Cateva zile mai tarziu…)

Dupa un pic de desenat am descoperit cum pot sa-l fac sa restaureze baza de date unde trebuie. La Restore are niste optiuni semi-ascunse in care ii zici unde sa restaureze baza de date si unde sa restaureze logurile. La asta cu restauratul evident ca nu e simplu: baza da date pe sursa se cheama ABC si are doua fisiere mari si late: ABC.MDF si ABC_LOG.LDF (baza de date propriuzisa si logurile). Eh, cand le faci restore in alta parte, poti sa schimbi numele bazei de date – asa cum am facut eu, ca poate vrei s-o prefixezi cu ceva. Catch-ul e ca numele de pe disk al fisierelor nu se schimba in noul prefix, gen baza sa fie LS-ABC si fisierele sa se cheme LS-ABC.MDF si LS-ABC_LOG.LDF… Pai ce erau prosti sa-l schimbe? Nu, pe disc ramane la fel. Si daca ai doua servere din medii diferite de productie si cu acelasi nume de baza de date si vrei sa faci log shipping de pe ambele pe un singur server… ghici ce… la a doua restuare o sa-ti dea eroare ca deja exista baza de date si ca bla bla e folosita. Si trebuie sa faci alte directoare pentru baza si pentru loguri ca sa poti face log shipping si pentru al doilea server…

Problema de dinainte era din cauza ca aveam alte job-uri de log backup si MSSQL asta nu e asa inteligent sa nu amestece oalele, si se facea backup la loguri din 2 in 5 si evident ca unele loguri era salvate undeva si alte altundeva si pula continuitate in loguri si n-avea ala la ce sa faca restore.

Fixat asta, dat backup/restore si log shipping si pare sa mearga. Trebuie sa stau cu geana pe el sa vad ca nu sughita, sa dau un reboot pe ici pe colo sa vad cum face cand se mai pierde sursa sau destinatia un pic.

Sa-i chis in freza pe astia de la Microsoft si mai ales pe aia de scriu la MSSQL ca au gandit diverse chestii din puta gandirii…

zeii vacantelor

Anul trecut cred ca am facut ceva, am injurat sau m-am uitat urat la zeii vacantelor.

Am plecat cu aventura din .ro, si azi in timp ce ma pregateam sa ajung in Phnom Penh, am ramas blocat in SGN in tranzit ca pasaportul meu are valabilitate sub 6 luni si nu ma primesc aia de la imigrari din Cambodia.

Pasaportul expira la inceputul lui Iulie si mi-am facut eu socoteala ca pot sa ma plimb toata luna Ianuarie si dupa aia sa ma intorc la frigul de pe plaiurile mioritice.

Eh, se pare ca 6 luni nu sunt asa calendaristice dupa nume cum am numarat eu pe degete, ci 180 de zile. Si cam peste tot in lume nu te primeste nimeni daca pasaportul are valabilitate sub 6 luni (in afara de tara de rezidenta, bineinteles).

Zborul HKG-PNH l-am luat cu Vietnam Airlines cu escala in SGN. Pe site mi-au cerut date de pasaport si a fost OK, imbarcarea de azi a fost OK, security check in zona de tranzit din SGN a fost OK si aia. In timp ce ma pisam inainte sa ma duc la imbarcare inainte de zborul spre PNH, imi aud numele strigat. Zic ba n-are cum sa fie c’am intarziat ca erau oameni la coada cand m-am dus la buda.

Ma duc la aia si avem o discutie despre pasaport si cum ca soarta, dar nu ma pot imbarca ca alea 180 de zile s-au facut acu 2 zile si ca nu pot sa trec de imigrari in PNH.

Zic bine, bine, si acum ce facem? Colegii de vacanta ajunsesera deja in PNH cu alt zbor si zic sa sune la ambasada .ro in Vietnam sa vedem daca pot aia sa mi-l prelungeasca cumva si sa-mi continui drumul. Numarul ala din SMS-ul de la MAE pe care-l primesti cand ajungi intr-o tara straina nu era bun. La numarul de urgente MAE din .ro n-a raspuns nimeni.

Se pare ca e foarte important sa nu ai urgente cand esti in afara tarii ca o sa sugi pula cu doua maini ca veverita.

Astia de la Vietnam Airlines m-au adus frumos in zona de sosiri si am inceput sa ma simt ca in The Terminal. De imigrari in SGN nu puteam sa trec ca n-aveam viza, si in al doilea rand pasaportul avea validitate sub 180 de zile.

Vad un transfer counter de Emirates si ca aveau un zbor la 23:55 spre DXB de unde aveam mai departe un zbor FlyDubai spre OTP. Pe site pretul sa zicem ca era decent pentru last minute booking, dar i-am intrebat inainte daca au locuri & stuff. Dupa vreo 45 de minute de asteptat dupa confirmari: full flight, inclusiv la Business.

Cum ala era ultimul zbor pe ziua de azi, am cautat zboruri maine. Evident ca daca faci escala in Europa te pisa la pret pentru one way, ca se stie ca europenii au bani.

Cine si-a cumparat un bilet scump one-way spre .ro ca un sef? De banii aia o sa fiu seful la calculat date. O sa devin calendarul uman, dupa calculat sa convertesc si intre calendare: vrei Gregorian la Iudaic? Da la baiatu’ ca iti zice din cap. Vrei Gregorian la Islam? Cum sa nu, pot sa prevestesc cand incepe Ramadanul pe urmatorii o mie de ani.

Dupa ce-am luat biletul m-am dus la aia de la biroul de transfer sa le arat numarul de la e-ticket sa-mi dea boarding pass sa ma duc in pizdia la frig. Dar ce sa vezi, zborul e operat de AirFrance si aia trebuie sa-mi dea boarding pass si aia incep programul la 20:00 si sa stau sa mai fac niste pasi.

Intr-un final pe la opt si-un sfert asa dau de o tipa care pana la urma a inteles dilema mea, m-a crezut pe cuvant ca in CDG nu-mi trebuie viza de tranzit si ca chiar pot sa ma duc cu pasaportul pana la destinatia finala, mi-a dat si locuri la culoar pe ambele zboruri si cand sa tipareasca boarding pass-ul s-a stricat imprimanta aia de bilete.

Long story short, 20 de minute mai tarziu s-a reparat imprimanta si am boarding pass. Srsly, nu stiu ce-am facut, da am facut fix opusul calcatului in cacat. Asta, s-au m-a cobit careva maxim.

13h:25min din SGN in CDG. Fara numar. Macar zbor la vest si n-o sa fiu pisat de oboseala cand ajung in OTP. Sper si sa prind un pic de motaiala pe zborul ala.

Acu stau in lounge-ul de la astia, ca intr-un final mi-au dat aia punctele si am mai castigat un an de intrat in lounge-uri, si scriu despre cat te costa ca nu stii sa socotesti. Asa e cand nu belesti ochii, belesti cardul si ramai ca boul blocat in aeroport. Pot sa ma laud cu cea mai scurta si scumpa vacanta de pana acum. FMM.

certificari

În lumea asta a tehnologiei s-a inventat acu mulți ani ideea de certificare pe abilitatea de a implementa, configura și/sau a depana un produs software. Că vorbim de un sistem de operare, sau de un software de să zicem securitate sau WiFi sau orice altceva. Teoria asta cu certificarea s-a născut ca să poți dovedi la un potențial angajator sau client că știi despre ce vorbești. În practică te ajută un pic să intri pe ușă în fața altora sau să te lauzi în diverse cercuri ce diplome ai si cât de dăștept ejti.

Pe vremea mea ™ când apărea o versiune majoră de software, după 6-12 luni apăreau și examenele: începător, mediu, avansat. Sau în anumite cazuri doar unul singur. Și era frumos, că nu scoate nimeni versiuni majore de software în fiecare an și cel puțin la sisteme de operare iese unul nou la 4-5 ani. Iar la diverse alte aplicații software ies cam la 3-4 ani.

Dădeai examen și era valid cât timp exista versiunea majoră de software. Apărea alta nouă, iți făceai mâna pe ea, așteptai să iasă noul sau noile examene și mai băgai o fisă și tot așa.

La un moment dat cineva s-a prins că hei, dar se pot face bani din ideea asta de certificări. Și uite așa s-au inventat certificăarile care sunt valide doar un număr de ani, în general doi.

Tot pe vremea mea ™, dacă luai examenul, așteptai cam o lună și îți venea prin curier o diplomă frumoasă, embosată și semnată de cineva șmecher de la compania respectivă. Tot ăia care s-au gândit ei că pot să facă bani cu cettificările astea au zis că ce-ar fi să scadă costurile și să nu mai trimită diplome daca iei examenul. “For your convenience and to protect the environment you ca download your certificate from our website in PDF format”. Un fel de du-te și suge-o, ia d’aci un PDF obosit generat automat și vezi-ți de treabă că noi suntem ocupați să numărăm banii.

Și treaba asta e să zicem OK daca ești din ăla focusat pe un produs. Că ai de dat unul sau două examene la fiecare doi ani și aia e. Oricum dacă toată ziua doar apeși butoane într-un singur produs, ajungi să-l știi pe de rost cum se zice. Dai $100 la doi ani și gata, poți să te lauzi în continuare cu cât de deștep ești.

Pe lângă certificările cu focus pe un produs anume, mai sunt alea care sunt agnostice din punct de vedere al produselor și se bazeaza pe lucrurile fundamentele sau pe tehnologii. Un exemplu bun e CISSP, care te trece prin multe domenii. Ăștia sunt ailaltă categorie specială, în care plătești taxă anuală de mentenanță și trebuie să dovedești că te ții la curent cu domeniile respective de tehnologie.

Problema e că eu nu sunt d’ăla de știe doar sa umble cu cheia de 10, și pe ce-am putut să pun mâna să învăț și să mă certific, am făcut-o. Și am acu un teanc de certificări care costă ceva bani să le mențin. Că azi implementez ceva pe Microsoft, mâine pun un firewall, poimâine fac o rețea WiFi și tot așa. Pentru varietate.

Așa am ajuns în situația în care pe an plătesc câteva sute de dolari la unii și la alții ca să pot să îmi mențin certificările și să nu expire. Anul și examenele. Că nu le-am luat pe toate în același an și sunt așa împărțite pe an. Vara dau examene de securitate, iarna infrastructură și între mai strâng puncte pentru chestii agnostice.

Ce mă seacă cel mai tare și mai tare e ca deși certificările astea au valabilitate doi ani, e riscant să dai examenul în ultima zi, că poate îți dă cu virgulă și trebuie să-l mai dai o dată. Și asa ca îl dai cu o lună înainte să expire, să ai timp de stat pe tușă 2-3 săptămâni înainte să mai poți să-l dai o dată. Și ce să vezi, dacă îl iei din prima, perioada de valabilitate nu începe după ce expiră certificarea existentă. Începe fix din ziua în care ai luat examenul. Și uite așa de fapt nu e pe doi ani, e pe un an și 11 luni. Că parcă vine apocalipsa dacă pun și restul de zile la certificarea nouă.

Pe de altă parte, aș zice ca e “the cost of doing business”… da’ parcă prea s-au lăcomit toți și nu știu cât o să mai meargă până o să ajung să dau examene anual. “For my convenience”, evident.


10/08/2018

Pe la 19:45-20:00 am ajuns in Piata Victoriei cu metroul. Relativ goala piata fata de protestele de anul trecut din iarna, semn ca la ora aia nu se stransesera prea multi oameni.

Cand am iesit, piata era plina in sensul ca erau multi oameni, dar nu foarte compacti. Lascar Catargiu era plin de oameni, la fel din ce am vazut si Aviatorilor si Kisselef.

In mare parte se scanda Muie PSD, ca doar asta era tema protestului :) Plus restul de “PSD Ciuma Rosie”, “Jandarmeria apara hotia” (lucru mai adevarat ca niciodata dupa ce-a urmat) si altele.

N-am apucat sa ajung prea in fata ca pe la 20:30 sau cam pe acolo au inceput sa bubuie lacrimogenele si vantul batea dinspre Stefan cel Mare spre Titulescu, lucru nasol ca se imprastiau gazele alea inspre demonstranti. Asta a fost prima data cand Jandarmeria a inceput sa gazeze oamenii din Piata.

Cred ca pe la 21:00 au inceput sa dea iar cu gaze undeva in zona dinspre Victoriei – Lascar Catargiu si cred ca vreo 10 minute mai tarziu fix in oamenii din piata. Le dadeau balistic asa, pentru ca eu eram in zona parcarii din Piata Victoriei unde oamenii de acolo nu aveau cum fizic sa fie vreun pericol pentru jandarmi si chiar nu era nimeni violent.

Asta a fost a doua oara cand mi-au luat gaze direct in mecla, ca au dat cu niste chestii ca niste artificii, da’ cand cadeau aproape de sol te omorau. Si e foarte neplacuta (sa ma exprim englezeste) senzatia de usturime in plamani si in ochi.

Am incercat sa dau cu niste apa ca imi luasem doua sticle, si in timp ce ma spalam a venit cineva si mi-a dat niste lapte pentru ochi care a ajutat destul de repede si am ramas doar cu rezolvat treaba cu respiratul. Tricoul n-a ajutat ca filtru si trebuia sa astept sa sufle vantul gazele sa vina iar aer curat.

Am incercat sa-mi pun tricoul peste ochi sa merg, dar acolo in parcare sunt borduri si riscam sa ma impiedic de vreo una si sa-mi rup dintii. Asa ca am mers ca piratul, ba cu mana pe un ochi, ba pe celalalt, ca sa se odihneasca unul din ei si sa nu-si mai ia gaz.

Dupa treaba asta m-am dus la Mega Image sa-mi iau o sticla de lapte, ca la cum aratau lucrurile, situatia n-avea nicicum sa se imbunatateasca.

Sporadic intre 10 si 11 asa s-a tot dat cu gaze in multime. Cu astea am avut oarecum noroc ca eram la buda la Antipa ca ma pisam pe mine si o parte din gaze nu m-au prins ca eram inauntru, da m-au luat pe final cand am iesit.

In jur de 22:50 asa, au inceput sa bubuie grenadele cu lacrimogene una dupa alta si toata piata s-a umplut de fum.

Din ce citeam azi, cica s-au dat semnale luminoase ca se da cu gaze. O MARE MINCIUNA, s-a dat direct cu gaze.

Au tras animalele alea in toate directiile, ajungeau tirurile pana la cladirea BRD, care e in partea opusa a guvernului.

Pe mine m-au prins fix pe colt la Antipa unde situatia era un pic nasoala ca n-aveam pe unde sa fugim ca erau gaze in fata si in spate si se tot dadea pe Mihalache.

Problema e ca riscul de busculada era foarte mare si eram langa garduri de sarma si copaci. Initial am incercat s-o iau spre Kisselef in ideea de a ajunge cumva prin parc, dar au inceput sa cada resturile de la proiectilele alora prin copaci si fumul a devenit prea dens sa poti respira sau sa vezi ceva cand ai ochii cat cepele de umflati.

Cumva singura varianta a fost spre Mihalache si dupa aia spre Titulescu, ca acolo nu prea ajungeau gazele. Am luat-o prin parculetul de la Antipa pana in Mihalache. Gardurile de acolo erau din plasa super subtire si nici foarte bine prinse de stalpisori, si au fost rapid puse la pamant.

Am ramas acolo in zona deasupra pasajului pana mi-am mai calmat ochii cu niste spalaturi cu lapte (Napolact FTW) si sa vad care e situatia.

Tot veneau grupuri de oameni care erau atacati si batuti de jandarmi in timp ce erau gazati.

Toata gazarea a fost foarte sustinuta pana pe la 00:00 asa, s-a dat in continuu cu gaze.

M-am oprit sa mai ajut pe unul si altul care nu mai puteau merge din cauza ca nu mai puteau deschide ochii de la gaze.

Peste drum, masinile de politie incercau sa calce oamenii care erau in Pasajul Victoriei. Cumva in ultimul moment au iesit unii cu butelii cu gaze sa disperseze lumea si au plecat mega rapid de acolo ca deja incepuse lumea sa arunce cu ce se nimerea in ei.

Dupa ce n-am mai putut sa stau acolo in piata am luat pe langa America House pana la intrarea in pasajul Victoriei unde am dat de masinile de la SMURD care ajutau oamenii cu dificulati.

I-am intrebat pe aia daca apa sau lapte (ca vorba aia, sa intrebi pe unu care in principiu stie) si mi-a zis ca mult lapte peste ochi. Acu pot sa zic ca e oficiala asta cu laptele impotriva gazelor lacrimogene.

Am stat in zona pana cand ajunsesra animalele alea de jandarmi pana pe la Mihalache/Buzesti si am luat-o pe niste stradute sa ajung la McDonalds-ul de la Buzesti.

Am fost oarecum inspirat sa plec atunci ca dupa aia am vazut la stiri ca jandarmii au atacat si batut oamenii care se retrageau si eu erau pe diverse stradute.

Pe la Hala Matache era calma treaba, circulau si ceva masini si-am putut sa-mi comand un Uber sa ma duca acasa.

So ca si rezumat:

  • Jandarmeria a atacat pe toti oamenii care se aflau in piata
  • Au dat cu gaze in mijlocul oamenilor care erau la foarte mare departare fata de ei

  • In poza de mai sus se vede unde erau jandarmii si unde au ajuns gazele aruncate de ei (am furat poza de pe FB). P’acolo asa m-a prins cre’ca a doua oara.
  • Politia incerca sa calce oamenii pe strada la intrarea in Pasajul Victoriei dinspre Titulescu.
  • Am o julitura la cot care nu stiu de unde e.

Bun venit in Romania 2018!

lio fun stuff

Acu multi ani, cand voiai sa faci un target de ISCSI pe Linux, existau tgtd si tgtadm. Pen’ca tgtd rula in userspace, avea ceva penalitati de performanta, ca luai chestii de pe disk si le trimiteai peste retea. Niste oameni, adica Datera prin http://linux-iscsi.org/wiki/LIO au scris toata partea de target si initiator in kernel ca sa nu mai faci context-switching aiurea fara motiv.

Partea misto e ca pe langa ISCSI “normal” au implemenant si primitivele VAAI ale lui VMware si accelereaza diverse operatiuni pe care le face ESXi: gen zero-ing, copiere si scriere de date de pe acelasi LUN etc.

Intr-un proiect de acu aveam nevoie de shared storage pentru niste ESXi-uri si m-am apucat sa fac niste target-uri pe un CentOS7. Initial din toate discurile de aveam sa le export, am exportat unul singur mi-am facut treaba si restul sa le export cand aveam nevoie de ele.

Intr-o zi cu soare am ajuns si la exportat restul de discuri ca aveam nevoie de loc unde sa fac backup, sa mut niste masini pe niste discuri mai rapide etc.

Am adaugat si restul de discuri ca LUN-uri, le-am mapat in ESXi-uri si m-am luat cu alta treaba. A doua zi incepe lumea sa se agite ca bai nu mai merge “serverul”, unde “serverul” era un VM pe care lucrau oamenii. Pana a ajuns la mine asta, pana am terminat ce aveam de facut, a inceput sa mearga “serverul”. Am zis ca cine stie, o fi sughitat reteaua sau ceva (ca lumea era pe Wi-Fi si na… nu e obligatoriu sa mearga mereu ca te mai pui cu laptop-ul aiurea si poate nu ai cel mai bun semnal) si d’aia n-a mers, ca nici nu a stiu lumea sa-mi spuna exact ce inseamna “nu merge”.

A doua zi dupa incident, eram eu pe langa rack-uri si trageam de niste cabluri pe acolo, cand aud un bipait din ala de cand buteaza un server. M-am apucat sa ascult sa vad de unde e, da pana am gasit un monitor, pana l-am montat, pana am luat-o din server in server, totul era iar OK. Dupa aia am luat-o cu verificat de uptime-uri, pana dau de asta cu storage care avea uptime de cateva minute.

Evident, dictai WTF-ul pe fata mea, ca n-atinsesem nimic care sa-l afecteze. Noroc ca mai eram cu cineva acolo pe post de martor, ca zicea lumea ca-i sabotez. E, cat incercam io sa ma uit in loguri sa vad ce-ar fi putut sa aiba (bine, sperand sa gasesc loguri), vad cum incepe un kdump sa ruleze si buf, reboot iar.

Cat am apucat io sa vad ce scria pe ecran, baga ceva cu “BIOS corrupted by…”. Zic sa vezi acu distractie, ca daca e ceva de BIOS si nu exista update la producator, o sa se lase cu sugeri maxime, ca aia n-o sa fixeze peste noapte si o sa dureze pana se prind ce ma-sa are.

Cat ma gandeam eu la posibilitati si ce-ar putea sa aiba, s-a rebutat, a pornit fain frumos, a mai mers vreo 10-15 minute si iar kdump si biiip restart.

Eram asa un pic cu morcovul in cur ca 1) lumea chiar avea nevoie de storage pentru VM-uri 2) eu propusesem solutia. Mai mult 2) ma ardea maxim. Ca ma gandeam c-am pizdit-o grav. Desi era prima oara cand se intampla asta, am auzit de atatea ori scuza asta la diversi cu “pana acu nu mi s-a intamplat” ca ma gandeam ca sigur o sa ma creada din parti clientul daca zic si io asta. Ca eu sigur nu l-as fi crezut pe unul cand zice asta.

Si m-am apucat sa ma gandesc ca ma-sa s-a schimbat intre timp, ce-am facut, unde, de ce. Si nu imi venea nimic in cap sa fi facut acolo, care sa prezinte un risc. Pana cand dupa vreo ora asa, si vreo 2 reboot-uri, m-a palit ca poate e de la ISCSI ca adaugasem alea 2 LUN-uri in portal.

Le-am demonat de pe ESXi-uri, le-am sters din portal si am asteptat sa vad daca mai crapa.

Si n-a mai crapat.

Dupa ce mi-a trecut sperietura cu asta, am inceput sa ma gandesc ca “ba bine, nu mai crapa, da acu ce cacat fac cu restul de discuri, ca nu pot sa nu le mai prezint la ESXi-uri, ca am nevoie de ele”. Cat timp ma gandeam eu la asta, mi-am adus aminte de kdump. Si m-am apucat sa ma uit prin ele, ca se salvasera toate de cand a inceput sa moara kernelul.

Si mi-a trecut panica, ca absolut de fiecare data crapa in acelasi loc:

[ 5241.534120] BUG: unable to handle kernel NULL pointer dereference at 000000000000001c
[ 5241.534194] IP: [<ffffffff816abb5c>] _raw_spin_lock+0xc/0x30
[ 5241.534245] PGD 0 
[ 5241.534264] Oops: 0002 [#1] SMP 
[ 5241.536014] Call Trace:
[ 5241.536048] [<ffffffffc05d1c90>] ? target_complete_ok_work+0x180/0x330 [target_core_mod]
[ 5241.536109] [<ffffffff810a881a>] process_one_work+0x17a/0x440
[ 5241.536153] [<ffffffff810a94e6>] worker_thread+0x126/0x3c0
[ 5241.536196] [<ffffffff810a93c0>] ? manage_workers.isra.24+0x2a0/0x2a0
[ 5241.536244] [<ffffffff810b098f>] kthread+0xcf/0xe0
[ 5241.536281] [<ffffffff810b08c0>] ? insert_kthread_work+0x40/0x40
[ 5241.536327] [<ffffffff816b4f58>] ret_from_fork+0x58/0x90
[ 5241.536367] [<ffffffff810b08c0>] ? insert_kthread_work+0x40/0x40
[ 5241.536410] Code: 5d c3 0f 1f 44 00 00 85 d2 74 e4 0f 1f 40 00 eb ed 66 0f 1f 44 00 00 b8 01 00 00 00 5d c3 90 0f 1f 44 00 00 31 c0 ba 01 00 00 00 <f0> 0f b1 17 85 c0 75 01 c3 55 89 c6 48 89 e5 e8 a4 2a ff ff 5d 
[ 5241.536649] RIP [<ffffffff816abb5c>] _raw_spin_lock+0xc/0x30
[ 5241.536694] RSP <ffff88085de0fdf8>
[ 5241.536720] CR2: 000000000000001c

Bine, mi-a trecut panica ca m-am gandit eu ca ba, sa vezi ca se confuzeaza in vreo chestie de concurrency ca mai multe host-uri vor chestii relativ similare de pe mai multe discuri in acelasi timp si poate se dezaloca ceva aiurea si d’aia ajunge ala in NULL pointer dereference. Sau poate cand aloca nu si incrementeaza numarul de alocari si prima dezalocare merge da restul nu mai au cum… Sau ceva de SerDes aiurea la scrieri/citiri.

Da’ fiind in _raw_spin_lock cand crapa… slabe sanse sa pot debuga ceva, ca asta e treaba de lucruri low level in kernel.

Long-story short: mai multe LUN-uri intr-un portal exportate la mai multe host-uri != love.

Acum stiam de ce crapa, da nu-mi rezolva problema, si anume sa pot folosi toate discurile din sistem.

Si mi-am adus aminte ca atunci cand am mai avut probleme din astea cand nu mergeau mai multe lucruri in acelasi timp in kernel am folosit VM-uri se separ pe caprarii componentele.

Asa am ajuns ca pentru fiecare disc pe care trebuie sa-l export sa fac cate o masina cu KVM la care sa-i atasez discul din host, sa fac cate o configuratie simpla de ISCSI target si s-o prezint mai departe la ESXi-uri. E o solutie scarpinata pe dupa ureche, da’ merge si pentru ca virtualizare si discuri din host in VM direct, nu se observa nici un overhead.

Nu e cea mai eleganta solutie, dar merge fara prea mult efort de administrare.

tcp ecn/cwr & panos

Scriu postul asta in aproape Noiembrie 2017. Nu ca n-ar avea blog-ul timestamp, da e bine de retinut ca e vorba de sfarsitul lui 2017. Si e important acest aspect.

Pentru un client cu nevoi de Client-to-Site VPN am ales sa folosesc PaloAlto Networks VM-100. Ca are capabilitati misto, e super click-click de folosit, si pe langa VPN pot sa fac si alte lucruri bune cu el in retea.

Cum focusul principal e VPN-ul acum, m-am apucat voiniceste sa configurez GlobalProtect sa ajunga lumea de pe unde o fi in reteaua interna. Si da-i si configureaza, salveaza si incearca sa te conectezi pe portul 443 la firewall sa te loghez in portal sa downloadezi clientul, sa-l instalezi si sa te conectezi.

Pula. Ca nu mergea neam. Vreo 3 zile am incercat toate bifele de acolo, ca poate imi scapa mie ceva. Bai da nimic. O singura regula de firewall cu Any-Any-Allow-Log. Ca nu pot da gres cu asta cand lasi traficul sa curga in toate directiile.

Dupa ce n-a vrut si n-a vrut, am zis sa sun pe cine stiam eu ca s-a mai dat cu PaloAlto. Se uita omul, face config de la zero ca eu il stersem sa nu fi uitat vreo chestie si sa debugheze aiurea. Rezultatul: fix pula. Coincidenta face ca omul sa fie fost la un curs de refresh de PAN si l-a pus si pe ala de era instructor sa se uite. Teoretic trebuia sa mearga, practic nu mergea.

Si ca sa fie treaba si mai si, cateodata puteai accesa portalul pentru cateva minute pana cand iar nu mai mergea, dar doar daca fix in acelasi timp te dadeai pe interfata de management a echipamentului. Ca daca tot e voodoo, sa fie pana la capat.

Plecand de la premisa ca e buna configuratia, omul de l-am sunat s-a apucat sa faca dump de pachete, sa vedem daca ajung la jucarie. Si ajungeau bine mersi, doar ca erau “silent dropped”. De ce? Pai pentru ca toate pachetele de SYN aveau si flag-urile de ECN si CWR setate. Cu care firewall-ul nu avea nici o problema sa le accepte pentru management, dar avea o problema cand se duceau spre portalul minune pentru VPN. Care stau in mortii lor fix pe acelasi echipament, si pachetele trec fix prin acelasi loc si morti in inima, singura diferenta e portul pe care stau componentele.

Sa retinem, la sfarsit de 2017 inca mai sunt unii si altii care nu au auzit de ECN.

Pentru ca eu n-am ce sa-i fac, m-am apucat sa vorbesc cu suportul. Care primul nivel de suport este evident format din indieni incompetenti, dar care sunt foarte bine dresati sa caute motive sa dea vina pe tine din ce cauza nu merge jucaria si sa inchida cazul. Si sa scrie in notitele de la caz aproape orice altceva decat ca este o problema cu produsul.

Ultima scremere e ca IP-ul extern il iau prin DHCP si s-a gandit Pradeep ca poate de acolo e, desi el se conecta pe interfata de management la echipament fix prin acea interfata. Dar probabil ca in logica indieneasca o avea vreun sens.

Si cireasa de pe tort (cel putin pana acum) e ca dupa ce am stat iar cateva ore sa refaca configuratia de cateva ori, a scris pe notitele de la caz ca “we discussed that this is a cosmetic issue”. Asta o zic asa, sa nu zica lumea p’aci ca’s am ceva in mod gratuit cu indienii cand zic despre ei ca majoritatea sunt imbecili “summa cum laude”.

Asta dupa ce prima oara mi-a zis senin ca “da, pai dezactiveaza ECN pe clientii care o sa se conecteze si asta”. S-o dezactivez pe ma-sa. Ca daca voiam sfaturi cretine despre cum sa depanez problema ma duceam in parc sa discut cu un caine despre asta.

Si acu ca sa ma laud, am gasit si workaround temporar la problema pana ma termin de certat cu astia si isi fixeaza cacatul de produs. Am mai configurat o interfata pe firewall, am bagat-o intr-un alt VR si am legat-o intr-un Linux, legat fix pe DHCP la acelasi provider. Si pe Linux am un redir care asculta pe 443 pe interfata externa si trimite toate conexiunile pe IP-ul de pe interfata de la firewall. Ca stack-ul de IP de la Linux nu e scris de oameni care nu stiu sa citeasca un RFC si sa implementeze corect ce scrie acolo si il doare fix intre buci ca vin pachete cu SYN+ECN+CWR. Si uite asa merge treaba, cu workaround-uri din astea tembele. La workaround-ul asta am ajuns gandidu-ma cum sa fac sa scap de flag-urile alea fara sa impactez clientul.

Deci da, nu toata lumea stie ca internetul a mai evoluat din 2000 pana azi.

paharul naravas

Aseara stateam in fata unui pahar. Mai sorbeam un pic din el, ma mai uitam la el. Ne imprieteniseram un pic asa. Pana cand m-a atacat din senin, sarind direct pe degetul mare de la picior.

Si degetul s-a suparat ca n-am ripostat ca nu l-am tras pe pahar la raspundere si s-a umflat sangele in el. Dar ghinion, ca s-a umflat unde nu trebuia, sub unghie.

Asa ca de dimineata in loc sa ma trezesc cand trebuia sa sune ceasul, m-a trezit degetul, ca bai avem o problema.

Am schioptat incet-incet pana la Floreasca la urgente la Ortopedie sa vad care mai e treaba pe acolo. Mi-am facut si vreo 2-3 radiografii la deget, din toate pozitiile de ziceam ca-s la sedinta foto: acum drept, acum aplecat intr-o parte, acum si de deasupra…

Acolo radiografia functioneaza pe principiul urgentele primele, aia din spital pe locul doi si daca nu mori, stai la coada. Si am stat, am schiopatat pe acolo, intr-un final am ajuns sa ma iradiez un pic de control.

Noroc ca nu s-a rupt nimic, dar aveam un hematom de toata frumusetea. Cum statea el sub unghie ca manechinul in vitrina si se uita la mine. Si la doctor, care doctor s-a suparat pe el si a zis ca-l rezolva sa nu se mai uite asa.

Si acum, partea interesanta – cum se repara una din asta:

  1. Imbibi niste vata in spirt si ii dai foc.
  2. Iei un ac mai gros asa si il inrosesti in focul creat la pasul 1.
  3. Cu acul rosu dai o gaura in unghie pana iese sangele. Dupa aia mai impingi un pic de control, sa fii sigur.
  4. Repeti pasul trei de vreo 3-4 ori in zone diferite pana obtii o fantana arteziana de toata frumuseata
  5. Strangi din dinti cat faci pasii 3-4, ca e live fara nici un fel de anestezic
  6. Bandajezi piciorul, incerci sa-l pui la loc in bocanc si te duci acasa.

Daca ai sange rece, poti face asta si acasa fara nici un fel de problema :)

A venit un asistent si mi-a explicat cele de mai sus pe scurt: “O sa-ti dam niste gauri cu un ac inrosit in foc. Esti de acord?”. M-am uitat la el, m-am uitat la deget si am zis: “Ce poate sa fie rau in asta?”.

Discutiile intre doctor si asistenti erau misto, “hai sa ii dam foc” – cand vorbeau despre mine in spatele cortinei. Asta e momentul ala incepi sa te gandesti ca de obicei expresiile de genul “ce poate fi rau in asta?” sunt de obicei “famous last words” :))

Acum degetul meu arata de parca a fost impuscat cu alice. Si toata saptamana trebuie sa stau cu el in sus sa nu i se mai urce sangele la unghie, sa iau niste pastile, sa mai schimb bandajul si sa astept sa scada tensiunea in unghie. Si sa merg pe calcaie.