Tag Archives: linux

[geek stuff] centos si interfetele de retea

Acu ceva vreme, inainte sa plec in concediu, am pus la niste neni in datacenter un server pe care urma sa pun niste masini virtuale pentru varii chestii de am io nevoie. Eh, m-am intors din concediu vesel nevoie mare sa m’apuc de treaba. Fac io ieri update la system, printre care si kernel si ii dau repede un reboot, ca deh… nefiind dat in productiune, nu se supara nimeni ca-l rebutez in mijlocul zilei. Si fix pula conexiune la loc. Dat mail la suport, conversat cu un nene d’acolo, mai umblat la masinuta, mai gadilat, mai un reboot, a luat-o. Aseara, fac si io o masina virtuala si dau sa dau restart la tot serverul sa vad ca porneste si masina virtuala instalata proaspat cum trebuie. Surpriza: fix pixu conexiuni la server, dar puteam sa ma conectez la masina virtuala…

Asta pana azi cand m-am dus sa vad ce ma-sa are. Si-am aflat: daca in /etc/sysconfig/ifcfg-ethX nu pun si HWADDR si am mai multe interfete, deservite de module separate de retea cum am io Intel si 3Com, din motive necunoscute, cand buteaza sistemul numele interfetelor se asociaza intr-un mod aleator la interfetele fizice. Si ete asa eth2 ajunge asociata pe prima placa de retea si nu pe a treia….

Asa ca azi i-am pus si HWADDR in fisierul de configurare si dupa tzashpe reboot-uri se pare ca face asocierile cum trebuie. Si ete asa o ora pierduta la depanat si alte doua ore in trafic…

new blog server

Pentru ca din cand in cand se napustesc multi oameni sa vada blogu, saracul server intra in fibrilatii si-i ia cateva ore sa-si revina. Io n-am ce sa-i reprosez. Pentru un Pentium 3 @ 1Ghz si 512MB RAM se descurca mai mult decat onorabil. Si cum exista ocazii si ocazii, s-a ivit si ocazia de’un mic upgrade. Drept urmare, azi am instalat noul server fizic pe care va rezida masina virtuala in Xen pentru noul loc unde voi migra blogu meu si’a lu madamme.

Nu e cel mai nou din parcare, insa e mai potent. Noul server, adica:

processor       : 3
vendor_id       : GenuineIntel
cpu family      : 15
model           : 2
model name      : Intel(R) Xeon(TM) CPU 3.06GHz
stepping        : 5
cpu MHz         : 3056.856

Big improvement. Acu sa vedem cum vor merge lucrurile. Cu ocazia asta imi fac si io mana cu Xen, sa vad ce si cum.

vmware server si selinux != love

Facui acu un upgrade de la CentOS 4 la CentOS 5 si in acelasi timp de la VMWare server 1.0.7 la 2.0.1. Si doua ore m-am cacat pe mine ca nu stiam de ce mortii si ranitii lu ma-sa nu pornea cum trebuie vmware. Si dupa nenumarate grep-uri pe ici si pe colo, am zis ca daca dau cu strace n-are nimic, ca oricum eram in pana de idei. Ete asa aflai io ca selinux era pe enforcing si pizduia vmwarele la greu. setenforce 0 si un restart la vmware mi-au rezolvat problemele existentiale si ne-explicabile.

load balancing

Din cand in cand mai mai fericeste cate un vanzator pe la bureau care vinde dupa cum il taie pe el neuronul. Citind din datasheet-uri, neintelegand in ce conditii functioneaza ce scrie in datasheet… si aci as putea continua pe foarte multe randuri.

Anyway, pentru ca daca in datasheet scrie ca face “load-balancing”, atunci face. Ca n-o face produsul de capul lui asa cum credea clientul ca face, si trebuie haxorit… asta e partea a doua. Pentru ca mi-am batut o tzara capul si pe a lui rpetre cu duda mea de problema, a mai rasarit un nou articol pe wiki despre Poor man’s IP connection load balancing. Da, stiu, e easy, da io nu stiu awk/perl/sed/whatever. Si nu, n-am facut in perl pentru ca niste idioti nu pun perl pe linuxul lor. Si nici vim, doar vi; care e oribil.

Setupul era ceva de genul: am doua locatii si doua legaturi intre ele pe doi provideri diferiti. Se cere sa se balanseze traficul intre cele doua locatii, iar in caz ca unul din provideri are o buba, sa se faca failover si sa se foloseasca cel ramas in picioare pana cand isi revine cel stricat, caz in care trebuie iar balansate conexiunile.

miercuri dupa-masa

Ca parca tot n-aveam io de lucru azi dupa-masa pe la patru asa, m’apuca gandul sa fac si io update la Quagga pe un Ubuntu Dapper, care cica fixa niste instabilitati pentru ASN-uri pe 32 de biti. Facui io update bucuros, restart la daemoni si dadui sa continui cu trebile mele. Da de unde, “nu mai merge internetul”. Si asa era:

BGP: Assertion `len < str_size’ failed in file bgp_aspath.c, line 493, function aspath_make_str_count
BGP: Backtrace for 14 stack frames:
BGP: [bt 0] /usr/lib/libzebra.so.0(zlog_backtrace+0x22) [0xb7f89e9c]
BGP: [bt 1] /usr/lib/libzebra.so.0(_zlog_assert_failed+0x8d) [0xb7f8a0cf]
BGP: [bt 2] /usr/lib/quagga/bgpd [0x808cdac]
BGP: [bt 3] /usr/lib/quagga/bgpd(aspath_dup+0x34) [0x808ce76]
BGP: [bt 4] /usr/lib/quagga/bgpd [0x808ce8e]
BGP: [bt 5] /usr/lib/libzebra.so.0(hash_get+0x5b) [0xb7f82c44]
BGP: [bt 6] /usr/lib/quagga/bgpd(aspath_parse+0x2d) [0x808cfe4]
BGP: [bt 7] /usr/lib/quagga/bgpd(bgp_attr_parse+0x211) [0x8064eb3]
BGP: [bt 8] /usr/lib/quagga/bgpd [0x80789aa]
BGP: [bt 9] /usr/lib/quagga/bgpd(bgp_read+0x855) [0x8079ae8]
BGP: [bt 10] /usr/lib/libzebra.so.0(thread_call+0x6f) [0xb7f80034]
BGP: [bt 11] /usr/lib/quagga/bgpd(main+0x2a7) [0x805b92f]
BGP: [bt 12] /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xd2) [0xb7dfaea2]
BGP: [bt 13] /usr/lib/quagga/bgpd [0x805b551]

L-au fixat de i-au sarit mucii, noroc cu un modem USB de la Vodafone sa caut pe internet versiunea anterioara de Quagga care stiam ca merge bine mersi. Gasit, downloadat, downgradat si reparat.

varnish

Din cand in cand, pe langa chestiile obisnuite de le fac la job, mai configurez si servere pentru tot felul de chestii de unii zic ca le trebuie. In ultima vreme m-am tot jucat cu configuratul unui stack LAMP pentru un proiect al corporatiei. Cum departamentul care are proiectul n-a intrebat pe nimeni ce calitati trebuie sa aiba programatorii care scriu codul la respectiva aplicatie web, m-am pricopsit si cu partea de optimizare server-side fara sa ma ating de codul PHP, ca nu prea am talent deloc. Cool ar fi daca si programatorii aia ar da ceva dovada de mai mult profesionalism si n-ar avea atitudine de amatori de 2lei.

La sfatul unui om care chiar stie ce face cand e vorba de programare, m-am apucat de jucat cu Varnish care e un fel de accelerator software pentru site-uri care fara ar rula greoi la cereri multe (Perl/PHP). Varnish asta e un fel de Squid pe steroizi care stie foarte bine cu se se mananca protocolul HTTP si cum se poate optimiza. Apache-ul din spate sta si o cam freaca. Ar freca-o si mai mult daca unii n-ar pune Expire in 1900 toamna la tot ce servesc si ar avea macar chestii de bun simt de macar juma de ora – o ora astfel incat sa nu mai fie frecat si apache-ul mereu. Da deh… cica SEO shit, ca tot e trendy.

Acu am dileme cu mysql si cum ma prind daca ruleaza incet sau nu, in afara de slow log, ca acolo timpii par buni, da el tot logheaza…