Filed Under (Proxy, Security, Squid, software livre) by rafaelgomes on 06-10-2008
Na lista Squid-BR surgiu a duvida sobre a melhor solução para criar um proxy “parrudo”, já que tem uma maquina robusta, acreditei que ele desejava ouvir alguns conselhos. Sendo assim comecei a opinar.
Baseado em conhecimentos simples de RAID, aconselhei que utilizasse Software RAID 0, achei que pelo fato de ser varias cabeças trabalhando “ao mesmo tempo” o desempenho seria melhor. Isso seria verdade se o Squid trabalhasse de forma mais inteligente, pois atualmente com uma unica requisição, as cabeças do hd não trabalharia ao mesmo tempo e assim todo a vantagem dessa solução seria desperdiçada, sem contar que o fator confiança conta nesse ponto, pois um problema em um dos hds comrromperia todo sistama, isso no caso de uma única unidade lógica.
Assim irei resumi algumas informações que me foram passadas na lista oficial dos usuários Squid:
JBOD – “Just a Bunch Of Disks” (Apenas um punhado de discos)
Por mais incrível que pareça, essa se mostra uma das melhores soluções custoXbenefício.
Como sabemos, os discos atuais trabalham com leitura e escrita através de uma unica cabeça por disco, correto? Assim é correto afirmar que vários cache_dir por disco não aumenta a perfomance em ponto algum, pelo contrário, gera maior requisição para um único dispositivo.
Com vários discos, poderá ser criado vários cache_dir, um para cada disco. Assim distribuindo as requições entre diferentes dispositivos.
Nesse ponto, temos um pequeno problema, confiabilidade, pois com a perda de um disco, o cache_dir correspondente irá falhar e parar seu sistema.
Há soluções de contorno para esse problema, mesmo assim essa não deixa de ser um de seus pontos fracos.
Software RAID 0 (Striping)
Como já dito no inicio do texto, essa solução não é aconselhável, tendo em vista que teremos perfomance baixa na escrita e leitura em comparação a qualquer outra opção.
Software RAID 1 (Mirror)
Como muitos sabem, essa solução tem uma otimização na escrita leitura, porém é deficiente na leitura escrita, sendo assim não será uma boa opção a sua escolha, pois requisição escrita de objetos no disco será prejudicada e faltalmente o seus hits.
Se o ambiente a ser instalado, tem maior escrita do que leitura, então esse ambiente não será uma boa opção.
Nessa opção temos alta confiabilidade, já que temos um espalhamento dos dados, e no caso de queda teremos contingência.
Software RAID 5
Parecida com o Software Raid 0, essa opção cria uma única unidade lógica, porém utiliza um disco para paridade ela oferece maior confiabilidade, assim é capaz de suportar a perda de um disco, sem perder qualquer informação ao indisponibilizar o sistema, porém a sua leitura é lenta, assim como o RAID 0.
Hardware RAID 1 and RAID 5
Com a utilização de um dispositivo externo, o aumento de velocidade e independência ao processador central da maquina, o acesso a disco é melhorado, assim tornando essa opção atrativa para aqueles que dispõe de recursos para adotá-la. Lembrando que uma solução como essa ainda é mais barata do que dois servidores completos em contigência.
O que devo escolher?
Como é dito no texto que serve como fonte; Não existe uma solução única para tudo. Deve ser avaliado todas as opções e levado em conta como funciona seu ambiente atual para que seja adaptado a melhor solução. A tecnologia é criada para atender demandas e não o contrário.

[...] por Rafael Gomes (rafaelgomesΘprojetofedora·org) – referência [...]
Tenho alguns pontos a observar:
Sobre o RAID0, não é verdade o que foi dito em seu texto. O FAQ do squid apenas informa que nao traz nenhum beneficio, e traz como desvantagem a possivel perda de todo o cache em caso de corrompimento.
Sobre o RAID1, o que voce disse é justamente o oposto. O RAID1 apresenta desempenho melhor na escrita, já que pode ler tanto de um quanto de outro disco, e desempenho inferior na gravaçao.
Sobre o RAID5, o que foi dito sobre o RAID0 ser lento para leitura não está correto.
Sugiro dar uma re-lida no FAQ e a correspondente traduçao no seu artigo
Vamos alinhar algo. Quando digo que algo é lento, será em comparação as outras soluções. Ok?
Sobre RAID 0
É relatado no texto:
“As squid mostly deals with small I/O operations in the KB range randomly spread out over a large number of files RAID0 do not provide any benefits for Squid”
Assim não trazendo nenhuma melhoria, poderemos considerá-lo lento, mesmo em comparação ao JBOD!
Sobre o RAID1,
Você mesmo disse:
“desempenho inferior na gravaçao”
Isso não é o sinônimo de escrita?
Sobre RAID5,
Como dito anteriormente sobre o RAID0, é em comparação aos outros citados. Mesmo para o JBOD.
Não acredito que seja necessário olhar novamente o artigo, pois esse artigo reflete informações da fonte. O que aconteceu aqui foi uma divergência na sua interpretação.
Espero retorno, se ainda discordar de algo.
Obrigado pela visita.
O RAID 1 não tem uma otimização na escrita, na verdade ele é mais lento. Na leitura, ele é melhor.
RAID 0 tem uma confiabilidade péssima, e não acho que deve ser usado em produção.
RAID 5 tem uma escrita mais lenta, e não é recomendado para bancos de dados, por exemplo, porque o cálculo de checksum pode ter um impacto muito grande para bancos com grande volume de transações. Para Data Warehousing, pode ser uma boa pedida.
Uma opção muito boa é o RAID 1+0, na minha opinião.
Use Raid 10 é uma opção moderada mas precisa de 4 discos, o que vc perde no Raid0 ganha no Raid1 use os dois juntos e tenha a media Raid10 ou Raid 1 + 0
João Marcus,
Valeu pela correção! Já modifiquei a informação. Realmente houve um equivoco da minha parte.
Obrigado,
“Você mesmo disse:
“desempenho inferior na gravaçao”
Isso não é o sinônimo de escrita?”
Ah é, foi o que eu quis dizer, e o João Marcus apontou corretamente. Eu tava pensando uma coisa e escrevi outra
“O RAID1 apresenta desempenho melhor na escrita, já que pode ler tanto de um quanto de outro disco”
Ainda discordo em relação a ser “lento” ou não. Não ser mais rápido NÃO é sinônimo de ser lento. Podem ser iguais, até, mas dizer que é lento leva a uma compreensão errada.
Em relação à fonte, vi várias divergências sim, especialmente em relação à tradução. O caso do RAID1 foi claro, onde você simplesmente inverteu as situações em que ele é melhor/pior.