wiki:ClienteInitrdDSUarlo

TOC(Heading=Índice)?

El instalador de OpenGnsys, se encarga de descargar y ubicar los elementos del sistema operativo pxe -OGlive- para los clientes OpenGnsys, el cual incluye todas las herramientas necesarias para operar con el engine de OpenGnsys.

  • Desde la version 1.0.2 de OpenGnsys el formato de distribución del OGlive es ISO
  • La iso, se dejará disponible, para ser utilizada desde un live CD o almacenarlo en un dispositivo usb en /opt/opengsys/lib

ISO a cdrom

Usar cualquier software de grabación.

ISO a pxe

#movemos el antiguo ogclient pxe.
mv /var/lib/tftpboot/ogclient  /var/lib/tftpboot/ogclientold
mkdir -p /media/ogclientiso
mount -o loop ogclient.iso /media/ogclientiso
cp -prv  /media/ogclientiso/ogclient /var/lib/tftpboot/
chown -R  www-data:www-data /var/lib/tftpboot/ogclient
umount /media/ogclientiso

ISO a USB

formateamos el dispositivo usb, con la etiqueta ogClient.  NOTA: en este ejemplo el usb es /dev/sdb1
mkfs.ext3 /dev/sdb1 -L ogClient
mount /dev/sdb1 /media/ogClient
apt-get install unetbootin
Iniciamos la aplicacion unetbootin.
seleccionamos la iso.
y selecciones el dispositivo usb.

PXE a cache (solo kernel e initrd)

Ejecutar el scripts updateBootCache 
NOTA: Sólo a partir de la versión 1.0.1 y con uso del gestor remoto grub4dos.

USB, cdrom a CACHE

  • Usamos como gestor de arraque un grub2 de algún linux instalado en nuestro ordenador.
  • Entramos al sistema operativo linux y editamos el fichero /etc/grub.d/40_custom
menuentry "og cache " {
set root=(hd0,4)
linux /boot/ogvmlinuz ro vga=788 irqpoll acpi=on boot=oginit  og2nd=sqfs ogprotocol=local ogactiveadmin=true ogdebug=true ip=none
initrd /boot/oginitrd.img
}

NOTA:

  • Si queremos ip dinámica, el parámetro ip=dhcp
  • Si queremos ip estática, el parámetro
    • ip=ip:dns:gateway:netmask:hostname:iface:none
    • ip=172.17.9.152:172.17.9.205:172.17.9.254:255.255.255.0:cte152:eth0:none

y ejecutamos

os-prober
update-grub

Insertamos el usb, lo montamos y:

  • Copiamos el directorio ogclient y todo su contenido en el raiz de la partición CACHE.
  • Volvemos a copiar el directorio ogclient, pero ahora como directorio boot dentro del raiz de la partición cache.

Reiniciamos y seleccionamos el sistema de arranque og_cache

Scripts para preparar el inicio desde cache

Desde la versión 1.0.6.

installOfflineMode

Script que prepara el cliente de opengnsys para que inicie el cliente desde cache.

  • Copia el kernel y el initrd en /opt/opengnsys/cache/boot
  • Copia segundo sistema de fichero en /opt/opengnsys/cache/ogclient
  • Copia el menú por defecto del cliente en /opt/opengnsys/cache/menu/ip-equipo.html

ogGrubAddOgclient

Función que permite añadir al grub del MBR la entrada para que se pueda iniciar desde el cliente de OpenGnSys.

Información sobre el uso en el manual de usuario

Test de carga

Intel Corp. Intel(R) Core(TM) i3 CPU 550 @ 3.20GHz 3200MHz v.6.5.5

  • 10 segundos USB.
  • 40 segundos CDROM
  • 30 segundos pxe con conexión al servidor Og y browser. Dependiente del ancho de banda de la red.
  • 20 segundos cache (kernel e initrd) más conexion al servidor OG y browser. Independiente del número de clientes o ancho de banda de red.
  • 10 segundos cache (kernel, initrd, oglient.sqfs), sin configuración IP
  • 15 segundos cache (kernel, initrd, ogclient.sqfs), con ip dinámica
  • * 10 segundos cache (kernel, initrd, ogclient.sqfs), con ip estática

Proceso de arranque de ogClient en modo local

A partir de la versión 1.0.6

Los parámetros del kernel que afectan al modo local son:

  • ogprotocol=[smb|nfs|local]
  • ogstatus=[online|offline]

En el código todas las comparaciones del estado se hacen con el modo "offline", de forma que si no existe el parámetro ogstatus el valor por defecto es online.

Revisar la documentación de usuario para ver los comportamientos del modo local en los estados online y offline.

Montaje de recursos remotos o locales

Estos parámetros se utilizan por oginit, que a su vez llama a funciones definidas en /script/ogfuntions. Vamos a comentar las funciones que son significativas para montar el segundo sistema de ficheros en local.

ogExportVarEnvironment

Se crean variables para modo local: SRCOGLIVE, SRCOGSHARE, etc.

No hay diferencia entre offline o online

ogConnectOgLive

Se comporta igual en online que en offline

Busca una partición con al etiqueta "ogClient" y se monta como segundo sistema de fichero del cliente. En caso de no montarse se monta la cache.

TODO: Mensaje de error si no existe partición con etiqueta "ogClient" o "CACHE"

ogConnect

Si el estatus no es offline y la variable del servidor no esta vacía monta el recurso remoto correspondiente. Descritos en Puntos de montaje para el ogclient pxe

Nota: en modo offline no se puede montar el recurso todavía porque no existe el directorio $OGIMG.

ogPostConfigureFS

En modo local se crea la estructura de subdirectorios de /opt/opengnsys. A veces son enlaces simbólicos a otros directorios existentes o otras el montaje de un directorio sobre otro sustituyendo al montaje de un recurso remoto. Por orden se realiza:

  • estado offline: Se crean los subdirectorios /opt/opengnsys/ como enlaces simbólicos a los del OGLIVEROOTFS. En caso contrario ya existen por el montaje del recurso remoto.
  • ambos estados: Si existe partición identificada como CACHE se monta. Se monta diferente según el dispositivo de cache igual o no al de ogclient.
  • estado offline: Se crea en cache el directorio de log y se monta.
  • estado offline: Si existe una partición con etiqueta REPO se monta, si no se monta la cache como REPO
    Esto último se debe a que al restaurar exigimos actualizar las imágenes de la CACHE con las de REPO y necesitamos emular la situación.

Montaje del recurso images en modo local

Lo realiza el script etc/preinit/mountrepo.sh

  • estado online: Monta el servidor.
  • offline: Monta la partición con etiqueta REPO, y en caso de no haberla la CACHE.

Mostrando página de inicio en modo local

Lo realiza el script etc/init/default.sh

En el estado offline se busca un menú de inicio con los nombres: index.html $OGGROUP.html $(ogGetIpAddress).html y arranca el browser con él.

TODO: En caso de no haber ninguno dará error -> corregir.

OGMENU=''
$OPENGNSYS/bin/browser -qws $OGMENU

Modificación script apagado y reinicio ==

Las acciones de apagado y reinicio del cliente se realizan por los script poweroff y reboot respectivamente. Para que funcione en modo offline no se mata el proceso del navegador al reiniciar o apagar el equipo. Se modificará esa línea quedando:

[ "$ogstatus" == "offline" ] || pkill browser

TODO: Revisar variables

SRCOGLIVE En modo local se define y solo se usa una vez. Sólo se deja por coherencia con lo demás, quizás no es necesario.

export SRCOGLIVE="local"

# Si ogprotocol=local, la funcion ogExportVar => SRCOGLIVE=local
if [ "$SRCOGLIVE" == "local" ]

LOCALMEDIA Aparece definida en el script pero no se utiliza: se comenta, no la quitamos por si se necesita.

#LOCALMEDIA" == "CACHE 	
Last modified 3 years ago Last modified on Jul 14, 2017, 1:07:08 PM