A instalação do XenServer não suporta RAID. Utilizando um servidor Intel Xeon, realizamos diversas configurações de RAID por hardware e sempre o XenServer alterava essas configurações durante a instalação, deixando a máquina até mesmo sem dar o boot.
Portanto, a única forma de utilizar um servidor virtualizado com XenServer e discos rígidos em RAID é realizando um procedimento de configuração do RAID, depois da instalação do XenServer concluída, utilizando as ferramentas comuns do Linux para gerenciamento de RAID.
Inicialmente, instalamos o XenServer no HD principal (sda) e depois de dar o boot no XenServer normalmente, iniciamos o procedimento de espelhamento do HD secundário:
Começamos replicando a tabela de partições do /dev/sda no /dev/sdb:
sgdisk -R/dev/sdb /dev/sda
sgdisk --typecode=1:fd00 /dev/sdb
sgdisk --typecode=2:fd00 /dev/sdb
Aguardar 5 segundos para dar continuidade ao procedimento, agora criando as partições RAID:
Criar a md0 - root:
yes|mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 missing
Criar a md1 - swap:
yes|mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdb2 missing
Criar a md2 - armazenamento:
yes|mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sdb3 missing
Aguardar mais 5 segundos para dar continuidade ao procedimento:
Criar o root FS:
mkfs.ext3 /dev/md0
Montar o root FS temporariamente em /mnt:
mount /dev/md0 /mnt
Copiar todo o conteúdo do root atual para o root que criamos no volume RAID:
cp -xR --preserve=all / /mnt
Atualizar a FSTAB com o novo dispositivo RAID:
sed -i 's/LABEL=[a-zA-Z\-]*/\/dev\/md0/' /mnt/etc/fstab
Criar uma nova imagem de boot do sistema operacional:
mkdir /mnt/root/initrd-raid && cd /mnt/root/initrd-raid
mkinitrd -v --fstab=/mnt/etc/fstab /mnt/root/initrd-raid/initrd-`uname -r`-raid.img `uname -r`
zcat initrd-`uname -r`-raid.img | cpio -i
sed -i 's/raidautorun \/dev\/md0/raidautorun \/dev\/md0\nraidautorun \/dev\/md1\nraidautorun \/dev\/md2/' init
rm -f initrd-`uname -r`-raid.img
find . -print | cpio -o -Hnewc | gzip -c > /mnt/boot/initrd-`uname -r`-raid.img
rm -f /mnt/boot/initrd-2.6-xen.img
ln -s initrd-`uname -r`-raid.img /mnt/boot/initrd-2.6-xen.img
sed -i 's/LABEL=[a-zA-Z\-]*/\/dev\/md0/' /mnt/boot/extlinux.conf
cat /mnt/usr/share/syslinux/gptmbr.bin > /dev/sdb
cd /mnt && extlinux --raid -i boot/
sgdisk /dev/sda --attributes=1:set:2
sgdisk /dev/sdb --attributes=1:set:2
Desmontar a unidade RAID:
cd && umount /dev/md0
sync
Reinicializar o servidor:
reboot
Altere o SETUP do servidor para realizar o boot a partir do HD secundário (sdb).
Agora vamos replicar a partição do /dev/sdb para /dev/sda:
sgdisk -R/dev/sda /dev/sdb
Vamos adicionar ao volume RAID as partições do HD primário (/dev/sda):
mdadm -a /dev/md0 /dev/sda1
mdadm -a /dev/md1 /dev/sda2
mdadm -a /dev/md2 /dev/sda3 (*)
mdadm --detail --scan > /etc/mdadm.conf
Verifique o uuid do host:
[root@xenserver ~]# xe host-list uuid ( RO) : 802a464e-d8af-4498-a8ac-20ded619ce4e name-label ( RW): xenserver.lsoft.com.br name-description ( RW): Default install of XenServer
Depois crie o volume SR utilizando o mesmo uuid:
xe sr-create content-type=user device-config:device=/dev/md2 host-uuid=[802a464e-d8af-4498-a8ac-20ded619ce4e] name-label="Local Storage" shared=false type=lvm
(*) Importante, caso o comando mdadm -a /dev/md2 /dev/sda3 resultar erro, será preciso realizar o procedimento seguinte:
[root@xenserver ~]# xe sr-list
uuid ( RO) : 4cf3cc3b-b8d4-db4a-1be1-7ff403811af7
name-label ( RW): Local storage
name-description ( RW):
host ( RO): xenserver-01
type ( RO): lvm
content-type ( RO): user
[root@xenserver ~]# xe pbd-list sr-uuid=4cf3cc3b-b8d4-db4a-1be1-7ff403811af7
uuid ( RO) : 15bbb4cf-fe30-2226-8315-ea311f49834d
host-uuid ( RO): 748267e1-ecb7-4657-b655-bc1c1beefa7f
sr-uuid ( RO): 4cf3cc3b-b8d4-db4a-1be1-7ff403811af7
device-config (MRO): device: /dev/disk/by-id/scsi-SATA_VBOX_HARDDISK_VBfa2921f3-020c0477-part3
currently-attached ( RO): true
[root@xenserver ~]# xe pbd-unplug uuid=15bbb4cf-fe30-2226-8315-ea311f49834d
[root@xenserver ~]# xe pbd-destroy uuid=15bbb4cf-fe30-2226-8315-ea311f49834d
[root@xenserver ~]# xe sr-forget uuid=4cf3cc3b-b8d4-db4a-1be1-7ff403811af7
[root@xenserver ~]# xe sr-list
Após finalizar os procedimentos acima, podemos conferir o status da sincronização entre os 2 discos utilizando o comando:
mdadm --detail /dev/md*
Que irá resultar algo semelhante a:
/dev/md2: Version : 1.00 Creation Time : Tue Jan 27 18:20:21 2015 Raid Level : raid1 Array Size : 3898628796 (3718.02 GiB 3992.20 GB) Used Dev Size : 3898628796 (3718.02 GiB 3992.20 GB) Raid Devices : 2 Total Devices : 2 Preferred Minor : 2 Persistence : Superblock is persistent Update Time : Tue Jan 27 19:20:27 2015 State : clean, degraded, recovering Active Devices : 1 Working Devices : 2 Failed Devices : 0 Spare Devices : 1 Rebuild Status : 10% complete Name : 2 UUID : f4e83363:d7b18764:cb143452:417a0d48 Events : 46 Number Major Minor RaidDevice State 0 8 19 0 active sync /dev/sdb3 2 8 3 1 spare rebuilding /dev/sda3
Finalizado o procedimento, podemos alterar a ordem do boot novamente no SETUP para o servidor inicializar a partir do HD primário (/dev/sda).
Novos artigos Linux
-
Comando para Listar Tamanho de Diretórios no Linux
O comando abaixo permite listar o tamanho dos diretórios no Linux e desta forma detectarmos...
-
Recuperar uma unidade ZFS em uma nova instalação do Proxmox
Após trocar um disco de dados no formato ZFS para um novo servidor Promox, para adicionarmos a...
-
Firewall-cmd - Incluindo abertura de portas
O firewall-cmd é um comando para configuração do firewalld do Red Hat Enterprise Linux (RHEL) e...
-
Instalação do Bacula e Webacula no CentOS 8 - Stream
1. Realizar a instalação do apache e PHP: yum install httpd php php-gd php-curl php-mysqlnd -y 2....
-
Acesso SSH por certificado digital (sem usar senha)
Para facilitar o acesso via SSH a servidores ou outros terminais Linux ou OS X, você poderá gerar...
-
Proxmox - remover um node de um cluster
1. Acessar por linha de comando o host e listar os nodes existentes: pvecm nodesroot@proxmox2:~# pvecm...
Novos artigos Mikrotik
-
Configuração de VPN com Mikrotik (PPTP + Roteamento)
Scripts Mikrotik para configuração de VPN entre Matriz e Filial, já considerando que os...
-
Configuração de Internet com PPPoE no Mikrotik
Segue abaixo, arquivo de configuração, já comentado, de como configurar um Mikrotik para fazer...
-
Script de Padronização Mikrotik
Exemplo de Script de Padronização Mikrotik, assista ao vídeo no YouTube: ...
-
Enviando SMS utilizando modem 3G no Mikrotik + script Linux + PHP
Para realizar o envio de SMS utilizando uma routerboard Mikrotik, é necessário instalar um modem...
-
Configuração Otimizada para Enlace Mikrotik
Após verificar a dificuldade de diversas pessoas em otimizar um enlace Mikrotik, utilizando...
-
Script para atualização do No-IP no Mikrotik
Veja como podemos atualizar um IP dinâmico no No-IP. Utilizando este script, podemos atualizar o endereço...