Mejorar acceso a disco y aumentar rendimiento Linux – Parte 7 – Restauración

con No hay comentarios

Esta va a ser la última parte de esta guia. No va a ser una parte de mejora de rendimiento en sí, si no de como recuperar una máquina desde nuestro software de backup(recordemos que en nuestro ejemplos nosotros usamos Veeam Backup & Replication) puesto que tenemos modificado el fichero /etc/fstab y el disco secundario(el de logs, temporales de backups, etc…) no le hacemos copia y dará error al arrancar el sistema si no seguimos estos pasos.

Parte 7 –  Restauración de VM sin disco secundario para logs

Existen dos maneras, depende que necesitemos, una es para añadirle un disco nuevo para generar la estructura de logs, y otro es volviendo a usar las carpetas de logs de la particion /var como anteriormente existian.

Opcion 1: Añadiendo un nuevo disco de logs

1- Restaurar la maquina desde Veeam. Le añadimos un disco en thin provisioning de 80GB
2- En el boot, canleamos el booteo, editamos pulsando a y al final de la linea añadimos init=/bin/bash
3- Montamos el sistema de ficheros con escritura: mount -o remount,rw /
4- Editamos /etc/fstab y comentamos las particiones de logs. Guardamos y reiniciamos.

/dev/mapper/VolGroup-lv_root        /           ext4        defaults,noatime,nodiratime,barrier=0 1 1
/dev/sda1                           /boot       ext3        defaults 1 2
/dev/mapper/VolGroup-lv_home        /home       ext4        defaults,noatime,nodiratime,barrier=0 1 2
/dev/sda2                           /tmp        ext4        defaults,noexec,relatime,barrier=0 1 2
/dev/mapper/VolGroup-lv_var         /var        ext4        defaults,usrquota,noatime,nodiratime,barrier=0 1 2
/dev/sda3                            swap        swap        defaults 0 0

tmpfs                                /dev/shm    tmpfs        defaults,noexec 0 0
devpts                               /dev/pts    devpts       gid=5,mode=620 0 0
sysfs                                /sys        sysfs        defaults 0 0
proc                                 /proc       proc         defaults 0 0

#Ramdisk para mysql-server
#tmpfs                               /ramdisk    tmpfs        rw,mode=1777,size=128M 0 0
#Este ramdisk es para mejorar mysql. Subiré un post más adelante de como optimizarlo.
#LVM para log
##### COMENTAMOS ESTAS LINEAS ####
#/dev/mapper/LVMLog-LogDir           /var/log                ext4    defaults,noatime,nodiratime,barrier=0 1 2
#/dev/mapper/LVMLog-SystemLogDir     /var/www/vhosts/system  ext4    defaults,noatime,nodiratime,barrier=0 1 2
#/dev/mapper/LVMLog-BackupsTempDir   /var/lib/psa/dumps      ext4    defaults,noatime,nodiratime,barrier=0 1 2 

5- Una vez arrancada la maquina normal, ejecutamos el script /root/scripts/restauracionVMLogs_nuevoHDD.sh para formatear y crear la estructura de directorios sobre el nuevo disco. Os dejo el contenido de dicho script:

#!/bin/bash
#Creamos un nuevo lvm sobre el nuevo disco con la misma estructura.
pvcreate /dev/sdb
vgcreate -s 32M LVMLog /dev/sdb
echo "Creando Volumenes..."
lvcreate -L 20G -n LogDir LVMLog
lvcreate -L 39G -n SystemLogDir LVMLog
lvcreate -L 20G -n BackupsTempDir LVMLog
echo "Formateando con ext4..."
mkfs -t ext4 /dev/LVMLog/LogDir
mkfs -t ext4 /dev/LVMLog/SystemLogDir
mkfs -t ext4 /dev/LVMLog/BackupsTempDir
tune2fs -c 0 -i 0  /dev/LVMLog/LogDir
tune2fs -c 0 -i 0  /dev/LVMLog/SystemLogDir
tune2fs -c 0 -i 0  /dev/LVMLog/BackupsTempDir
echo "Montando particiones..."
mount /dev/LVMLog/LogDir /var/log/
mount /dev/LVMLog/SystemLogDir /var/www/vhosts/system/
mount /dev/LVMLog/BackupsTempDir /var/lib/psa/dumps/

#Creamos las carpetas para que los procesos puedan escribir

echo "Creando estructura de carpetas..."
mkdir /var/log/httpd && chmod 700 /var/log/httpd
mkdir /var/log/nginx
mkdir /var/log/ntpstats && chown ntp:ntp  /var/log/ntpstats
mkdir /var/log/php-fpm && chmod 770 /var/log/php-fpm && chown apache:root /var/log/php-fpm
mkdir /var/log/plesk && chmod 750 /var/log/plesk && chown psaadm:root  /var/log/plesk
mkdir /var/log/plesk-roundcube && chmod 750 /var/log/plesk-roundcube && chown roundcube_sysuser:root  /var/log/plesk-roundcube
mkdir /var/log/psa-horde && chmod 750 /var/log/psa-horde && chown horde_sysuser:root  /var/log/psa-horde
mkdir /var/log/sw-cp-server && chmod 750 /var/log/sw-cp-server
mkdir /var/log/tomcat6 && chown tomcat:root  /var/log/tomcat6
mkdir /var/log/zabbix && chown zabbix:zabbix /var/log/zabbix

#Creando estructura de carpetas para cada dominio
password=` cat /etc/psa/.psa.shadow`
result=` mysql -uadmin -p$password psa --skip-column-names -e "select name from domains where parentDomainId = 0"`

items=$(echo $result | tr " " "\n")
usuario=''
for item in $items
do
 echo "Moviendo directorio logs de:" "$item"
 cd /var/www/vhosts
 cd $item
 rm -rf logs
 usuario=$(ls -l | cut -d' ' -f3 | grep -v root | sed -n 2p)
 mkdir logs
 chmod 700 logs
 chown $usuario:root logs
 #Creando enlaces a cada fichero
 #ln -s ../system/"$item"/logs logs
 cd logs
 ln -s ../../system/"$item"/logs/access_log ./access_log
 ln -s ../../system/"$item"/logs/access_log.processed ./access_log.processed
 ln -s ../../system/"$item"/logs/access_log.stat ./access_log.stat
 ln -s ../../system/"$item"/logs/access_log.webstat ./access_log.webstat
 ln -s ../../system/"$item"/logs/access_ssl_log ./access_ssl_log
 ln -s ../../system/"$item"/logs/access_ssl_log.processed ./access_ssl_log.processed
 ln -s ../../system/"$item"/logs/access_ssl_log.stat ./access_ssl_log.stat
 ln -s ../../system/"$item"/logs/access_ssl_log.webstat ./access_ssl_log.webstat
 ln -s ../../system/"$item"/logs/error_log ./error_log
 ln -s ../../system/"$item"/logs/proxy_access_log ./proxy_access_log
 ln -s ../../system/"$item"/logs/proxy_access_ssl_log ./proxy_access_ssl_log
 ln -s ../../system/"$item"/logs/proxy_error_log ./proxy_error_log
 
 chmod 750 /var/www/vhosts/system/"$item"/logs
done
rm -rf /var/www/vhosts/logs

#Arrancamos los servicios
echo "Arrancando servicios..."
service sw-engine start && service sw-cp-panel start
service psa stop && service psa start && service nginx start && service mailman start

#Reconfigurar todos los alojamientos
echo "Reconfigurando alojamientos"
/usr/local/psa/admin/bin/httpdmng --reconfigure-all 

6- Si todo finaliza correcto, editamos /etc/fstab y reactivamos las particiones de log. Reiniciamos y listo.

 

Opcion 2: Levantar servicios utilizando las carpetas de log en el mismo disco que /var

1- Restaurar la maquina desde Veeam.
2- En el boot, canleamos el booteo, editamos pulsando a y al final de la linea añadimos init=/bin/bash
3- Montamos el sistema de ficheros: mount -o remount,rw /
4- Editamos /etc/fstab y comentamos las particiones de logs. Guardamos y reiniciamos.
4- Una vez arrancada la maquina normal, ejecutamos el script /root/scripts/restauracionVMLogs_sinHDD2.sh  para crear la estructura de directorios en la particion local, pues seguramente hay diferencia desde que sepearamos los logs a otro partición. Os dejo el script:

 #!/bin/bash

echo "Montando particiones..."
mount /dev/LVMLog/LogDir /var/log/
mount /dev/LVMLog/SystemLogDir /var/www/vhosts/system/
mount /dev/LVMLog/BackupsTempDir /var/lib/psa/dumps/

#Creando estructura de carpetas para cada dominio
echo "Creando estructura de carpetas..."
password=` cat /etc/psa/.psa.shadow`
result=` mysql -uadmin -p$password psa --skip-column-names -e "select name from domains where parentDomainId = 0"`

items=$(echo $result | tr " " "\n")
usuario=''
for item in $items
do
 echo "Creando estructura directorios para:" "$item"
 cd /var/www/vhosts/system
 rm -rf logs
 mkdir $item
 chmod 711 $item
 chown root:psaserv $item
 #Creando carpetas a cada dominio
 cd $item
 mkdir conf && chown root:psaserv conf && chmod 750 conf
 mkdir logs && chown psaadm:root logs && chmod 750 /var/www/vhosts/system/"$item"/logs
 mkdir pd && chown root:psaserv pd && chmod 750 pd
 mkdir statistics && chown root:psaserv statistics && chmod 750 statistics
done
rm -rf /var/www/vhosts/logs

#Reconfigurar todos los alojamientos
echo "Reconfigurando alojamientos"
/usr/local/psa/admin/bin/httpdmng --reconfigure-all

#Arrancamos los servicios
echo "Arrancando servicios..."
service sw-engine start && service sw-cp-panel start
service psa stop && service psa start && service nginx start && service mailman start

5- Una vez realizada esta acción ya se pueden arrancar todos los servicios, aunque lo más rapido es reiniciar.

 Parte 6

atras back last page

Dejar un comentario