<?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"
	>

<channel>
	<title>Trunet's Home-Page</title>
	<atom:link href="http://www.wsartori.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.wsartori.com</link>
	<description>De nerd para nerd</description>
	<pubDate>Tue, 16 Dec 2008 21:23:50 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
	<language>en</language>
			<item>
		<title>Repositório Ubuntu Intrepid</title>
		<link>http://www.wsartori.com/2008/12/16/repositorio-ubuntu-intrepid</link>
		<comments>http://www.wsartori.com/2008/12/16/repositorio-ubuntu-intrepid#comments</comments>
		<pubDate>Tue, 16 Dec 2008 19:18:03 +0000</pubDate>
		<dc:creator>Wagner Sartori Junior</dc:creator>
		
		<category><![CDATA[Pessoal]]></category>

		<category><![CDATA[Trampo]]></category>

		<category><![CDATA[intrepid]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[repositorio]]></category>

		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.wsartori.com/?p=54</guid>
		<description><![CDATA[Resolvi criar um repositório para o intrepid com alguns pacotes indisponíveis e versões novas de outros softwares que desejo manter.
Entre eles atualmente:
- nagios3 (versão 3.0.6)
- php5-eaccelerator (versão 0.9.5.3)
- fwknop-server (1.9.9)
Para ativar o repositório como root digite:

# wget http://repository.wsartori.com/wsartori-repository.list --output-document=/etc/apt/sources.list.d/wsartori-repository.list
# wget http://repository.wsartori.com/wsartori-repository.key
# apt-key add wsartori-repository.key
# apt-get update

]]></description>
			<content:encoded><![CDATA[<p>Resolvi criar um repositório para o intrepid com alguns pacotes indisponíveis e versões novas de outros softwares que desejo manter.</p>
<p>Entre eles atualmente:</p>
<p>- nagios3 (versão 3.0.6)<br />
- php5-eaccelerator (versão 0.9.5.3)<br />
- fwknop-server (1.9.9)</p>
<p>Para ativar o repositório como root digite:</p>
<p><code><br />
# wget http://repository.wsartori.com/wsartori-repository.list --output-document=/etc/apt/sources.list.d/wsartori-repository.list<br />
# wget http://repository.wsartori.com/wsartori-repository.key<br />
# apt-key add wsartori-repository.key<br />
# apt-get update<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.wsartori.com/2008/12/16/repositorio-ubuntu-intrepid/feed</wfw:commentRss>
		</item>
		<item>
		<title>Controlando DNS round-robin de um Blackberry/IPhone</title>
		<link>http://www.wsartori.com/2008/10/08/controlando-dns-round-robin-de-um-blackberryiphone</link>
		<comments>http://www.wsartori.com/2008/10/08/controlando-dns-round-robin-de-um-blackberryiphone#comments</comments>
		<pubDate>Wed, 08 Oct 2008 23:20:20 +0000</pubDate>
		<dc:creator>Wagner Sartori Junior</dc:creator>
		
		<category><![CDATA[Artigos do WIKI]]></category>

		<category><![CDATA[Trampo]]></category>

		<category><![CDATA[bind]]></category>

		<category><![CDATA[blackberry]]></category>

		<category><![CDATA[dns]]></category>

		<category><![CDATA[iphone]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[programação]]></category>

		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.wsartori.com/?p=48</guid>
		<description><![CDATA[Tive que fazer uma interface de gerenciamento de DNS round-robin para fazer um &#8220;poor high-availability&#8221;. Consiste em de um telefone celular ou de qualquer browser controlar os servidores que fazem parte de uma entrada round-robin do DNS. Utilizei python para fazer um CGI simples que faz uma consulta no servidor de DNS para ver quais [...]]]></description>
			<content:encoded><![CDATA[<p>Tive que fazer uma interface de gerenciamento de DNS round-robin para fazer um &#8220;poor high-availability&#8221;. Consiste em de um telefone celular ou de qualquer browser controlar os servidores que fazem parte de uma entrada round-robin do DNS. Utilizei python para fazer um CGI simples que faz uma consulta no servidor de DNS para ver quais servidores estão atualmente respondendo e a página abre com estes servidores pré-selecionados. Você seleciona os servidores que deverão ser utilizados para a entrada e da um atualizar e ele atualiza via dynamic update no BIND.<br />
<span id="more-48"></span><br />
Primeiro, vamos configurar o bind para permitir dynamic update. Você precisa criar uma chave de host(que chamarei de pauba) utilizando o comando:</p>
<p># dnssec-keygen -a HMAC-MD5 -b 512 -n host pauba</p>
<p>Este comando irá criar dois arquivos no diretório que você estiver:</p>
<p>Kpauba.um_monte_de_numero.key<br />
Kpauba.um_monte_de_numero.private</p>
<p>No arquivo .private, você precisa pegar a Key que ele gerou e acrescentar no named.conf(substituia sua key pelos XXXXXX== abaixo):</p>
<p>key &#8220;pauba&#8221; {<br />
algorithm hmac-md5;<br />
secret &#8220;XXXXXXXXXXXXXXXXXXXXXXXXXX==&#8221;;<br />
};</p>
<p>zone &#8220;suazona.com.br&#8221; {<br />
type master;<br />
allow-transfer { 1.2.3.4; };<br />
notify yes;<br />
allow-update { key &#8220;pauba.&#8221;; };<br />
file &#8220;/var/lib/bind/db.suazona.com.br&#8221;;<br />
};</p>
<p>Com isto o bind vai permitir atualização dinâmica da zona de qualquer um utilizando a chave acima.</p>
<p>Agora vamos ao programa. Você vai precisar do <a href="http://www.dnspython.org" target="_blank">dnspython</a>, no ubuntu, aptitude install python-dnspython.</p>
<p>No host que você irá criar o programa, o apache precisa estar configurado para permitir ExecCGI e o ScriptAlias precisa estar configurado também.</p>
<p>O código está abaixo.</p>
<pre>#!/usr/bin/env python
import dns.query
import dns.tsigkeyring
import dns.update
import dns.resolver
import dns.rdataset
import cgi
import sys

keyring = dns.tsigkeyring.from_text({
    'pauba.' : 'XXXXXXXXXXXXXXXXX=='
})

# A entrada round-robin
entrada = 'www'
# O dominio
dominio = '.suazona.com.br'
# O servidor de DNS master com BIND configurado
servidor_master = '4.3.2.1'

class clsServers:
	name = ""
	address = ""
	checked = ""
	def __init__(self, name="", address="", checked=""):
		self.name = name
		self.address = address
		self.checked = checked

servidores = []
servidores.append(clsServers('img1-us', '1.1.1.1'))
servidores.append(clsServers('img2-us', '1.1.1.2'))
servidores.append(clsServers('img1-br', '1.1.2.1'))
servidores.append(clsServers('img2-br', '1.1.2.2'))
servidores.append(clsServers('img1-ne', '1.1.3.1'))
servidores.append(clsServers('img2-ne', '1.1.3.2'))

servidores_no_ar=dns.resolver.query(entrada+dominio, 'A')
for rdata in servidores_no_ar:
	for servidor in servidores:
		if (servidor.address == rdata.address):
			servidor.checked="checked"

def generateHeader():
	print "Content-type: text/html\n"
	print "&lt;html&gt;"
	print "&lt;head&gt;&lt;title&gt;Atualizacao de DNS de Imagens&lt;/title&gt;&lt;/head&gt;"
	print "&lt;/head&gt;"
	print "&lt;body&gt;"

def generateFooter():
	print "&lt;/body&gt;"
	print "&lt;/html&gt;"

def generateForm():
	print "&lt;h3&gt;Selecione os Servidores&lt;/h3&gt;"
	print "&lt;form method='post' action='/cgi-bin/dnsupdate.py'&gt;"
	for servidor in servidores:
		print "&lt;input type='checkbox' name='" + servidor.name + "' value='" + servidor.address + "' " + servidor.checked + " /&gt;" + servidor.name + "&lt;br/&gt;"
	print "&lt;br/&gt;"
	print "&lt;input type='submit' name='btnEnviar' value='Enviar'&gt;"
	print "&lt;/form&gt;"

def main():
	form = cgi.FieldStorage()
	if (form.has_key("btnEnviar")):
		generateHeader()
		update = dns.update.Update(dominio, keyring=keyring)
		update.delete(entrada)
		for key in form.keys():
			if (key.find('img') == 0):
				update.add(entrada, 300, 'A', form.getvalue(key))
		response = dns.query.tcp(update, servidor_master)
		generateFooter()
	else:
		generateHeader()
		generateForm()
		generateFooter()

main()</pre>
<p>E é isto. Dúvidas, críticas e sugestões, os comentários estão aí para isto.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wsartori.com/2008/10/08/controlando-dns-round-robin-de-um-blackberryiphone/feed</wfw:commentRss>
		</item>
		<item>
		<title>Site de casa nova - Amazon EC2</title>
		<link>http://www.wsartori.com/2008/08/21/site-de-casa-nova-amazon-ec2</link>
		<comments>http://www.wsartori.com/2008/08/21/site-de-casa-nova-amazon-ec2#comments</comments>
		<pubDate>Fri, 22 Aug 2008 01:53:16 +0000</pubDate>
		<dc:creator>Wagner Sartori Junior</dc:creator>
		
		<category><![CDATA[Site]]></category>

		<category><![CDATA[amazon]]></category>

		<category><![CDATA[cloud computing]]></category>

		<guid isPermaLink="false">http://75.101.145.181/?p=37</guid>
		<description><![CDATA[Devido a lentidão no servidor virtual da LiquidWeb, resolvi mudar o site para a Amazon EC2. Estou impressionado como é rápido e barato manter o site aqui. Estou utilizando o Elastic IP e o EBS no momento em uma vm &#8220;Large Instance&#8221; com Ubuntu 64 bits.
]]></description>
			<content:encoded><![CDATA[<p>Devido a lentidão no servidor virtual da LiquidWeb, resolvi mudar o site para a <a title="Amazon EC2" href="http://aws.amazon.com/" target="_blank">Amazon EC2</a>. Estou impressionado como é rápido e barato manter o site aqui. Estou utilizando o Elastic IP e o EBS no momento em uma vm &#8220;Large Instance&#8221; com Ubuntu 64 bits.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wsartori.com/2008/08/21/site-de-casa-nova-amazon-ec2/feed</wfw:commentRss>
		</item>
		<item>
		<title>QEMU/KVM lentidão para instalar o Debian</title>
		<link>http://www.wsartori.com/2008/08/18/qemukvm-lentidao-para-instalar-o-debian</link>
		<comments>http://www.wsartori.com/2008/08/18/qemukvm-lentidao-para-instalar-o-debian#comments</comments>
		<pubDate>Mon, 18 Aug 2008 18:31:22 +0000</pubDate>
		<dc:creator>Wagner Sartori Junior</dc:creator>
		
		<category><![CDATA[Pessoal]]></category>

		<category><![CDATA[Trampo]]></category>

		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.wsartori.com/2008/08/18/qemukvm-lentidao-para-instalar-o-debian</guid>
		<description><![CDATA[Estava instalando o debian etch 32bits na minha máquina ubuntu hardy 64bits aqui da Predicta. Quando começa a carregar os pacotes do cd, ele fica MUITO lento e no ALT+F4 aparece:

hda: DSC timeout
A solução é antes de apertar enter em qualquer coisa no menu depois que subir o instalador, de um ALT+F2, de enter e [...]]]></description>
			<content:encoded><![CDATA[<p>Estava instalando o debian etch 32bits na minha máquina ubuntu hardy 64bits aqui da Predicta. Quando começa a carregar os pacotes do cd, ele fica MUITO lento e no ALT+F4 aparece:</p>
<pre>
hda: DSC timeout</pre>
<p>A solução é antes de apertar enter em qualquer coisa no menu depois que subir o instalador, de um ALT+F2, de enter e digite:</p>
<pre>
echo dsc_overlap:0 &gt; /proc/ide/ide0/hda/settings</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.wsartori.com/2008/08/18/qemukvm-lentidao-para-instalar-o-debian/feed</wfw:commentRss>
		</item>
		<item>
		<title>Novo projeto - Where I Am</title>
		<link>http://www.wsartori.com/2008/08/18/novo-projeto-where-i-am</link>
		<comments>http://www.wsartori.com/2008/08/18/novo-projeto-where-i-am#comments</comments>
		<pubDate>Mon, 18 Aug 2008 18:25:11 +0000</pubDate>
		<dc:creator>Wagner Sartori Junior</dc:creator>
		
		<category><![CDATA[Pessoal]]></category>

		<category><![CDATA[blackberry]]></category>

		<category><![CDATA[googlemaps]]></category>

		<category><![CDATA[gps]]></category>

		<category><![CDATA[gpsd]]></category>

		<category><![CDATA[mysql]]></category>

		<category><![CDATA[webservice]]></category>

		<guid isPermaLink="false">http://www.wsartori.com/2008/08/18/novo-projeto-where-i-am</guid>
		<description><![CDATA[Cadastrei um projeto no code.google.com.
http://code.google.com/p/whereiam/

This application was designed to track where I am from web. I have plans to do an iphone collector and a blackberry collector too.
There are three components in this project:
1) Daemon to collect the data from gpsd and send to webservice
2) WebService to collect the data from daemon and save in [...]]]></description>
			<content:encoded><![CDATA[<p>Cadastrei um projeto no code.google.com.</p>
<p><a href="http://code.google.com/p/whereiam/" target="_blank">http://code.google.com/p/whereiam/</a></p>
<p><code><br />
This application was designed to track where I am from web. I have plans to do an iphone collector and a blackberry collector too.<br />
There are three components in this project:<br />
1) Daemon to collect the data from gpsd and send to webservice<br />
2) WebService to collect the data from daemon and save in mysql<br />
3) Web 2.0 application to show the data collected in google maps<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.wsartori.com/2008/08/18/novo-projeto-where-i-am/feed</wfw:commentRss>
		</item>
		<item>
		<title>Cruzeiro de 3 dias</title>
		<link>http://www.wsartori.com/2008/03/04/cruzeiro-de-3-dias</link>
		<comments>http://www.wsartori.com/2008/03/04/cruzeiro-de-3-dias#comments</comments>
		<pubDate>Tue, 04 Mar 2008 07:48:53 +0000</pubDate>
		<dc:creator>Wagner Sartori Junior</dc:creator>
		
		<category><![CDATA[Pessoal]]></category>

		<category><![CDATA[cruzeiro]]></category>

		<category><![CDATA[ilhabela]]></category>

		<category><![CDATA[navio]]></category>

		<category><![CDATA[rio-de-janeiro]]></category>

		<category><![CDATA[viagem]]></category>

		<guid isPermaLink="false">http://www.wsartori.com/2008/03/04/cruzeiro-de-3-dias</guid>
		<description><![CDATA[











&#160;

 

&#160;












Meu irmão está voltando para a Europa novamente com o navio. Meus pais já tinham comprado o cruzeiro a uns 4 meses atrás eu não ia. Aí o Diego 1 semana antes conseguiu me colocar no esquema pagando 100 dólares :). Fiquei na cabine dos meus pais. Vários familiares, festas, baladas, e muitos, muitos [...]]]></description>
			<content:encoded><![CDATA[<div class="g2image_float_left">
<div class="wpg2tag-image">
<table class="ImageFrame_polaroids" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="TL"></td>
<td class="TT">
<div class="H"></div>
</td>
<td class="TR"></td>
</tr>
<tr>
<td class="LL">
<div class="V">&nbsp;</div>
</td>
<td rowspan="1" colspan="1" class="IMG"><a href="http://www.wsartori.com/v/viagens/cruzeiro_costa_magica_-_27-02-08/" title="Cruzeiro no Costa Mágica"><img src="http://www.wsartori.com/gallery2/d/1810-4/cruzeiro_costa_magica_-_27-02-08.jpg" width="150" height="113" id="IFid2" class="ImageFrame_image" alt="Cruzeiro no Costa Mágica"/></a> </td>
<td class="RR">
<div class="V">&nbsp;</div>
</td>
</tr>
<tr>
<td class="BL"></td>
<td class="BB">
<div class="H"></div>
</td>
<td class="BR"></td>
</tr>
</table>
</div>
</div>
<p>Meu irmão está voltando para a Europa novamente com o navio. Meus pais já tinham comprado o cruzeiro a uns 4 meses atrás eu não ia. Aí o Diego 1 semana antes conseguiu me colocar no esquema pagando 100 dólares :). Fiquei na cabine dos meus pais. Vários familiares, festas, baladas, e muitos, muitos amigos.</p>
<p>Por 100 dólares, meu cartão ainda tinha 50% de desconto nas biritas. huabeuhbeubae. Pago menos e ainda tenho desconto. O que mais eu poderia querer. Fora que no último dia, a uma da manhã, o cartão de ninguém funcionava. Eu catei o cartão do Diego e tome mais birita. HEHEHE. Foi da hora.</p>
<p>Re-encontrei vários tripulantes que havia conhecido na travessia. Teve uma festa de aniversário de uma menina que trabalha no shopping lá no restaurante da tripulação com direito a bolo e tudo. Valeu Marcela(bar serrrrrvice), Rafael(bar serrrrrrvice), Peter(barman), o pessoal da animação, o pessoal do shopping, enfim, todos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wsartori.com/2008/03/04/cruzeiro-de-3-dias/feed</wfw:commentRss>
		</item>
		<item>
		<title>Acrescentar os resultados do gallery2/wpg2 na busca do wordpress</title>
		<link>http://www.wsartori.com/2008/02/19/acrescentar-os-resultados-do-gallery2wpg2-na-busca-do-wordpress</link>
		<comments>http://www.wsartori.com/2008/02/19/acrescentar-os-resultados-do-gallery2wpg2-na-busca-do-wordpress#comments</comments>
		<pubDate>Tue, 19 Feb 2008 03:00:20 +0000</pubDate>
		<dc:creator>Wagner Sartori Junior</dc:creator>
		
		<category><![CDATA[Site]]></category>

		<category><![CDATA[php]]></category>

		<category><![CDATA[programação]]></category>

		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.wsartori.com/2008/02/19/acrescentar-os-resultados-do-gallery2wpg2-na-busca-do-wordpress</guid>
		<description><![CDATA[Se você quer integrar a busca do wordpress com a busca na galeria de fotos, dê uma olhada na solução que eu desenvolvi. Se tiver outra sugestão, é só deixar um comentário.

Acabei de colocar no search.php do template que uso, o código abaixo:


$wpg2_g2path = get_option('wpg2_g2paths');
@include_once($wpg2_g2path['g2_filepath'].'embed.php');
GalleryEmbed::init( array(
          [...]]]></description>
			<content:encoded><![CDATA[<p>Se você quer integrar a busca do wordpress com a busca na galeria de fotos, dê uma olhada na solução que eu desenvolvi. Se tiver outra sugestão, é só deixar um comentário.<br />
<span id="more-28"></span><br />
Acabei de colocar no search.php do template que uso, o código abaixo:</p>
<pre>
<code>
$wpg2_g2path = get_option('wpg2_g2paths');
@include_once($wpg2_g2path['g2_filepath'].'embed.php');
GalleryEmbed::init( array(
                      'fullInit' =&gt; true)
                  );
GalleryEmbed::handleRequest();
GalleryEmbed::done();
$searchResults = GalleryEmbed::searchScan($_REQUEST['s']);
$itemIds = array();
foreach ($searchResults[1] as $id =&gt; $resultSet) {
        foreach ($resultSet['results'] as $result) {
                if (isset($result['itemId'])) {
                        $itemIds[$result['itemId']] = 1;
                }
        }
}
$itemIds = array_keys($itemIds);
if (count($itemIds) &gt; 0) {
?&gt;
&lt;h1 class="btmspace"&gt;Resultados da Procura na Galeria de Fotos&lt;/h1&gt;
global $gallery,$thumbnail;
        list ($error, $children) = GalleryCoreApi::loadEntitiesById($itemIds);
        if (!$error) {
                foreach ($children as $child) {
                        $title = $child-&gt;getTitle();
                        list($ret, $thumbnails) = GalleryCoreApi::fetchThumbnailsByItemIds(array($child-&gt;getid()));
                        $urlGenerator =&amp; $gallery-&gt;getUrlGenerator();
                        foreach ($thumbnails as $thumbnail) {
                                $thumbnailImg = $urlGenerator-&gt;generateUrl(array('view' =&gt; 'core.DownloadItem', 'href' =&gt; "/gallery2/main.php", 'itemId' =&gt; $thumbnail-&gt;getid()));
                                $thumbnailUrl = $urlGenerator-&gt;generateUrl(array('view' =&gt; 'core.ShowItem', 'itemId' =&gt; $child-&gt;getid()));
                        }
?&gt;
</code><code>                        </code><code>&lt;div class="clearfix"%gt;&lt;/div&gt;
</code><code>                        </code><code>&lt;div class="g2image_float_left"&gt;&lt;a href="http://www.wsartori.com/wp-admin/%3C?php%20echo%20$thumbnailUrl?%3E"&gt;&lt;img src="http://www.wsartori.com/wp-admin/%3C?php%20echo%20$thumbnailImg?%3E" class="ImageFrame_dots" alt="&gt;&lt;?php echo $title ?&gt;" /&gt;&lt;/a&gt;&lt;/div&gt;
</code><code>                        </code><code>&lt;div class="post-bottom"&gt;
                        &lt;strong&gt;Título: &lt;/strong&gt;&lt;/div&gt;
                }
        }
}
?&gt;
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.wsartori.com/2008/02/19/acrescentar-os-resultados-do-gallery2wpg2-na-busca-do-wordpress/feed</wfw:commentRss>
		</item>
		<item>
		<title>A busca do Santo Graal: Google File System open-source</title>
		<link>http://www.wsartori.com/2008/02/13/a-busca-do-santo-graal-google-file-system-open-source</link>
		<comments>http://www.wsartori.com/2008/02/13/a-busca-do-santo-graal-google-file-system-open-source#comments</comments>
		<pubDate>Wed, 13 Feb 2008 09:14:17 +0000</pubDate>
		<dc:creator>Wagner Sartori Junior</dc:creator>
		
		<category><![CDATA[Trampo]]></category>

		<category><![CDATA[cluster]]></category>

		<category><![CDATA[filesystem]]></category>

		<category><![CDATA[glusterfs]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[googlefs]]></category>

		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.wsartori.com/2008/02/13/a-busca-do-santo-graal-google-file-system-open-source</guid>
		<description><![CDATA[Talvez você já ouviu falar do file system que o google desenvolveu. Se ainda não, você pode ver o paper que eles publicaram em http://labs.google.com/papers/gfs.html. O GoogleFS(não vou escrever GFS pois é outro file system) foi aprimorado do BigFile criado por Larry Page e Sergey Brin(co-fundadores do google) no início do google. O mais lindo [...]]]></description>
			<content:encoded><![CDATA[<p>Talvez você já ouviu falar do file system que o google desenvolveu. Se ainda não, você pode ver o paper que eles publicaram em <a href="http://labs.google.com/papers/gfs.html" title="http://labs.google.com/papers/gfs.html" target="_blank">http://labs.google.com/papers/gfs.html</a>. O GoogleFS(não vou escrever GFS pois é outro file system) foi aprimorado do BigFile criado por Larry Page e Sergey Brin(co-fundadores do google) no início do google. O mais lindo de tudo o que ele pode fazer é: simplesmente ir acrescentando servidores(na realidade computadores xing-ling mesmo até) na sua rede e eles irem adicionando espaço a um file system &#8220;virtual&#8221;, sempre tendo redundância em caso de falhas e podendo lidar com work-loads altíssimos. Ele é utilizado como backend por exemplo no GMail, no serviço de buscas do google, entre muitos outros produtos do google. Vou mostrar neste artigo o que da para fazer com ferramentas open-source.</p>
<p><span id="more-26"></span>Pesquisando os file systems distribuídos e file systems clusterizados, cheguei em alguns projetos(wikipedia): Ceph, PVFS e o GlusterFS. Não tive muito tempo ainda para pesquisar o Ceph e o PVFS, mas o Ceph está em alpha stages, o PVFS é maduro o suficiente para merecer um teste e está na lista.</p>
<p>Instalei o GlusterFS(<a href="http://www.gluster.org" title="http://www.gluster.org" target="_blank">http://www.gluster.org</a>) em alguns servidores de teste que tenho na Predicta. Você consegue interligar os nodes(ele chama de Brick) com Infiniband ou TCP/IP, mas fui testar em cima de TCP/IP mesmo por ser mais simples e eu não ter nenhum servidor disponível para testes com Infiniband. O GlusterFS possui uma camada cliente/servidor. Nos servidores você roda o <em>glusterfsd</em> e nos clientes você roda o <em>glusterfs</em> e monta utilizando FUSE. Você pode crescer os nodes apenas reconfigurando e remontando os clientes(por enquanto. está no roadmap isto ser on-the-fly). Ele possui vários  do que ele chama translators que fazem o gerenciamento de stripping, replicação, unificação, etc&#8230; e tudo isto é configurado no cliente. No servidor, você apenas exporta os volumes para a rede e tudo é configurado nos clientes.</p>
<p>Nos meus testes eu instalei 4 servidores e utilizei 2 máquinas como cliente. Eu até poderia utilizar os 4 servidores como cliente também. Os 4 servidores tem 2 volumes exportados cada. Nos clientes eu configurei para replicar e unificar: configurei 2 AFRs(Automatic File Replication translator) e 1 Unify nos 2 AFRs, assim eu tenho um volume apenas montado nos clientes com tudo replicado.</p>
<p>É impressionante. Você copia arquivos para o /mnt/glusterfs, qdo vai nos servidores, da um <em>ls</em> e vê os arquivos lá. É tudo muito bom e muito transparente. Eu ainda não testei performance, não fiz benchmarks, mas vou fazer e nos próximos posts prometo trazer mais informações.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wsartori.com/2008/02/13/a-busca-do-santo-graal-google-file-system-open-source/feed</wfw:commentRss>
		</item>
		<item>
		<title>Casa nova</title>
		<link>http://www.wsartori.com/2008/02/12/casa-nova</link>
		<comments>http://www.wsartori.com/2008/02/12/casa-nova#comments</comments>
		<pubDate>Tue, 12 Feb 2008 14:24:39 +0000</pubDate>
		<dc:creator>Wagner Sartori Junior</dc:creator>
		
		<category><![CDATA[Site]]></category>

		<category><![CDATA[hosting]]></category>

		<category><![CDATA[jabber]]></category>

		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.wsartori.com/2008/02/13/casa-nova</guid>
		<description><![CDATA[Aluguei um servidor virtual da Liquid Web. A velocidade é excelente, espaço em disco, suporte é tudo da hora. Configurei um servidor jabber, e breve será aberto a todos com o domínio jabber.com.br.
Coloquei outro tema no site muito mais bonito, acho que todos vão gostar.
]]></description>
			<content:encoded><![CDATA[<p>Aluguei um servidor virtual da <a href="http://www.liquidweb.com/?RID=trunet" title="Liquid W eb">Liquid Web</a>. A velocidade é excelente, espaço em disco, suporte é tudo da hora. Configurei um servidor jabber, e breve será aberto a todos com o domínio jabber.com.br.</p>
<p>Coloquei outro tema no site muito mais bonito, acho que todos vão gostar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wsartori.com/2008/02/12/casa-nova/feed</wfw:commentRss>
		</item>
		<item>
		<title>Fui para Europa e voltei de navio</title>
		<link>http://www.wsartori.com/2007/12/22/fui-para-europa-e-voltei-de-navio</link>
		<comments>http://www.wsartori.com/2007/12/22/fui-para-europa-e-voltei-de-navio#comments</comments>
		<pubDate>Sat, 22 Dec 2007 07:15:52 +0000</pubDate>
		<dc:creator>Wagner Sartori Junior</dc:creator>
		
		<category><![CDATA[Pessoal]]></category>

		<category><![CDATA[europa]]></category>

		<category><![CDATA[fernando-de-noronha]]></category>

		<category><![CDATA[navio]]></category>

		<category><![CDATA[viagem]]></category>

		<guid isPermaLink="false">http://www.wsartori.com/2007/12/22/fui-para-europa-e-voltei-de-navio/</guid>
		<description><![CDATA[












&#160;

 

&#160;













Depois de tempos sem escrever, vamos lá. Consegui minhas merecidas férias da Predicta finalmente. Trinta dias direto. Comprei passagens de avião ida(13/11/2007) e volta(25/11/2007), o navio não tinha certeza ainda(meu irmão estava embarcado no Costa Mágica como Shop Manager e iria arrumar um esquema de grátis) mas saía de savona no litoral da italia [...]]]></description>
			<content:encoded><![CDATA[<div class="g2image_float_left">
<div class="g2image_float_left">
<div class="wpg2tag-image">
<table class="ImageFrame_polaroids" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="TL"></td>
<td class="TT">
<div class="H"></div>
</td>
<td class="TR"></td>
</tr>
<tr>
<td class="LL">
<div class="V">&nbsp;</div>
</td>
<td rowspan="1" colspan="1" class="IMG"><a href="http://www.wsartori.com/v/viagens/europa_-_13-11-2007/" title="Europa e voltei de Navio"><img src="http://www.wsartori.com/gallery2/d/8931-7/europa_-_13-11-2007.jpg" width="150" height="113" id="IFid4" class="ImageFrame_image" alt="Europa e voltei de Navio"/></a> </td>
<td class="RR">
<div class="V">&nbsp;</div>
</td>
</tr>
<tr>
<td class="BL"></td>
<td class="BB">
<div class="H"></div>
</td>
<td class="BR"></td>
</tr>
</table>
</div>
</div>
</div>
<p>Depois de tempos sem escrever, vamos lá. Consegui minhas merecidas férias da Predicta finalmente. Trinta dias direto. Comprei passagens de avião ida(13/11/2007) e volta(25/11/2007), o navio não tinha certeza ainda(meu irmão estava embarcado no Costa Mágica como Shop Manager e iria arrumar um esquema <strong>de grátis</strong>) mas saía de savona no litoral da italia dia 26/11/2007.</p>
<p><span id="more-23"></span></p>
<div class="g2image_float_right">* WPG2 CANNOT LOCATE GALLERY2 ITEM ID 29361 *</div>
<p>Saí de São Paulo dia 13/11 conforme planejado vôo de 10 horas para Madri, depois peguei outro vôo Madri-Barcelona direto. Lá, encontrei com o Juan(que trabalhou na Predicta comigo até junho/2007). Amigão, camarada, tinha alugado um AP com mais 3 amigos lá e descolou um sofazão para mim para ficar 3 dias. Barcelona é muito bom. O Juan me emprestou o cartão de Bycing(bicicleta pública) que tem lá e conheci Barcelona quase inteira de bicicleta.</p>
<div class="g2image_float_left">* WPG2 CANNOT LOCATE GALLERY2 ITEM ID 29876 *</div>
<p>Depois peguei um vôo Barcelona-Milão onde fui para a casa da Susi e do Daniel(amigos do meu irmão quando ele tirou a cidadania Italiana). Me arrumaram um colchão, quarto de hóspedes, melhor que hotel :). Milão é a típica São Paulo de primeiro mundo. Trânsito para todo lado, mas o transporte público funciona e funciona MUITO bem. O povo é nariz em pé, chato, arrogante e mal educado(bom, é a cultura deles, temos que entender). Tem uma dúzia de coisas para ver: igreja, shopping com marcas ultra-mega-caras, lojas legais, FNAC, &#8230;</p>
<div class="g2image_float_right">* WPG2 CANNOT LOCATE GALLERY2 ITEM ID 30295 *</div>
<p>Após 4 dias em Milão, resolvi fazer um bate e volta em Veneza. Fica 3 horas e meia de trem. Acordei 4:30 da manhã e fui. Meu, Veneza impressiona logo que você chega. Cheguei por volta das 11:00. É da hora, igual você vê nos filmes mesmo. Os riozinhos, pontes, lojas, prédios velhos, etc&#8230; Não estava fedendo como todos dizem(parece que é só no verão e na alta-temporada). Mas, depois de andar(a pé seus manés) 4 horas, eu já tinha ido em todos os lugares da ilha principal. Como 18:30 saia o trem de volta, andei tudo de novo, comprei umas camisetas, mascaras para dar de presente. Bom, recomendo a todos irem uma vez na vida e não voltar nunca mais(a não ser que você vá acompanhado). 1 dia é o suficiente lá.</p>
<div class="g2image_float_left">* WPG2 CANNOT LOCATE GALLERY2 ITEM ID 30888 *</div>
<p>Depois de voltar para Milão de Veneza, eu quis ir para Roma. Mas me falaram que precisava de pelo menos 3 dias lá. Entrei na Internet e achei um albergue. Vinte euros a cama. Reservei e fui :). Recebi a notícia no trem do meu irmão que o navio estava tudo acertado e que iria ficar em cabine de passageiro(melhor ainda). O que falar de Roma: se eu soubesse como éra, montava minha base lá e não em Milão. É muito bom. MUITAS coisas para ver, observar, tirar foto. Muita gente, turistas do mundo inteiro em todos os lugares. Transporte de primeira, povo receptivo, atencioso, trocava idéia em inglês mesmo quando não falavam muito bem, tentavam te passar de algum jeito. Mapa na mão e fui, TUDO a pé(acho que andei uns 100 Km esta viagem inteira se somar). O Coliseu é muito foda. O Vaticano dei azar choveu e peguei 2 horas e meia de fila para entrar na capela sistina. Foi MUITO bom lá. Conheci algumas pessoas muito legais que me ajudaram muito na viagem.</p>
<div class="g2image_float_right">* WPG2 CANNOT LOCATE GALLERY2 ITEM ID 32140 *</div>
<p>E aí, finalmente o navio. Costa Mágica. No trem de Milão para Savona eu conheci um casal de namorados de Brasília que estavam indo para a travessia também. Amizade sempre é bom. Taxi para o navio, o Diego(meu irmão) estava me esperando com os papéis da minha entrada no navio. Check-in e zarpar. A cabine éra da hora(apesar de que se eu tivesse que pagar a viagem, éra a mais barata de todas). O navio fez, savona, barcelona, gibraltar, casablanca no marrocos, arrecife(ilhas canárias), sta. cruz de tenerife(ilhas canárias), recife, maceió, salvador, rio de janeiro e finalmente santos. Uma história melhor que a outra. Conheci no navio cerca de 10 pessoas menores de 30 anos(hehehe, só tinha velho). Não recomendo para NINGUÉM que tenha menos de 45 anos esta viagem de travessia. 18 dias é MUITO tempo, só tem velharada, parece asilo mesmo. Mas, pelas amizades, por ser meu primeiro cruzeiro, pelos lugares que o navio parou e passou(passou por noronha a cerca de 200m da ilha). Foi classe A.</p>
<p>Cheguei em Santos dia 14/12 com um carrinho de malas que ficou mais alto que eu. IPODs, monitor de LCD, som para carro, som para o ipod, adaptadores de ipod para o carro, memory stick, máquina digital, enfim, moamba de alta tecnologia. Na alfândega, adivinha. Dei sorte denovo. Minha prima que trabalha para Costa em Santos, estava do lado da moça da polícia federal e me passou pela fita. A mulher nem me viu. E eu estava livre :).</p>
<p>E assim foram minha férias. Dia 17/12 estava eu trabalhando novamente.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wsartori.com/2007/12/22/fui-para-europa-e-voltei-de-navio/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
