Postagens em outra “dimensão”! Agora é oficial!

Galera, bom dia!

Algumas pessoas já conhecem meu blog e sabem que é sempre um prazer estar postando sobre coisas que gosto, coisas que me ajudaram ou curiosidades neste mundo inifinito que é a área de TI. Estou desde já redirecionando os how tos para outro blog afim de centralizar as informações e evitar duplicidade com o Google, Yahoo, CUIL, MSN e outros buscadores famosos.

Quem é o NerdBlog.Info?

Sou eu mesmo, mas 100% focado nas experiências de TI e curiosidades em geral.

Agradeço a todos vocês e afirmo que vou demorar um pouco pra postar algo aqui. (lá o fluxo de how tos será maior)

Abraços.

http://www.nerdblog.info (quase ia me esquecendo)

Gnu/Linux e suas dificuldades na usabilidade (diversidade que pode matar)

Gnu/Linux e suas dificuldades na usabilidade (diversidade que pode matar)

Gnu/Linux sem dúvidas é a prática mais comum no mundo do Software Livre, em outras palavras, é o meio mais fácil e mais comum do mundo Open Source estar declarado em nosso dia-a-dia. Temos ferramentas de uso diário, que são open source e não percebemos, mas quando nos deparamos com o Gnu/Linux nós podemos afirmar – este realmente é free software (ainda que não tenhamos um conceito muito forte do que realmente é software livre, que muitos infelizmente interpretam como software gratuito). Isto, sem sombra de variação é muito fabuloso, pois este excelente sistema que já mostrou do que é capaz, e o melhor, deixou claro que tem seu código aberto para customizações e forks, estando disponível para qualquer pessoa, aonde quer que esteja.
Ao longo de 12 anos de convívio com o Gnu/Linux (tendo somente 5 anos como profissional neste ramo, prestando serviços, e outros 7 “ouvindo falar bem”) pude perceber algumas “metamorfoses” que não vieram e fixaram um conceito amigável de usabilidade.
Vou detalhar isto de maneira abrangente para que fique claro o que realmente desejo expor, a dificuldade na curva de aprendizado, devido a variações muito pesadas nas distribuições Gnu/Linux.
Em 1997 possuía um computador Pentium 133 mhz mmx 100% off-board e tenho um irmão que na época estava fazendo cursos da Conectiva (uma distribuição Gnu/Linux que tinha um corpo técnico que prestava consultoria e cursos), tendo assim um impulso forte para instalação desta distribuição, o que me fez “saber que existia um sistema operacional diferente do Windows 95”, sem contar que no ano seguinte o Macintosh havia se tornado “mais uma daquelas descobertas milenares”. Naquela “descoberta” ouvi falar que ele era Free Software, mas confesso que não fez diferença para mim.
Os anos se passaram, para ser mais preciso 7 anos, e depois de tantas tentativas de me familiarizar com “aquela tela preta, parecia de mais com o MS-DOS”, consegui instalar uma distribuição chamada Slackware. Levei a sério, e fui tomando gosto.
Na época o melhor guia, ou documentação brasileira disponível (ainda está disponível) é o perfeito e completo GuiaFoca, um manual do Gnu/Linux, baseado no Debian, mas operando de maneira simples e direta em outras distribuições.
Passei um ano estudando sem cessar este sistema operacional maravilhoso, o que me fez implementar algumas soluções baseadas em Software Livre no SENAC-PB, empresa que trabalhei durante 3 anos. Adquiri um conhecimento sólido nesta plataforma, mas com o passar do tempo necessitei partir para outras como Red Hat Enterprise, por exemplo, sem contar as distribuições desktop que estavam bombando nesta fase. Com a saída da antiga empresa para outra que prestava consultoria não obtive dificuldades em implementações para clientes, principalmente pelo fato do Slackware ser muito flexível e “bastante Unix”, não senti nada difícil nos primeiros meses.
Nesta etapa eu entendi quais os problemas que as distribuições Gnu/Linux sentiam, isto aos olhos do usuário final, por que o nível de curva de aprendizado torna-se alto quando entramos em uma distribuição comercial. Para que se tenha uma idéia, o CentOS (remasterização do Red Hat Enterprise, respeitando direitos autorais e imagens da instituição), caso seja instalado como servidor, com poucos pacotes default você não terá a ferramenta ifconfig disponível, mas espere, ifconfig é um utilitário disponível em todas as distribuições, isto é padrão, e nem todas usam o system-config. Quantas usam dpkg, apt ou aptitude? Quantas tem o RPM como gestor de pacotes? O Yum? O Yast, Yast2?
Sabemos que são particularidades em cada distribuição, e que tais particularidades visam a automatização de determinadas tarefas que comumente estão vinculadas com o sistema operacional que as implementam.
Neste momento entram as divergências em geral, pois entendemos que comandos básicos sempre serão respeitados, e que seus manuais são preservados de uma distribuição para outra, mas que nem sempre estão no mesmo lugar.
Localidades na árvore de estrutura de dados, nomes de arquivos de configuração, modalidade de configuração de rede a nível de arquivo e forma com que containers web trabalham é muito diversificada em cada distribuição. Isto dificulta no momento de colocar na cabeça de algum xiita de códigos fonte proprietários que o Gnu/Linux é bom!
Observem o estouro e magnitude de distribuições como Ubuntu e Fedora, a nível desktop, vejam o quã0 abrangentes e aceitáveis elas são, e o mais importante, o quão bem documentadas elas são, mas em uma suave visão diferenciada, tente usar os conceitos aprendidos em cada uma delas em um Gentoo, CentOs ou OpenSuse, talvez você não queira mais usar Gnu/Linux, ou melhor, fará distinção por conhecer todas as ferramentas/utilitários de uma e de outra não.
Deixo claro que o Gnu/Linux é a escolha certa para quem não quer dores de cabeça futuras, quer estabilidade e o melhor, segurança de suas informações garantidas por sistemas que têm geeks de milhares de lugares dedicando-se na provisão de códigos de altíssimo nível e de escalabilidade monstruosa.
Minhas recomendações para marinheiros de primeira viagem:

• Use Ubuntu/Fedora para desktop, principalmente o Ubuntu que permite upgrades de versão do Sistema Operacional de maneira mais segura,
• Use CentOs/Ubuntu/Slackware ou Debian em seus servidores, principalmente Ubuntu/Debian que permitem upgrades de versões sem maiores dores de cabeça,
• Use Ubuntu/Fedora em escritórios, principalmente por sua quantidade enorme de drivers (módulos) para impressoras e etc.

Existem outras distribuições Gnu/Linux que têm tido muito prestígio, como por exemplo cito o Mandrake, empresa que assumiu a Conectiva e que tem se destacado pela ampla gama de produtos e suporte de qualidade, sendo hoje conhecida como Mandriva. OpenSuse, outra distribuição muito respeitada, versão Grátis e de código fonte aberto, 100% baseada no Suse Enterprise, mantido pela comunidade open source do mundo inteiro, esta é bastante amigável também.
Lembre-se que uma distribuição deve primar por conceitos de segurança, estabilidade e alto desempenho, principalmente, deverá ser bem documentada, e trivialmente falando, documentada maciçamente sobre suas ferramentas em particular.
Gestores de pacotes também são algo que tornam a problemática maior, por que os pacotes .DEB e .RPM imperam, seguidos de seus gestores deb/apt/aptitude e RPM/up2date/yum. Sabemos que é simples compilar algo (em alguns casos, devido requerimento de paths para libs a situação poderá complicar-se) e ajustar paths de destino, mas nem tudo isto brilha aos olhos dos mantenedores de software, tanto pelo nível de dificuldade avaliado para compilações e geração de source pré-compilado na plataforma como pela simplicidade de gestão (upgrade, downgrade e patching em geral).
Quanto ao GuiaFoca, este ainda é a melhor alternativa em documentação Gnu/Linux (falando de maneira geral), mas não atenha-se ao mesmo pois as distribuições estão mudando e agora parecem que estão tomando “independência” ou pensam em seguir assim, longe de padrões LSB.
Aprender sempre é bom, mas não atenha-se a distribuições muito individualistas, isto poderá complicar sua vida em um futuro muito próximo, principalmente no que tange ciclo de vida da versão do sistema ou até descontinuidade do projeto adotado por você ou por sua empresa (vide distribuições como Kurumin que tinham excelente iniciativa, mas que estão agonizado neste momento, Conectiva – adquirida pela Mandrake e outras).

As particularidades excessivas das distribuições estão levando as distribuições que adotam esta modalidade de negócio/serviço para uma ilha de destaque e talvez solidão.

Muito cuidado com sua escolha!

Abraços a todos e bom trabalho/estudo.

fonte: http://www.nerdblog.info/2009/02/27/gnulinux-e-suas-dificuldades-na-usabilidade-diversidade-que-pode-matar/

Quem é mais rápido: O mv ou cp para manipular um arquivo de um lugar para outro?

Um dia esta dúvida pode ir a sua cabeça, por isso, nada de pânico, a resposta é simples e direta:

Para mover arquivos de um lugar para outro o MV é mais rápido que o CP pois o CP recria a estrutura de inode para o arquivo, o mv renomeia o tte desta estrutura, então, concluímos que o mv é mais rápido.

fonte: http://www.nerdblog.info/2009/02/19/quem-e-mais-rapido-o-mv-ou-cp-para-manipular-um-arquivo-de-um-lugar-para-outro/

Apresento-lhes o EXT 4, um tour no ext4, sistema de arquivos ext4


Está é uma tradução livre do texto originalmente publicado aqui: http://kernelnewbies.org/Ext4. Meu inglês não é muito bom, e por essa razão traduzi este texto, e outros textos que podem vir a ser postado em meu blog, para melhorar ele. Caso encontrem erros, o que é provável que aconteça, me informe (andreoandre <> gmail <dot> com ) para corrigir e manter o texto atualizado.

Introdução

Ext4 é a evolução do sistema de arquivos mais usados no Linux, o Ext3. De muitas maneiras, Ext4 é uma profunda melhoria sobre o  Ext3, sendo o Ext3, com muitas melhorias frente o Ext2. No Ext3 foi principalmente a adição de Journaling sobre o Ext2, mas Ext4 teve mudanças importantes na estrutura do sistema de arquivos destinado ao armazenamento de dados. O resultado é um sistema de arquivos com um designer aperfeiçoado, melhor performance, confiável e com muitos recursos.


Recursos do Ext4

Compatibilidade

Um sistema de arquivos Ext3 existente, pode ser migrado para Ext4 com um procedimento fácil, onde consiste a execução de um casal de comandos em modo “read-only” (descrito na próxima seção). Por meio disto você melhora a performance, limites de armazenamentos e recursos do sistema de arquivos corrente, com ou sem a “reformatação” e/ou reinstalação do SO e softwares “environment”. Se você precisa das vantagens do Ext4 em um sistema em produção, você pode atualizar o sistema de arquivos. O processo é seguro é não há riscos para seus dados (obviamente, fazer backup de dados críticos é recomendado, pois você está atualizando seu sistema de arquivos). O Ext4 vai usar uma nova estrutura de dados somente em novos dados, a estrutura antiga continuará intocada, é será possível para leitura/escrita se for preciso. Desta forma, é claro, assim que uma vez convertido o sistema de arquivos para Ext4, você não vai poder voltar para o Ext3 novamente (embora há uma possibilidade, descrita na próxima seção, montando um sistema de arquivos Ext3 com Ext4 com ou sem o uso de um novo disco formatado, e você poderá montar com o Ext3 novamente, porém você irá perder todas as vantagens do Ext4).

Sistema de arquivos ou arquivos grandes

Atualmente, Ext3 suporta 16TB de tamanho máximo no sistema de arquivos, e 2TB de tamanho máximo de um arquivo. Ext4 adiciona 48-bit endereçados, obtendo assim 1EB de tamanho máximo de sistema de arquivos e 16TB de tamanho máximo de arquivos. 1 EB = 1,048,576 TB (1 EB = 1024 PB, 1 PB = 1024 TB, 1 TB = 1024 GB). Porque 48-bit e não 64-bit? Há algumas limitações daquele que pode precisar que seja fixado antes da construção do Ext4 enchendo a capacdade de 64-bit, no qual não tem como ser endereçado no Ext4. A estrutura de dados do Ext4 tem que ser desenhada mantendo em mente, um recurso de atualização para o Ext4 implementando completamente suporte a 64-bit até algum ponto. 1EB pode ser suficiente (realmente enquanto isso acontecer). (Note: o código para criar sistemas de arquivos grandes como 16TB não é estável nas versões do e2fsprogs).

Escabilidade de subdiretórios

Atualmente a possibilidade máxima de número de subdiretórios contendo um único diretório no Ext3 é 32.000. Ext4 quebra esse limite, e possibilita um número ilimitado de subdiretórios.

Extends

Os tradicionais sistemas de arquivos derivados do Unix como o Ext3, utilizam um esquema de mapeamento indireto de blocos para manter cada trilho do bloco usado correspondente no dado de um arquivo. Isto é ineficiente para arquivos grandes, especialmente um arquivo grande deletado e/ou operações “truncate”, porque o mapeamento mantém uma entrada para muitos blocos únicos, e grandes arquivos tem muitos blocos – > mapeamentos enormes, lentidão para o manuseio. Os sistemas de arquivos modernos usam uma abordagem diferente chamada “extends”. Um extends é basicamente um punhado de blocos físicos continuo. Isto pode ser basicamente definido: “Os dados no próximo bloco n”. Por exemplo, um arquivo de 100MB pode ser alocado em um único extends deste tamanho, em vez de precisar da criação de um mapeamento indireto para 25600 blocos ( 4KB por bloco). Arquivos grandes são divididos em diversos extends. Extends melhora a performance e também ajuda a reduzir a fragmentação, uma vez que incentiva o continuo “layouts” do disco.

Alocação multiblock

Quando o EXT3 precisa de nova escrita de dados no disco, há um alocador de blocos que decide quais blocos livres deverá ser usado para a escrita do dado. Mas o alocador de blocos do Ext3 somente alocar um bloco (4KB) em um momento. Esta forma que o sistema precisa para escrever 100MB de dados mencionado anteriormente em outro ponto, será necessário para chamar o alocador de blocos 25600 vezes (isto simplesmente para 100MB!). Não só isto é ineficiente, como também não permite que o bloco de alocação utilize a política de alocação porque ele não sabe como o total de muitos dados deve ter a alocação iniciada, ele apenas conhece sobre um simples bloco. Ext4 usa “multiblock allocator” (mballoc), no qual, aloca muitos blocos em uma simples chamada, em vez de um simples bloco por chamada, evitando um monte de overhead. Isto melhora a performance, e é especialmente útil com “alocação atrasada” e extends. Este novo recurso não afeta o formato do disco. Também, note que o Ext4 blocos/inode tem outras melhorias no alocador, descrição e detalhes neste documento (http://ols.fedoraproject.org/OLS/Reprints-2008/kumar-reprint.pdf).

Atraso na alocação

Atraso na alocação (http://en.wikipedia.org/wiki/Allocate-on-flush) é um recurso de performance (isto não muda o formato do disco) encontrado em poucos sistemas de arquivos modernos, tais como o XFS, ZFS, btrfs ou Reiser 4, que constitui em um atraso na alocação de blocos tanto quando possível, contrário aos tradicionais sistemas de arquivos (tais como o Ext3, Reiser3, etc) fazem: alocando os blocos com a maior brevidade possível. Por exemplo, em um processo de escrita, o código do sistema de arquivos irá atribuir imediatamente os blocos quando os dados forem coletados – mesmo se os dados não estiverem sendo escritos agora para o disco, eles vão ser mantidos em cache durante um tempo. Esta abordagem tem algumas desvantagens.Por exemplo, quando um processo esta escrevendo continuamente em um arquivo, crescente, sucessivamente sendo escritos atribuindo blocos para os dados, mas ele não sabe se o arquivo se manterá crescente. Atrasando a alocação, por outro lado, não afetaria os blocos imediatamente quando o processo de escrita, sim, ela atrasa a alocação dos blocos, enquanto o arquivo é mantido em cache, até que ele esteja realmente indo para escrito no disco. Isto da ao bloco de alocação a capacidade de alocar em situações em que sistemas antigos não poderia. Atraso na alocação trabalha muito bem com as duas características anteriormente mencionadas, extents e alocação multiblock, porque, em muitos casos um trabalho em que o arquivo é gravado para o último disco que será atribuído em blocos extends, cuja alocação é feita com o mballoc. O desempenho é muito melhor, e a fragmentação é muito melhorada em alguns workloads.

fsck rápido

Fsck é uma operação muito lenta, especialmente o primeiro passo: checagem de todos os inodes em um sistema de arquivos. No Ext4, até o fim de cada grupo da tabela de inode estará armazenado uma lista de inodes inutilizados ( com checksum, por segurança), assim o fsck não irá checar estes inodes. O resultado final é que o tempo do fsck melhorou de 2 a 20 vezes, dependendo do número usado de inodes (http://kerneltrap.org/Linux/Improving_fsck_Speeds_in_Ext4). Deve-se notar que é o fsck, e não o Ext4, que irá montar a lista de inodes inutilizados. Isso significa que você deve executar o fsck para obter a lista de inodes inutilizados construída, e só na próxima execução do fsck será mais rápida (você precisa passar o fsck, a fim de converter um ext3 filesystem para Ext4 de qualquer forma). Há também uma característica que ajuda a acelerar o fsck – “flexible block groups” – que também acelera as operações em arquivos.

Journal checksumming

O Journal é mais utilizado na parte do disco, construindo os blocos mais propensos a falhas de hardware. A recuperação de um  journal corrompido pode levar a uma corrupção massiva. Ext4 checksums do dados de journal verificando se os blocos de journal estão falhando ou corrompendo. Mas “journal checksumming” tem um bonus: ele permite para conversão e gravação em duas-fases, sendo no Ext3 o journal em única fase, acelerando a operação no sistema de arquivos para mais de 20% em alguns casos – assim a reabilitação e a performance são melhoradas ao mesmo tempo (Nota: parte dos novos recursos e melhorias de performance, e “asyncrhonous logging”, está desativada por padrão e será ativada em versões futuras).

Desfragmentação Online

(Este recurso não está disponível no 2.6.28, mas provavelmente estará disponível na próxima versão). Enquanto o atraso de alocação, extends e alocação multiblock ajuda a reduzir a fragmentação, em uso de sistemas de arquivos que podem estar fragmentados. Por exemplo: Você escreveu três arquivos em um diretório e “contigually” no disco. Algum dia você irá atualizar o arquivo médio, mas o arquivo atualizado cresceu um pouco, portanto não há espaço para ele. Você não tem nenhuma opção, além do excesso fragmentado de dados para outro local do disco, o que irá causar uma procura, ou alocar a atualização do arquivo “contigually” em outro lugar, longe dos dois outros arquivos, resultando em uma procura se uma aplicação necessitar ler todos os arquivos no diretório (digamos, um gerenciador de arquivos fazendo thumbs em um diretório cheio de imagens). Além disso, o sistema de arquivos só pode preocupar-se com certos tipos de fragmentação, não é possível saber, por exemplo, que deve manter todos os arquivos relacionados com o “boot-related”, porque não sabe quais arquivos estão relacionados com a inicialização. Para resolver este problema, Ext4 apoiará online fragmentação, e há uma ferramenta, e4defrag, que pode desfragmentar arquivos individuais ou todo o sistema de arquivos.

Recursos relacionados aos Inodes

Aumento de inodes, timestamps em nano segundos, rápida alocação extends, reserva de inodes…

* Aumento de inodes: Ext3 suporta a configuração de tamanho de inode ( pelo parâmetro -l do mkfs), mas o tamanho padrão de inode é 128 bytes. Ext4 tem como padrão 256 bytes. Isto é necessário para acomodar algumas características extras (como o timestamp em nano segundos ou versonamento de inodes), e o espaço restante do inode será utilizado para armazenar atributos extends suficientemente pequenos para caber nesse espaço. Isto facilitará o acesso aos atributos com maior agilidade, e melhora no desempenho das aplicações que usem alocação extend por um fator de 3-7 vezes.

* A reserva de inode consiste em alocar vários inodes quando um diretório é criado, esperando que eles sejam utilizados no futuro. Melhorando a performance, porque quando novos arquivos forem criados neste diretório, eles serão capazes de utilizar os inodes reservados. Portanto a criação de um arquivo, como também a ação de apagar o mesmo, será mais eficiente.

* timestamps em nano segundos significa que áreas com “tempo modificado” sejam capazes de usar resoluções em nano segundos em vez de segundo como no Ext3.

Persistência na pré-alocação

Este recurso, disponível no Ext3 e em versões anteriores do kernel, e emulado para glibc em sistemas de arquivos sem suporte a isto, permitindo que aplicação pré-alocarem espaço em disco: As aplicações chamam o sistema de arquivos para pré-alocar o espaço, e o sistema de arquivos aloca a quantida necessária de blocos e estrutura de dados, mas não há dados sobre o assunto até que a aplicação realmente precisa para escrever os dados no futuro. Isto é o que faz aplicações P2P quando “pré-aloca” o espaço necessário para uma transferência que irá durar horas ou dias, mas muito mais eficiente implementado por um sistema de arquivos do que por uma API genérica. Isto tem varios usos: em primeiro lugar, para evitar aplicações (como aplicativos P2P) faze-lo propriamente e ineficientemente, mediante o preenchimento de um arquivo com zeros. Segundo, para melhoria da fragmentação,
uma vez que os blocos serão alocados em um tempo, e continuamente se possível. Terceiro, para assegurar que os pedidos tenham sempre o mesmo espaço solitado para a necessidade, o que é importante para aplicações RT-ish, pois sem a pré-alocação o sistema de arquivos poderá ficar cheio no meio de uma operação importante. Este recurso estará disponível via libc posix_fallocate() interface.

Padrões de barreiras

Este é uma opção que melhora a integridade de um sistema de arquivos ao custo de cerca de desempenho (você pode desabilitar isso com “mount -o barrier=0″, recomendado que seja testado com um benchmarking). Neste artigo da LWN (http://lwn.net/Articles/283161/): “O código do sistema de arquivos tem, antes de escrever [journaling] e gravando o registro, ter certeza absoluta de todas as informações de operações para a criação do journaling. Apenas escrever, no bom sentido, é insuficiente; os dispositivos atuais mantêm grandes chache interno e reordenam operações para melhor performance. Portanto, os sistemas de arquivos devem explicitamente instruir o disco para obter todos os dados do journaling antes da escrita e gravação das alterações; se a gravação dos registros forem escritas em primeiro lugar, o journaling pode ser corrompido. No kernel, os subsistemas de blocos de I/O torna essa capacidade disponível através de uso de barreiras, na sua essência, uma barreira impede a escrita de qualquer bloco após a barreira até que todos os blocos escritos antes da barreira sejam gravados na mídia. Ao utilizar barreiras, o sistema de arquivos pode ter certeza que sua estrutura em disco permaneçam consistentes em todo o momento”.

Como usar o Ext4

Esta é a primeira versão estável do Ext4, assim, mesmo que todo o lançamento e desenvolvimento deste sistema de arquivos fosse lento, e atrasando muito para garantir que o mesmo nível de estabilidade que você esperaria da implementação atual do Ext3, sendo aplicadas a regras de qualquer software “.0″.

Uma coisa muito importante para se manter em mente, é que não há suporte Ext4 no GRUB. Bem, isso não é exatamente verdade: há suporte para o grub, mas as versões atuais do grub, na maioria das distribuições, não tem este suporte. Há suporte no grub2 no branch de desenvolvimento, mas só a partir deste commit (http://svn.savannah.gnu.org/viewvc?view=rev&root=grub&revision=1699). Há pacotes disponíveis do grub2 para Ubuntu, distribuições baseadas no Debian e distribuições com o pacote grub-pc. No branch 0.9x, há suporte não oficial, mas há um projeto no Google SoC (http://code.google.com/p/grub4ext4/) com suporte a isto, e no google finds patches (http://lists.openwall.net/linux-ext4/2008/11/19/8). Então, você escolhe. As próximas distribuições baseadas no Kernel 2.6.28, provavelmente, terá suporte de uma forma ou de outra. A opção segura é manter seu diretório /boot em uma partição formatada com Ext3.

Você também precisa realizar a atualização da ferramenta e2fsprogrs, é claro, a última versão estável – 1.41.3 – é recomendada.

Mudar para Ext4 é muito fácil. Há 3 formas diferentes para fazer essa mudança:

Criando um novo sistema de arquivos do zero

É muito fácil, recomendado para novas instalações. Basta fazer a atualização do seu pacote e2fsprogs para o Ext4. E criar um sistema de arquivos com mkfs.ext4.

Migrando um sistema de arquivos com Ext3 para Ext4

Você vai precisar usar as ferramentas tun2fs e o fsck no sistema de arquivos, sendo que o sistema de arquivos deve estar desmontado, execute:

tune2fs -O extents,uninit_bg,dir_index /dev/seu_sistema_de_arquivos

Após rodar esse comando você DEVE rodar o fsck. Se você não fazer isso, o Ext4 NÃO PODERÁ MONTAR seu sistema de arquivos. Executar o fsck é necessário para retornar um sistema de arquivos consistente. Ele irá informar se encontrou checksum com erros na descrição de grupos – e espera – exatamente o que precisa ser reconstruído para montar o Ext4, não se surpreenda com ele. Cada vez que ele encontrar um erro irá perguntar o que fazer, sempre digo sim (YES). Se você não quiser ser questionado, passe o parâmetro “-p” ao executar o comando fsck, que significa “reparação automática”.

fsck -pf /dev/seu_sistema_de_arquivos

Há um outro aspecto que deve ser mencionado. Todos os arquivos existentes irão continuar utilizando o mapeamento indireto para mapear todos os blocos de dados. A ferramenta “online defrag” será capaz de migrar cada um destes arquivos para o formato extends (usando um ioctl que diz para o sistema de arquivos para reescrever o arquivo no formato extends; enquanto você estiver usando o sistema de arquivos normalmente).

Mountando um sistema Ext3 existente com Ext4 sem alterar o formato

Você pode montar um sistema de arquivos Ext3 com Ext4 mas sem utilizar recursos que altere o formato do disco. Isso significa que você poderá montar um sistema de arquivos com Ext3 novamente. Você pode montar um sistema de arquivos com Ext3 pelo comando “mount -t ext4 /dev/sua_partição /mnt”. Fazendo isto, sem ter feito o processo de conversão descrito anteriormente, forçando o Ext4 a não utilizar os recursos de mudança deste formato de disco, tais como extends, que irá utilizar as funcionalidades que não altera o formato de disco, tais como mballoc ou atraso de alocação. Você será capaz de montar seu sistema de arquivos Ext3 novamente. Mas, obviamente, você perderá todas as vantagens e características do uso do Ext4…

Fonte: http://andrem.wordpress.com/2008/12/26/ext4/

Fedora 10: Lamp2 – linux apache 2 mysql e php 5 + ruby + python

Vou mandar ver em um how to interessante para os amantes do LAMP sob fedora. Todos que usam Fedora devem (ou deveriam) saber que a versão atual deste fabuloso sistema encontra-se na 10. Iremos fazer um how to sobre lamp 2 no Fedora 10, então atente para estar usando Fedora 10.

Requisitos:

Internet (se rápida será melhor ainda),
Fedora 10,
Vontade de rodar o lamp2 no Fedora 10 ?:) ,
Estar logado como root.

Indo ao Combate

Após instalar seu Fedora acesse o console como root e execute os seguintes comandos:

yum update -y

Isso vai atualizar os repositórios e recursos do sistema (kernel, utilitários  e etc).

Após vamos instalar o mysql:

yum -y install mysql mysql-devel mysql-server

Isso vai instalar o mysql, mas logo após sua instalação aplique os comandos abaixo:

chkconfig –levels 235 mysqld on
/etc/init.d/mysqld start

Confirme se a porta já está ativa e esperando conexões:

netstat -tap | grep mysql

Isto deve gerar uma saída mais ou menos assim:

tcp        0      0 *:mysql                     *:*                         LISTEN      2407/mysqld

Após faça este ajuste aqui:

vi /etc/my.cnf

#skip-networking

Comentar a linha acima.

Reinicie o mysql com o comando:

/etc/init.d/mysqld restart

Pronto, defina a senha de root do mysql com os comandos abaixo:

mysqladmin -u root password Sua_nova_SENHA
mysqladmin -h maquina.meudominio.com -u root password Sua_nova_SENHA

Isso aplicará a senha de root do mysql.

Agora vamos aplicar php, python e ruby + apache 2:

yum -y install httpd php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mapserver php-mbstring php-mcrypt php-mhash php-mssql php-shout php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel

chkconfig –levels 235 httpd on

Pronto, depois disso faça o teste com —>

/etc/init.d/httpd start

Instale o ruby:

yum install httpd-devel ruby ruby-devel

cd /tmp
wget http://www.modruby.net/archive/mod_ruby-1.3.0.tar.gz
tar zxvf mod_ruby-1.3.0.tar.gz
cd mod_ruby-1.3.0/
./configure.rb –with-apr-includes=/usr/include/apr-1
make
make install

vi /etc/httpd/conf.d/ruby.conf

LoadModule ruby_module modules/mod_ruby.so

/etc/init.d/httpd restart

yum install mod_python

/etc/init.d/httpd restart

Prontooo!

Hospedagem de Sites Grátis Brasileira!

Estou fazendo este post, mas na realidade não passa de um apontamento para um projeto o qual faço parte para que o nosso maravilhoso Google faça a indexação perfeita. Abaixo irei explicar o que é o projeto, para quem se destina e como é mantido.

O projeto LiBPHP.net

Este projeto foi criado inicialmente como um fórum e um informativo sobre linguagens de programação, em especial o php, todavia, com o fechamento de uma empresa de hosting a qual eu fazia parte do quadro majoritário, estive sem espaço para trabalhar e “fui a rua caçar portas!”. Obtive bastante apoio de muita gente a qual abriu as portas e me fortaleceu. No entanto, meu desejo por programação e linux foi querendo “aflorar” neste meio tempo, e o compartilhar da informação também.
No tempo em que estive na empresa precisei aprofundar os conhecimentos em PHP, Mysql, CSS, ajax e etc, o que me fez mais próximo ainda da Web nos últimos meses.
Neste tempo tornei-me parte do core de desenvolvimento do ISPConfig, considerado o melhor painel de controle OpenSource do Mercado. Para ler sobre este projeto e sobre nossos projetos opensource acesse www.ispconfig.org ou o nosso fórum.
O projeto surgiu baseado em soluções de hospedagem gratuita que o mercado carece (tendo poucas que realmente funcionam bem).

A quem se destina e O QUE VOCÊS GANHAM COM ISSO?
O Projeto LiBPHP.net destina-se aos desenvolvedores e aprendizes de desenvolvimento de aplicações web baseados nas seguintes linguagens:

PHP,
Ruby,
Python.

O projeto visa a hospedagem de sites grátis sem custos para que projetos como ISPConfig, LiBPHPCash e etc possam ser aprimorados e ter código-fonte bastante aproveitável.
Em breve o projeto disponibilizará SVN para os usuários.
O Lucro/ Mantimento do projeto vem dos seguintes recursos:

Publicidade,
Doações via PagSeguro,
Doações via Paypal,
Doações via Depósito Bancário,

Serviços Freelancer como Gerenciamento de Servidores Windows Plesk , Gerenciamento de Servidores Gnu/Linux com ISPConfig e Customização/Desnevolvimento WEB.
Sendo as quatro primeiras opções as mais amigáveis, pois se estivermos com tempo disponível poderemos desenvolver com mais fervor as ferramentas OpenSource – Grátis que oferecemos.

O Custo mensal do Servidor é de R$ 250 / mês, o que nos preocupa em caso de não doações, pois o serviço de hospedagem para sites grátis é mantido por donativos.

Se você deseja ajudar o projeto e não tem condições, indique o link para um amigo, isso ajudará!

Vantagens de Estar hospedando na LiBPHP.net

A Vantagem é que você terá hospedagem de sites grátis php, dentre outras linguagens, suporte via fone e ticket, mas iremos expor os mais amigáveis recursos de hospedar no projeto:

1 – Painel de Controle em Português Brasil (ou inglês, caso deseje),
2 – Emails (direito a emails e webmails como Roundcube, Squirrelmail e Webmiau),
3 – Banco de dados (direito a banco de dados Mysql e PHPMyadmin),
4 – Servidor Estável e poderoso (linha AMD Opteron).
5 – NÃO PRECISA PAGAR NADA POR ISSO, se desejar DOE (recomendado).
6 – 500 mb de espaço GRÁTIS para hospedar seu site/aplicação.
7 – Permitido hospedar blogs, fóruns e etc.
8 – Suporte via fone e ticket.
9 – Existem Sysadmins monitoriando o servidor, aplicando Patches e etc.
10 – SEM PROPAGANDA, BANNER ou LINKs.

Só não é tolerado spammer, flooder, phishing e práticas ilegais que se enquadrem em punições segundo o quadro de leis federais. (ex: pedofilia)

Nenhum dos conteúdos acima é tolerado, caso um site seja pego com isso será divulgado em uma lista de sites mundial visando restringir acessos de pessoas aos sites.

Conheça mais o projeto em: http://www.libphp.net

Servidor de email não envia para o Hotmail (postfix, sendmail, qmail ou exim)

Nem entre em pânico, você sabe que o mestre da cocada preta aqui está com a solução, e de fato é simples, acesse os links:

http://postmaster.live.com/FAQ.aspx

http://www.microsoft.com/mscorp/safe…d/default.mspx

Se após ajustes de SPF e MX perfeitamente configurados o serviço de email não enviar corretamente para hotmail, yahoo ou uol, veja isto aqui:

http://help.yahoo.com/help/us/mail/defer/defer-06.html

Nada de pânico, negócio é ver se há blacklist de spam, veja:

http://mxtoolbox.com/blacklists.aspx

Instalando php mais novo em servidores CentOs, Red Hat ou Fedora

É comum que tenhamos um servidor feito sem recursos de painéis de controle como Plesk ou Cpanel que tornam a versão do php muito antiga… porém, em observação, precisava de uma versão tunada do php para poder programar feliz e contente!

O Centos Veio com a versão 5.1.6, que nada tinha de tão importante (o que precisava), então, abaixo segue how to para subir para uma versão 5.2.x:

wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-2.noarch.rpm
wget http://rpms.famillecollet.com/el5.i386/remi-release-5-4.el5.remi.noarch.rpm
rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm

yum --enablerepo=remi update php

pronto, depois disso só precisa verificar:

php -v

PHP 5.2.6 (cli) (built: May  7 2008 00:50:43)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies

OpenSolaris 2008.11 Released

Vou replicar a nota oficial do lançamento do OpenSolaris 2008.11:

OpenSolaris 2008.11 has been released. In addition to improvements in ZFS, DTrace, IPS (the new OpenSolaris package manager) and the other OpenSolaris specialties, it also ships with a host of other OSS goodies: Gnome 2.24, Firefox 3, CherryPy, MySQL, DTrace for Ruby and many more. This new release targets developers and desktop users as well as traditional server roles. Download the live cd and give it a spin. Release notes here.