SESION 2 9 Abril 2011

Transcripción

SESION 2 9 Abril 2011
SESION 2
9 Abril 2011
1. Clustering VI: Aplicaciones
2. Clustering VII: Monitorización y Contabilidad
3. Clustering VIII: Seguridad y Soporte a usuarios
<Descanso>
4. Práctica I: Despliegue de un cluster de memoria distribuida
Curso “Introducción al clustering y virtualización de sistemas”
Asociación de Profesores de Informática de Aragón (APIA)
Práctica I: Despliegue de un cluster de memoria distribuida
El objetivo de esta práctica es la creación de un cluster de memoria distribuida virtualizado y
con arranque de nodos por red, como el de la siguiente figura:
host
192.168.1.254
server
192.168.1.253
master
192.168.1.252
login
192.168.1.21
node1
192.168.1.1
node2
192.168.1.2
1 Instalación y configuración del equipo host
1.1 En el servidor host (el equipo “físico” que contendrá nuestras máquinas virtuales)
instalamos Opensuse11.4
1.2 Abrimos una terminal/nos logueamos con Xs en el host
→ En el sistema que tenemos ya preparado: root/apia2011
1.3 Creación de un interfaz de red virtual (bridge) para nuestra red privada virtual:
○ Abrimos el GUI “virt-manager”->Editar->Connections Details
○
Vamos a la pestaña de Redes Virtuales
■
Creamos una nueva 192.168.1.0/24
■
DHCP: de la 192.168.1.100 a 192.168.1.200
Reenvio a la interfaz física, con destino eth0 (la interfaz publica), modo
NAT
1.4 Añadimos a /etc/hosts las IPs de nuestra subred:
■
192.168.1.253 server
192.168.1.252 master
192.168.1.251 login
192.168.1.1 node1
Curso “Introducción al clustering y virtualización de sistemas”
Asociación de Profesores de Informática de Aragón (APIA)
192.168.1.2
node2
1.5 Instalamos con YAST los paquetes necesarios para poder crear máquinas virtuales:
libvirt-0.8.8, virt-manager-0.8.5, kvm-0.14, tunctl:
Yast → Software→ Software Management
1.6 Configuramos el servicio libvirt para que arranque al inicio:
Yast → System → System Services (Runlevel)
2 Despliegue de “server” (MV)
2.1 Abrimos el GUI “virt-manager” y creamos una imagen virtual:
Opción 1) Instalar desde cero:
● Descargamos la imagen .iso deseada para la máquina guest
● Con virt-manager creamos una nueva máquina virtual asignándole un disco
duro virtual y una unidad de DVD con la imagen que nos hemos descargado
● Instalamos la máquina virtual
● Arrancar máquina virtual y abrir consola
Opción 2) Arrancar máquina virtual ya creada:
● Nos copiamos el fichero diskOS11.4-server.raw proporcionado a
/var/lib/kvm/images/
● Con virt-manager creamos una nueva máquina virtual:
○ Seleccionar “Tengo una imagen de disco con el SO ya instalado”
○ Modificamos el adaptador de red y seleccionamos la opción “Intel e1000”
y fuente virbr0
○ Añadimos disco duro y seleccionamos la imagen que nos hemos copiado
● Arrancar la máquina virtual y abrir consola
2.2 Con Yast asignamos a nuestro servidor la ip 192.168.1.253/24 y gateway 192.168.1.254
Yast → Network Devices → Netwrok settings
2.3 Rellenar /etc/hosts con las siguientes ips:
192.168.1.253 server
192.168.1.252 master
192.168.1.251 login
192.168.1.1 node1
192.168.1.2 node2
2.4 Con Yast (Yast → Software→ Software Management) instalamos los siguientes
paquetes:
Kiwi-PXEboot
DHCP-server
NFS-kernel-server
tftp
2.5 Con Yast (Yast → System → System Services (Runlevel)) añadir como servicios:
Curso “Introducción al clustering y virtualización de sistemas”
Asociación de Profesores de Informática de Aragón (APIA)
dhcp
xinetd
nfsserver
2.6 Configuración del servidor DHCP:
● Copiamos el contenido del fichero dhcpd.conf proporcionado a /etc/dhcpd.conf
● Añadimos la interfaz eth0 a la variable de entorno DHCPD_INTERFACE en
/etc/sysconfig/dhcpd
● Reiniciamos el servicio dhcpd:
service dhcpd restart
2.7 Configuración del servicio TFTP:
● Editamos /etc/xinetd.d/tftp, modificando las siguientes opciones:
disable=no
user = root
● Reiniciamos el servicio xinetd:
service xinetd restart
( Si no arranca bien, matar los procesos con kill y reiniciar el servicio! )
2.8 Configuración del servicio PXE:
● Copiamos el contenido del fichero default proporcionado a:
/srv/tftpboot/pxelinux.cfg/default
2.9 Configuración del servicio NFS:
● Creamos (mkdir -p) los directorios:
/srv/nfs/OS11.4/readonly
/srv/nfs/OS11.4/readwrite
● Añadimos a /etc/exports:
/srv/nfs/OS11.4/readonly
/srv/nfs/OS11.4/readwrite
●
192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
Reiniciamos el daemon nfsserver:
service nfsserver restart
3 Despliegue de “master” (MV)
3.1 Creación de la máquina virtual:
● Nos copiamos el fichero diskOS11.4-master.raw proporcionado a
/var/lib/kvm/images/
● Con virt-manager creamos una nueva máquina virtual:
○ Seleccionar “Tengo una imagen de disco con el SO ya instalado”
○ Modificamos el adaptador de red y seleccionamos la opción “Intel e1000” y
fuente virbr0
○ Añadimos disco duro y seleccionamos la imagen que nos hemos copiado
● Arrancar la máquina virtual y abrir consola
3.2 Añadimos la mac address que nos genera virt-manager al fichero /etc/dhcpd.conf de
server y reiniciamos su servicio dhcpd
3.3 Rellenar /etc/hosts con las siguientes ips:
192.168.1.253 server
192.168.1.252 master
192.168.1.251 login
Curso “Introducción al clustering y virtualización de sistemas”
Asociación de Profesores de Informática de Aragón (APIA)
192.168.1.1 node1
192.168.1.2 node2
3.4 Cambiamos a la consola de server
3.5 Copiar a /root de server los ficheros sincronizarRO.sh y sincronizar.sh proporcionados
3.6 Sincronizamos los directorios readonly (/bin /boot /lib /lib64 /root /sbin /usr) del nodo
master a /srv/nfs/OS11.4/readonly en server:
source /root/sincronizarRO.sh
3.7 Creamos los directorios:
/srv/nfs/OS11.4/readwrite/node1
/srv/nfs/OS11.4/readwrite/node2
3.8 Sincronizamos los directorios readwrite (/etc /var) del nodo master a
/srv/nfs/OS11.4/readwrite/node1 y node2:
rsync -avze ssh --delete-before master:"/var /etc" /srv/nfs/OS11.4/readwrite/nodeX/ --exclude=/etc/fstab
3.9 Copiamos el fichero fstab proporcionado a las carpetas correspondientes:
cp fstab /srv/nfs/OS11.4/readwrite/nodeX/etc/
3.10 Creamos el resto de directorios vacíos proc dev opt selinux sys tmp srv readonly
dentro de /srv/nfs/OS11.4/readwrite/readwrite/nodeX/
3.11 Creamos enlaces simbólicos a los directorios de readonly dentro de
/srv/nfs/OS11.4/readwrite/nodeX/ para cada nodo:
cd /srv/nfs/OS11.4/readwrite/nodeX
ln -s readonly/bin
ln -s readonly/boot
ln -s readonly/lib
ln -s readonly/lib64
ln -s readonly/root
ln -s readonly/sbin
ln -s readonly/usr
3.12 Creación con mkinitrd de un initrd “ad-hoc” en /boot
● Antes de nada hacer un backup de /boot:
cp -r /boot /root/boot_backup
cp initrd-2.6.37.1-1.2-desktop initrd-2.6.37.1-1.2-desktop.original
● Actualizamos el nombre en /boot/grub/menu.lst
● Añadimos los módulos necesarios a nuestro initrd:
mkinitrd -f “nfs network” -D eth0 -m “e1000 virtio”
● Le cambiamos el nombre antes de descomprimir:
mv initrd-2.6.37.1-1.2-desktop initrd-2.6.37.1-1.2-desktop.img.gz
● Creamos directorio donde descomprimir el intrd a modificar:
mkdir initrd-2.6.37.1-1.2-desktop
● Entramos y descomprimimos:
cd initrd-2.6.37.1-1.2-desktop
gunzip -c ../initrd-2.6.37.1-1.2-desktop.img.gz | cpio -i
● Sustituimos el fichero boot/83-mount.sh por el proporcionado
● Añadimos los ficheros /etc/protocols y /etc/netconfig (necesarios para que funcione
nfsv3)
cp /etc/protocols /boot/initrd-2.6.37.1-1.2-desktop/etc/
Curso “Introducción al clustering y virtualización de sistemas”
Asociación de Profesores de Informática de Aragón (APIA)
●
cp /etc/netconfig /boot/initrd-2.6.37.1-1.2-desktop/etc/
Añadimos los ejecutables necesarios: ifconfig, grep, cut
cp /sbin/ifconfig /boot/initrd-2.6.37.1-1.2-desktop/sbin/
cp /bin/grep /boot/initrd-2.6.37.1-1.2-desktop/bin/
cp /usr/bin/cut /boot/initrd-2.6.37.1-1.2-desktop/bin/
●
●
●
cd ..
Copiar a /root el fichero makeroot.sh proporcionado
Generamos nuestro fichero initrd:
./makerootfs.sh initrd-2.6.37.1-1.2-desktop
Copiamos el kernel y nuestro initrd al sistema de arranque por red:
cp /boot/initrd-2.6.37.1-1.2-desktop.img.gz /srv/tftpboot/
cp /boot/vmlinuz-2.6.37.1-1.2-desktop /srv/tftpboot/
4 Despliegue de “node1” y “node2” (MVs)
4.1 Creación de las máquinas virtuales:
● Copiamos el fichero diskOS11.4-node.raw proporcionado a /var/lib/kvm/images/
● Con virt-manager, para cada nodo, creamos una nueva máquina virtual:
○ Seleccionar “Tengo una imagen de disco con el SO ya instalado”
○ Modificamos el adaptador de red y seleccionamos la opción “Intel e1000” y fuente
virbr0 y fijamos la mac address de cada nodo
○ Añadimos disco duro y seleccionamos la imagen que nos hemos copiado
○ Como realmente no queremos que arranque del disco duro, nada más crear la imagen la
pausamos con virt-manager, y en “connection details” fijamos “Network boot” como
primera opción de arranque
○ Añadimos las direcciónes mac de los 2 nodos de computo en el fichero /etc/dhcpd.conf
del server y reiniciamos su servicio dhcpd
○ Reanudamos la ejecución de la MV del nodo de cómputo y arrancamos por red!
(Tener en cuenta que por problemas de la virtualización de la red, le cuesta ~5
minutos importar el sistema de ficheros NFS)
5 Despliegue de “login” (MV)
5.1 Creación de la máquina virtual:
● Copiamos el fichero diskOS11.4-login.raw proporcionado a /var/lib/kvm/images/
● Con virt-manager creamos una nueva máquina virtual:
○ Seleccionar “Tengo una imagen de disco con el SO ya instalado”
○ Modificamos el adaptador de red y seleccionamos la opción “Intel e1000” y
fuente virbr0
○ Añadimos disco duro y seleccionamos la imagen que nos hemos copiado
● Arrancar la máquina virtual y abrir consola
5.2 Añadimos la mac address que nos genera virt-manager al fichero /etc/dhcpd.conf de
server y reiniciamos su servicio dhcpd
5.3 Rellenar /etc/hosts con las siguientes ips:
192.168.1.253 server
192.168.1.252 master
192.168.1.251 login
Curso “Introducción al clustering y virtualización de sistemas”
Asociación de Profesores de Informática de Aragón (APIA)
192.168.1.1
192.168.1.2
node1
node2
6 Distribución de claves ssh en server
6.1 Creamos las claves ssh en el servidor para el usuario root:
ssh-keygen
cat /root/.ssh/id_rsa.pub > /root/.ssh/authorized_keys
6.2 La copiamos al master, login y a los nodos:
scp -r /root/.ssh master:/root/
scp -r /root/.ssh login:/root/
source sincronizarRO.sh
7
Configuración del servicio NTP
7.1 Configuración del servidor NTP en server:
● Configurar con Yast (Yast → Network Services → NTP Configuration):
○ activación durante el arranque
○ eliminar Sincronizacion con reloj local y añadir sincronización con
servidor público (España)
7.2 Configuración de los clientes (master y login):
● A través de Yast sincronizamos con nuestro server y borramos el local
● Activación durante el arranque
7.3 Nodos:
● Replicamos al resto de nodos desde server
source sincronizar.sh X
● Reiniciamos servicio ntp en los nodos
ssh nodeX "service ntp start"
Para probarlo: ntpq
ntpq> pe
8 Configuración del servicio NIS
8.1 Configuración del servidor NIS en server:
● Con Yast instalamos el paquete yast2-nis-server ( ypbind, ypserv se instalan
automaticamente al configurar)
● Con Yast configuramos el servicio:
○ domain: apia
○ Comaprtimos passwd y shadow
○ Sólo samos acceso a Networks: 255.255.255.0/192.168.1.0
8.2 Configuración con Yast (Yast → Network Services → NIS client) de los clientes NIS
(master y login):
● Tras configuración en nodo master, sincronizamos con el resto de nodos desde
server:
source sincronizar.sh X
Curso “Introducción al clustering y virtualización de sistemas”
Asociación de Profesores de Informática de Aragón (APIA)

Documentos relacionados