>_Xen 4 CentOS 6.5 – iSCSI – Lvm-Cluster – Ipmilan – Live-Migration

Neste tutorial vou abordar a configuração do Xen 4 no CentOS 6.5 via iSCSI com sistema de arquivos em LVM.

No ambiente abaixo, irei instalar em 2 servidores o Sistema Operacional CentOS 6.5 com Xen 4 mapeando uma unidade do Storage via iSCSI.

TARGET do Storage liberada para o mapeamento:

iqn.2014-02.com.tgl.storage:armazenamento.raid5.450g

cluster_xen

Configuração dos Servidores Xen1 e Xen2

Passo 1 – Instalação do CentOS 6.5 em ambos servidores.

Passo 2 – Configurando o arquivo /etc/hosts em ambos servidores.

[root@xen ~]# vim /etc/hosts
192.168.1.65    xen1
192.168.1.68    xen2

Passo 2 – Download do repositório do Xen 4 em ambos servidores.

[root@xen yum.repos.d]# wget http://dev.centos.org/centos/6/xen-c6-RC1/xen-c6-RC1.repo -P /etc/yum.repos.d/

Passo 3 – Update e instalação dos pacotes em ambos servidores.

[root@xen yum.repos.d]# yum update -y
[root@xen yum.repos.d]# yum install xen libvirt virt-manager virt-viewer openssh-askpass kernel-xen xen-libs libcanberra-gtk2 xorg-x11-xauth iscsi-initiator-utils lvm2-cluster OpenIPMI OpenIPMI-tools -y

Passo 4 – Conectando a Lun do storage em ambos servidores.

[root@xen1 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.1.42
192.168.1.42:3260,1 iqn.2014-02.com.tgl.storage:armazenamento.raid5.450g
[root@xen1 ~]# chkconfig iscsi on
[root@xen1 ~]# chkconfig iscsid on
[root@xen1 ~]# iscsiadm -m node -T iqn.2014-02.com.tgl.storage:armazenamento.raid5.450g -p 192.168.1.42 -l

[root@xen1 ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2014-02.com.tgl.storage:armazenamento.raid5.450g
[root@xen2 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.1.42
192.168.1.42:3260,1 iqn.2014-02.com.tgl.storage:armazenamento.raid5.450g
[root@xen2 ~]# chkconfig iscsi on
[root@xen2 ~]# chkconfig iscsid on
[root@xen2 ~]# iscsiadm -m node -T iqn.2014-02.com.tgl.storage:armazenamento.raid5.450g -p 192.168.1.42 -l

[root@xen2 ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2014-02.com.tgl.storage:armazenamento.raid5.450g

Configuração do arquivo cluster.conf

Passo 5 – Em ambos servidores execute os comandos abaixo.

[root@xen ~]# passwd ricci
[root@xen ~]# service ricci start
[root@xen ~]# chkconfig ricci on
[root@xen ~]# chkconfig cman on
[root@xen ~]# chkconfig clvmd on

Passo 6 – Somente no servidor Xen1 instale o pacote luci. Este pacote tem como objetivo criar o arquivo cluster.conf, sem este arquivo não é possível iniciar o Lvm-Cluster.

OBS: É possível também configurar o arquivo cluster.conf pela linha de comando, mas este não é o objetivo deste tutorial.

[root@xen1 ~]# yum install luci -y
[root@xen1 ~]# chkconfig luci on
[root@xen1 ~]# /etc/init.d/luci start
Adding following auto-detected host IDs (IP addresses/domain names), corresponding to `xen1' address, to the configuration of self-managed certificate `/var/lib/luci/etc/cacert.config' (you can change them by editing `/var/lib/luci/etc/cacert.config', removing the generated certificate `/var/lib/luci/certs/host.pem' and restarting luci):
	(none suitable found, you can still do it manually as mentioned above)

Generating a 2048 bit RSA private key
writing new private key to '/var/lib/luci/certs/host.pem'
Start luci...                                              [  OK  ]
Point your web browser to https://xen1:8084 (or equivalent) to access luci

Acessando o luci pela interface Web.

User: root
Pass: senha do root

lvm-cluster-1 lvm-cluster-2 lvm-cluster-3 lvm-cluster-4 lvm-cluster-5 lvm-cluster-6 lvm-cluster-7 lvm-cluster-8

lvm-cluster-9 lvm-cluster-10 lvm-cluster-11 lvm-cluster-12 lvm-cluster-13 lvm-cluster-14 lvm-cluster-15 lvm-cluster-16

Passo 7 – Em ambos servidores configure o grub.conf.

OBS: As alterações estão em negrito. Preste muita atenção na alteração deste arquivo, caso contrário o servidor não irá passar da tela do Grub.

De

[root@xen ~]# vim /etc/grub.conf
title CentOS (3.10.20-11.el6.centos.alt.x86_64)
root (hd0,0)
kernel /vmlinuz-3.10.20-11.el6.centos.alt.x86_64 ro root=UUID=10f1799b-f250-467d-bbfb-8ca0a5dee4b4 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=br-abnt2 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_LVM rd_NO_DM LANG=en_US.UTF-8 rhgb quiet
initrd /initramfs-3.10.20-11.el6.centos.alt.x86_64.img
title CentOS (2.6.32-431.el6.x86_64)

OBS: Para definir a quantidade de memória atribuído ao seu sistema hospedeiro basta alterar o arquivo grub.conf adicionando os valores conforme exemplo abaixo:
dom0_mem=1024M,max:1024M o valor mínimo inicial é de 512M.

Para

title CentOS Xen (3.10.20-11.el6.centos.alt.x86_64)
root (hd0,0)
kernel /xen.gz dom0_mem=1024M,max:1024M
module /vmlinuz-3.10.20-11.el6.centos.alt.x86_64 ro root=UUID=10f1799b-f250-467d-bbfb-8ca0a5dee4b4 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=br-abnt2 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_LVM rd_NO_DM LANG=en_US.UTF-8 rhgb quiet
module /initramfs-3.10.20-11.el6.centos.alt.x86_64.img

Passo 8 – Configuração das Interfaces de rede em modo Bridge em ambos servidores.

Xen1

[root@xen ~]# cd /etc/sysconfig/network-scripts/
[root@xen network-scripts]# vim ifcfg-em1
DEVICE="em1"
HWADDR="78:2B:CB:56:57:9A"
IPV6INIT="no"
MTU="1500"
NM_CONTROLLED="no"
ONBOOT="yes"
BRIDGE="br0"
[root@xen network-scripts]# vim ifcfg-br0
DEVICE="br0"
TYPE="Bridge"
BOOTPROTO="static"
ONBOOT="yes"
IPADDR="192.168.1.65"
NETMASK="255.255.252.0"
GATEWAY="192.168.1.1"
IPV6INIT="NO"
NAME="Bridge em1"
NM_CONTROLLED="no"
DELAY="0"
USERCTL="no"

Xen2

[root@xen ~]# cd /etc/sysconfig/network-scripts/
[root@xen network-scripts]# vim ifcfg-em1
DEVICE="em1"
HWADDR="78:2B:CB:56:57:1A"
IPV6INIT="no"
MTU="1500"
NM_CONTROLLED="no"
ONBOOT="yes"
BRIDGE="br0"
[root@xen network-scripts]# vim ifcfg-br0
DEVICE="br0"
TYPE="Bridge"
BOOTPROTO="static"
ONBOOT="yes"
IPADDR="192.168.1.68"
NETMASK="255.255.252.0"
GATEWAY="192.168.1.1"
IPV6INIT="NO"
NAME="Bridge em1"
NM_CONTROLLED="no"
DELAY="0"
USERCTL="no"

Passo 9 – Em ambos servidores realize uma  pequena correção (bug) de diretório. Essa correção tem como objetivo criar o diretório com os scripts necessários para que o virt-manager possa “administrar” as máquinas virtuais.

[root@xen xen]# mkdir -p /usr/lib/xen-default/
[root@xen xen]# ln -s /usr/lib/xen/bin/ /usr/lib/xen-default/
[root@xen xen]# cd /usr/lib/xen-default/
[root@xen xen-default]# ls -ltr
total 0
lrwxrwxrwx 1 root root 17 Fev 7 12:58 bin -> /usr/lib/xen/bin/

Passo 8 – Em ambos servidores configure o arquivo xend-config-sxp.

[root@xen1 xen-default]# cd /etc/xen/
[root@xen1 xen]# cp xend-config.sxp xend-config.sxp.old
[root@xen1 xen]# vim xend-config.sxp
64 #(xend-relocation-server no)
65 (xend-relocation-server yes)

89 #(xend-relocation-port 8002)
90 (xend-relocation-port 8002)

115 #(xend-relocation-address '')
116 (xend-relocation-address '')

126 # For example:
127 # (xend-relocation-hosts-allow '^localhost$ ^.*\\.example\\.org$')
128 #
129 (xend-relocation-hosts-allow '')
130 (xend-relocation-hosts-allow '^localhost$ ^localhost\\.localdomain$')

237 #(vnc-listen '127.0.0.1')
238 (vnc-listen '0.0.0.0')

276 #(keymap 'en-us')
277 (keymap 'pt-br')

Passo 10 – Reinicialização do servidores.

# reboot

Passo 11 – Após a reinicialazação, execute em ambos os servidores o comando xm info.

[root@xen network-scripts]# xm info
host : xen.tgl.com
release : 3.10.20-11.el6.centos.alt.x86_64
version : #1 SMP Sat Nov 23 23:08:56 UTC 2013
machine : x86_64
nr_cpus : 8
nr_nodes : 1
cores_per_socket : 4
threads_per_core : 2
cpu_mhz : 2394
hw_caps : bfebfbff:2c100800:00000000:00003f40:029ee3ff:00000000:00000001:00000000
virt_caps : hvm
total_memory : 16371
free_memory : 15163
free_cpus : 0
xen_major : 4
xen_minor : 2
xen_extra : .3-25.el6
xen_caps : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64
xen_scheduler : credit
xen_pagesize : 4096
platform_params : virt_start=0xffff800000000000
xen_changeset : unavailable
xen_commandline : dom0_mem=1024M,max:1024M loglvl=all guest_loglvl=all com1=115200,8n1 console=com1
cc_compiler : gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-3)
cc_compile_by : mockbuild
cc_compile_domain : centos.org
cc_compile_date : Sat Nov 23 13:55:46 UTC 2013
xend_config_format : 4
Local dos arquivos de domain

LVM
Alguns recursos do LVM.
PV = Phisical Volume: A partição física do disco.
PE = Phisical Extends: Pequeno pedaço de um VG.
VG = Volume Grupo: Responsável por agrupar um ou mais partições/discos, vários PVs, um volume físico.
LV = Logical Volume: Partições lógicas de um VG.

Passo 12 – No servidor Xen1, crie o volume físico com o comando abaixo:

[root@xen1 ~]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created

Passo 13 – No servidor Xen1, crei o volume grupo chamado storage

[root@xen1 ~]# vgcreate -cy storage /dev/sdb
Clustered volume group "storage" successfully created

Passo 14 – No servidor Xen1, crei o volume lógico chamado xen1-vm1

[root@xen1 ~]# lvcreate --name xen1-vm1 --size 60G storage
Logical volume "xen1-vm1" created

Passo 15 – No servidor Xen2, crei o volume lógico chamado xen2-vm1

[root@xen2 ~]# lvcreate --name xen2-vm1 --size 60G storage
Logical volume "xen2-vm1" created
[root@xen2 ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
xen1-vm1 storage -wi-a----- 60,00g
xen2-vm1 storage -wi-a----- 60,00g

Virt-Manager

Neste cenário foi definido duas formas de acessar o virt-manager, são elas:

Através do Desktop GNU/Linux instalando o pacote virt-manager ou pelo SSH com as opções -X -Y e em seguida chamando o virt-manager.

Exemplos:

vandocouto@tgl:~$ ssh -X -Y root@192.168.1.65
root@192.168.1.65's password: 
Last login: Thu Feb 13 09:45:11 2014 from 192.168.1.211
[root@xen1 ~]# virt-manager

Pacote virt-manager

Debian

# apt-get install ssh-askpass virt-manager


CentOS

# yum install openssh-askpass virt-manager

Imagens usando o virt-manager

xen4-1 xen4-2 xen4-3 xen4-4 xen4-5 xen4-6 xen4-7xen4-9 xen4-10 xen4-11 xen4-12 xen4-13 xen4-14 xen4-15 xen4-16 xen4-17 xen4-18

Live-Migration

Passo 16 – Migrando máquinas virtuais em execução.

Obs: No exemplo abaixo, estou migrando a máquina virtual xen1-vm1 que está ativa (live) no servidor Xen2 para o servidor Xen1.

[root@xen2 ~]# xm migrate -l xen1-vm1 -c 192.168.1.65
[root@xen2 ~]# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 1023 12 r----- 4991.8
xen2-vm1 2 1024 1 -b---- 82.7
[root@xen1 ~]# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0  1024    12     r-----   2660.6
xen1-vm1                                     1  1024     1     -b----      0.0
xen2-vm1                                        1024     1                 0.0
[root@xen1 ~]# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0  1024    12     r-----   2661.6
xen1-vm1                                     1  1024     1     -b----      0.1
xen2-vm1                                        1024     1                 0.0
[root@xen1 ~]# xm migrate -l xen1-vm1 -c 192.168.1.68
[root@xen1 ~]# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0  1024    12     r-----   2664.8
xen2-vm1                                        1024     1                 0.0

Virt-manager

 

xen4-19 xen4-20 xen4-21

Feito.
Graças a Deus!
Espero que você também consiga.

>_Xen 4 CentOS 6.5 – iSCSI – Lvm-Cluster – Ipmilan – Live-Migration
Tagged on:     

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: