Title: Distributed File System
1Distributed File System
DFS
2Definición
- Método de almacenaje y acceso de archivos
basados en una arquitectura cliente/servidor.
Webopedia - Aplicación cliente/servidor, que permite el
acceso y procesado de datos almacenados en un
servidor, como si estuvieran local. WhatIs.com - Sistema de archivos que soporta compartir
archivos, impresoras y otros recursos en la forma
de almacenaje permanente a través de la red.
Wikipedia
3CaracterÃsticas Principales
- Clientes y Servidores Basada en arquitectura
cliente/servidor. - Distribución Los archivos están distribuidos
entre los servidores. - Transparencia Acceso centralizado a los
archivos. - Desempeño Que la latencia de envió y búsqueda de
archivos sea mÃnimo. - Concurrencia Trabajo concurrente un mismo
archivo.
4Andrew File System
AFS
5Definición
AFS
- El Andrew File System es un sistema de archivos
distribuido a través de la red que fue
desarrollado como parte del proyecto Andrew por
parte de la Universidad Carnegie Mellon. Su uso
fundamental está en la computación distribuida.
6Proyecto Andrew
AFS
- Inicios en la universidad Carnegie Mellon para
desarrollar un ambiente computarizado distribuido
en el campus (1984) - En 1985 recibe el nombre de Andrew por Andrew
Carnegie y Andrew Mellon. - Andrew Toolkit
- Andrew Messaging System
- Andrew File System
- Andrew window manager
7Historia
AFS
- Proyecto Andrew
- Comercialización en 1989 por la empresa Transarc
- En el año 2000 IBM libera una versión opensource.
- OPENAFS
- Extensión a otros sistemas operativos
8Diseño de AFS
AFS
- Basado en las siguientes premisas
- La lectura es más frecuente que la escritura
- Un único escritor de archivos
- Acceso secuencial
- Se decide implementar un algoritmo optimista
Cargar la mayor cantidad de datos posibles en el
cliente.
9CaracterÃsticas
AFS
- Utiliza Kerberos para la autentificación
- Listas de control de acceso
- Caching a nivel del cliente mejora el
rendimiento - Utiliza el concepto de volumen
- Existe transparencia de
- Movilidad
- Localización
- Escalabilidad
- Acceso
10Caching en AFS
AFS
- Se chequea la consistencia antes de cada read
- Los archivos de sólo lectura son considerados
consistentes - Los archivos de lectura-escritura son
considerados consistentes si existe un callback
promise - El tiempo de vida de un callback expira.
- Los archivos grandes están divididos en chunks
11Volumen en AFS
AFS
- Un árbol de ficheros y subdirectorios creados por
los administradores y los enlazados con una ruta
especÃfica en una celda AFS - Puede existir quota asignada a cada volumen
- Los volúmenes pueden ser replicados para copias
de respaldo de sólo lectura - AFS garantiza que todos los volúmenes de sólo
lectura contienen copias iguales del volumen
original de lectura-escritura
12Replicación de servidores AFS
AFS
- Volume Location Database (VLDB) Mantiene
información de la ubicación fÃsica de cada
volumen de datos (IP del servidor de archivos y
nombre de la partición) - Proporciona estabilidad
- Existe un único nodo /afs desde el cual se les
dan subdirectorios a cada nodo
13Definición Célula
- Colección de servidores AFS bajo una
administración común, presentando un único
sistema de archivos lógico
14OpenAFS
- Implementación de código abierto de AFS
desarrollada por IBM bajo IBM Public License
15Distributed File System
DFS
16Definición
(MS)DFS
- Es un conjunto de servicios que permiten
organizar varios SMB distribuidos en una red como
un único DFS. - Server Message Block Es un protocolo de red a
nivel de aplicación, básicamente para compartir
acceso a archivos, impresoras, etc. Barry
Feigenbaum IBM, DOS Interrupt 33 localgtnfs.
SAMBA es una reimplementación libre.
17Tipos
(MS)DFS
- Standalone Locales, sin tolerancia a fallas.
- Domain-Based Replicado, tolerante a fallas,
balanceo de cargas.
18TecnologÃa
(MS)DFS
- DFS-N Balanceo de cargas.
- DFS-R Control de replicación.
- Remote Differential Compresion (RDC) Solo se
envÃan los cambios sobre el archivo.
19CaracterÃsticas principales
(MS)DFS
- Fácil acceso
- Fácil administración
- Disponibilidad
- Balanceo de cargas
- Seguridad (Autenticación)
- Instantáneas incrementales
- No usa cache (Offline Folders)
20Gluster File System
GlusterFS
21Definición
GlusterFS
- Es un clustered file system diseñado para súper
almacenaje a bajo precio.
22CaracterÃsticas principales
GlusterFS
- Escalabilidad lineal
- Diseñada para almacenar petabytes
- Simple, y fácil de instalar y expandir
- Desarrollada sobre FS existentes
- Compatible con varias tecnologÃas de redes
(Infiniband, TCP/IP) - Cuellos de botella reducidos (Distribuido)
- Espacio de memoria de cliente
- Soporta redundancia
- No tolerante a fallos
23Diseño
GlusterDFS
24Global File System
GFS
25CaracterÃsticas Principales
GFS
- Disponible para Clusters basados en Linux
- Distinto de AFS. Coda o InterMezzo porque
requiere que todos los nodos tengan acceso
directo y concurrente al mismo Block Storage. - Un Block Storage se refiere al acceso a bloques
de disco de forma aleatoria. Normalmente es una
abstracción sobre los discos que no se presenta
ante el usuario final, lo abstrae el File System. - No hay nodos clientes/Servidores, la comunicación
es de igual a igual (peer to peer)
26CaracterÃsticas Principales
GFS
- Requiere del uso de un Distributed Lock Manager
(DLM) (GULM o GDLM) - Un DLM provee acceso sincronizado a los recursos
compartidos entre aplicaciones distribuidas. - Null lock (NL) denota interés en un recurso pero
no evita que otros procesos lo bloquen. - Lectura Concurrente (CR) Indica interés en el
recurso como lectura. Evita que otros procesos
obtengan acceso exclusivo al recurso. - Escritura Concurrente (CW) Indica el deseo de
leer y actualizar un recurso. Permite que otros
tengan acceso de lectura y actualización sobre el
recurso pero evita que se otro obtenga permiso
exclusivo al recurso.
27CaracterÃsticas Principales
GFS
- DLM
- Lectura Protegida (PR) protección usual, leer un
recurso y evitar que otros procesos lo
modifiquen. Otros también pueden leerlo. - Escritura Protegida (PW) Protección usual,
manifiesta el deseo de escribir un recurso y
permite que otros procesos lean dicho recurso.
Mas ningún otro puede hacer actualizaciones. - Exclusivo (EX) permite la lectura y escritura
del recurso evitando que otros procesos tengan
cualquier tipo de acceso a ellos. - Los recursos pueden ser Bases de datos, Tablas,
Registros, Campos o Archivos.
28CaracterÃsticas Principales
GFS
- Se vale de enlaces de fibra óptica, iSCSI
(Internet SCSI/protocolo tcp/ip) o AoE (Ata over
Ethernet). - Maximum filename Length 255
- Allowable characters in directory entries Any
byte except NUL. - Maximum pathname lengthNo limit defined
- Maximum File Size 2 TB to 8EB63
- Maximum Volume Size 2TB to 8EB63
- Stores files owner YES
- Posix file permissions YES
- Creation timestamps NO
- Last access read timestamp YES
- Last metadata change timestamp YES
- Last archive timestamps NO
- Access control list YES
- Security / Mac Labels YES
- Extended atributes / Alternate Data Streams /
forks YES - Checksum / ECC NO
29Historia
GFS
- Desarrollado en la Universidad de Minnesota.
- Pasó a la compañÃa Sistina Software que fue
adquirida por RedHat en el 2003. - En el 2004 RedHat libera muchas piezas
estructurales de la configuración de un Cluster
bajo GPL. - Está incluido en Fedora Core (a partir de FC4).
- V1 SGI IRIX solamente
- V3 Portado a Linux
- V4 Journalling(similar a listas de intención
circulares) - V5 Redundant Lock Manager
- V6.1 Distributed Lock Manager.
30Google File System
GoogleFS
31Historia
GoogleFS
- Fue diseñado por Larry Page y Sergei Brin en los
primeros dÃas de Google, cuando tenÃan sede en
Stanford. - Parte de un proyecto anterior de Google llamado
BigFiles para guardar datos de alto volumen de
forma persistente, procedentes de la exploración
de internet para generar un sistema de búsqueda
de alto desempeño. - Diseñado para ejecutarse en un conjunto de
clusters de bajo costo.
32CaracterÃsticas principales
GoogleFS
- Es software propietario (como no serlo si es el
negocio de Google) - Desarrollado por Google
- Basado en linux
- Está optimizado para las necesidades de
almacenamiento del núcleo de datos de google, sus
necesidades de búsqueda en la web. - La data se guarda persistentemente en múltiples y
muy largos (varios GB ) archivos, que son muy
raramente sobrescritos, reducidos o suprimidos. - Las operaciones comunes son agregar un nuevo
archivo o leer..
33CaracterÃsticas principales
GoogleFS
- Está especialmente diseñado optimizado para los
clusters de procesamiento de google. - Los nodos se dividen en dos tipos, Master Nodes
y Chunkservers. - Los chunkservers guardan los archivos de datos,
cada uno de estos archivos se guardan por trozos
de tamaño fijo, de ahà su nombre (chunk). Estos
trozos son de aprox. 64 MB similar a clusters o
file systems regulares. A cada chunk se le
asigna una etiqueta única de 64 bits y se
mantienen mappings lógicos entre los pedazos que
constituyen dicho archivo. Cada pedazo se
repliega un número de veces. 3 es el mÃnimo pero
depende de la demanda. - Ejemplo los ejecutables se replican muchas veces.
34CaracterÃsticas principales
GoogleFS
- El Master Server no almacena los chunks (pedazos)
reales, sino la metadata asociada a los pedazos,
como - El mapping de las tablas de 64bits a las
locaciones de los pedazos y los archivos que
constituyen. - Las locaciones de las copias de los pedazos.
- Que pedazos están siendo escritos o leÃdos y por
quien. - Cuantos nodos replicantes están aún vivos para
hacer nuevas réplicas si caen de cierto umbral. - El Master server sabe que nodos siguen vivos
mediante sus heart-beat messages.
35PermisologÃa y Paridad de datos
GoogleFS
- El master server da permisologÃa a un proceso
para determinado chunk, durante es intervalo (que
expira) nadie más puede acceder dicho pedazo. El
chunkserver con modificaciones, que siempre es el
primario, propaga los cambios a las copias. - Los cambios no se guardan hasta que todos los
chunkservers involucrados garantizen la
efectividad del cambio(ack), proveyendo asÃ
atomicidad de la operación de actualización.
36Acceso a datos
GoogleFS
- Los programas acceden los chunks consultando
primero al Master Server para localizarles en
los chunkservers. Si el programa hace accesos
posteriores se comunica directamente con los
chunkserver ya que obtuvo la información
necesaria para localizarles en la primera
consulta al master server.
37CrÃticas / argumentos de Google
GoogleFS
- Hay un solo Master Server.
- Mecanismos de back up mediante servidores sombra.
- Escalabilidad y confiabilidad limitadas ya que se
sobrecarga al Master Server y se acorta su vida
útil. - Los metadatos son muy compactos. Y el Master
Server es un equipo capaz de soportar la carga. - Cuello de botella en el Master Server
- Solo se pide metadatos que generalmente está en
caché y se simplifica el trabajo de asegurar la
integridad de los datos, la atomicidad de las
operaciones, el balanceo de carga y la seguridad.
38Arquitectura
nfsd mountd lockd statd
lockd statd
/etc/fstab
/etc/exports
La red
39Arquitectura
aplicación
aplicación
Llamadas al sistema
núcleo
VFS
VFS
Sistema de archivos UNIX
Sistema de archivos UNIX
Servidor NFS
Cliente NFS
La red
40VFS
- Provee una interfaz generalizada para manejar
objetos de tipo archivo. - Esconde a la aplicación las diferencias de
implementación de los diferentes sistemas de
archivo montados localmente a través de una
interfaz basada en v-nodos dando al usuario la
ilusión de un sistema de archivos homogéneo.
41VFS
- Provee una interfaz generalizada para manejar
objetos de tipo archivo. - Esconde a la aplicación las diferencias de
implementación de los diferentes sistemas de
archivo montados localmente a través de una
interfaz basada en v-nodos dando al usuario la
ilusión de un sistema de archivos homogéneo.
42VFS
- Provee descriptores de archivo opacos al usuario
(filehandles) para manejar las operacioens sobre
los archivos remotos. La capa maneja estos
apuntadores internamente y da al usuario
descriptores de archivo convencionales
permitiendo la transparencia de acceso.
43v-nodos
- La interfaz basada en v-nodos es un conjunto de
servicios del sistema operativo para acceder de
manera transparente a todos los sistemas de
archivo.
44v-nodos
Llamada al sistema
operación con v-nodo
VFS
VFS
RPC
Operación con i-nodo
El VFS traduce la semántica de las llamadas a
sistema en las acciones Apropiadas para cada
sistema de archivos subyacente.
Sistema de Archivos estándar
45Identificadores de archivo
aplicación
Los filehandle son apuntadores que representan un
i-nodo en el servidor
descriptor de archivo convencional
lookup() mount()
VFS
VFS
filehandle
RPC
46File-Handle
El filehandle en los sistemas UNIX es una
codificación basada en los i-nodos
Número de generación de i-nodos
Número de i-nodo
Identificador del filesystem
47El protocolo RPC de NFS es sin estados
48Consecuencias
- Las peticiones deben describir completamente la
operación (filehandle, offset, etc.) - La mayorÃa de las operaciones se diseñaron para
ser idempotentes de manera que se pueda
implementar la regla al menos una vez.
49Consecuencias
- Los clientes esperan respuesta de cada petición
que hacen. Si no la han recibido después de un
timeout (en caso de un servidor caÃdo) la
rertansmiten hasta que recibirla. Esto es seguro
porque las operaciones son idempotentes. - El servidor mantiene un cache de operaciones para
descartar las operaciones repetidas.
50Modos de montado
- Montado rÃgido (hard mount) El cliente se
bloquea en la operación hasta que el servidor se
reestablezca. El servidor NFS es percibido como
un disco lento. - Montado suave (soft mount) El cliente reconoce
la falla después de un timeout y toma las
medidas necesarias de recuperación.
51Caching
- Todas las operaciones de lectura o escritura
pasan a través de la cache. - El modo de lectura anticipada optimiza las
lecturas. - El modo de escritura retardada optimiza las
escrituras.
52Locks
- Se recrea el estado que la capacidad de hacer
locks trae implÃcito con la ayuda de los demonios
lockd y statd. - Se utilizan directorios para recordar los
clientes que han hecho locking. Con cada nuevo
levntamiento del servidor se notifica a todos los
clientes en estos registros para que vuelvan a
pedir el lock.
53Cómo cumple NFS conel modelo DFS
54Transparencia de acceso
- El módulo cliente de NFS emula la semántica de
las primitivas del sistema de archivos estándar
proporcionando una iterfaz de aplicación idéntica
a la del sistema de archivos normal de UNIX. - El sistema de archivos virtual (VFS) esconde a
los prosesos de usuario el manejo de archivos
remotos a través de los v-nodos.
55Transparencia de ubicación
- Los clientes establecen un espacio de nombres
añadiendo directorios montados en volúmenes
remotos sobre su espacio local de nombres. Cada
cliente determina sus propios puntos de montaje
por lo que NFS no fuerza un espacio de nombres
único a través de la red. Sin embargo se puede
lograr con una configuración adecuada.
56Transparencia de movilidad
- Los clientes deben mantener tablas que
especifiquen la ubicación de cada sistema de
archivo remoto que pretendan montar (generalmente
en /etc/fstab en un sistema UNIX). Si algún
sistema de archivos se mueve de un servidor a
otro las tablas deben ser actualizadas en cada
cliente.
57Consistencia
- NFS ofrece una aproximación bastante cercana a la
semántica de una copia del sistema de archivos
estándar de UNIX. Sin embargo no se recomienda
para uso en aplicaciones concurrentes que exijan
una fuerte comunicación o coordinación entre
procesos de diferentes computadores.
58Replicación
- Se pueden replicar archivos de lectura pero no
está soportada la replicación de archivos
actualizables.