anúncios

domingo, 30 de outubro de 2016

Instalando NVIDIA no Slackware

Quem tem placa de vídeo Nvidia no seu computador/notebook com GNU/Linux deve ter notado, que partir do Kernel 3.x.y do Linux, o driver da NVIDIA tem algum bloqueio nouveau embutido no seu Kernel, com isso ao executar o binário da Nvidia ocorre conflito, tendo que fazer parametrizações.

Notei isso quando usava a versão anterior do Slackware 14.x, que simplesmente após o download do binário do driver da Nvidia, desabilitando o X, setando permissão e executando o binário da Nvidia, que instalava sem nenhum conflito. Isso com o Kernel Linux anterior da versão 3.x.y.

Tendo selecionado as categorias A, AP, D, K, L, N, X, XAP, XFCE contido no DVD do Slackware que são essenciais para uso em Desktop. As categoriais D e K são as mais importantes para realizar a instalação do driver da Nvidia, nos procedimentos a seguir, essas categorias importantes correspondente os pacotes de desenvolvimento, incluindo compiladores C(gcc), C++(g++), libc, make, etc e o source do Kernel Linux localizado em /usr/src:

Segue os procedimentos para instalar a Nvidia no Slackware 14.2
Primeiramente acesse o site http://www.nvidia.com e faça o download do driver NVIDIA da versão correspondente de sua placa de vídeo que deve ser o binário .run
Remove o drive que ocorre conflito
# removepkg xf86-video-nouveau
Reinicie o sistema
# reboot
Os demais procedimentos deve ser realizado em init 3 (sem o X)
instale o pacote xf86-video-nouveau-blacklist-noarch-1-txz localizado no DVD extra/xf86-video-nouveau-blacklist

Verifique se tem a entrada dvdrom no arquivo /etc/fstab
Caso não tiver, adicione a linha
/dev/cdrom /mnt/cdrom auto noauto,owner,ro,comment=x-gvfs-show 0 0
Note que no arquivo /etc/fstab está configurado a montagem no diretório /mnt/cdrom no dispositivo /dev/cdrom
O diretório de montagem pode ser outro de sua preferência, mas nesse Howto será utilizado o /mnt/cdrom
Montar o DVD no /mnt/dvdrom
# mount /mnt/cdrom/
Instalação do pacote contido no DVD
# installpkg /mnt/cdrom/extra/xf86-video-nouveau-blacklist/xf86-video-nouveau-blacklist-noarch-1.txz
Acessar o diretório onde salvou o binário do driver NVIDIA e setar permissão
# chmod +x NVIDIA-Linux-x86-xx.xx.xx-pkg1.run
Executar o binário
# ./NVIDIA-Linux-x86-xx.xx.xx-pkg1.run
Reinicie o sistema e execute $ startx
Feito!

terça-feira, 25 de outubro de 2016

Instalando PHP 7 no Linux

O presente post, mostra os procedimentos para instalar o PHP 7 (lançado oficialmente em 2016), juntamente com o servidor Apache e o SGBD MySQL nas distros Ubuntu, Debian 8.x e CentOS 7.x
Observação: Não pode ter o PHP 5.x instalado, antes de seguir os procedimentos abaixo deve remover por completo o PHP 5.x, pois ocorre conflito. Para isso, basta executar no Debian e Ubuntu # apt-get purge php5-*
Segue os procedimentos conforme a distribuição Linux adotada:

No Ubuntu


sudo apt-get update
sudo apt-get install ca-certificates apache2 libapache2-mod-php php-cli php php-curl php-apcu php-gd php-imap php-ldap php-mysql php-cas php-soap php-mbstring php-xml php-xmlrpc mariadb-server


No Debian
Adicionar no arquivo /etc/apt/sources.list as linhas abaixo
deb http://ftp.br.debian.org/debian/ stable main contrib non-free
deb-src http://ftp.br.debian.org/debian/ stable main contrib non-free

deb http://ftp.br.debian.org/debian/ stable-updates main contrib non-free
deb-src http://ftp.br.debian.org/debian/ stable-updates main contrib non-free

deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free


Atualiza do repositório e instala os pacotes que compõe o ambiente de desenvolvimento web completo
# apt-get update
# apt-get install ca-certificates apache2 libapache2-mod-php php-cli php php-curl php-apcu php-gd php-imap php-ldap php-mysql php-cas php-soap php-mbstring php-xml php-xmlrpc mariadb-server


No RHEL/CentOS 7.x
No CentOS 7.x, foi adotado o SGBD MariaDB (fork do MySQL)
yum install httpd mariadb mariadb-server
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install php70w


Feito!

sábado, 22 de outubro de 2016

Configurando RAID via software no Debian

Depois de conhecer o RAID e pra que ser serve no post anterior Entendendo RAID , podemos seguir os procedimentos de configuração do RAID via software em seu computador com SO GNU/Linux Debian Jessie, mas deve funcionar também em outra distro sem problemas, basta substituir pelo gerenciador de pacotes da distro que esta usando atualmente.
A ferramenta de gerenciamento RAID via software é mdadm, que poderá ser instalado facilmente por meio do gerenciador de pacotes da sua distro. No presente post, será utilizado o GNU/Linux Debian 8.5.
Primeiramente atualizando o repositório
root@Saitam:~# apt-get update
Instalação da ferramenta mdadm
root@Saitam:~# apt-get install mdadm
Sintaxe do mdadm:
mdadm [modo] [nome-array] [opções] [componentes-array]
O procedimento abaixo é apenas para fins didáticos como exemplo, nesse caso poderá ser usado uma máquina virtual e adicionar dois discos de 1GB ou outro tamanho, desde que os dois discos sejam de mesmo tamanho.
Após criar os 2 discos na máquina virtual em VirtualBox ou VMWare, segue os procedimentos abaixo:

RAID 0 e 1 via software
1. Criar partições nos discos
Verifique qual a nomenclatura do seu disco que foi usada com # fdisk -l
No presente exemplo foram: /dev/sdd e /dev/sde
Verificação dos discos a ser criados as partições
root@Saitam:~# fdisk -l /dev/sdd
Disk /dev/sdd: 1 GiB, 1073741824 bytes, 2097152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
root@Saitam:~# fdisk -l /dev/sde
Disk /dev/sde: 1 GiB, 1073741824 bytes, 2097152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disco 1: root@Saitam:~# cfdisk /dev/sdd
Criação da partição selecionando tipo fd (Linux RAID) no disco /dev/sdd

Disco 2: root@Saitam:~# cfdisk /dev/sde
Criação da partição selecionando tipo fd (Linux RAID) no disco /dev/sde

2. Criar o Array RAID
root@Saitam:~# mdadm -v -C /dev/md0 --chunk=64 --level=1 --raid-devices=2 /dev/sdd1 /dev/sde1

3. Adicionar o Array RAID no arquivo /etc/mdadm/mdadm.conf
root@Saitam:~# mdadm -Es | grep md >> /etc/mdadm/mdadm.conf

4. Criar o sistema de arquivos para o RAID criado. No caso será criado o sistema de arquivos ext4.
root@Saitam:~# mkfs.ext4 /dev/md0

5. Montar o Array RAID no /mnt/raid
root@Saitam:~# mkdir /mnt/raid
root@Saitam:~# mount -t ext4 /dev/md0 /mnt/raid


6. Adicionar no arquivo /etc/fstab
root@Saitam:~# echo "/dev/md0 /mnt/raid ext4 defaults 0 0" >> /etc/fstab

7. Verificar o ponto de montagem
root@Saitam:~# df -h

8. Verificar o funcionamento do arranjo RAID

root@Saitam:~# mdadm --detail /dev/md0
OU
root@Saitam:~# cat /proc/mdstat

Feito!

sexta-feira, 21 de outubro de 2016

Entendendo o RAID

O que é RAID ?
O RAID originalmente Redundant Array of Independent Disk (Arranjo Redundante de Discos Independentes) é um sistema de armazenamento composto de diversos discos rígidos individuais, com o objetivo de ganhar segurança e desempenho.
O RAID oferece segurança e confiabilidade por meio da adição de redundância. Se um disco falhar, o outro continua funcionando normalmente e o usuário nem percebe diferença. O administrador é avisado pelo sistema e substitui o disco que falhou. Apesar disso, o RAID não protege contra falhas de energia ou erros de operação ou contra a falha simultânea dos dois discos. Falhas de energia, código errado de núcleo ou erros operacionais podem danificar os dados de forma irrecuperável. Por este motivo, mesmo usando-se o RAID não se dispensa fazer backup por questão de garantia.

Como funciona o RAID ?
O RAID existe dois tipos de arquiteturas que pode ser implementado, via hardware e via software.

Implementação via Hardware:
Controladoras RAID em hardware usam layouts de disco proprietários (e diferentes). Por isso, normalmente não é possível misturar controladoras de fabricantes diferentes. Eles não utilizam recursos do processador. O BIOS - Basic Input/Output System - pode iniciar (dar boot) por ela, e uma integração maior com o driver de dispositivo pode oferecer um melhor tratamento de erros.

Uma implementação de RAID em hardware requer pelo menos uma controladora especialmente dedicada para isso. Em uma estação de trabalho (PC comum) isso pode ser uma placa de expansão PCI, PCI-e ou uma placa integrada à placa-mãe. Controladoras utilizando a maioria dos tipos de drive podem ser usadas - IDE/ATA, Serial ATA, SCSI, SSA, Fibre Channel, e às vezes uma combinação. A controladora e os discos utilizados devem estar isolados. Podem estar conectados diretamente ao computador, ou conectados via SAN. A controladora gerencia os drives e faz os cálculos de paridade necessários pelo nível de RAID escolhido.

A maioria das implementações em hardware proveem cache de leitura e escrita, o que (dependendo da carga de I/O) melhora a performance. Na maioria dos casos, o cache de escrita é não-volátil (protegido por bateria), e portanto, escritas pendentes não são perdidas no caso de uma falha no suprimento de energia. Implementações em hardware promovem performance garantida, não sobrecarregam o processador e podem suportar vários sistemas operacionais, já que a controladora apresentará ao sistema operacional um disco simples

Implementação via Software: 
Na implementação via software, o sistema operacional gerencia o RAID através da controladora de discos, sem a necessidade de um controlador de RAIDs, tornando-a mais barata.

Nesse tipo de implementação, todo o processamento necessário para o gerenciamento do RAID é feito pela CPU. Toda movimentação de dados(leitura e escrita) é feita por uma camada de software que faz a abstração entre a operação lógica (RAID) e os discos físicos, e é controlada pelo sistema operacional.

A configuração do RAID via software é feita pelo sistema operacional, que precisa ser implementado no próprio núcleo a utilização de RAIDs via software. É possível criar RAIDs via software no Mac OS X, Linux, FreeBSD, OpenBSD e no Windows Server. Alternativamente, podem ser criados com algum software especialmente dedicado a manutenção de discos rígidos do fabricante da placa mãe (quando há suporte para RAID, é claro).

Comparação entre as arquiteturas
Ao compararmos RAIDs por software e por hardware percebe-se que os implementados através de software são mais flexíveis que os via hardware. Por outro lado, os primeiros exigem da CPU mais tempo de processamento.

Comparando os dispositivos de blocos, os em software também são flexíveis podendo ser usados em discos inteiros, partições ou outro dispositivo de bloco.

Níveis de RAID
Os níveis de RAID são combinados os discos de diferentes maneiras e serão explicados a seguir:

RAID-Linear:  É uma simples concatenação de partições para criar uma grande partição virtual. 

Desvantagens: Não oferece redundância, isto é, se um disco falhar, a partição combinada irá falhar também.
Não há ganho de desempenho.

RAID-0: É bem parecido ao RAID-Linear, com exceção de os dados serem lidos e escritos em paralelo nos discos, o que aumenta o desempenho.

Vantagens:
  • acesso rápido as informações
  • custo baixo para expansão de memória. 
Desvantagens:
  • caso algum dos setores de algum dos HDs venha a apresentar perda de informações, o mesmo arquivo que está dividido entre os mesmos setores dos demais HDs não terão mais sentido existir, pois uma parte do arquivo foi corrompida, ou seja, caso algum disco falhe, não tem como recuperar; 
  • não é usada paridade.
RAID-1: Esse nível de RAID que implementa o espelhamento de disco Para esta implementação são necessários no mínimo dois discos ou mais desde que seja utilizado sempre um número par. O funcionamento deste nível é simples: todos os dados são gravados em dois discos diferentes; se um disco falhar ou for removido, os dados preservados no outro disco permitem a não descontinuidade da operação do sistema.

Vantagens:
  • caso algum setor de um dos discos venha a falhar, basta recuperar o setor defeituoso copiando os arquivos contidos do segundo disco;
  • segurança nos dados (com relação a possíveis defeitos que possam ocorrer no HD). 
Desvantagens:
  • custo relativamente alto se comparado ao RAID 0;
  • ocorre aumento no tempo de escrita;
RAID-2: O RAID 2 surgiu no final dos anos 80, onde os HDs não possuíam checagem de erros. Assim, pode-se dizer que o RAID 2 é similar ao RAID 0, mas possuindo algoritmos de Hamming ECC, que é a informação de controle de erros, no lugar da paridade. Além disso, pode-se ter várias configurações, como 10 discos normais + 4 discos somente para ECC. Este fato possibilita uma protecção adicional, porém o RAID 2 ficou obsoleto pelas novas tecnologias de disco já possuírem este tipo de correcção internamente. O RAID 2 origina uma maior consistência dos dados se houver queda de energia durante a escrita. Baterias de segurança e um encerramento correto podem oferecer os mesmos benefícios.

Vantagem:
  • usa ECC, diminuindo a quase zero as taxas de erro, mesmo com falhas de energia. 
Desvantagens:
  • hoje em dia, há tecnologias melhores para o mesmo fim.
  • dependendo da configuração e necessidade da empresa, era necessário a mesma quantidade de discos ECC para discos normais, isto é, desperdício de espaço que poderia ser usado para dados. 
RAID-3: O RAID 3 é uma versão simplificada do RAID nível 2. Nesse arranjo, um único bit de paridade é computado para cada palavra de dados e escrito em um drive de paridade. No primeiro momento, pode parecer que um único bit de paridade dá somente detecção de erro, e não correção de erro. Para o caso de erros aleatórios não detectados, essa observação é verdadeira. Todavia, para o caso de uma falha de drive, ela provê correção total de erros de um bit, uma vez que a posição do bit defeituoso é conhecida. Se um drive falhar, o controlador apenas finge que todos os seus bits são 0. Se uma palavra apresentar erro de paridade, o bit que vem do drive extinto deve ter sido um (1), portanto, é corrigido.

A fim de evitar o atraso em razão da latência rotacional, o RAID 3 exige que todos os eixos das unidades de disco estejam sincronizados. A maioria das unidades de disco mais recentes não possuem a opção de sincronização do eixo, ou se são capazes disto, faltam os conectores necessários, cabos e documentação do fabricante.

Vantagens:
  • leitura rápida;
  • escrita rápida;
  • possui controle de erros.

Desvantagem:
  • Montagem difícil via software.
RAID-4: O RAID 4 funciona com três ou mais discos iguais. Um dos discos guarda a paridade (uma forma de soma de segurança) da informação contida nos discos. Se algum dos discos avariar, a paridade pode ser imediatamente utilizada para reconstituir o seu conteúdo. Os discos restantes, usados para armazenar dados, são configurados para usarem segmentos suficientemente grandes (tamanho medido em blocos) para acomodar um registro inteiro. Isto permite leituras independentes da informação armazenada, fazendo do RAID 4 um array perfeitamente ajustado para ambientes transacionais que requerem muitas leituras pequenas e simultâneas.

O RAID 4 assim como outros RAIDs, cuja característica é utilizarem paridade, usam um processo de recuperação de dados mais envolvente que arrays espelhados, como RAID 1. Este nível também é útil para criar discos virtuais de grande dimensão, pois consegue somar o espaço total oferecido por todos os discos, exceto o disco de paridade. O desempenho oferecido é razoável nas operações de leitura, pois podem ser utilizados todos os discos em simultâneo.

Sempre que os dados são escritos no array, as informações são lidas do disco de paridade e um novo dado sobre paridade deve ser escrito para o respectivo disco antes da próxima requisição de escrita ser realizada. Por causa dessas duas operações de I/O, o disco de paridade é o fator limitante do desempenho total do array. Devido ao fato do disco requerer somente um disco adicional para proteção de dados, este RAID é mais acessível em termos monetários que a implementação do RAID 1.

Vantagens:
  • taxa de leitura rápida;
  • possibilidade do aumento de área de discos físicos. 
Desvantagens:
  • taxa de gravação lenta;
  • em comparação com o RAID 1, em caso de falha do disco, a reconstrução é difícil, pois o RAID 1 já tem o dado pronto no disco espelhado;
  • tecnologia não mais usada por haver melhores para o mesmo fim.
RAID-5: O RAID 5 é frequentemente usado e funciona similarmente ao RAID 4, mas supera alguns dos problemas mais comuns sofridos por esse tipo. As informações sobre paridade para os dados do array são distribuídas ao longo de todos os discos do array , ao invés de serem armazenadas num disco dedicado, oferecendo assim mais desempenho que o RAID 4, e, simultaneamente, tolerância a falhas.

Vantagens:
  • maior rapidez com tratamento de ECC;
  • leitura rápida (porém escrita não tão rápida). 
Desvantagem:
  • sistema complexo de controle dos HDs.(discos)
RAID-6: É um padrão relativamente novo, suportado por apenas algumas controladoras. É 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. Mínimo de 4 HDs para ser implementado. Ao usar 8 HDs de 20 GB cada um, em RAID 6, teremos 120 GB de dados e 40 GB de paridade.

Vantagem:
  • possibilidade falhar 2 HDs ao mesmo tempo sem perdas. 
Desvantagens:
  • precisa de N+2 HDs para implementar por causa dos discos de paridade;
escrita lenta;
  • sistema complexo de controle dos HDs.
Referência
[1] http://www.thegeekstuff.com/2011/11/raid2-raid3-raid4-raid6/

No próximo post, será explicado a configuração do RAID via software no Linux.
Feito!