OpenVZ Criação de containers e instalação do sistema operativo Num artigo anterior, vimos como instalar o OpenVZ. Neste artigo iremos ver como obter os ficheiros com as várias versões de sistemas operativos (SO) que podemos instalar (templates) e seguidamente veremos como proceder à criação de containers (VPS) onde podemos fazer a instalação do sistema operativo escolhido. Neste artigo iremos tratar dos seguintes tópicos: O que são os templates (ficheiros com os sistemas operativos) Como fazer o download dos templates Como escolher o identificador de um container Como criar um container Como atribuir o nome, o endereço IP e configurar o serviço DNS de um container Os templates são ficheiros comprimidos de distribuições Linux que podemos rapidamente instalar num container, no nosso servidor. Podem ser instaladas várias versões de Linux, em tantos outros containers, não sendo obrigatório que a versão instalada tenha de ser a mesma do servidor. No entanto, não podem ser instalados outros sistemas operativos que não sejam Linux, dado que o OpenVZ funciona com base nas funcionalidades disponibilizadas pelo servidor Fazer o download dos templates Existem duas formas de fazer o download dos templates. Através da ferramenta vztmpl-dl ou de uma forma manual. Download através de vztmpl-dl O OpenVZ contém uma ferramenta chamada vztmpl-dl que permite fazer com facilidade o download dos templates. Esta ferramenta tem a possibilidade de funcionar com vários parâmetros, sendo os principais aqueles que se apresentam seguidamente: vztmpl-dl --list-remote Esta opção permite obter uma lista de todos os templates que podem ser descarregados. vztmpl-dl [ficheiro template]
Esta opção permite fazer o download de um template específico que tenha sido listado pelo comando anterior. No nosos exemplo iremos fazer o download do template centos-6-x86, com o comando vztmpl-dl centos-6-x86 Download manual Os principais templates são criados e mantidos pela OpenVZ no endereço: http://download.openvz.org/template/precreated Existem também templates que são criados e mantidos pela comunidade OpenVZ e que estão no endereço: http://download.openvz.org/template/precreated/contrib/. A pasta por defeito onde deve guardar os templates é /vz/template/cache No caso do nosso exemplo, iremos fazer: cd /vz/template/cache wget "http://download.openvz.org/template/precreated/centos-6-x86.tar.gz" Identificador do container Após termos feito o download do template, o que iremos fazer em seguida é criar o container, e para isso vamos necessitar de um identificador que deve ser único, de modo a permitir identificar facilmente o container. Este identificador é o container ID (CTID), que é um valor numérico associado ao container. Para escolher o identificador, devemos ter em atenção o seguinte: Cada container deve ter um identificador único. É impossível atribuir o mesmo identificador a diferentes containers O identificador com o número zero é reservado para o servidor e não pode ser associado a nenhum container. A melhor solução é começar no identificador número 101, já que os primeiros 100 identificadores são utilizados no OpenVZ, em actividade internas Assim, iremos utilizar no nosso exemplo o identificador 101 Escolher o template a utilizar Depois de ter escolhido o identificador a utilizar, o passo seguinte é escolher qual o template a instalar no container. Como referimos anteriormente iremos utilizar o template centos-6-x86 que
deverá ser decarregado através do comando: vztmpl-dl centos-6-x86 e que deverá estar na pasta /vz/template/cache Criação do container Depois de ter escolhido o template que irá utilizar, o passo seguinte é criar o container propriamente dito. Para tal deve utilizar o comando vzctl create seguido dos vários parâmetros necessários, que são: o identificados do container o temple a utilizar o ficheiro de configuração básico do container (do qual falaremos adiante) Para criar o container execute o comando: vzctl create 101 --ostemplate centos-6-x86 --config basic Para ver uma lista dos containers existentes pode utilizar o comando vzlist -a O comando anterior permite ver uma lista de todos os containers, estejam a ser executados ou parados. Configuração do container Os passos finais que devemos executar dizem respeito à configuração do container. Em primeiro lugar devemos configurar o container para arrancar logo que o servidor arrancar. Em seguida, devemos configurar a rede em termos de nome do hostname. endereço IP e informação do DNS. Para além disso é também necessário atribuir uma password de root para acesso ao container. Para alterar estas configurações iremos utilizar o comando vzctl set. Este comando permite acrescentar, eliminar ou modificar as várias definições do ficheiro de configuração do container, que está situado em /etc/vz/conf, com o nome 101.conf, no caso do nosso container, com o identificador 101. Configurar o container para arrancar com o servidor
Para que o container arranque assim que o servidor arrancar, ou seja on boot, devemos utilizar o seguinte comando: vzctl set 101 --onboot yes --save Definir o hostname do container Para definir o hostname, nome do container na rede, devemos utilizar o seguinte comando: vzctl set 101 --hostname vm101.areasuporte.com --save Definir o endereço IP do container Para definir o endereço IP do container na rede, devemos utilizar o seguinte comando: vzctl set 101 --ipadd 10.0.2.20 --save Definir o servidor DNS do container Para definir o servidor DNS do container, devemos utilizar o seguinte comando: vzctl set 101 --nameserver 8.8.8.8 --save Definir a password de root Para definir a password de root, devemos utilizar o seguinte comando: vzctl set 101 --userpasswd root:palleri
VirtualBox Instalação do CentOS 6.8 Neste artigo, iremos ver como instalar o CentOS 6.8 32 bits, num container do VirtualBox, de modo a criarmos um ambiente de desenvolvimento e teste com o sistema operativo Linux. Para tal vamos aproveitar a instalação anterior do Portable VirtualBox e vamos criar um container, utilizando a versão minimal do CentOS 6.8 32 bits. Se quisermos instalar a versão de 64 bits, o processo é idêntico, bastando fazer o download do CentOS respectivo. Para tal, vamos seguir os seguintes passos: Damos um clique no menu New Na janela seguinte iremos dar o nome à máquina virtual (CentOS_6.8_32bits), qual o tipo de sistema operativo (Linux) e qual a versão. Como esta versão do VirtualBox não tem a opção CentOS disponível, escolhemos a Red Hat
Nesta janela iremos escolher a memória a atribuir à máquina virtual. neste caso, escolheremos 512 MB, embora o valor possa ser ajustado para um valor superior, conforme as necessidades Na janela seguinte iremos escolher entre as várias opções de criação/utilização de um disco rígido. A
opção mais frequente e que é aquela que iremos utilizar é a da criação de um novo disco com o tamanho standard de 8 GB Vamos dar um clique em Create e em seguida vamos escolher o tipo do ficheiro que simula o disco rígido. No nosso caso, iremos escolher o formato standard do VirtualBox.
Em seguida, devemos escolher que queremos que o espaço em disco seja alocado dinamicamente ou de uma só vez. Preferencialmente devemos alocar o espaço dinamicamente, para não ficarmos com espaço desperdiçado. O sistema irá alocar espaço à medida das necessidades. Antes de criar o espaço em disco, o sistema ainda nos permite alterar o tamanho do disco rígido. Para já vamos manter o valor de 8 GB e vamos dar um clique em Create.
A partir deste ponto, o hardware está pronto para receber o sistema operativo
Seguidamente, iremos indicar qual o ficheiro que pretendemos carregar com o sistema operativo. Este ficheiro será um ficheiro com a extensão.iso, cujo carregamento será simulado como se tivesse a ser carregado da drive de DVD. Para isso vamos dar um clique em Settings
Vamos escolher o ficheiro.iso a carregar. Este ficheiro deverá ser descarregado de um dos sites mirror do CentOS (www.centos.org): No nosso caso, iremos instalar a versão minimal, que contém todo o software necessário para o sistema funcionar. Depois, à medida das necessidades, podemos instalar os pacotes necessários.
. Em seguida, vamos dar um clique em Start e iniciar a instalação do Linux
Passamos por cima da verificação do ficheiro, dando um clique em Skip
Escolhemos o idioma de instalação
Escolhemos o layout do teclado que estamos a utilizar. No caso do português é o pt-latin1
Escrevemos a informação no disco, dando um clique em Re-Initialize
Escolhemos o fuso horário (Europe/Lisbon)
Escolhemos uma password de acesso do administrador do sistema (utilizador root)
Começamos a instalação através do botão Write changes to disk
Deixamos o sistema instalar todos os pacotes necessários, durante alguns minutos.
Após a instalação devemos fazer Reboot, para reiniciar o servidor.
Após o Reboot, podemos entrar no sistema com o utilizador root e a password que escolhemos
Devemos verificar se a placa de rede virtual está activa. Se aparece só o interface lo (local Loopback), teremos de alterar o ficheiro que se indica em baixo.
Para tal editamos o ficheiro de configuração com o comando: vi /etc/sysconfig/network-scripts/ifcfg-eth0 e alteramos ONBOOT para: ONBOOT=yes
Fazemos Reboot e ao arrancar o servidor já deve ter a placa de rede (eth0) activa.
A partir daqui o sistema está pronto para servidor plataforma de desenvolvimento e testes. VirtualBox- Plataforma de desenvolvimento Para o desenvolvimento e implementação de todas as soluções baseadas em Linux, torna-se importante criar uma plataforma que permita esses desenvolvimentos, sem a necessidade de utilizar uma máquina dedicada. Tendo em atenção, que nos dias de hoje, grande percentagem dos utilizadores tem PC s com Windows instalado, torna-se muito confortável a possibilidade de poder utilizar um PC, de uma forma dual, isto é, que permita a utilização normal do dia a dia, a par com uma plataforma de desenvolvimento, de preferência portable e que possa também ser alojada numa pen ou disco externo.
Uma possibilidade muito interessante é a de utilizar uma versão portable do Virtualbox, que não obrigue à instalação no PC. Embora esta versão portable não seja a mais recente e não tenha todas as potencialidades da versão de instalação, principalmente no que diz respeito ao funcionamento em rede, ela permite a instalação e funcionamento do servidor Linux de uma forma totalmente aceitável. A versão portable do VirtualBox Starter pode ser desacarregada aqui. Esta versão vai permitir a descarga do VirtualBox propriamente dito e a sua instalação como portable, podendo ser feita em qualquer pasta do PC, numa pen ou num disco externo. Para tal, vamos dar um click no ficheiro executável, para aparecer a seguinte janela de instalação, onde se podem escolher a versão de 32 bits, 64 bits ou ambas e, em seguida damos um click em Download installation files of VirtualBox, Após a instalação, podem ser criadas máquina virtuais com qualquer sistema operativo (desde que exista memória e espaço em disco suficientes), que funcionam como qualquer outra aplicação do Windows, podendo este continuar a funcionar normalmente.
Num próximo artigo, veremos como instalar uma versão simplificada do CentOS, como máquina virtual do VirtualBox, que constitua uma plataforma de desenvolvimento e teste para os vários artigos que iremos escrever. OpenVZ Instalação no CentOS Neste artigo iremos ver o que é o OpenVZ, quais os requisitos necessários e como instalá-lo num servidor com o CentOS, utilizando para isso o vzkernel. Posteriormente, veremos com instalar alguns programas adicionais como o vzctl para criar, remover e eliminar os chamados containers (áreas reservadas que funcionam como máquinas virtuais independentes), e o vzquota, para gerir as quotas atribuídas.
O que é o OpenVZ O OpenVZ é um software de virtualização que permite criar vários containers (também chamados Virtual Private Servers VPS), isolados entre si, que possuem uma versão modificada do núcleo do sistema operativo, que actuam com elevados níveis de segurança e que possuem as seguintes propriedades: Conta de acesso root Criação de utilizadores Sistema de ficheiros com quotas Processos Limites de utilização da memória Limites de utilização do processador Configuração de rede Cada um dos containers partilha os recursos de hardware de um mesmo servidor físico, a que se dá o nome de node. Os sistemas operativos utilizados nos containers, não podem ser misturados (Windows e Linux), dado que devem ser idênticos ao sistema operativo do servidor físico. Neste caso, como iremos utilizar o Linux para o servidor, os containers devem ter todos o Linux, embora possam ter várias distribuições do Linux (CentOS, Ubuntu, etc ). Requisitos do servidor Neste artigo iremos utilizar o CentOS 6.7 e as especificações mínimas de hardware, que são recomendadas, estão na lista que se apresenta em seguida. Tenha em atenção que estes são os requisitos mínimos, dado que estes dependem do número de containers que irão ser criados. Requisitos de Hardware Computador compatível com IBM PC Processador Intel Core i7, Xeon E7, ou AMD Opteron Mínimo de 128 MB of RAM; 2 GB ou mais é recomendado Um disco rígido com pelo menos 80 GB de espaço Uma placa de rede 10/100/1000 Requisitos de rede Rede local para o servidor Ligação à Internet Um endereço IP válido para o servidor Endereços IP válidos para os containers Instalação do OpenVZ Para instalar o OpenVZ deve-se utilizar um sistema de partições de acordo com o que mostra: Partição / Tamanho 4-12 GB
Partição Swap /vz Tamanho Deve ser o dobro da memória RAM Espaço restante no disco rígido Para iniciar a instalação do OpenVZ, deve-se acrescentar o repo do mesmo à pasta /etc/yum/repos.d, através do comando: wget -P /etc/yum.repos.d/ http://ftp.openvz.org/openvz.repo No exemplo anterior, utilizamos o comando wget para fazer o download do openvz.repo a partir de ftp.openvz.org e instalá-lo no servidor. Em seguida, vamos importar a chave GPG do OpenVZ que é utilizada para verificar a assinatura dos pacotes a instalar. Para isso vamos utilizar o comando: rpm --import http://ftp.openvz.org/rpm-gpg-key-openvz No exemplo anterior, utilizámos o comando rpm para importar a chave GPG para o openvz.repo para validar o pacote como verdadeiro. O vzkernel é o núcleo do OpenVZ e trata-se de uma versão modificada do núcleo do Linux que permite a criação de containers no servidor. Para instalar o vzkernel vamos utilizar o comando. yum install vzkernel No exemplo anterior, utilizámos o comando yum com a opção install, para instalar o vzkernel no servidor. Para que o OpenVZ funcione correctamente, devem ser ajustados alguns parâmetros em /etc/sysctl.conf, de acordo com o se mostra em baixo: # On Hardware Node we generally need # packet forwarding enabled and proxy arp disabled
net.ipv4.ip_forward = 1 net.ipv6.conf.default.forwarding = 1 net.ipv6.conf.all.forwarding = 1 net.ipv4.conf.default.proxy_arp = 0 # Enables source route verification net.ipv4.conf.all.rp_filter = 1 # Enables the magic-sysrq key kernel.sysrq = 1 # We do not want all our interfaces to send redirects net.ipv4.conf.default.send_redirects = 1 net.ipv4.conf.all.send_redirects = 0 Também o SELinux deve ser desactivado com o comando: echo "SELINUX=disabled" > /etc/sysconfig/selinux Seguidamente. iremos instalar os pacotes adicionais que são necessários para o vzkernel funcionar. Esses pacotes são: 1. vzctl: Esta é a ferramenta do OpenVZ que permite o interface entre o utilizador e os containers. Com esta ferramenta é possível iniciar, parar, suspender, eliminar e criar containers. Iremos ver em detalhe como utilizar esta ferramenta, num próximo artigo. 2. vzquota: Esta é a ferramenta do OpenVZ que permite configurar as quotas no disco rígido do servidor. Com esta ferramenta é possível ligar, desligar, definir limites e mostrar estatísticas das quotas. Iremos ver em detalhe como utilizar esta ferramenta, num próximo artigo. Para instalar estas ferramentas, iremos utilizar o seguinte comando: yum install vzctl vzquota ploop No exemplo anterior, utilizámos o comando yum para instalar no servidor, os pacotes vzctl e vzquota e também o ploop, necessário ao funcionamento dos outros dois. O último comando a executar deverá ser o comando que vai reiniciar o servidor, de modo a que os novos pacotes, que foram instalados, possam ser executados. Esse comando é: shutdown -r now Após a execução deste comando o servidor está pronto para utilizar o OpenVZ.