Eduardo Campos Jiménez, Enero 2011 Clúster Red Hat Pre

Anuncio
Eduardo Campos Jiménez, Enero 2011
Clúster Red Hat
Pre-Requisitos
Tres servidores con Red Hat 5.5. Cada uno de estos tres servidores debe tener 3 placas
Ethernet conectadas en estas condiciones: eth0 conectada a la red 192.168.0.x, eth1
conectada a la red 10.10.100.x y eth2 a la red 172.16.200.x.
Un servicio iSCSI clusterizado idéntico al montado en este post.
Ver esquema aclaratorio en PDF descargable desde aquí.
Procedimiento
1. Configuración fichero /etc/hosts
Los ficheros /etc/hosts deben tener este aspecto en rhmaster, rhnodo1 y rhnodo2
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1
localhost.localdomain localhost
::1
localhost6.localdomain6 localhost6
10.10.100.100
rhmaster
192.168.0.103
openfiler
10.10.100.101
rhnodo1
10.10.100.102
rhnodo2
2. Crear en Openfiler dos luns y mapearlar a un target iscsi, una para las
configuraciones de Apache y otra para los datos.
3. Conectar almacenamiento compartido en ambos nodos
Instalar en los dos nodos (rhnodo1 y rhnodo2) paquete iscsi-initiator-utils:
yum -y install iscsi-initiator-utils
service iscsi start
chkconfig iscsi on
Para luego conectar en los dos nodos el servicio iSCSI que tenemos en la IP 192.168.0.103 (no
usar nombre de máquina, usar IP)
iscsiadm --mode discovery --type sendtargets --portal 192.168.0.103
service iscsi restart (hacer antes y después un ‘cat /proc/partitions’ para ver qué pasa)
4. Instalar en rhnodo1, rhnodo2 las suites Clustering, ClusterStorage y la suite
Clustering en rhmaster
Después de instalar los grupos de paquetes, en rhnodo1 y en rhnodo2 haremos:
service ricci start
chkconfig ricci on
mientras que en rhmaster heremos:
luci_admin init
nos pedirá que introduzcamos la password del usuario administrador y una vez hecho
heremos:
service luci restart
chkconfig luci on
5. Creación del clúster
Nos iremos con un navegador a https://rhmaster:8084, nos pedirá usuaria, podremos
‘admin’ y acto seguido introduciremos la password que hemos definido en el paso anterior.
Desde el entorno gráfico, crear el clúster usando como nodos rhnodo1 y rhnodo2.
6. Creación del almacenamiento compartido
Revisar en rhnodo1 y rhnodo2 que en /etc/lvm/lvm.conf tengamos ésto:
locking_type = 3
Esto habilita a cada nodo para poder usar Logical Volumes clusterizados.
A continuación crearemos dos particiones en el almacenamiento compartido y las
conectaremos. Pare ellos haremos desde rhnodo1 lo siguiente:
fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF
disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): n
Command action
e
extended
p
primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1011, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1011, default 1011):
Using default value 1011
Command (m for help):w
Y luego, también desde rhnodo1 heremos:
fdisk /dev/sdc
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF
disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): n
Command action
e
extended
p
primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1009, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1009, default 1009):
Using default value 1009
Command (m for help):w
Ahora iremos a rhnodo2 y hacemos:
service iscsi restart
Volvemos a rhnodo1 y hecemos:
pvcreate /dev/sdb1
pvcreate /dev/sdc1
vgcreate -c y ApacheVGConf /dev/sdb1
vgcreate -c y ApacheVGData /dev/sdc1
lvcreate -L 512M -n ApacheLVConf ApacheVGConf
lvcreate -L 1G -n ApacheLVData ApacheVGData
Acto seguido haremos tanto en rhnodo1 como rhnodo2:
service clvmd restart
Ahora en rhnodo1 haremos:
mkfs.gfs2 -j 3 -p lock_dlm -t cluster01:SharedWebConfig
/dev/mapper/ApacheVGConf-ApacheLVConf
mkfs.gfs2 -j 3 -p lock_dlm -t cluster01:SharedWebData
/dev/mapper/ApacheVGData-ApacheLVData
Si todo va bien obtendremos algo así:
Device:
Blocksize:
Device Size
Filesystem Size:
Journals:
Resource Groups:
Locking Protocol:
Lock Table:
UUID:
/dev/mapper/ApacheVGConf-ApacheLVConf
4096
0.50 GB (131072 blocks)
0.50 GB (131070 blocks)
3
2
"lock_dlm"
"cluster01:SharedWebConfig"
EAC2119D-5CB9-CB27-38A0-8A65586FE58B
Device:
Blocksize:
Device Size
Filesystem Size:
Journals:
Resource Groups:
Locking Protocol:
Lock Table:
UUID:
/dev/mapper/ApacheVGData-ApacheLVData
4096
1.00 GB (262144 blocks)
1.00 GB (262142 blocks)
3
4
"lock_dlm"
"cluster01:SharedWebData"
D928C927-FFD3-A472-2953-A3C30DD10EC4
El siguiente paso consiste en montar los sistemas GFS formateados manualmente. Primero
crearemos el punto de montaje de la parte de configuración en rhnodo1 y rhnodo2:
mkdir /var/www/config
Para luego montar ambos filesystem:
mount –o noatime /dev/mapper/ApacheVGConf-ApacheLVConf /var/www/config
mount –o noatime /dev/mapper/ApacheVGData-ApacheLVData /var/www/html
Para que en futuros reinicios de ambos nodos estos filesystem se vuelvan a montar,
modificaremos el fichero /etc/fstab añadiendo al final del mismo las siguientes dos líneas
(hay que hacerlo tanto en rhnodo1 como rhnodo2):
/dev/mapper/ApacheVGConf-ApacheLVConf /var/www/config gfs2 rw,noatime
0 0
/dev/mapper/ApacheVGData-ApacheLVData /var/www/html gfs2 rw,noatime
0 0
Movemos los ficheros de configuración de Apache y creamos enlaces simbólicos
Hacer en rhnodo1:
mv
mv
cp
cp
ln
ln
/etc/httpd/conf /etc/httpd/conf.local
/etc/httpd/conf.d /etc/httpd/conf.d.local
-a /etc/httpd/conf.local /var/www/config/conf
-a /etc/httpd/conf.d.local /var/www/config/conf.d
-s /var/www/config/conf /etc/httpd/conf
-s /var/www/config/conf.d /etc/httpd/conf.d
Hacer en rhnodo2:
mv
mv
ln
ln
/etc/httpd/conf /etc/httpd/conf.local
/etc/httpd/conf.d /etc/httpd/conf.d.local
-s /var/www/config/conf /etc/httpd/conf
-s /var/www/config/conf.d /etc/httpd/conf.d
7. Definir “Failover Domain”
Usando un navegador y el entorno de administración del clúster (https://rhmaster:8084),
nos adentramos en la configuración del clúster “cluster01”. Después de desplegar el
apartado “Failover Domain” seleccionamos “Add a Failover Domain”. En el campo “Failover
Domain Name” ponemos “prefer_rhnodo1”, marcamos la casilla titulada “Prioritized” ,
marcamos también las casillas de ambos nodos en el apartado “Member , y finalmente en el
campo “Priority” de rhnodo1 ponemos “1” mientras que el de rhnodo2 ponemos “10”.
Concluimos tocando el botón de “Submit”.
8. Definición de recursos para el servicio
Normalmente necesitaremos definir dos recursos para un servicio Web clusterizado:
•
•
Una dirección IP virtual
Un script de start/stop del servicio
Dirección IP Virtual:
Usando un navegador y el entorno de administración del clúster (https://rhmaster:8084), nos
adentramos en la configuración del clúster “cluster01”. Después de desplegar el apartado
”Resources” seleccionamos “Add a Resource”. En la lista desplegable titulada “Select a
resource type” seleccionamos “IP Address”. En la pantalla que se nos muestra a continuación
añadimos la ip que queramos asignarle, en nuestro caso “172.16.200.103” y marcamos la
casilla de verificación titulada “Monitor link”.
Script de START/STOP:
Continuamos en el apartado “Resources” y volvemos a seleccionar “Add a Resource”. En la
lista desplegable seleccionamos “Script”. En la pantalla que se muestra a continuación, en el
campo “Name” ponemos “Apache-Script” mientras que en el campos “Full path to script file”
ponemos “/etc/rc.d/init.d/httpd” .
9. Definición del servicio
Lo primero que tenemos que hacer es modificar en el fichero /etc/httpd/conf/httpd.conf la
línea que empieza por “Listen” para que quede así:
Listen 172.16.200.103:80
Para definir el servicio procedemos así:
Usando un navegador y el entorno de administración del clúster (https://rhmaster:8084), nos
adentramos en la configuración del clúster “cluster01”. Después de desplegar el apartado
”Services” seleccionamos “Add a Service”. En la pantalla que se nos muestra a continuación,
en el campo “Service Name” ponemos “Apache”, marcamos la casilla de verificación titulada
“Automatically start this service” , en la lista de selección titulada “Failover domain”
seleccionamos “prefer_rhnodo1”, en la lista de selección titulada “Recovery policy”
seleccionamos “Relocate”, tocamos el botón “Add a resource to this service” , en la pantalla
que nos aparece a continuación desplegaremos la lista titulada “Use an existing global
resource “ y seleccionamos “172.16.200.103 (IP)”, volvemos a tocar el botón “Add a resource
to this service”, volvemos a desplegar la lista “Use an existing global resource “ y
seleccionamos “Apache-Script (Script)”, para finalmente tocar el botón titulado “Submit” .
Esto nos conduce a una pantalla en la que habrá una lista desplegable que contiene “Choose a
task”, deberemos desplegarla y seleccionar “Start this service to rhnodo1”. Esto pondrá en
marcha el servicio Apache clusterizado por primera vez.
FIN
http://www.eduardocamposjimenez.es
Descargar