3/4/15

INSTALACIÓN DE PROXMOX CON MULTIPATH Y LVM

Consideraciones acerca de RAID
Uso de nivel de RAID
Para asegurar el mejor rendimiento, debe seleccionar un nivel RAID óptimo al crear un disco físico del sistema.
El nivel RAID óptimo para su matriz de discos depende de:
• El número de discos físicos en la matriz de discos
• La capacidad de los discos físicos de la matriz de discos
• La necesidad de acceso redundante a los datos (tolerancia a fallos)
• Los requisitos de rendimiento de disco
RAID 10
PRECAUCIÓN: No intente crear grupos de discos virtuales que superen los 120 discos físicos en una configuración
RAID 10 incluso si la función premium estuviera activada en su matriz de almacenamiento. Si se supera el límite de
120 discos físicos, la matriz de almacenamiento podría a empezar a ser inestable.
RAID 10, una combinación de RAID 1 y RAID 0, utiliza la creación de bandas de disco a través de discos reflejados. Esto
proporciona una alta producción de datos y una redundancia de datos completa. Un número par de discos físicos
(cuatro o más) crea un disco virtual y/o grupo de discos de nivel RAID 10. Ya que los niveles RAID 1 y 10 usan reflejado
de disco, la mitad de la capacidad de los discos físicos se utiliza para el reflejado. Esto deja la mitad restante de la
capacidad del disco físico para el almacenamiento real. RAID 10 se utiliza automáticamente cuando el nivel RAID 1 se
elige con cuatro o más discos físicos. RAID 10 funciona bien para bases de datos medianas o en cualquier entorno que
requiera alto rendimiento y tolerancia a fallos y capacidad de moderada a media.
Tamaño de segmento
La creación de bandas de disco permite escribir datos a través de varios discos físicos. La creación de bandas de disco
mejora el rendimiento ya que a los discos con bandas se accede simultáneamente.
El tamaño del segmento o el tamaño del elemento de la sección especifica el tamaño de los datos en una sección
escrita en un único disco. La matriz de almacenamiento admite tamaños de los elementos de la sección de 8 KB, 16 KB,
32 KB, 64 KB, 128 KB y 256 KB. El tamaño predeterminado del elemento de la sección es 128 KB.
El ancho, o profundidad, de la sección, hace referencia al número de discos implicados en una matriz donde se
implemente la creación de bandas. Por ejemplo, un grupo de cuatro discos con una creación de bandas de disco tiene
un ancho de sección de cuatro.
NOTA: Aunque la creación de bandas de disco ofrece un excelente rendimiento, la creación de bandas por sí sola
no ofrece redundancia de datos.
Operaciones de disco virtual
Inicialización de disco virtual
Debe inicializarse cada disco virtual. La inicialización puede realizarse en primer plano o en segundo plano. Puede
inicializarse un máximo de cuatro discos virtuales simultáneamente en cada módulo de la controladora RAID.
• Inicialización de segundo plano: la matriz de almacenamiento ejecuta una inicialización de segundo plano
cuando se crea el disco virtual para establecer paridad, mientras se permite acceso de servidor host completo
a los discos virtuales. La inicialización de segundo plano no se ejecuta en discos virtuales RAID 0. El MD
Storage Manager controla la velocidad de la inicialización de segundo plano. Para cambiar la velocidad de la
inicialización de segundo plano, debe detener cualquier inicialización de segundo plano existente. El cambio de
velocidad se implementa cuando la inicialización de segundo plano se reinicia automáticamente.
23• Inicialización de primer plano: la matriz de almacenamiento ejecuta una inicialización de segundo plano cuando
se crea el disco virtual para establecer paridad, mientras se permite acceso de servidor host completo a los
discos virtuales. La inicialización de segundo plano no se ejecuta en discos virtuales RAID 0. El MD Storage
Manager controla la velocidad de la inicialización de segundo plano. Para cambiar la velocidad de la
inicialización de segundo plano, debe detener cualquier inicialización de segundo plano existente. El cambio de
velocidad se implementa cuando la inicialización de segundo plano se reinicia automáticamente.
Comprobación de coherencia
Comprobación de coherencia comprueba la corrección de los datos en una matriz redundante (niveles RAID 1, 5, 6 y 10).
Por ejemplo, en un sistema con paridad, la revisión de la congruencia implica el cálculo de los datos en un disco físico y
la comparación de los resultados con el contenido del disco físico de paridad.
Una comprobación de coherencia es similar a una inicialización de segundo plano. La diferencia radica en que la
inicialización de segundo plano no puede iniciarse o detenerse manualmente, mientras que la comprobación de
coherencia sí puede.
NOTA: Se recomienda realizar las revisiones de congruencia de datos en una matriz redundante al menos una vez
al mes. Esto permite la detección y sustitución automática de sectores ilegibles. Encontrarse con un sector ilegible
durante una recreación de un disco físico en error supone un serio problema, ya que el sistema no tiene la
redundancia para recuperar los datos.
Verificación de soporte
Otra tarea de segundo plano que la matriz de almacenamiento realiza es la verificación de soporte de todos los discos
físicos configurados en un grupo de discos. La matriz de almacenamiento utiliza la operación Read (Lectura) para
realizar la verificación en el espacio configurado en discos virtuales y el espacio reservado para los metadatos.
Tiempo de ciclo
La operación de verificación de soportes solo se ejecuta en grupos de discos seleccionados, independientes del resto
de grupos de discos. El tiempo de ciclo es el tiempo requerido para finalizar la verificación de la región de metadatos del
grupo de discos y todos los discos virtuales en el grupo de discos para el que se configure la verificación de soportes. El
siguiente ciclo para un grupo de discos se inicia automáticamente cuando finaliza el ciclo actual. Puede establecer el
tiempo de ciclo para una verificación de soportes entre 1 y 30 días. La controladora de almacenamiento regula los
accesos de E/S de verificación de soportes a los discos en función del tiempo de ciclo.
La matriz de almacenamiento realiza el seguimiento de cada grupo de discos independiente del resto de grupos de
discos en la controladora y genera un punto de control. Si la operación de verificación de soportes en un disco es
anulada o bloqueada por otra operación en el grupo de discos, la matriz de almacenamiento la reanuda después del
ciclo actual. Si el proceso de verificación de soportes en un grupo de discos se detiene debido a un reinicio del módulo
de la controladora RAID, la matriz de almacenamiento reanuda el proceso desde el último punto de control.
Límite de operaciones de disco virtual
El número máximo de procesos de disco virtual concurrentes activos por módulo de la controladora RAID instalado en
la matriz de almacenamiento es cuatro. Este límite se aplica a los siguientes procesos de disco virtual:
• Inicialización de segundo plano
• Inicialización de primer plano
• Comprobación de coherencia
• Recreación
• Copia de respaldo
Si un módulo de la controladora RAID falla con procesos de disco virtual existentes, los procesos presentes en la
controladora fallida se transfieren a la controladora de acompañamiento. Un proceso transferido se establece en un
estado suspendido si existen cuatro procesos activos en la controladora de acompañamiento. Los procesos
suspendidos se reanudan en la controladora de acompañamiento cuando el número de procesos activos es menor de
cuatro.
Se definen dos grupos de Discos, configurdos en RAID10 y RAID1 como se muestra en la siguiente imagen:
Se definen los “host mappings” es decir, la forma de asociar e identificar a cada host con el puerto de hardware SAS al que está conectado:
Cableado SAS del storage a los 2 hosts
Proxmox
Instalación de proxmox
Preparación de los discos:
1-Bootear con cualquier sistema live que nos dé acceso por consola y hacer una limpieza de los sectores de inicio, MBR y tablas de particiones de cada disco, por ejemplo:
dd if=/dev/zero of=/dev/sda bs=1M
dd if=/dev/zero of=/dev/sdb bs=1M
dd if=/dev/zero of=/dev/sdc bs=1M
...etc
La instalación de Proxmox es realmente sencilla:
1- Desconectar los cables SAS desde el servidor al storage para que no los detecte durante el proceso de selección de medio de instalación.
2- Bootear desde un Pendrive o cualquier otro medio con los archivos de instalación de Proxmox
3- Seleccionar la unidad de disco en donde vamos instalar Proxmox
4- Seleccionar zona horaria
5- Configurar password de administrador y dirección de correo electrónico
6- Configurar opciones básicas de red, luego de la instalación habrá que reconfigurarla
7- Esperamos que finalice la instalación
8- Instalación finalizada
Primeros pasos de configuración:
Configuración de red
Necesitamos configurar un bond entre las ds interfaces de red del servidor.
Esto se puede realizar por consola o bien por web, siguiendo los pasos de este video:
http://pve.proxmox.com/wiki/Bridge_configuration_(Video)
Detalle del archivo de configuración funcional:
root@sasuke:~# cat /etc/network/interfaces 
auto lo
iface lo inet loopback
iface eth0 inet manual

auto bond0
iface bond0 inet manual
    slaves eth0 eth1
    bond_miimon 100
    bond_mode active-backup

auto vmbr0
iface vmbr0 inet static
    address 172.16.10.202
    netmask 255.255.255.0
    gateway 172.16.10.254
    bridge_ports bond0
    bridge_stp off
    bridge_fd 0

1- Instalamos las herramientas que necesitaremos:
apt-get install multipath-tools vim htop fio lsscsi rsync
2- Necesitamos conocer los identificadores de cada disco, para incluirlos en el archivo de configuración de
multipath. Para listar el WWID de cada disco usamos:
    /lib/udev/scsi_id -g -u -d /dev/sda
    /lib/udev/scsi_id -g -u -d /dev/sdb
    /lib/udev/scsi_id -g -u -d /dev/sdc
    /lib/udev/scsi_id -g -u -d /dev/sdd
    /lib/udev/scsi_id -g -u -d /dev/sde
    /lib/udev/scsi_id -g -u -d /dev/sdf
El resultado en los discos locales, dependiendo del modelo y fabricante será algo similar a:
1ATA_WDC_WD1002FAEX-00Z3A0_WD-WCATR6449186
En el caso de los discos del storage dará como resultado, por ejemplo :
3690b11c000527ee8000003d752ca915d 
3690b11c000527f3e000003fc52ca8d09
En el archivo /etc/multipath.conf, necesitamos poner en blacklist todos los discos, y setear las excepciones para los discos del storage, de lo contrario, detectará los discos locales con multiples rutas y habrá un conflicto al inicio del sistema, además, se agregan los alias para cada disco, en este caso Disco1 y Disco2:
root@sakura:/var/lib/vz/dump# cat /etc/multipath.conf 
blacklist { 
        wwid * #Blacklistamos todo
} 

blacklist_exceptions { 
        wwid "3690b11c000527ee80000044c52d93387" #excepciones de blacklist (path de discos en el storage
        wwid "3690b11c000527f3e000003fc52ca8d09" #excepciones de blacklist (path de discos en el storage
} 

defaults { 
        user_friendly_names yes 
        max_fds             8192 
  polling_interval      5 
  queue_without_daemon  no 
} 
devices { 
        device { 
                vendor                "DELL" 
                product               "MD32xxi" 
                path_grouping_policy  group_by_prio 
                prio                  rdac 
                path_checker          rdac 
                path_selector         "round-robin 0" 
                hardware_handler      "1 rdac" 
                failback              immediate 
                features              "2 pg_init_retries 50" 
                no_path_retry         30 
                rr_min_io             100 
        } 
} 
multipaths { 
        multipath { 
                wwid "3690b11c000527ee80000044c52d93387" 
                alias Disco2 
                } 
        multipath { 
                wwid "3690b11c000527f3e000003fc52ca8d09" 
                alias Disco1 
                } 
        } 
# End Dell MD Modification

Reiniciamos el servicio multipath-tools
/etc/init.d/multipath-tools restart
La salida del comando multipath -ll nos dará:
root@sakura:~# multipath -ll 
mpathh (3690b11c000527ee8000003d752ca915d) dm-9 DELL,MD32xx 
size=1.8T features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 rdac' wp=rw 
|-+- policy='round-robin 0' prio=14 status=active 
| `- 7:0:0:1 sdh 8:112 active ready running 
`-+- policy='round-robin 0' prio=9 status=enabled 
  `- 7:0:1:1 sdj 8:144 active ready running 
mpathg (3690b11c000527f3e000003fc52ca8d09) dm-8 DELL,MD32xx 
size=9.1T features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 rdac' wp=rw 
|-+- policy='round-robin 0' prio=14 status=active 
| `- 7:0:1:0 sdi 8:128 active ready running 
`-+- policy='round-robin 0' prio=9 status=enabled 
  `- 7:0:0:0 sdg 8:96  active ready running 

Nos indica que las rutas están activas para los discos del storage.
multipath -v3 para myor verbosidad.
Verificamos que el modulo RDAC esta cargado en el kernel:
root@sakura:~# lsmod | grep rdac 
scsi_dh_rdac            8779  4
Test de entrada y salida, lectura escritura:
fio --filename=/dev/mapper/Disco1 --direct=1 --rw=read --bs=1m --size=20G --numjobs=200 --runtime=60 --group_reporting --name=file1

root@sakura:~# lsscsi 
[0:0:0:0]    disk    ATA      WDC WD1002FAEX-0 05.0  /dev/sda 
[1:0:0:0]    disk    ATA      WDC WD1002FAEX-0 05.0  /dev/sdb 
[2:0:0:0]    disk    ATA      WDC WD1002FAEX-0 05.0  /dev/sdc 
[3:0:0:0]    disk    ATA      WDC WD1002FAEX-0 05.0  /dev/sdd 
[4:0:0:0]    disk    DELL     MD32xx           0784  /dev/sdg 
[4:0:0:1]    disk    DELL     MD32xx           0784  /dev/sdh 
[4:0:0:31]   disk    DELL     Universal Xport  0784  -        
[4:0:1:0]    disk    DELL     MD32xx           0784  /dev/sdi 
[4:0:1:1]    disk    DELL     MD32xx           0784  /dev/sdj 
[4:0:1:31]   disk    DELL     Universal Xport  0784  -        
[5:0:0:0]    disk    ATA      WDC WD1002FAEX-0 05.0  /dev/sde 
[5:0:1:0]    disk    ATA      WDC WD1002FAEX-0 05.0  /dev/sdf 

Fuente: http://pve.proxmox.com/wiki/ISCSI_Multipath
Crear LVMs
Una vez que el sistema conoce las rutas para alcanzar los discos en el storage, necesitamos crear los LVM:
Creaamos el volumen físico, y luego el grupo de volúmenes para cada disco virtual:
root@sakura:~# pvcreate /dev/mapper/Disco1 
  Physical volume "/dev/mapper/Disco1" successfully created 
root@sakura:~# vgcreate Disco1 /dev/mapper/Disco1 
  Volume group "Disco1" successfully created 

root@sakura:~# pvcreate /dev/mapper/Disco2 
  Physical volume "/dev/mapper/Disco2" successfully created 
root@sakura:~# vgcreate Disco2 /dev/mapper/Disco2 
  Volume group "Disco2" successfully created 

Además contamos con 5 discos rígidos locales libres en el host (actualmente de 1TB cada uno), creamos lvm,
pvcreate /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
pvdisplay 
vgcreate vol_local /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
vgdisplay
lvcreate -n local_backups vol_local -L 4.39T
lvdisplay
mkfs.ext4 /dev/vol_local/local_backups
mount /dev/mapper/vol_local-local_backups /var/lib/vz/

Lo montamos en la ubicación /var/lib/vz, porque en esta ubicación(/var/lib/vz/dump/) se generan los backups
de las máquinas virtuales almacenadas en el storage SAS.
Podemos ver por consola como estan agregados los Volume Groups:
 --- Volume group ---
  VG Name               Disco1
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  39
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                16
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               9.09 TiB
  PE Size               4.00 MiB
  Total PE              2384021
  Alloc PE / Size       556732 / 2.12 TiB
  Free  PE / Size       1827289 / 6.97 TiB
  VG UUID               4HAPF7-i96G-Q74F-GuU8-r7Jd-NONf-UAfbLd

  --- Volume group ---
  VG Name               Disco2
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               1.82 TiB
  PE Size               4.00 MiB
  Total PE              476804
  Alloc PE / Size       12800 / 50.00 GiB
  Free  PE / Size       464004 / 1.77 TiB
  VG UUID               4rP6v8-XCAB-WyGP-4pLm-ejub-jmgW-pj2xWV

  --- Volume group ---
  VG Name               vol_local
  System ID             
  Format                lvm2
  Metadata Areas        5
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                5
  Act PV                5
  VG Size               4.55 TiB
  PE Size               4.00 MiB
  Total PE              1192335
  Alloc PE / Size       1150813 / 4.39 TiB
  Free  PE / Size       41522 / 162.20 GiB
  VG UUID               MyQpmh-2De8-GIGX-cpwh-Kd12-uBXu-yvo8X8

Luego añadir los LVM desde la interface Web de proxmox
ServerView>>Datacenter>>Storage>>Add>>LVM>>ExistingVolumeGroups
Una vez agregado los discos de storage, podemos empezar a crear o importar máquinas virtuales.