Pular para o conteúdo

Sistema de arquivos distribuídos usando Gmail

Nesse artigo vamos abordar um nova tecnologia de sistema de arquivos distribuídos usando o Gmail, famoso serviço de e-mail do Google com capacidade de 1GB. Abordaremos a forma de instalar e configurar para se usar o e-mail como um sistema de arquivos para backup ou qualquer outra coisa que deseje.
Thiago Alves cvs
Hits: 43.731 Categoria: Linux Subcategoria: Sistema de Arquivos
  • Indicar
  • Impressora
  • Denunciar

Introdução

Bom, vamos falar sobre o GmailFS - Gmail Filesystem.

GmailFS provê um sistema de arquivos Linux montável no qual se usa uma conta no Gmail1. GmailFS é uma aplicação escrita em Python e a infraestrutura "FUSE" userland filesystem é usada para auxiliar o uso desse sistema de arquivos. Por fim, a libgmail é usada para se comunicar com o sistema Gmail.

GmailFS suporta a maioria das operações, como ler, escrever, abrir, fechar, links simbólicos, links e renomear. Isso quer dizer que você pode usar seus comandos favoritos para operar os arquivos guardados no Gmail, por exemplo: cp, ls, ln, mv, rm, grep, etc.

NOTA: para quem ainda não sabe, Gmail é o serviço de e-mail gratuito com 1GB de cota para cada usuário que o Google oferece.

   1. Introdução
   2. Baixando, instalando e configurando
   3. Conclusão

Kernel 2.6 hacks

Instalando o Apache + PHP + MySQL no Slackware

Gaim + Gaim Encryption - Bate-papo com segurança

ProFTPD + ClamAV - FTP livre de vírus

Compilando o Apache 2 com PHP e MySQL

Proxy reverso com Apache + cache + compactação + estatísticas

USB-ZIP - Emulando Zip Drive em Pendrive

Entendendo o sistema de arquivos do Linux

Deduplicação com LessFS

Sistemas de arquivos - Conceitos básicos

#2 Comentário enviado por removido em 05/09/2004 - 18:13h
Eai galera .. vai uma dica de como conseguir sua conta gmail ;)

no começo poderá parecer um pouco estranho mas se você fazer exatamente como vou falar abaixo, perdendo ai.. 1 hora vc receberá comparando a mim uns 15 convites para o gmail... heheh ou então se fazer uma meia hora a metade...

1)Introdução?

Entrem em http://www.feedster.com e procurem por: "gmail","gmail invite" ou ainda "gmail accont". no meu caso eu fui mais no "gmail invite".

2) Como ter minha conta!
O esquema é simples, esse www.fedster.com, é um buscador que procura em blogs, pelo que eu entendi. e os Gordos dos Americanos(NAO CURTO ESSA RAÇA heheh) , mais enfim... você encontarra algo do tipo "Os 5 primeiros que deixar uma mensagem em meu blog receberá um invite!" pronto.. é só vc deixar algo lá em inglÊs... tipo:

<------------
Please I use an excrement of account of the hotmail of 2 megas, it sends me an invitation for the gmail.
--------------->

Eai é so aguardar.. coloque a mesmas frases em varios blogs hehehe

Que naão manja de inglês:
http://www.google.com.br/language_tools?hl=pt-BR


PS: Os três primeiros que me elogiarem pela dica ganharão 1 contive ao Gmail! heheh

Guilherme L. Stolfo
www.guinet.hpg.com.br
guinet(NOTSPAM)gmail.com




#3 Comentário enviado por cvs em 05/09/2004 - 18:15h
Quem quiser e-mail ae, manda pra mim nome, sobrenome e e-mail pra mandar o convite, tenho alguns sobrando :-)

Tem os problemas, claro, que tem qualquer sistema novo, alguns bugs... então nem venham me xingar senão funcionar hein... hehehe :-P
#4 Comentário enviado por mbmaciel em 05/09/2004 - 18:24h
Funcionou legal ! Muito maneira a dica!
Agora tenho mais uma partição de 1gb no meu hd :-)

Também tenho uns convites, quem quiser testar a dica, pode me pedir um convite por email.
#5 Comentário enviado por bramax em 06/09/2004 - 08:22h
Alguém aí sabe como mndar uma mensagem para toda a minha lista de contatos, sem ter que ficar digitando os nomes um a um?
#6 Comentário enviado por removido em 06/09/2004 - 11:56h
Gmail eh mtooo bom !! =]
#7 Comentário enviado por engos em 06/09/2004 - 13:44h
Uma das coisas que acho mais dificil no VOL é ler um artigo nota 10 de verdade, não apenas os que são por gentileza dos outros.

Esse é um dos poucos artigos que achei que não ficou devendo nada, simplesmente perfeito.

Parabéns!
#8 Comentário enviado por brunopiaui em 06/09/2004 - 14:12h
Guilherme,

muito boa a sua dica para conseguir a conta do Gmail.
Consegui a minha em menos de 1 hora.

Valeu!!!!!!!

Bruno Piaui
#9 Comentário enviado por removido em 06/09/2004 - 16:42h
OPa!, é nois malandro... vamo arrebentar esse gmail.. como aconteceu com o orkut!.


Guilherme L. Stolfo
#10 Comentário enviado por cvs em 06/09/2004 - 17:11h
Se for pro gmail ficar igual o orkut é melhor fecharem logo antes de começar a dar dor de cabeça... Por isso não gostam de brasileiros, brasileiro acha que tudo é bagunça... tsc tsc tsc.
#11 Comentário enviado por agk em 06/09/2004 - 19:23h
Parabéns, nota dez esse artigo, quero um e-mail desses também, se alguém puder me mandar um gmail invite, eheheh.
Vlw galera.
#12 Comentário enviado por icysoul em 07/09/2004 - 03:57h
Legal mesmo o artigo 10!
Outra dica valiosa pra quem quer um convite pro gmail, e so acessar o forum http://www.gmailforums.com/ e postar la em 'Accounts and Invitations', pra convites pro gmail e facim, quase sempre tu arruma um asim meio que de imediato! rsrs lokura...

Eu ainda nao consegui foi convite pro Orkut... :|
Se alguem puder de repente me mandar um ae... do um bejo na testa!!! hihihihi
#14 Comentário enviado por ustrucx em 08/09/2004 - 03:03h
Alguem conseguio compilar o fuse-1.3 no Conectiva 10? aqui o ./configure da o erro:
checking kernel source directory... /usr/src/linux-2.6.5-63255U10_1cl/
checking kernel source version... Not found
configure: error:
*** Cannot determine the version of the linux kernel source. Please
*** configure the kernel before running this script
#15 Comentário enviado por cvs em 08/09/2004 - 08:31h
tenta baixar o source do kernel.org e compilar ele e não usar essas versoes patcheadas do kernel... talvez assim funcione normalmente.
#16 Comentário enviado por agk em 08/09/2004 - 09:09h
Galera dá o seguinte erro quando vou instalar o fuse-python está dando o seguinte erro:
Traceback (most recent call last):
File "setup.py", line 7, in ?
from distutils.core import setup, Extension
ImportError: No module named distutils.core

Estou utilizando Debian 3.0 sarge com kernel 2.6.7.
Alguém faz idéia do que seja?
#17 Comentário enviado por agk em 08/09/2004 - 09:18h
Ops, foi mal pessoal, já resolvi o problema, estava faltando o pacote python2.3-dev
#apt-get install python2.3-dev
#18 Comentário enviado por agk em 08/09/2004 - 09:43h
olha eu denovo aqui, depois de tudo instalado sem erros quando vou montar o sistema de arquivos me retorna isso:
File "/bin/gmailfs.py", line 818, in ?
server = Gmailfs()
File "/bin/gmailfs.py", line 402, in __init__
self.ga.login()
File "/usr/lib/python2.3/site-packages/libgmail.py", line 255, in login
pageData = self._retrievePage(req)
File "/usr/lib/python2.3/site-packages/libgmail.py", line 280, in _retrievePage
resp = urllib2.urlopen(req)
File "/usr/lib/python2.3/urllib2.py", line 129, in urlopen
return _opener.open(url, data)
File "/usr/lib/python2.3/urllib2.py", line 326, in open
'_open', req)
File "/usr/lib/python2.3/urllib2.py", line 306, in _call_chain
result = func(*args)
File "/usr/lib/python2.3/urllib2.py", line 908, in https_open
return self.do_open(httplib.HTTPS, req)
File "/usr/lib/python2.3/urllib2.py", line 886, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error (113, 'No route to host')>

Eu uso proxy, tem alguma coisa haver?
#19 Comentário enviado por Nick em 08/09/2004 - 11:34h
Dois pacotes ai não estão mais no souceforge: o fuse e o libgmail. onde posso encontrar?
#21 Comentário enviado por bluedog em 08/09/2004 - 14:07h
o pacote libgmail eh pra ser descompactdado e entao copiar os arkivos para akelas pastas como tem no artigo ou eu posso instalar a lib direto ja q uso o Slackware e o pacote esta no formato tgz?
#22 Comentário enviado por cvs em 08/09/2004 - 14:45h
cara, eh pacote tgz mas num é package slackware não... tem que fazer do jeito que tá no tutorial.
#23 Comentário enviado por coronel em 08/09/2004 - 19:26h
cara, massa D+ a dica.. estou doido pra testar no meu linux
mas nao tenho uma conta..
se puder me convidar!! muito obrigado!

abraço!
#24 Comentário enviado por bluedog em 09/09/2004 - 01:23h
caras eu fiz tudo como ta escrito mas n hora de montar apareceu a seguinte mensagem

root@Shidoshi:/home/bluedog/Desktop/Appz/libgmail-0.0.8# FATAL: Module fuse not found.
fusermount: unable to open fuse device /proc/fs/fuse/dev: No such file or directory

se alguem souber como resolver por favor me avisem
#25 Comentário enviado por leandrosampaio em 10/09/2004 - 12:29h
Quando vou fazer o primiero passo do toturial dá esse erro..

checking for C compiler default output file name... configure: error: C compiler cannot create executables
#26 Comentário enviado por leandrosampaio em 10/09/2004 - 12:36h
estou no kurumin linux 3.2 esse n é o primireiro programa q tento instalar e da erro no ./configure :( o q devo fazer?
#27 Comentário enviado por victsa em 10/09/2004 - 16:34h
Por favor, alguém me mande um "invitation for gmail".. Obrigada, victsa.
#28 Comentário enviado por agk em 10/09/2004 - 21:03h
Galera seguinte eu ainda não consegui fazer isso funcionar, eis o erro
urllib2.URLError: <urlopen error (113, 'No route to host')>

Tenho quase certeza que é porque eu só tenho acesso via proxy, daí a minha dúvida aonde eu mexo eu coloco as váriaveis do proxy?
Please help-me.
#29 Comentário enviado por leandrosampaio em 12/09/2004 - 00:38h
*leandrosampaio usa Kurumin 3.2 instaldo no hd.

O erro enfrentado é:

root@citoweb:/home/kurumin# mount -t gmailfs /bin/gmailfs.py /mnt/gmail/ -o username=*****,password=******,fsname=ZdkfE
root@citoweb:/home/kurumin# Traceback (most recent call last):
File "/bin/gmailfs.py", line 21, in ?
from fuse import Fuse
ImportError: No module named fuse
root@citoweb:/home/kurumin#

O que devo fazer??
#30 Comentário enviado por mfa81 em 13/09/2004 - 11:28h
tb tive esse problem um tempo depois do mount


File "/bin/gmailfs.py", line 818, in ?
server = Gmailfs()
File "/bin/gmailfs.py", line 402, in __init__
self.ga.login()
File "/usr/lib/python2.3/site-packages/libgmail.py", line 255, in login
pageData = self._retrievePage(req)
File "/usr/lib/python2.3/site-packages/libgmail.py", line 280, in _retrievePage
resp = urllib2.urlopen(req)
File "/usr/lib/python2.3/urllib2.py", line 129, in urlopen
return _opener.open(url, data)
File "/usr/lib/python2.3/urllib2.py", line 326, in open
'_open', req)
File "/usr/lib/python2.3/urllib2.py", line 306, in _call_chain
result = func(*args)
File "/usr/lib/python2.3/urllib2.py", line 908, in https_open
return self.do_open(httplib.HTTPS, req)
File "/usr/lib/python2.3/urllib2.py", line 886, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error (110, 'Connection timed out')>
#31 Comentário enviado por cleberbrasil em 19/09/2004 - 22:47h
O comentario de nosso amigo Guilherme L. Stolfo não poderia ser melhor,

Valeu Camarada...

ai galera demorei 3 minutos para descolar um mote de cadastro....
#32 Comentário enviado por ustrucx em 08/10/2004 - 23:03h
Ninguem q usa conectiva tentou essa dica?
Alguem conseguio compilar o fuse-1.3 no Conectiva 10? aqui o ./configure da o erro:
checking kernel source directory... /usr/src/linux-2.6.5-63255U10_1cl/
checking kernel source version... Not found
configure: error:
*** Cannot determine the version of the linux kernel source. Please
*** configure the kernel before running this script
Nao acho que baixar e copilar um kernel seja a melhor saida =\
#33 Comentário enviado por ustrucx em 08/10/2004 - 23:17h
Resolvido:
#touch /usr/src/linux/include/version.h
#34 Comentário enviado por mafioso em 16/12/2004 - 01:39h
Acredito que deu tudo certo, o problema é que, quando tento enviar um arquvio, recebo a seguinte mensagem de erro:

ERROR:gmailfs:Send failed too many times
cp: cannot create regular file `/mnt/gmail/WHM.jpg': No space left on device

Mas se eu dou um df -h, recebo a mensagem:

Filesystem Size Used Avail Use% Mounted on
/dev/hda6 6.7G 5.7G 988M 86% /
/dev/hda1 20G 18G 1.7G 92% /mnt/win_c
/dev/hda5 12G 11G 1.5G 88% /mnt/win_d
gmailfs 1000M 1.0M 999M 1% /mnt/gmail

Pelo que pesquisei na internet, parece que não sou só eu que estou com esse problema... alguém sabe como solucionar???
#35 Comentário enviado por raphazero em 23/01/2005 - 21:04h
na instalação ocorreu tudo certo, nenhum erro, porém qdo dou um "df"
aparece o seguinte resultado.
uso slackware
agradeço desde já!

File "/bin/gmailfs.py", line 818, in ?
server = Gmailfs()
File "/bin/gmailfs.py", line 402, in __init__
self.ga.login()
File "/usr/lib/python2.3/site-packages/libgmail.py", line 255, in login
pageData = self._retrievePage(req)
File "/usr/lib/python2.3/site-packages/libgmail.py", line 280, in _retrievePage
resp = urllib2.urlopen(req)
File "/usr/lib/python2.3/urllib2.py", line 129, in urlopen
return _opener.open(url, data)
File "/usr/lib/python2.3/urllib2.py", line 326, in open
'_open', req)
File "/usr/lib/python2.3/urllib2.py", line 306, in _call_chain
result = func(*args)
File "/usr/lib/python2.3/urllib2.py", line 908, in https_open
return self.do_open(httplib.HTTPS, req)
File "/usr/lib/python2.3/urllib2.py", line 886, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error (110, 'Connection timed out')>
#36 Comentário enviado por pscnuke em 02/02/2005 - 17:43h
Caros,
estou com o problema abaixo em meu Slackware 10 qdo tento instalar o fuse-python. Alguém pode me ajudar ???

root@maquina:~/download/fuse-python# python setup.py build
running build
running build_py
running build_ext
building '_fusemodule' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -O3 -march=i486 -mcpu=i686 -fPIC -I/usr/include/python2.3 -c _fusemodule.c -o build/temp.linux-i686-2.3/_fusemodule.o
_fusemodule.c:312: warning: `struct fuse_statfs' declared inside parameter list
_fusemodule.c:312: warning: its scope is only this definition or declaration, which is probably not what you want
_fusemodule.c: In function `statfs_func':
_fusemodule.c:333: error: dereferencing pointer to incomplete type
_fusemodule.c:334: error: dereferencing pointer to incomplete type
_fusemodule.c:335: error: dereferencing pointer to incomplete type
_fusemodule.c:336: error: dereferencing pointer to incomplete type
_fusemodule.c:337: error: dereferencing pointer to incomplete type
_fusemodule.c:338: error: dereferencing pointer to incomplete type
_fusemodule.c: In function `Fuse_main':
_fusemodule.c:441: warning: assignment from incompatible pointer type
_fusemodule.c:444: warning: passing arg 2 of `fuse_new_compat2' makes pointer from integer without a cast
_fusemodule.c: In function `init_fuse':
_fusemodule.c:484: error: `FUSE_DEBUG' undeclared (first use in this function)
_fusemodule.c:484: error: (Each undeclared identifier is reported only once
_fusemodule.c:484: error: for each function it appears in.)
error: command 'gcc' failed with exit status 1


Paulo
PSCNuke
#39 Comentário enviado por pscnuke em 16/02/2005 - 11:18h
Caros,
o meu problema acima era causado porque estava tentanto usar uma versão mais atual do Fuse, mas como diz o próprio artigo do Richard Jones deve-se usar a versão 1.3.

Agora estou com outro problema. Executo o comando de montagem e aparece a seguinte mensagem:
root@servidor:~/download# fuse: warning: library too old, some operations may not not work

Qdo tento acessar a filesystem recebo a mensagem :
root@servidor:/mnt/gmail# ls
/usr/bin/ls: .: Transport endpoint is not connected

Alguém sabe o que está acontecendo ?

Paulo
PSCNuke
#40 Comentário enviado por montaro em 15/04/2005 - 23:44h
eu uso slack10 e segui passo a passo o artigo so que to com essa msg de erro ->>
lsERROR:gmailfs:Exception getting query:n=__c____d__ p=__a____fs____b__

alguem teria a solucao???
#41 Comentário enviado por removido em 21/04/2006 - 00:32h
Já não existe um RPM pra isso?
Abs
#42 Comentário enviado por rbn_jesus em 23/03/2007 - 17:11h
Estou com um problema em LVM, creio que vc possa me ajudar...
tenho uma configuração lvm em apenas 1 dispositivo, da seguinte forma:
xda1 - /boot - ext3
xda2 - lvm (lvm1 - / - ext3; lvm2 - swap)

como recupero as informações da 1ª partição do lvm neste despositivo?

Contribuir com comentário

Entre na sua conta para comentar.