<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>printf(&#34; SaltwaterC &#34;); &#187; Virtualizare</title>
	<atom:link href="http://www.saltwaterc.net/category/virtualizare/feed" rel="self" type="application/rss+xml" />
	<link>http://www.saltwaterc.net</link>
	<description>Developer blog</description>
	<lastBuildDate>Mon, 09 Aug 2010 15:47:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ubuntu 10.04 Lucid Lynx și OpenVZ</title>
		<link>http://www.saltwaterc.net/linux/ubuntu-10-04-lucid-lynx-si-openvz.html</link>
		<comments>http://www.saltwaterc.net/linux/ubuntu-10-04-lucid-lynx-si-openvz.html#comments</comments>
		<pubDate>Thu, 13 May 2010 06:30:13 +0000</pubDate>
		<dc:creator>SaltwaterC</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Virtualizare]]></category>

		<guid isPermaLink="false">http://www.saltwaterc.net/?p=768</guid>
		<description><![CDATA[Vestea bună este faptul că a apărut Ubuntu 10.04. Vestea proastă este faptul că suportul pentru OpenVZ în kernel 2.6.32 a apărut prea târziu pentru a fi inclus în distribuție. Sunt conștient de faptul că LXC (Linux Containers) va fi următoarea tehnologie de virtualizare la nivel de sistem de operare. De fapt a fost adoptată [...]]]></description>
			<content:encoded><![CDATA[<p>Vestea bună este faptul că a apărut Ubuntu 10.04. Vestea proastă este faptul că suportul pentru <a href="http://community.livejournal.com/openvz/30998.html" target="_blank">OpenVZ în kernel 2.6.32</a> a apărut prea târziu pentru a fi inclus în distribuție. Sunt conștient de faptul că <a href="http://lxc.sourceforge.net/" target="_blank">LXC (Linux Containers)</a> va fi următoarea tehnologie de virtualizare la nivel de sistem de operare. De fapt a fost adoptată în mainline la nivel de kernel. Dar între timp OpenVZ a strâns o comunitate destul de mare și suficiente unelte de administrare pentru a nu îl face bun de aruncat la gunoi în secunda numărul doi. În plus, migrarea de la o tehnologie de virtualizare la alta nu se poate face imediat.</p>
<p>Probabil buba cea mai mare pe care o are (momentan?) Ubuntu 10.04 în ceea ce privește suportul pentru OpenVZ nu este faptul că (momentan?) nu poate fi folosit pe post de HN (Hardware Node), ci faptul că are probleme destul de mari în rularea ca guest. Abia acum am înțeles de ce <a href="http://pve.proxmox.com/wiki/Debian_Appliance_Builder" target="_blank">DAB (Debian Appliance Builder)</a> nu a venit cu suport pentru Ubuntu 9.10, iar acum pentru 10.04. Noul sistem de init, <a href="http://upstart.ubuntu.com/" target="_blank">upstart</a>, ce practic înlocuiește vechiul SysV init, nu se prea pupă cu OpenVZ, cel puțin nu implicit în unele pachete de servicii incluse în distribuție. Nu o să mai aduc aminte de clasica deja incompatibilitate între <a href="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html" target="_blank">udev</a> și OpenVZ.</p>
<p>Există mai sus vreo două întrebări din categoria &#8220;momentan&#8221;. Prima cel mai probabil va rămâne la stadiul de permanent. Din moment ce echipa din spatele Ubuntu adoptă LXC, eventualele bug-uri legate de OpenVZ vor intra în caregoria &#8220;won&#8217;t fix / invalid&#8221;, deci feedback-ul din partea comunității să se piardă. Sau să se ajungă la &#8220;by popular demand&#8221; &#8211; sper, deși slabe șanse. Cea de-a doua chestie în schimb se poate să fie rezolvabilă printr-un kernel comunitar ce să includă suport pentru OpenVZ (sper și pentru <a href="http://www.linux-kvm.org/page/Main_Page" target="_blank">KVM</a>). Între timp, Proxmox rulează și va adopta 2.6.32 și pentru OpenVZ. Momentan știe doar de KVM.</p>
<p>Ca regulă, cel mai probabil anumite servicii nu vor porni automat, la boot, fără a modifica scripturile de init, ce se găsesc în /etc/init nu în /etc/init.d (un upstart job din init.d este practic un symlink). Suport pentru SysV Init script încă mai este posibil dacă init-ul nu a fost convertit în upstart job din moment ce upstart a fost conceput cu gândul la &#8220;backward compatibility&#8221;. În ceea ce mă privește, cele mai problematice până acum au fost networking, ssh și mysql. Morala este: pentru a folosi Ubuntu 10.04 ca OpenVZ guest, este nevoie de pregătiri pentru doi termeni de bază: &#8220;hack&#8221; și &#8220;patch&#8221;. Cu toate acestea, consider că merită efortul. Lucid Lynx include suficiente soluții actualizate pentru a renunța la vechiul LTS, Ubuntu Hardy. Sau, de ce nu, la Debian Lenny.</p>
<p>Pentru că nu dețin toate informațiile, dau următoarele link-uri de unde mă inspir și eu:<br />
<a href="http://blog.bodhizazen.net/linux/ubuntu-10-04-openvz-templates/" target="_blank">Ubuntu 10.04 OpenVZ Templates</a><br />
<a href="http://blog.bodhizazen.net/linux/download-ubuntu-10-04-openvz-templates/" target="_blank">Download Ubuntu 10.04 OpenVZ Templates</a></p>
<p>Pentru că nu îmi place lucrul manual atâta timp cât există lucruri precreate:<br />
<a href="http://bodhizazen.fivebean.net/openvz/" target="_blank">http://bodhizazen.fivebean.net/openvz/</a></p>
<p>Printre altele, a trebuit să downloadez template-ul lamp pentru a mă inspira din scripturile de init pentru minimal. Sunt adeptul stilului minimal peste care să fac lego instalând direct din repo atunci când plasez o soluție. <em>Less is more!</em></p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.saltwaterc.net/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.saltwaterc.net/linux/ubuntu-10-04-lucid-lynx-si-openvz.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenVZ Debian Appliance Builder</title>
		<link>http://www.saltwaterc.net/linux/openvz-debian-appliance-builder.html</link>
		<comments>http://www.saltwaterc.net/linux/openvz-debian-appliance-builder.html#comments</comments>
		<pubDate>Fri, 26 Mar 2010 20:22:00 +0000</pubDate>
		<dc:creator>SaltwaterC</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Virtualizare]]></category>

		<guid isPermaLink="false">http://www.saltwaterc.net/?p=705</guid>
		<description><![CDATA[Băieții ăștia faini de la Proxmox ce se ocupă de Proxmox VE printre altele, soluția de virtualizare ce o recomandam în articolul anterior pentru testarea de configurații, au mai scos un hit: Debian Appliance Builder, pe scurt dab. Acum să nu se înțeleagă din fraza anterioară faptul că Proxmox VE nu ar fi bun în [...]]]></description>
			<content:encoded><![CDATA[<p>Băieții ăștia faini de la <a title="Proxmox" href="http://proxmox.com/" target="_blank">Proxmox</a> ce se ocupă de <a title="Proxmox Virtual Environment" href="http://pve.proxmox.com/wiki/Main_Page" target="_blank">Proxmox VE</a> printre altele, soluția de virtualizare ce o recomandam <a title="Cum să reproduci setup-din din producție – pe local" href="http://www.saltwaterc.net/linux/cum-sa-reproduci-setup-din-din-productie-pe-local.html" target="_blank">în articolul anterior</a> pentru testarea de configurații, au mai scos un hit: <a title="Debian Appliance Builder" href="http://pve.proxmox.com/wiki/Debian_Appliance_Builder" target="_blank">Debian Appliance Builder</a>, pe scurt dab. Acum să nu se înțeleagă din fraza anterioară faptul că Proxmox VE nu ar fi bun în producție. <a title="OVH: Proxmox" href="http://help.ovh.co.uk/Proxmox" target="_blank">Cel puțin OVH</a> folosește în producție produsul menționat anterior.</p>
<p>Dar să revenim la builder. Practic dab este un utilitar menit să subțieze destul de mult procesul de <a title="Debian template creation" href="http://wiki.openvz.org/Debian_template_creation" target="_blank">creare al unui template Debian</a>. De fapt procesul în sine nu e mare filosofie, dar este stufos și necesită cel puțin un shell script pentru a reduce repetitivitatea. Cei de la Proxmox au reușit prin automatizarea etapelor de creare să reducă timpul și complexitatea necesară creării unui template OpenVZ pentru Debian. Având în vedere că Ubuntu este compatibil din punct de vedere binar cu upstream-ul (cel puțin la nivel declarativ), dab suportă printre altele și crearea de template-uri pentru câteva versiuni ale acestei distribuții.</p>
<p>Distribuții suportate de către Debian Appliance Builder:</p>
<ul>
<li>Debian Etch (4.0) (Legacy Stable)</li>
<li>Debian Lenny (5.0) (Stable)</li>
<li>Ubuntu Hardy (8.04) (LTS)</li>
<li>Ubuntu Intrepid (8.10)</li>
<li>Ubuntu Jaunty (9.04)</li>
</ul>
<p>Remarcabilă este absență lui Karmic, deși nu este esențială având în vedere că următorul LTS, Ubuntu Lucid Lynx (10.04), stă să apară. Momentan a poposit la Beta 1.</p>
<p>Practic pașii necesari creării unui template au fost reduși la:</p>
<ol>
<li>crearea unui fișier de configurare (dab.conf) cu o sintaxă &#8220;key: value&#8221; relativ simplă, explicată în documentație. Joacă rol de &#8220;metadata&#8221;.</li>
<li>init &#8211; moment în care se citește lista de pachete din repo-urile distribuției alese</li>
<li>bootstrap cu opțiuni, unde subsemnatul preferă &#8220;&#8211;minimal&#8221;. Prefer să am un setup minimal și să instalez din repo pachetele în funcție de context în momentul în care ajung la deploy. Less is more. La bootstrap se face downloadul efectiv al pachetelor în directorul cache al structurii pe care se construiește template-ul.</li>
<li>[opțional] instalare de pachete suplimentare. Minimalul lor nu corespunde minimalului meu, ce presupune și: htop, sysv-rc-conf, sysvconfig, bzip2.</li>
<li>configurare. Minimal în terminologia mea nu înseamnă o chestie redusă la dimensiune până la absurd, gen template-urile minimale de pe openvz.org ce funcționează cu o târlă de erori ce trebuie reparate de mână înainte de deploy. Plus faptul că sunt actualizate din an în Paște din moment ce sunt în secțiunea contrib iar maintainerii sunt de Duminică (one time only?). Printre altele, le optimizez pentru consum de memorie redus, și anume oprirea serviciilor ce nu sunt necesare cel puțin pe moment: cron, postfix, syslog (cu variații în funcție de distro), ceea ce se traduce prin: într-un container chel o să fie un memory footprint inițial de 1-2MiB necesar serviciului <a title="OpenSSH" href="http://www.openssh.com/" target="_blank">OpenSSH</a>, <a title="Two dozen operating system templates" href="http://www.intovps.com/blog/2009/08/23/two-dozen-operating-system-templates/" target="_blank">după cum se lăudau și cei de la IntoVPS</a>. Recordul personal e de 1MiB pe un template Debian Lenny i386 și aș merge pe varianta cu <a title="Dropbear SSH server and client" href="http://matt.ucc.asn.au/dropbear/dropbear.html" target="_blank">Dropbear</a> în loc de OpenSSH doar de dragul virtualizării și a testării scenariului de &#8220;VPS small&#8221;. Timp pentru teste să găsesc. Ca dimensiune, ies în jur de 95MiB în urma arhivării gzip, în jur de 275MiB dezarhivat.</li>
<li>finalizare &#8211; ceea ce presupune curățarea automată a template-ului din containerul temporar urmată de arhivare. Având în vedere faptul că Proxmox VE necesită o sintaxă rigidă în ceea ce privește numele unui template ce trebuie să se regăsească în /var/lib/vz/template/cache (de pe la v1.2 dacă nu mă înșeală memoria), partea de finalize este un real ajutor pentru că se ocupă automat de numele buclucaș.</li>
</ol>
<p>Singura bubă ce i-am găsit-o până acum este lipsa unui suport bun pentru edit &amp; deploy. Cel puțin mie de îndată ce am rulat dab finalize &#8211; nu am mai putut reveni la reconfigurare, rearhivare, retestare. Din fericire dab clean nu șterge lista de pachete. Doar dab dist-clean face curățenie pe acolo, lăsând doar fișierul dab.conf și directorul cache ce e gol (WTF?).</p>
<p>Printre altele suportă crearea de template-uri folosind make și un Makefile. Nu îmi manifest interes deosebit pentru sintaxa Makefile cu care nu sunt familiarizat, iar shell scripting-ul e mai distractiv dacă tot e să automatizăm automatizarea. Suportă anumite scenarii gen bază de date sau PHP, dar cel puțin subsemnatul preferă să facă de mână instalarea de servicii esențiale în funcție de tipul de mașină, fie din repo, fie din surse dacă versiunea din repo e de pe vremea lui Nae.</p>
<p>Per total e un utilitar ce te poate scăpa de stufoșenia creării template-urilor de Debian/Ubuntu folosind debootstrap și un shell, utilitar ce îl Recomand<strong>™</strong>.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.saltwaterc.net/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.saltwaterc.net/linux/openvz-debian-appliance-builder.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cum să reproduci setup-din din producție &#8211; pe local</title>
		<link>http://www.saltwaterc.net/linux/cum-sa-reproduci-setup-din-din-productie-pe-local.html</link>
		<comments>http://www.saltwaterc.net/linux/cum-sa-reproduci-setup-din-din-productie-pe-local.html#comments</comments>
		<pubDate>Tue, 16 Mar 2010 10:50:58 +0000</pubDate>
		<dc:creator>SaltwaterC</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Virtualizare]]></category>

		<guid isPermaLink="false">http://www.saltwaterc.net/?p=684</guid>
		<description><![CDATA[Problema reproducerii unui setup compatibil din punct de vedere binar este mai simplă decât pare cu condiția să se apeleze la anumite ajutoare, ajutoare de natură virtuală. Este destul de contra-productiv să instalezi un OS de fiecare dată pe când este nevoie de o instanță curată, fie că dispui de o mașină dedicată, fie că [...]]]></description>
			<content:encoded><![CDATA[<p>Problema reproducerii unui setup compatibil din punct de vedere binar este mai simplă decât pare cu condiția să se apeleze la anumite ajutoare, ajutoare de natură virtuală. Este destul de contra-productiv să instalezi un OS de fiecare dată pe când este nevoie de o instanță curată, fie că dispui de o mașină dedicată, fie că folosești un hypervisor local. Știu că în aparență propoziția anterioară contrazice folosirea virtualizării, dar nu am menționat ce tip de hypervisor se recomandă pentru acest obiectiv specific.</p>
<p>Atâta timp cât trebuie testată doar compatibilitatea userland-ului, o soluție de virtualizare bazată pe OS level virtualization este suficientă, adică se folosesc containere, nu instanțe virtualizare complet. Spre exemplu un setup testat local în container va putea rula pe un VPS, pe un VDS sau pe o mașină dedicată fără probleme. Nu o să fac referire la <a title="The FreeBSD jail mechanism is an implementation of operating system-level virtualization" href="http://en.wikipedia.org/wiki/FreeBSD_jail" target="_blank">FreeBSD Jails</a> și <a title="Solaris Containers (including Solaris Zones) is an implementation of operating system-level virtualization" href="http://en.wikipedia.org/wiki/Solaris_Containers" target="_blank">Solaris Containers</a> pentru că am puțină experiență cu Jails și zero experiență cu Containers. În plus, destul de mulți se orientează în prezent spre Linux.</p>
<p>Dacă ești vreun guru în a rula vzctl în shell sau masochist, poți să te oprești din citit. Dacă nu, atunci voi vorbi în continuare despre <a title="OpenVZ is container-based virtualization for Linux" href="http://wiki.openvz.org/Main_Page" target="_blank">OpenVZ</a> plus metode civilizate și productive de a reproduce un setup. Bariera de intrare printre membrii ce folosesc tehnologia este destul de sus, motiv pentru care au apărut soluții integrate. Dintre acestea, recomand <a title="Proxmox Virtual Environment" href="http://pve.proxmox.com/wiki/Main_Page" target="_blank">Proxmox VE (Virtual Environment)</a>. Băieții aceștia faini de la Proxmox au luat mai multe tehnologii de virtualizare și le-au pus sub același pachet: <a title="Kernel-based Virtual Machine" href="http://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine" target="_blank">KVM (Kernel-based Virtual Machine)</a> și OpenVZ, plus o interfață web pentru administrare. Practic Proxmox VE este un <a title="http://www.debian.org/releases/lenny/" href="http://www.debian.org/releases/lenny/" target="_blank">Debian Lenny</a> împachetat cu tehnologiile despre care spuneam mai sus.</p>
<p>Setup-up este cretin de simplu, durează vreo 5 minute, se face pe o mașină ce nu are un alt OS. Își alocă tot disk-ul și își face partiții <a title="Logical Volume Manager (Linux)" href="http://en.wikipedia.org/wiki/Logical_Volume_Manager_%28Linux%29" target="_blank">LVM</a>. Este recomandat minim 2GB de RAM disponibil dacă se folosesc mai multe containere, minim 1GB RAM pentru un container folosind pentru &#8216;package maintenance&#8217; ce are suport <a title="Symmetric multiprocessing" href="http://en.wikipedia.org/wiki/Symmetric_multiprocessing" target="_blank">SMP</a> și se folosește parallel build. Spre exemplu la un build de PHP cu make -j 3 am rămas fără memorie în container de 512MB RAM. Da, nu recomand instalarea unui compilator în producție sau build pe live servers. Alternativa ar fi <a title="Do it yourself" href="http://en.wikipedia.org/wiki/Do_it_yourself" target="_blank">DIY</a>, adică o distribuție de Linux ce folosește kernel cu patch pentru OpenVZ, preferabil din repo, plus o interfață web precum <a title="OpenVZ Management Tool" href="http://webvz.sourceforge.net/" target="_blank">WebVZ</a> sau <a title="HyperVM" href="http://www.lxcenter.org/hypervm/installation.htm" target="_blank">HyperVM</a>.</p>
<p>Proxmox VE se poate instala fie direct pe fier (bare-metal hypervisor), fie într-o mașină virtuală creată cu <a title="VirtualBox" href="http://www.virtualbox.org/" target="_blank">VirtualBox</a> ce este soluția pentru &#8220;desktop&#8221; ce o recomand. Am pus desktop între ghilimele pentru faptul că VirtualBox are o arhitectură complexă expusă prin CLI. În GUI se găsește doar un set limitat de funcții. În cazul în care se instalează într-o mașină virtuală creată cu VirtualBox (sau echivalent), nu se vor putea crea mașini virtuale folosind KVM pentru că este nevoie de extensiile de virtualizare din procesor (<a title="x86 virtualization" href="http://en.wikipedia.org/wiki/X86_virtualization" target="_blank">VT-x sau AMD-V</a>) pentru aceasta. Oricum, scopul principal al acestui articol este OpenVZ datorită flexibilității ce o oferă. Acesta este motivul pentru care merită chiar și soluția de hypervisor sub hypervisor dacă nu îți permiți luxul unei mașini dedicate. În principiu pe o stație de lucru suficient de puternică nu ar trebui să fie probleme în ceea ce privește rularea unui Proxmox VE sub VirtualBox. Îmi permit aroganță de a menționa faptul că nu am mai lucrat de mult pe o mașină sub quad și 8GB RAM.</p>
<p>Având în vedere faptul că pentru OpenVZ <a title="openvz template creation" href="http://www.google.com/search?hl=en&amp;source=hp&amp;q=openvz+template+creation&amp;aq=0&amp;aqi=g1&amp;aql=&amp;oq=openvz+template+crea" target="_blank">se pot crea relativ ușor template-uri</a>, iar virtualizarea constă în crearea unui container nou, operațiunea prin care se obține un nou setup durează destul de puțin. Iar în cazul în care un container nu mai este necesar, distrugerea acestuia este o operațiune rapidă. Practic se obține propriul mini-cloud, ușor de administrat, ce va scădea timpul în care se creează diferite scenarii ce vor ajunge în producție.</p>
<p>În cazul în care nu am fost suficient de clar la început, repet: setup pentru testarea userland-ului. OpenVZ oferă acces limitat la kernel din moment ce nu folosește virtualizare completă a sistemului de operare, doar rețeaua este virtualizată. Spre exemplu folosind kernel-ul livrat cu Proxmox VE se pot folosi FS-uri virtuale bazate pe <a title="Filesystem in Userspace" href="http://en.wikipedia.org/wiki/Filesystem_in_Userspace" target="_blank">FUSE</a> dacă se sapă puțin prin vzctl, ceea ce deschide anumite posibilități în producție gen <a title=" FUSE-based file system backed by Amazon S3  " href="http://code.google.com/p/s3fs/" target="_blank">s3fs</a> (netestat sub OpenVZ de subsemnatul, am testat alte module FUSE) prin intermediul căruia se poate monta un bucket de <a title="Amazon Simple Storage Service (Amazon S3)" href="http://aws.amazon.com/s3/" target="_blank">Amazon S3</a> ca FS local. De altfel, am reprodus și un sistem desktop într-un container OpenVZ, <a title="Ubuntu Hardy Heron" href="https://wiki.ubuntu.com/HardyHeron" target="_blank">Ubuntu Hardy</a>, accesat prin <a title="Ubuntu FreeNX" href="https://help.ubuntu.com/community/FreeNX" target="_blank">FreeNX</a>, deci limitările sunt destul de puține gen lipsa unui suport civilizat pentru loop device.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.saltwaterc.net/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.saltwaterc.net/linux/cum-sa-reproduci-setup-din-din-productie-pe-local.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Actualizare de Virtualbox. Acum ce? Management de procese? Reboot!</title>
		<link>http://www.saltwaterc.net/windows/actualizare-de-virtualbox-acum-ce-management-de-procese-reboot.html</link>
		<comments>http://www.saltwaterc.net/windows/actualizare-de-virtualbox-acum-ce-management-de-procese-reboot.html#comments</comments>
		<pubDate>Sat, 28 Nov 2009 10:53:44 +0000</pubDate>
		<dc:creator>SaltwaterC</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Virtualizare]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://saltwaterc.net/windows/actualizare-de-virtualbox-acum-ce-management-de-procese-reboot.html</guid>
		<description><![CDATA[Băieții aceștia faini de la Sun Microsystems au &#8216;ghiara&#8217; pe VirtualBox de la băieții de la Innotek. Vremuri istorice tulburi cu un produs mediocru. Între timp Sun-ul a băgat camionul de dolari în proiect și a început să se distingă din mulțime printr-un backend foarte puternic. Pe subsemnatul l-a convins să renunțe la VMware Server [...]]]></description>
			<content:encoded><![CDATA[<p>Băieții aceștia faini de la Sun Microsystems au &#8216;ghiara&#8217; pe VirtualBox de la băieții de la Innotek. Vremuri istorice tulburi cu un produs mediocru. Între timp Sun-ul a băgat camionul de dolari în proiect și a început să se distingă din mulțime printr-un backend foarte puternic. Pe subsemnatul l-a convins să renunțe la VMware Server pentru acele &#8216;server consolidation deployment&#8217; ce mai apărea prin rețelele locale pe unde operez. Tot istoric vorbind, pentru Windows se distribuiau două pachete, unul pentru x86 și unul pentru x86-64. În prezent se distribuie unul singur ce se instalează în funcție de contextul platformei.</p>
<p>Bun. La partea cu instalarea îmi doream să ajung. Mai bine zis la partea cu actualizarea. De regulă pe un Ubuntu Server ce mai rulează servicii mici/medii VirtualBox are bunul simț să ruleze în background ca daemon printr-un simplu init script. În concluzie actualizările le fac atunci când îmi mai aduc aminte să deschid interfața grafică. Sub Windows în schimb este o jucărie unde mai testez ultimele apariții în domeniul OS. Dar aici mă lovesc suficient de des de acea fereastră ce mă anunță faptul că a apărut o nouă versiune. Click &#8211; download  &#8211; next, next, next &#8230; gata. În teorie era gata. În practică 3.0.12, adică ultima versiune, refuză să adauge orice fel de HDD virtual nou și am o mică bănuială despre imposibilitatea de a adăuga noi mașini virtuale.</p>
<p>Mă apuc să lucrez în calculator să văd ce se întâmplă (doctore). Cretinătatea aceea de installer nu a închis VBoxSVC înainte de instalare. Adică acel serviciu ad-hoc din arhitectura VirtualBox ce se ocupă de mașinile virtuale atâta timp cât rulează cel puțin una. În mod normal stă închis acel proces. Ridicolul merge mai departe. Acel proces, VBoxSVC dă un &#8216;lock&#8217; exclusiv pe fișierele de configurare astfel încât să nu apară chestia aceea numită &#8216;race condition&#8217; în geek language. Iar acel proces nu mai vrea să moară. Task Manager-ul e inutil ca de obicei la omorât procese încăpățânate. Am scos artileria grea: <a href="http://diamondcs.com.au/advancedseries/apt.php" title="Advanced Process Termination" target="_blank">Advanced Process Termination</a> (APT). Pe lângă o duzină de metode de kill, știe două metode de kernel kill și încă două de crash kill. Kernel kill pe Windows 7 x64 nu are suport. Nu mi-am spart capul cu hack-ul de OS. Din păcate metodele din user mode au dat greș. Windows încă e copil mic și udă patul atunci când vine vorba de procese încăpățânate. Sistemele UNIX-like (ex: Linux, FreeBSD) rămân în situația penibilă de mai sus atunci când un proces rămâne blocat în &#8216;<a href="http://en.wikipedia.org/wiki/Uninterruptible_sleep" title="IO wait" target="_blank">IO wait state</a> &amp; friends&#8217;. Soluția este evidentă: reboot. Dar m-am cam săturat să rămân cu procese blocate pentru ca Windows e rebut la management-ul lor din &#8216;user mode&#8217;. Iar VirtualBox e rebut la actualizare și nu își știe închide serviciul înainte de un nou &#8216;deploy&#8217;. În mod curios, procesul blocat nu apare în APT. Dar APT are o jucărie numită &#8216;Custom PID&#8217; pentru a da kill după kill.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.saltwaterc.net/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.saltwaterc.net/windows/actualizare-de-virtualbox-acum-ce-management-de-procese-reboot.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
