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

Novos artigos Mikrotik

Scroll to top