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)