wiki:DirsRepositorio

Version 6 (modified by ramon, 14 years ago) (diff)

Propuesta de estructura de directorios para el repositorio de imágenes

TOC(heading=Índice)?

Estructura de los repositorios de imágenes

Propuesta de estructura de directorios

Atendiendo a las necesidades de clonación de una organización, resulta muy interesante disponer de mecanismos para personalizar y completar la instalación de imágenes monolíticas con ficheros y paquetes personalizados para un determinado cliente o para un conjunto de ellos.

Se propone la siguiente estructura de directorios flexible para que las funciones y scripts del motor de clonación puedan acceder fácilmente a los ficheros que permitan una posconfiguración de los equipos:

  • /opt/opengnsys/repo - punto de montaje principal (sustituye a /opt/opengnsys/images).
    • images - directorio de imágenes completas.
    • groups - directorio de conjuntos de clientes (agrupados por unidad organizativa o sala).web de gestión.
      • NombreGrupo - un directorio por grupo de clientes, según la estructura de la base de datos de la consola.
        • NombreImagen - un directorio por nombre de imagen con los ficheros específicos a aplicar para dicha imagen en ese grupo.
    • clients - directorio de clientes.
      • NombreCliente - un directorio por grupo de clientes, según los datos de la base de datos de la consola.
        • NombreImagen - un directorio por nombre de imagen con los ficheros específicos a aplicar para dicha imagen en ese cliente.

El control de esta estructura de directorios puede automatizarse implementando un conjunto de modificaciones en el protocolo de comunicaciones entre OpenGnSys Server y OpenGnSys Repository Manager, de tal forma que el primero de ellos debe comunicar al segundo aquellas operaciones a ejecutar cuando se realicen modificaciones en la base de datos de la consola de gestión.

Tipos de repositorios

REPOSITOY MANAGER

Exportación de su images.

FileSystem a exportar o campartir: /opt/opengnsys/images/IP

Importación de images de otros repositorios o almacenamientos no opengnsys.

/opt/opengnsys/images/$IP

REPOSITORIOS EXTERNOS (nas, servidor samba....)

exportarán el FS indicado, para ser montado por REPOSITORY MANAGER o por los clientes Opengnsys.

El repositorio ubicado en los clientes, partición denominada CACHE

La partición cache se montará en el cliente en:

/opt/opengnsys/images/$IP
# donde $IP hace referencia a localhost, cache, CACHE, y su propia ip o a la de loopback

La conexiion con las imagenes con el repositorio Opengnsys en:

/opt/opengnsys/images/$IP
# donde $IP hace referencia a REPO, repo, es decir la propia ip del servidor .

La conexiion con las imagenes con repositorios externos:

/opt/opengnsys/images/$IP
# donde $IP hace referencia a la ip del servidor repositorio no opengnsys.

Repositorios mobiles, usb, dvd

/mnt/$DVD-$id
/mnt/$USB-$id

Acceso a los repositorios remotos, locales o extraibles desde un cliente arrancado por pxe o live CD

Al montar un repositorio, local o remoto, el sistema exportará tambien las variables: $CACHE, $REPO, $IPSERVIDOR-ALT, $DVD, $USB

Acceso al servidor base                                  =>  MountRepo($IPservidor,protocolo)    ->     /opt/opengnsys/images/$IPservidor [[BR]]
Acceso a la cache local                                  =>  MountCache()    ->    /opt/opengnsys/images/$IPlocal [[BR]]
Acceso a una cache de cliente remoto o servidor alterno  =>  MountRepo(host,protocolo)    ->     $REPO-$IP="/opt/opengnsys/images/$IPhostremoto[[BR]]
Acceso a dispositivo almacenamiento extraible            =>  MountStorage(por definir)  ->    

Acceso a los repositorios cache desde un cliente OFFline basado en la partición rescate cache

--- Modificación de MountCache para que monte el raiz(/) también  en /mnt/$IP ---

Contenido de las cache var/opt/$package$/images/

Por cada imagen que se genera se crean tres archivos:

  • la imagen monolíticas creadas con las herramientes ntfsclone, partimage, partclone, fsarchiver ....
  • La información de los torrent de dichas imágenes. $imagen.torrent
  • la información para la transferencia por multicast $imagen.mcast

los subdirectorios donde se ubicarán los archivos se indican como parámetros de la función.

Acceso al repositorio para restaurar o crear imagen

El acceso a una imagen en el repositorio global (remoto) es

$REPO$REPOMAN subdirectorio/ imagen

El acceso a una imagen en el repositorio local (cache) es

$CACHE$REPOMAN subdirectorio/ imagen

Beneficios de esta estructura

  • El repositorio local(CACHE), irá creando la misma estructura de directorios que el servidor principal.

Si su particion CACHE es la sda3, ésta inicialemente solo contendrá el /opt/opengensys/images (coincide con la estrucutra del servidor opengnyss). En este punto se puede decidir si utilizar la CACHE como Sistema Operativo de respaldo en modo Offline (función MakeOffline?). Con las ventajas de disponibilidad y rápidez de inicialización.

  • Si accedemos a un punto torrent por nfs, la metainfo coincide.

Ejemplo de sincronización entre $REPO y $CACHE

UpdateCache? $IPservidor subdirectorio nombreimagen => Se descarga la imagen ubicada en $REPO$REPOMAN, la almacena en $CACHE$REPOMAN


Estructura de los repositorios tipo EAC

El repositorio ubicado en el servidor:

/var/opt/%package$/hdimages

El repositorio ubicado en los clientes
/mnt/$dispositivoTipoCACHE$/var/opt/$package/hdimages/

Acceso a los repositorios

El sistema exporta las siguientes variables: $REPO="/var/opt/$package$/hdimages"
$CACHE="/mnt/%dispositivoTipoCACHE%"

El acceso a una imagen en el repositorio global (remoto) es

$REPO subdirectorio/ imagen

El acceso a una imagen en el repositorio local (cache) es

$CACHE$REPO subdirectorio/ imagen

Beneficios de esta estructura

El repositorio local(CACHE), irá creando la misma estructura de directorios que el servidor principal.
Si su particion CACHE es la sda3, ésta inicialemente solo contendrá el /var/opt/$package%/hdimages (coincide con el valor de la variable $REPO). En este punto se puede decidir si utilizar la CACHE como Sistema Operativo de respaldo en modo Offline (función MakeOffline?). Con las ventajas de disponibilidad y rápidez de inicialización.

Ejemplo de sincronización entre $REPO y $CACHE

UpdateCache? $IPservidor subdirectorio nombreimagen => Se descarga la imagen ubicada en $REPO, la almacena en $CACHE$REPO.