Replicação de um Bancos de Dados – Parte II

Agora que já entendemos um pouco sobre como funciona a Replicação, vamos ao que realmente interessa. Neste exemplo vou mostrar utilizando o MySQL, utilizando uma replicação Master-Slave.

– Master-Slave

Primeiro vamos configurar o master, para isso devemos pegar o nosso log binário:

Vamos abrir o terminal MySQL e digitar:

SHOW GLOBAL VARIABLES WHERE Variable_name = 'log_bin';

Vamos ter o retorno parecido com esse:

+---------------+-------+
  | Variable_name | Value |
  +---------------+-------+
  | log_bin       | ON    |
  +---------------+-------+

Se não estiver "ON", devemos alterar o arquivo "my.ini" que fica localizado em "C:\ProgramData\MySQL\MySQL Server X.X" ( X.X será a versão do MySQL instalado ).

Adicionem as seguintes linhas no final do arquivo:

server-id=1
log-bin=”C:/ProgramData/MySQL/MySQL Server X.Y/Data/bin-log”

Salve e verifique se o Log esta Online.

 

Agora vamos criar um usuário responsável de copiar os dados do Master.

Ainda no terminal MySQL vamos digitar a seguinte linha:

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%' IDENTIFIED BY '123';

 

Agora vamos configurar nosso servidor Slave:

Vamos abrir o arquivo “my.ini”, localizado em “C:\ProgramData\MySQL\MySQL Server X.X” e alterar o “Server-id” para um número diferente do outro servidor.

Com o Terminal do MySQL aberto, vamos digitar o seguinte comando:

SHOW MASTER STATUS;

Vamos ter um retorno parecido com este:

+----------------+----------+--------------+------------------+
  | File           | Position | Binlog_Do_DB | Binlog_Ignore_DB |
  +----------------+----------+--------------+------------------+
  | bin-log.000001 |      005 |              |                  |
  +----------------+----------+--------------+------------------+

Vamos gravar esses dados, eles server para fazer a sincronização.

Vamos digitar as seguintes linhas no terminal:
CHANGE MASTER TO
         MASTER_HOST='IP do MASTER'      ,
         MASTER_USER='replica'           ,
         MASTER_PASSWORD='123'           ,
         MASTER_LOG_FILE='bin-log.000001',
         MASTER_LOG_POS=005              ;

Lembre-se de alterar os o MASTER_LOG_FILE e MASTER_LOG_POS para os dados salvos no passo anterior.

Com tudo configurado já podemos iniciar a sincronização, para isso basta executar no terminal:

START SLAVE;
SHOW SLAVE STATUS \G
 

Se tudo ocorrer bem vamos ter o retorno de um tela com todas as informações da replicação.

Os diferentes tipos de conexões SSD

Hoje em dia a melhor opção de Armazenamento são os SSDs, facilmente substituem os HDs, existe uma diferença muito grande de desempenho em carregamento de arquivos e até na inicialização do Sistema. Mas existem diferentes tipos de SSDs, cada um com uma vantagem. Vamos conhecer um pouco ?

O primeiro e o mais comum é o SSD com conexão Sata, ele se torna o mais popular por necessitar apenas da conexão Sata, conexão está que está disponível em praticamente todas as placas mães atuais no mercado. O preço é um também é um grande diferencial, mas de todos este é o que possui uma menor taxa de transferência, podendo chegar a 600 MB/s.

Agora vamos falar do SSD com conexão PCIe, esses sim são verdadeiros monstros para quem está procurando uma alta performance e desempenho de transferências, SSDs com está conexão podem chegar até 10 Gigabits/s de transferência. Mas a grande questão é o preço, toda essa potência pode chegar a custar 20x o valor do SSD por conexão Sata e por isso este é mais recomendado para empresas ou especialistas.

Ainda existe os SSDs mSATA, que são SSDs muito compactos comparado as outras versões e isso se da porque eles servem para dispositivos mais compactos, como notebooks e ultrabooks. Mas não se engane pelo tamanho, este pequeno SSD chega a incríveis 600 MB/s de transferência.

É notada uma grande diferença, principalmente quando partimos para testes em jogos, então vale muito a pena migrar para um SSD.

Replicação de um Banco de Dados

A Replicação de um Banco de Dados é muito importante para todo tipo de empresa. Mas o que é uma replicação? Como o nome já diz é uma réplica, uma réplica de um Banco de Dados para outro servidor, fazendo assim com que se tenha mais segurança com os seus arquivos e diminuindo as chances de um downtime no seu site.

Existem dois tipos de replicação, Master-Master e Master-Slave. As diferenças entre elas são muito grandes e a escolha vai depender muito da necessidade de funções para sua empresa.

 

Vamos entender como funciona cada um deles:

A Replicação Master-Slave é mais aconselhável para ser usada, pois como o Slave serve apenas para leitura, somente irá receber as atualizações do Master. Isso faz com que ele se torne melhor para sites ou sistemas de consultas.

 

Já o Master-Master não é muito aconselhável, ele faz com que os servidores sejam tanto Master quanto Slave, ou seja, vamos receber atualizações dos dois servidores.

Digamos que eu apague uma determinada tabela no Servidor 1, a mesma tabela será apagada Servidor 2. O mesmo acontece se eu apagar a tabela no Servidor2, se eu apago uma tabela no Servidor 2, a mesma será apagada no Servidor 1, pois o Servidor 2 não funciona apenas com o recebimento de dados.

 

Em outra oportunidade vamos explicar como instalar os dois tipos de replicação, aprofundando mais sobre a diferença.

VPS x Cloud – Qual a melhor opção para sua empresa?

Ainda existe uma grade dúvida sobre a diferença entre eles. Muitas vezes são confundidos, mas apesar de existirem semelhanças, são tipos diferentes. Cada um com vantagens que tornam únicos para determinada função.

Vamos começar com o VPS ou Virtual Private Server. Nada mais é do que um servidor dedicado dividido em várias partes, cada parte atua como um servidor individual, esses servidores vão trabalhar como uma única máquina. Vale lembrar que por ser um servidor individual existem alguns riscos, se ocorrer algum problema com um Hardware do dedicado provavelmente você vai passar um tempo com sua aplicação off-line até que o mesmo seja resolvido.

Já o Cloud Server é algo melhor para empresas que trabalham com serviços Online, como o nome já diz “Servidor em Nuvem”. Também são vários dedicados que são divididos entre si, parecido com o VPS. A grande questão é que esses dedicados vão compartilhar recursos, que ao contrário do VPS se existir algum problema com o Hardware a chance de sua aplicação ficar off-line é bastante baixa, já que uma outra máquina vai assumir a carga até que o problema seja reparado.  Um grande benefício do Cloud é que a qualquer momento você pode aumentar os recursos, visando na nuvem não existe limitação de recursos como na máquina física.

Existem outros fatores que determinam qual é melhor para sua empresa, no caso o VPS oferece um ótimo preço, mas um grande risco de downtime e isso não seria legal podendo causar prejuízo a empresa.
Para empresas que utilizam muitos recursos e precisam realizar aquele upgrade com frequência, o mais recomendado é o Cloud Server. O preço é um pouco mais alto, mas os riscos de downtime são mínimos e isso pode fazer diferença em serviços que precisão trabalhar 24 horas.

Instalando MySQL e PHPMyAdmin

Hoje vamos mostrar como instalar o MySQL e o PHPMyAdmin, é uma instalação simples e são ferramentas muito úteis para quem precisa de um bom gerenciamento de Banco de Dados. Vamos lá?

Vamos instalar o MySQL, o Apache e o PHP (Caso já tenha é bom verificar se os estão atualizados):
$ sudo apt-get install apache2 php5 libapache2-mod-php5 mysql-server

Na instalação do MySQL irá solicitar uma senha para o SGDB, escolha uma senha segura e é só prosseguir.

Pronto, note que se acessar o IP do servidor onde foi instalado o Apache já irá ter retorno.

Agora vamos a instalação do PHPMyAdmin:
$ sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin

Na instalação do PHPMyAdmin, vai ser solicitado qual servidor web nós estamos utilizando, no estamos utilizando o Apache, basta selecionar e prosseguir. Vai ser solicitado a senha que definimos e depois uma senha para acesso ao PHPMyAdmin.

Vamos copiar a pasta do PHPMyAdmin para o diretório onde vai ficar hospedado todos os seus sites:
$ sudo cp -R /usr/share/phpmyadmin /var/www

Não é necessário, mas eu sempre gosto de reiniciar o Apache depois de fazer a instalação:
$ sudo /etc/init.d/apache2 restart

Pronto, para ter acesso:
http://seuip/phpmyadmin/

Lembrando que as credenciais de acesso do PHPMyAdmin são:
Usuário: root
Senha: ( A senha que você definiu na instalação )

Criando RAID a partir do compartilhamento de rede

Hoje vamos explicar como usar compartilhamentos SMB remotos, a fim de construir um dispositivo RAID. A ideia é simples, usamos todos os recursos de armazenamento em nossa LAN, para construir um compartilhamento central NFS/SMB ( pode ser usado para nuvens privadas como CloudStack ). Testamos com o Debian 6 x86_64, mas você vai encontrar todos os comandos semelhantes em todas as distribuições Linux.

Lembrando que está configuração é experimental e ainda não deve ser usada.

1. Criamos um arquivo em cada dispositivo, executamos em todos os nodes, altere [X]  para o número do node:

$ dd if=/dev/zero of=/myshare/node[X].img bs=1M count=1024

2.  Agora vamos trabalhar com o servidor central:

  • Criamos o diretório para armazenar todas as montagens SMB:

$ mkdir -p /nodeshares/node{1,2,3}

  • Montamos cada dispositivo, observe que a senha é definida pelo comando smbpasswd:

$ mount -t cifs -o username=myname,password=1 //192.168.100.11/myshare /nodeshares/node1

$ mount -t cifs -o username=myname,password=1 //192.168.100.12/myshare /nodeshares/node2

$ mount -t cifs -o username=myname,password=1 //192.168.100.13/myshare /nodeshares/node3

3. Agora vamos para parte divertida, criaremos um loop a partir dos arquivos que criamos na etapa 2, note que os arquivos realmente estão em um host remoto:

$ losetup -v /dev/loop1 /nodeshares/node1/node1.img
$ losetup -v /dev/loop2 /nodeshares/node2/node2.img
$ losetup -v /dev/loop3 /nodeshares/node3/node3.img

4. Criamos o RAID de todos os dispositivos compartilhados:

Criamos o dispositivo RAID nível 5 utilizando os loops, lembrando é a ordem dos dispositivos que importa:

$ mdadm –create /dev/md0 –level=5 –raid-disks=3 /dev/loop1 /dev/loop2 /dev/loop3

Vamos ver o processo de criação a partir do mdstat:

$ cat /proc/mdstat

5. Criamos uma partição em md1, montamos e exportamos a partição em NFS ou SMB de volta para rede:

  • Inicialização:

A fim de manter o RAID uma vez que iniciamos o servidor mestre, teremos que dizer ao kernel para procurar qualquer dispositivo MD e em seguida atualizar para mdadm. Vamos editar o arquivo /etc/mdadm/mdadm.conf e adicionar os dispositivos de loop adicionando está linha:

DEVICE /dev/loop*

Em seguida, executamos este comando para adicionar o novo RAID:

$ mdadm –detail –scan >> /etc/mdadm/mdadm.conf

  • O que acontece quando o node é reiniciado ou desligado:

O mdadm vai ver o dispositivo de loop como defeituoso e vai marcar como uma falha, podemos ver neste exemplo:

$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 loop3[3](F) loop1[0] loop2[1]
1047552 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]

  • Dispositivos não utilizados:

Para reparar precisamos remover o dispositivo com defeito:

$ mdadm –manage /dev/md0 –remove /dev/loop3
mdadm: hot removed /dev/loop3 from /dev/md1

Depois de remontar o node, podemos adicionar o dispositivo de volta para a matriz:

$ mdadm –manage /dev/md0 –add /dev/loop3
mdadm: added /dev/loop3

 

Instalando o Docker

Já explicamos um pouco sobre o Docker em nossos posts, hoje vamos aprofundar um pouco mais mostrando passo a passo de como instalar o Docker sem erros.

Vamos lá?

Nesse exemplo estamos utilizando o Ubuntu 14.04 (LTS), mas pode ser realizado com outras versões. Vamos ter algumas alterações em outras versões, vamos mostrar cada uma ao longo do tutorial.

Primeiramente vamos precisar de acesso root, ou basta utilizar o comando “sudo” antes de cada comando para ter privilégios root.

Vamos atualizar as informações do pacote:

$ sudo apt-get update

Agora vamos garantir que os certificados e o pacote apt-transport-https estejam funcionando corretamente:

$ sudo apt-get install apt-transport-https ca-certificates

Feito isso vamos adicionar uma nova chave GPG:

$ sudo apt-key adv –keyserver hkp://p80.pool.sks-keyservers.net:80 –recv-keys 58118E89F3A912897C070ADBF76221572C52609D

Vamos até o diretório “/etc/apt/sources.list.d” e verificamos se existe um arquivo chamado “docker.list”. Se não existir, basta criar o arquivo.

Devemos editar esse arquivo, vou utilizar um editor simples e nativo do Ubuntu, o nano.

$ nano docker.list

Entrando no editor vamos apagar todas as linhas existentes no arquivo.

Agora entra a parte da versão do Ubuntu que você está utilizando, vou mostrar com a versão Trusty 14.04 que é a que estou utilizando e em seguida mostro como fica em outras versões. Vamos adicionar a seguinte linha:

deb https://apt.dockerproject.org/repo ubuntu-trusty main

Lembrando que essa linha é para a versão 14.04 do Ubuntu, para outras versões basta seguir essa lista:

Ubuntu Precise 12.04 (LTS):

deb https://apt.dockerproject.org/repo ubuntu-precise main

Ubuntu Wily 15.10:

deb https://apt.dockerproject.org/repo ubuntu-wily main

Ubuntu Xenial 16.04 (LTS):

deb https://apt.dockerproject.org/repo ubuntu-xenial main

Feito isso vamos salvar o arquivo, se estiver utilizando o nano basta apertar CTRL+X, digitar Y e da um Enter.

Vamos retirar o repositório lxc-docker caso exista, o Ubuntu vem por padrão com este repositório, mas não vai ser ele que iremos utilizar.

$ sudo apt-get purge lxc-docker

Agora vamos ter que garantir que o APT está utilizando o repositório correto:

$ apt-cache policy docker-engine

Feito isso vamos instalar os pacotes recomendados e já podemos instalar o docker:

$ sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual

Vamos novamente atualizar:

$ sudo apt-get update

Espere acabar de instalar os pacotes e finalmente o docker poderá ser instalado sem nenhum erro, basta executar o comando:

$ sudo apt-get install docker-engine

Vamos verificar se o serviço já está rodando:

$ sudo service docker start

Vai retornar a seguinte mensagem: “start: Job is already running: docker”, isso significa que o docker está em execução.

Docker instalado com sucesso.

Nos próximos tutoriais vamos mostrar como executar os container e nos familiarizar mais com o Docker.

 

Abraço.

 

 

 

Docker

Docker nada mais é do que uma plataforma OpenSource usada para adicionar e simplificar o uso de containers, funciona quase como uma virtualização, mas graças a sua integração ao host, trabalha de um modo muito mais rápido e eficaz. Um dos segredos do Docker é o isolamento do Sistema Operacional Base e de todas as suas dependências como libs e servidores.

O Docker também oferece várias ferramentas de grandes benefícios para o gerenciamento de máquinas e sistemas, podendo ser virtual ou física. Um exemplo é o “Aufs”, um serviço de arquivos que implementa uma união para montar sistemas de arquivos Linux.

O Docker utiliza como base o LXC ( Linux Container ), que tem a função de rodar os sistemas de forma isolados e em um único host de controle. Cada ambiente virtual vai ter sua própria CPU, memória, rede, espaço e vários outros recursos independentes. Todo esse isolamento é graças aos Grupos de controles ( cgroups ) um dos recursos do Kernel.

Vale muito a pena pensar em migrar para o uso do Docker, além de sua velocidade que é superior a de uma virtualização, suas ferramentas vão fazer uma economia com vários recursos de forma simples e eficaz.

Instalando o painel VestaCP

Neste tutorial iremos ensinar como instalar e configurar o painel VestaCP. O painel VestaCP possuí muitos recursos que permitem que você hospede e gerencie seus sites com facilidade em seu Cloud Server. Sendo funcional em RedHat, CentOS e Ubuntu, mas no tutorial de hoje iremos mostrar-lhe como instalar e configura-lo no CentOS.  Então vamos para o tutorial:

Primeiro passo – Faça o login em seu servidor, como root.

Segundo passo – Utilize o comando “curl” para fazer o download do script de instalação do painel.

# curl -O http://vestacp.com/pub/vst-install.sh

Terceiro passo – Assim que completar o download, execute os seguintes comandos.

# chmod +x vst-install.sh

# bash vst-install.sh

Quarto passo – O instalador irá pedir para confirmar a desativação do SELinux e do Iptables, aperte Y e confirme. O instalador também irá pedir um endereço de email válido, onde enviarão as informações de acesso, digite o endereço de email e confirme.

Quinto passo – Após a finalização da instalação, aparecerá os dados de acesso do painel VestaCP.

Também é possível visualizar os mesmos dados em sua Caixa de Entrada.

Sexto passo – Para acessar ao VestaCP, basta abrir o seu navegador de preferência e inserir o URL recebido, o login e a senha.

E pronto, seu painel VestaCP foi instalado com sucesso! Agora é só adicionar os seus sites!

Sair da versão mobile