Mostrando postagens com marcador Artigos. Mostrar todas as postagens
Mostrando postagens com marcador Artigos. Mostrar todas as postagens

quinta-feira, 31 de maio de 2012

Entendendo Tudo sobre RAID


RAID

RAID, sigla de redundant array of independent disks (Conjunto Redundante de Discos Independentes), e com pelo menos dois discos rígidos você pode montar um arranjo RAID de modo a aumentar capacidade/desempenho/confiabilidade que você pretende atingir.

RAID 0 (Striping)


É um RAID, onde o objetivo é unicamente melhorar o desempenho, sacrificando a confiabilidade.
Ao usar o RAID  0, todos os HD’s passam a ser acessados como se fossem um único drive. Ao serem gravados, os arquivos são fragmentados nos vários discos, permitindo que os fragmentos possam ser lidos e gravados simultaneamente, com todos os HD realizando parte do trabalho. Usando RAID 0 a performance fica em um patamar próximo da velocidade de todos os HDs somada. Ao usar 4 HDs com uma taxa de transferência e 50 MB/s (em leituras seqüenciais) em RAID 0, você teria uma taxa de transferência total de quase 200 MB/s em muitas situações.
Ao criar um RAID 0 com 4 HDs de 500 GB em RAID 0, você teria um espaço total de armazenamento de 2 TB, onde toda a capacidade é dedicada ao armazenamento de dados, sem redundância.
O problema é que todos os HD armazenam apenas fragmentos de cada arquivo e não arquivos completos. Por causa desta peculiaridade, caso qualquer um dos HD’s apresente defeito, você simplesmente perde todos os dados.
O RAID 0 é possivelmente o mais usado em desktops e também em alguns servidores de alto desempenho. Ele é a melhor opção caso você queira o melhor desempenho possível e tenha como manter um backup atualizado dos dados gravados.
Assim como em outros modos RAID, não é realmente obrigatório usar HDs idênticos, mas isso é fortemente aconselhável, pois tanto a capacidade quanto o desempenho ficam limitados à capacidade do HD mais lento.
Ao utilizar um HD de 500 GB e outro de 300 GB em RAID 0, o sistema ignora os últimos 200 GB do HD maior, de forma que você acaba ficando com um total de 600 GB disponíveis. Os acessos também precisam ser sincronizados, de forma que ao utilizar um HD com taxa de transferência máxima de 50 MB/s, em conjunto com 30 MB/s, você acaba tendo um máximo de 60 MB/s. Ou seja, utilizar dois HDs diferentes é possível, mas geralmente não é um bom negócio.

RAID 1 (Mirroring)


O RAID 1 (Mirroring) usando dois HDs,  o segundo armazenará uma imagem idêntica do primeiro. Na pratica, será como se você tivesse apenas um disco rígido instalado, mas caso o disco titular falhe por qualquer motivo, você terá uma cópia de segurança armazenada no segundo disco. Este é o modo ideal se você deseja aumentar a confiabilidade do sistema.
Também é possível utilizar RAID 1 com quatro ou mais discos (desde que seja utilizado sempre um número par). Neste caso, um dos discos de cada par é visto pelo sistema como um HD separado e o outro ficam ocultos, guardado a cópia atualizada do primeiro. Ao utilizar 4 HDs de 500 GB em RAID 1, por exemplo, o sistema enxergaria 2 HDs, de 500 GB cada um.
Usar RAID 1 não proporciona qualquer ganho de desempenho. Pelo contrário, ele acaba causando uma pequena perda em comparação com usar um único drive, já que todas as alterações precisam ser duplicadas e realizadas em ambos os drives.
Caso um dos HDs titulares falhe, o segundo entra em ação automaticamente, substituindo-o até que você possa substituir o drive.
Uma dica é que, ao fazer RAID 1 utilizando discos IDE, procure colocar um em cada uma das duas interfaces IDE da placa, isto melhorará o desempenho. Outro ponto é que caso os dois discos estejam na mesma interface, como master e slave, você precisa reiniciar o micro caso o primeiro falhe. Usando um em cada interface, a controladora fará a troca automaticamente, sem necessidade de reset. Da próxima vez que inicializar o micro você receberá um aviso pedindo para substituir o HD defeituoso.
Este problema não afeta as controladoras SATA, já que nelas cada HD é ligado a uma porta separada, sem a divisão de master/slave como nos HDs IDE.
Ao invés de usar dois HDs em RAID 1, seus dados estarão mais seguros se você colocar o segundo HD numa gaveta USB e usá-lo para manter backups de todos os arquivos e dados pessoais. Deixe o HD desconectado do PC e, de preferência, guarde-o num local separado ou carregue-o com você.

RAID  5 (Parity Across Disks)


O RAID 5 é um modo é muito utilizado em servidores com um grande número de HD’s. Ele utiliza um método bastante engenhoso para criar uma camada de redundância, sacrificando apenas uma fração do espaço total, ao invés de simplesmente usar metade dos HD’s para armazenar cópias completas, como no caso do RAID 1.
O RAID 5 usa um sistema de paridade para manter a integridade dos dados. Os arquivos são divididos em fragmentos de tamanho configurável e, para cada grupo de fragmentos, é gerado um fragmento adicional, contendo códigos de paridade.
Note que, ao invés de reservar um HD inteiro para a tarefa, os códigos de correção são espalhados entre os discos. Desta forma, é possível gravar dados simultaneamente em todos os HDs, melhorando o desempenho.
O RAID 5 pode ser implementado com a partir de 3 discos. Independentemente da quantidade de discos usados, sempre temos sacrificado o espaço equivalente a um deles. Ou seja, quanto maior é a quantidade de discos usados no array, menor é a proporção de espaço desperdiçado.
Em um sistema com 5 HDs de 500 GB, teríamos 2 TB de espaço disponível e 500 GB de espaço consumido pelos códigos de paridade. Usando 8 HDs teremos 3.5 TB para dados e os mesmos 500 GB para paridade, e assim por diante.
Graças à forma como os bits de paridade são dispostos, é possível recuperar os dados de qualquer um dos HDs que eventualmente falhe. Mais ainda, o sistema pode continuar funcionando normalmente, mesmo sem um dos HDs.
A idéia por trás desta aparente "mágica" é bastante simples. A paridade consiste em adicionar um bit adicional para cada grupo de bits. Ao usar 5 HDs, por exemplo, temos um bit extra para cada 4 bits de dados.
Caso dentro destes 4 bits exista um número par de bits 1, então o bit de paridade é 0. Caso exista um número ímpar de bits 1, então o bit de paridade é 1.
Veja que, graças ao bit de paridade, é possível saber apenas que, dentro do grupo de 4 bits existe um número par ou ímpar de bits 1. Isso é o suficiente para recuperar qualquer um dos 4 bits que seja perdido, desde que sejam respeitadas duas condições:
a) Que apenas um bit de cada grupo seja perdido
b) Que se saiba qual dos bits foi perdido
No RAID 5 cada um dos bits dentro de cada grupo fica guardado em um dos HDs. Quando um deles é perdido, a controladora sabe exatamente quais bits foram perdidos e têm condições de recuperá-los usando uma verificação muito simples. A controladora pode manter o sistema funcionando mesmo sem um dos HDs, realizando estes cálculos em tempo real para obter os dados que estavam armazenados nele. Quando o HD é finalmente substituído, a controladora reescreve todos os dados (usando o mesmo processo) e o sistema volta ao estado original.

RAID 6



O RAID 6 é um padrão relativamente novo, suportado por apenas algumas controladoras. Ele é semelhante ao RAID 5, porém usa o dobro de bits de paridade, garantindo a integridade dos dados caso até 2 dos HDs falhem ao mesmo tempo. Ao usar 7 HDs de 500 GB em RAID 6, por exemplo, teríamos 2.5 TB para dados mais 1 TB de códigos de paridade.
A percentagem de espaço sacrificado decai conforme são acrescentados mais discos, de forma que o uso do RAID 6 vai tornado-se progressivamente mais atrativo. No caso de um grande servidor, com 41 HDs, por exemplo, seria sacrificado o espaço equivalente a apenas dois discos, ou seja, menos de 5% do espaço total. Em troca, ganha-se proteção contra a possibilidade de um segundo HD falhar durante o processo de substituição e reconstrução dos dados do primeiro.
Tanto no caso do RAID 5, quanto no RAID 6, o servidor continua funcionando normalmente durante todo o processo de substituição do disco, embora a performance decaia, sobretudo logo depois da substituição do drive defeituoso, quando o sistema precisa regravar os dados, lendo as informações armazenados em todos os outros discos e fazendo os cálculos de paridade.

RAID 10


O RAID 10 (Mirror/Strip) é um modo que pode ser usado apenas caso você tenha a partir de 4 discos rígidos e o módulo total seja um número par (6, 8, etc.). Neste modo, metade dos HDs serão usados em modo striping (RAID 0), enquanto a segunda metade armazena uma cópia dos dados dos primeiros, assegurando a segurança.
Este modo é na verdade uma combinação do RAID 0 e RAID 1, daí o nome. O ponto fraco é que você sacrifica metade da capacidade total. Usando 4 HDs de 500 GB, por exemplo, você fica com apenas 1 TB de espaço disponível. No RAID 10 você obtém o dobro de desempenho que em um HD sozinho, mas sem abrir mão da segurança.


quarta-feira, 23 de maio de 2012

BRUTE FORCE (Força Bruta)


BRUTE FORCE (Força Bruta)


As senhas foram criadas com o intuito de proteger algo que queiramos esconder, ou impedir o acesso não autorizado a um arquivo, pasta ou sistema. Já a criptografia foi criada para proteger essas senhas e também arquivos, pastas e sistemas, de forma que os mesmos se tornem ilegíveis, evitando então que uma pessoa não autorizada leia o conteúdo de um arquivo ou acesse um sistema.


Existem várias formas de quebrar uma senha e uma criptografia, praticamente todas consistem em tentativa e erro, ou seja, quando você tenta uma senha, da errado, tenta outra, da errado, tenta outra, da errado, e assim por diante, até que você digite a senha correta e tenha acesso. Para isso, podemos criar essas senhas de duas formas, através de um dicionário com várias senhas, ou através de força bruta, tentando combinar letras, números e símbolos, de a a Z de 0a 9 de “ a +.


A famosa BRUTE FORCE (força bruta) remotamente, ou seja, um programinha simples como qualquer outro, mas que testa senha por senha em um site ou sistema.


O problema é que quanto mais difícil for a senha, mais difícil será quebra-la e como criar e tentar várias senhas da muito trabalho, existem programas automatizados que conseguem fazer um ataque do tipo wordlist (dicionário) e/ou força bruta, esses programas são simples em questão de interface, porém são muito potentes e dependendo do tipo de senha e tamanho, pode ser que eles consigam quebra-la em no máximo 1 hora.


Portanto para quem trabalha com Servidores ou tem informações valiosas nos computadores utilizar senhas FORTE usando Números, Letras Maiúsculas e Minusculas além de Caracteres especiais.

sexta-feira, 18 de maio de 2012

Cookies e Sessões


Cookies e Sessões
 
 
Cookies
 
Cookie é um arquivo texto que podemos armazenar no computador do usuário, para ser recuperado posteriormente pelo servidor. Um cookie é formado por um par nome/valor, ou seja, possui um nome pelo qual ele é referenciado e um valor associado a esse nome. Podem ser utilizados em qualquer aplicação que necessite compartilhar dados entre diferentes páginas, ou até entre diferentes acessos (em dias e horários diferentes).
O PHP nos oferece a função setcookie, que envia cookies para o computador do usuários. Essa função é usada tanto para definir um cookie, como também para excluí-lo. Sintaxe:
bool setcookie(String nome [, string valor [, int validade ]])
nome: indica o nome do cookie que está sendo enviado, e é o único parâmetro obrigatório para a função.
valor: é o valor do cookie.
validade: define o tempo de validade do cookie. Deve ser expresso no formato-padrão de tempo do Unix (números de segundos após 1 de janeiro de 1970).
setcookie("nome", "osvaldo");
setcookie("nome, "João", time() + 172800);
Esse cookie é válido por 2 dias, pois utilizamos a função time para obter o tempo atual, e somamos 172.800 segundos, que equivalem a 48 horas.
 
O array superglobal $_COOKIE
 
É importante lembrar que o cookie não pode ser utilizado pela página que o criou, apenas a partir da próxima solicitação.
Para resgatar o valor do cookie usamos:
$_COOKIE["nome"];
 
Sessões
Uma sessão é um período de tempo durante o qual uma pessoa navega pelas páginas de um site. Quando um usuário entra no site, podemos abrir uma sessão e nela registrar diversas variáveis, que ficarão gravadas em arquivos no servidor e poderão ser acessadas em qualquer páginas do site, enquanto essa sessão estiver aberta.
No PHP uma sessão pode ser criada de forma manual ou automática. A criação manual pode ser feita de forma explicita (função session_start) ou de forma implícita (ao registrar uma variável com a função session_register).
Session_start();
Ao registrar uma variável em uma sessão, estamos tornando-a disponível para todas as páginas que serão acessadas até o término dessa sessão.
session_start();
$_SESSION["nome"] = "Alan Nunes Cerqueira";
Para escrever na tela:
echo $_SESSION["nome"];
Servem para armazenar informações que poderão ser utilizadas enquanto o usuário estiver navegando entre as páginas do site.
Algumas utilidades para cookies e sessões:
- Autenticação de Usuários: criação de um sistema envolvendo login, autenticação e logout, o que garante o acesso do conteúdo somente aos usuários autorizados.
- Carrinho de Compras: utilizado nos sites de comércio eletrônico para armazenar todos os produtos já selecionados pelo cliente para compra, enquanto ele navega pelo site da loja.
- Personalização de páginas: por exemplo: uma livraria virtual poderia exibir o anúncio de um livro de culinária, caso o usuário tivesse feito uma pesquisa pela palavra "culinária" na última vez que acessou o site.