Sistema de archivos distribuido en Windows 7. Sistemas de archivos distribuidos. Seguridad de archivos y carpetas

Un componente clave de cualquier sistema distribuido es el sistema de archivos. Al igual que en los sistemas centralizados, en un sistema distribuido la función del sistema de archivos es almacenar programas y datos y brindar acceso a ellos según sea necesario. Un sistema de archivos es mantenido por una o más máquinas llamadas servidores de archivos. Los servidores de archivos interceptan solicitudes de lectura o escritura de archivos de otras máquinas (no servidores). Estas otras máquinas se llaman clientes. Cada solicitud enviada se verifica y ejecuta, y se envía una respuesta. Los servidores de archivos suelen contener sistemas de archivos jerárquicos, cada uno con un directorio raíz y más directorios. niveles bajos. Estación de trabajo puede adjuntar y montar estos sistemas de archivos en sus sistemas de archivos locales. En este caso, los sistemas de archivos montados permanecen en los servidores.

Es importante comprender la diferencia entre un servicio de archivos y un servidor de archivos. Un servicio de archivos es una descripción de las funciones que un sistema de archivos ofrece a sus usuarios. Esta descripción incluye las primitivas disponibles, sus parámetros y las funciones que realizan. Desde la perspectiva del usuario, un servicio de archivos define con qué pueden trabajar los usuarios, pero no dice nada sobre cómo se implementa. Básicamente, un servicio de archivos define la interfaz del sistema de archivos con los clientes.

Un servidor de archivos es un proceso que se ejecuta en una máquina separada y ayuda a implementar un servicio de archivos. Un sistema puede tener uno o más servidores de archivos, pero en un sistema distribuido bien organizado, los usuarios no saben cómo se implementa el sistema de archivos. En particular, desconocen el número de servidores de archivos, su ubicación y sus funciones. Sólo saben que si se define un procedimiento en un servicio de archivos, entonces el trabajo requerido se realiza de alguna manera y se les devuelven los resultados requeridos. Además, los usuarios ni siquiera necesitan saber que el servicio de archivos se distribuye. Idealmente, debería verse igual que en el sistema de archivos centralizado.

Dado que un servidor de archivos suele ser solo un proceso de usuario (o, a veces, un proceso del núcleo) que se ejecuta en alguna máquina, puede haber varios servidores de archivos en un sistema, cada uno de los cuales ofrece un servicio de archivos diferente. Por ejemplo, en un sistema distribuido puede haber dos servidores que proporcionen servicios de archivos. Sistemas UNIX y MS-DOS, respectivamente, y cualquier proceso de usuario utiliza el servicio apropiado.

El servicio de archivos en los sistemas de archivos distribuidos (así como en los centralizados) tiene dos partes funcionalmente diferentes: el servicio de archivos en sí y el servicio de directorio. El primero se refiere a las operaciones en archivos separados, como leer, escribir o agregar, y el segundo, crear y administrar directorios, agregar y eliminar archivos de directorios, etc.



Para cualquiera servicio de archivos, ya sea centralizado o distribuido, la pregunta más importante es, ¿qué es un archivo? En muchos sistemas, como UNIX y MS DOS, un archivo es una secuencia de bytes no interpretada. El significado y la estructura de la información del archivo son competencia de los programas de aplicación; al sistema operativo no le interesa.

Compatible con sistema operativo mainframe diferentes tipos Organización lógica de archivos, cada uno con diferentes propiedades. Un archivo se puede organizar como una secuencia de registros y el sistema operativo tiene llamadas que le permiten operar al nivel de esos registros. La mayoría de los sistemas de archivos distribuidos modernos admiten la definición de un archivo como una secuencia de bytes en lugar de una secuencia de registros. El archivo se caracteriza por atributos: nombre, tamaño, fecha de creación, ID del propietario, dirección y otros.

Un aspecto importante El modelo de archivo es la capacidad de modificar un archivo después de su creación. Normalmente los archivos se pueden modificar, pero en algunos sistemas distribuidos las únicas operaciones sobre archivos son CREAR y LEER. Estos archivos se denominan inmutables. Para archivos inmutables, es mucho más fácil almacenar en caché el archivo y replicarlo, ya que se eliminan todos los problemas asociados con la actualización de todas las copias del archivo cuando cambia.

Un servicio de archivos se puede dividir en dos tipos dependiendo de si admite el modelo de carga-carga o el acceso remoto. En el modelo de carga y descarga, se ofrece al usuario un medio para leer o escribir el archivo completo. Este modelo asume el siguiente esquema de procesamiento de archivos: leer el archivo desde el servidor a la máquina del cliente, procesar el archivo en la máquina del cliente y escribir el archivo actualizado en el servidor. La ventaja de este modelo es su simplicidad conceptual. Además, transferir el archivo completo es muy eficaz. La principal desventaja de este modelo son los altos requisitos para los discos del cliente. Además, es ineficaz mover todo el archivo si sólo se necesita una pequeña parte.

Otro tipo de servicio de archivos corresponde a un modelo de acceso remoto, que implica soportar gran cantidad operaciones en archivos: abrir y cerrar archivos, leer y escribir partes de un archivo, posicionar en un archivo, verificar y cambiar atributos de archivo, etc. Mientras que en el modelo de carga-descarga el servidor de archivos solo proporcionaba almacenamiento y movimiento de archivos, en en este caso todo el sistema de archivos se ejecuta en los servidores, no en máquinas cliente. La ventaja de este enfoque son los bajos requisitos de Espacio del disco en las máquinas cliente, además de eliminar la necesidad de transferir el archivo completo cuando solo se necesita una parte.

La naturaleza del servicio de directorio es independiente del tipo de modelo de servicio de archivos utilizado. Los sistemas distribuidos utilizan los mismos principios de organización de directorios que los sistemas centralizados, incluida la organización de directorios de varios niveles.

Un problema fundamental con los métodos de denominación de archivos es la transparencia. En este contexto, la transparencia se entiende en dos sentidos poco diferenciables. La primera, la transparencia de la ubicación, significa que los nombres no permiten determinar la ubicación del archivo. Por ejemplo, nombre /servidor1/dir1/dir2/x dice que el archivo x está ubicado en el servidor 1, pero no indica dónde está ubicado ese servidor. El servidor puede moverse a través de la red y nombre completo el archivo no cambia. En consecuencia, un sistema de este tipo tiene transparencia de ubicación.

En los sistemas que constan de clientes y servidores, existen potencialmente cuatro lugares diferentes para almacenar archivos y sus partes: disco del servidor, memoria del servidor, disco del cliente (si está disponible) y memoria del cliente. El lugar más adecuado para almacenar todos los archivos es el disco del servidor. normalmente tiene gran capacidad y los archivos estarán disponibles para todos los clientes. Además, dado que en este caso sólo hay una copia de cada archivo, no hay problema a la hora de conciliar los estados de las copias.

El desafío al utilizar el disco del servidor es el rendimiento. Antes de que el cliente pueda leer el archivo, el archivo debe escribirse desde el disco del servidor a su RAM y luego se transmite a través de la red a la memoria del cliente. Ambas transferencias toman tiempo.

Se pueden lograr mejoras significativas en el rendimiento almacenando archivos en caché en la memoria del servidor. Se requieren algoritmos para determinar qué archivos o partes de ellos deben almacenarse en la caché.

A la hora de elegir un algoritmo se deben resolver dos problemas. Primero, ¿en qué unidades opera el caché? Estas unidades pueden ser bloques de disco o archivos completos. Si se trata de archivos completos, entonces se pueden almacenar en el disco en áreas contiguas (al menos en forma de secciones grandes), reduciendo así el número de intercambios entre la memoria y el disco y, por tanto, asegurando alto rendimiento. El almacenamiento en caché de bloques de disco le permite utilizar la memoria caché y el espacio en disco de manera más eficiente.

En segundo lugar, es necesario definir una regla para reemplazar datos cuando la memoria caché está llena. Aquí puede utilizar cualquier algoritmo de almacenamiento en caché estándar, por ejemplo, el algoritmo LRU (menos utilizado recientemente), según el cual se desaloja el bloque al que no se ha accedido durante más tiempo.

La memoria caché en el servidor es fácil de implementar y completamente transparente para el cliente. Dado que el servidor puede sincronizar la memoria y el disco, desde el punto de vista de los clientes sólo hay una copia de cada archivo, por lo que no hay problema de coherencia.

Hoy en día es difícil sorprender a alguien con redes extensas y complejas.
topología, disponibilidad de oficinas remotas y móviles. Para administrador
Organizar cualquier servicio en tales condiciones no es tarea fácil. Pero no hay necesidad
olvídate de nuestros usuarios; en este caso tendrán que trabajar con más
número de dispositivos y recursos dispares ubicados en diferentes
computadoras y servidores de red, respectivamente, la búsqueda de la información necesaria puede
ser extremadamente difícil. nos permite resolver esto
problema. Veamos exactamente cómo.

Propósito y capacidades de DFS

Sistema de archivos distribuido DFS (Repartido Sistema de archivos ) apareció como
un componente estándar en Win2k. Su finalidad es facilitar la gestión, acceso y
buscando datos en la web. Para esto recursos de archivos, ubicado en diferentes
Las computadoras se combinan en un único espacio de nombres lógico. Usuario,
en lugar de recordar los nombres de todos los comunes recursos de red(Denominación universal
Convención, UNC), como \\Servidor\Carpeta, accederá a un único espacio
Nombres UNC que combinan todos los servidores y recursos compartidos en la red. Cuál
está en la computadora donde se encuentra el archivo solicitado, eso es una preocupación DFS, usuario
no hay necesidad de preocuparse por la ubicación real del archivo. Cuando un cliente contacta con él
simplemente se transfiere al directorio que necesita. En el lugar de la fuente a la que
indica el enlace, puede ser cualquier sistema operativo a cuyos recursos se accede
Se puede acceder mediante UNC (Windows, Linux, xBSD, NetWare). Físico
objetos vinculados por enlaces a DFS, se llaman objetivo objetos(objetivos) o
réplicas(réplicas).

Pero la comodidad para usuarios y administradores está muy lejos no es lo más importante
principales ventajas de DFS
. La cuestión es que con un nombre lógico puede haber
Hay varios recursos compartidos asociados que almacenan información idéntica.
Una colección de recursos compartidos alternativos asociados con un único nombre lógico
DFS, se llama conjunto de réplicas. Y si los recursos compartidos están en uno
espacio raíz del dominio DFS y están ubicados en servidores Win2k o Win2k3,
es posible personalizar sincronización automática información entre ellos.
El usuario que contactó DFS, generalmente redirige a la réplica más cercana, y
si no está disponible, será redirigido a un recurso alternativo. Para
reduciendo la carga del servidor DFS en el lado del cliente los datos se almacenan en caché, por lo que
Cuando se accede con frecuencia al mismo recurso, cada solicitud para DFS No
es producido. Así, automático copia de seguridad de información importante,
comprendió en DFS, también aumenta la tolerancia a fallos de todo el sistema (salida
un servidor o dispositivo de disco no afectará la experiencia del usuario).
Aunque cabe recordar que DFS no fue diseñado para funcionar frecuentemente con actualizaciones
datos, y especialmente para aquellos casos en los que el fichero puede actualizarse simultáneamente en
varios lugares (en DFS la versión del archivo donde se realizaron los últimos cambios permanece
cambios).

En implementación DFS en Win2k fue posible acomodar solo un espacio de nombres,
en Win2k3 es posible que ya existan varios de ellos. En Win2k3 apareció R2. una nueva version este
sistemas - Espacios de nombres DFS, en el que ya se han resuelto muchas cuestiones. Para replicación
los datos en Win2k3 SP1 y SP2 responden FRS (Servidor de replicación de archivos), en Win2k3 R2 -
Replicación DFS norte. Su principal diferencia es que en FRS el mas pequeño
el objeto a replicar es un archivo, en Replicación DFS usado
tecnología más avanzada RDC (Compresión diferencial remota), que puede
copie solo las partes modificadas del archivo y la función entre archivos RDC menos
carga el canal al copiar archivos nuevos. Entonces usando DFS
También reduce la carga en la red, lo cual es especialmente importante para oficinas remotas Con
rendimiento insuficiente. En servicio DFS es inútil
características de seguridad adicionales. Al acceder a objetivos
Sólo se comprueban los permisos del sistema de archivos y los establecidos para estos.
objetos de permiso en el directorio Directorio Activo.

Estas diferentes raíces

El punto de partida para todos los nombres de árboles. DFS sirve como raíz de la distribución
sistema de archivos. De hecho, la raíz es algún recurso compartido ubicado en
servidor, todos los demás Nombres lógicos del sistema DFS se conectará como
siguiente nivel jerárquico. Raíces en DFS puede ser de dos tipos, cada uno
difiere en los métodos y capacidades de almacenamiento de datos. Aislado (autónomo)
raíz ( DFS independiente) no está asociado con Active Directory y todos los enlaces son a la red
Los recursos se almacenan en el registro del propio servidor. DFS. Esta raíz no usa
DFS
Replicación
, es decir, no implica duplicación de información sobre otros recursos,
y por lo tanto no proporciona tolerancia a fallos. En caso de fallo Servidores DFS
toda la jerarquía se vuelve inaccesible, aunque los usuarios pueden acceder
recursos directamente. Por cierto, varios servidores DFS independientes Disponible para trabajar
en un clúster, por lo que este problema se puede resolver. Si el servidor DFS es
miembro de un dominio, se utiliza la raíz del dominio ( DFS basado en dominio). Con este
opción, puede conectar varias réplicas y utilizar Replicación DFS Para
replicación tanto de la raíz como de los enlaces DFS. si en DFS basado en dominio raíces
están en computadoras que ejecutan Win2k y Win2k3, entonces dicha raíz
llamado " Dominio de modo mixto DFS".

Con dominio DFS toda la información del espacio de nombres está en el controlador
dominio al que el servidor accede periódicamente DFS. Considerando la sincronización
entre DFS en un ámbito que se vuelve más complejo con cada cambio
estructuras, estas solicitudes pueden ser un cuello de botella en el sistema, por lo que en este caso
También hay algunas restricciones. Entonces en Win2k había un límite de 16
raíces para un espacio de nombres. En Win2k3 esta limitación se elimina, ya que
servidor DFS Ahora puede acceder a cualquier DC, no solo al emulador de PDC.
La segunda limitación de las raíces de dominio se debe al hecho de que toda la estructura se almacena en
objeto especial, que también debe duplicarse en todos los DC para cualquier
el más mínimo cambio en la estructura DFS. La documentación recomienda limitar
el tamaño máximo del objeto es 5 MB, lo que corresponde aproximadamente a 5000
enlaces (directorios). Este valor depende de muchos parámetros, longitud del nombre.
enlaces, presencia y tamaño de los comentarios, que también se almacenan en este objeto.
Pero en promedio DFS rara vez supera los 50-100 enlaces, y después del inicial
configuración, permanece mayoritariamente estático, lo que significa que no suele duplicarse
sucederá, y estas limitaciones simplemente no se pueden lograr. Por cierto, en el futuro
ventana 2008 ya se ha eliminado el límite de 5000 enlaces, pero todos los servidores son para esto
debe correr bajo Longhorn. Para Se recomienda DFS independiente
límite de enlace
un orden de magnitud mayor y equivale a 50.000 enlaces.

Configurando DFS

Por ejemplo, configuremos DFS en una computadora que ejecuta Win2k3 con SP2, todo
La configuración en SP1 es similar. En la configuración de DFS hay algunos en R2 y Win2k
diferencias, pero no tan globales como para que no puedas resolverlas por tu cuenta. Todo
El sistema de archivos distribuido se gestiona centralmente con
usando el complemento MMC Sistema de archivos distribuido DFS", que puedes
Llame a la pestaña "Administración" del Panel de control de Windows. con su ayuda
puedes crear y eliminar raíces, conectarte a cualquier raíz DFS. Es conveniente que en
Una pestaña puede mostrar múltiples raíces DFS. En el caso de que la raíz trabaje en " Mezclado
modo dominio DFS
", es decir, cuando las réplicas y las raíces DFS ubicado en computadoras
gobernado por diferentes versiones control de ventanas DFS debe ser producido con
computadora con Win2k3. Alternativamente, puede instalar el paquete Administración Win2k3 Paquete de herramientas (adminpak.msi), que se encuentra en acceso libre en
sitio web de la corporación. En este caso, los ordenadores con
WinXP. La información sobre este paquete se puede encontrar en

support.microsoft.com/kb/304718. Además, para trabajar con DFS tú también puedes
utilice las utilidades de línea de comandos dfscmd.exe y dfsutil.exe. Este último tiene
más funciones, pero no incluidas en el sistema operativo de forma predeterminada,
Para usarlo, debe instalar el paquete de herramientas de soporte de Win2k3. Contrarrestar
Tenga en cuenta que para instalar correctamente las herramientas de soporte necesita descargar dos archivos:
suptools.msi y soporte.cab.

Para crear una nueva raíz, llame al complemento, haga clic en el título y
Menú de contexto seleccione "Crear raíz" (Nueva raíz), como opción, puede
seleccione un elemento similar en el menú "Acción". Aparece el asistente Crear nuevo
root (Asistente para nueva raíz), siga sus indicaciones. En el segundo paso, seleccione el tipo
raíz que se creará (dominio o aislado), especifique el dominio del operador y
servidor. Después de verificar la conexión al servidor seleccionado, ingrese el nombre raíz. Contrarrestar
Preste atención a cómo se verá la ruta UNC a la nueva raíz, de forma predeterminada \\server\nameshare.
Desde entonces este momento catalogo general no existe, en el siguiente paso necesitas
seleccione un directorio local para usarlo como directorio compartido. Este
el directorio no contiene datos reales, contendrá enlaces indicando
a la ubicación física de los datos. El asistente crea recursos de sólo lectura y
ejecución a los miembros del grupo de Usuarios. Debe ajustarse si es necesario
permisos. Ahora haga clic en el botón Finalizar, la nueva raíz aparecerá en la ventana de la consola.
Si el servidor ejecuta Win2k3, cree de manera similar
otras raíces. Utilizando el comando Comprobar estado, llamado desde
menú de la consola o menú contextual, puede comprobar el estado de la réplica. Estado
se indicará en la columna del mismo nombre y aparecerá un círculo con una marca al lado del nombre.
Si es verde, entonces todo está bien. Para comprobarlo puedes ir a
UNC especificado o utilice el comando "net share" en la computadora local o
"net view nombre_computadora" desde el control remoto. Comando "dfsutil /Root:\\servidor\compartir /Ver"
Mostrará información sobre DFS.

>dfsutil /Root:\\server.com\first /Ver
Utilidad DFS versión 5.2 (basada en 5.2.3790.3959)
Raíz de dominio con 0 enlaces
Nombre raíz="\\SERVIDOR\primero" Comentario="primera raíz" Estado="1" Tiempo de espera="300"
Servidor de destino="GRINDERS" Carpeta="primer" Estado="2"

Una vez creada la raíz, puede publicarla en Active Directory. Para este propósito en
seleccione Propiedades en el menú contextual, vaya a la pestaña Publicación y
Marque la casilla de verificación "Publicar esta raíz en Active Directory". Dominio
Las raíces se publican automáticamente y sin falta.

Creación de enlaces

Una vez creada la raíz, puede comenzar a conectar recursos compartidos. ¿Por qué en eso?
En el mismo menú contextual, seleccione Nuevo enlace. En la ventana que aparece
"Nuevo enlace", en el campo "Nombre del enlace", ingrese el nombre del enlace bajo el cual será
disponible en DFS, luego justo debajo de la ruta UNC al directorio de destino (ya debería
existir). Para buscar recursos compartidos, puede utilizar el botón Examinar, simplemente
A continuación puede cambiar el tiempo de almacenamiento en caché de este enlace para los clientes. DFS(por defecto
1800 segundos). Cuando termine, haga clic en Aceptar. El comando "dfsutil /view" debería
muestra el estado de todos los enlaces conectados y sus propiedades. Si la red funciona
varios servidores, es posible agregar una réplica que apunte a
enlace alternativo. Se crea una réplica en la raíz o en un objeto independiente.
de manera similar, solo en el primer caso, en el menú contextual seleccione el elemento "Crear
raíz carpeta de destino", y en el segundo - "Crear una carpeta".

Los recursos compartidos que serán replicados deben
ubicado en particiones con archivo sistema NTFS en computadoras ejecutando
gestión de servidores Versiones de Windows desde 2000 (mejor 2003). En el campo "Ruta a"
carpeta compartida de destino" en la ventana que aparece, ingrese o use el botón Examinar
Indicamos un recurso compartido ubicado en otra computadora. En caso de que
para sincronizar la información entre estos recursos se planea utilizar
programas alternativos (o la sincronización se realizará manualmente),
Debe desmarcar la casilla de verificación "Agregar esta carpeta de destino al conjunto de replicación".
destino al conjunto de replicación). Haga clic en Aceptar y aparecerá el asistente de configuración.
replicación (Asistente para configurar la replicación), que le ayudará a elegir
réplica maestra y topología de replicación. En el primer paso, especificamos el directorio que
se utilizará como objetivo principal, toda la información de este
El directorio luego se copiará a otra carpeta. El último debería estar vacío.
si hay archivos en él, se copiarán a un directorio temporal y luego
eliminado. Si por algún motivo el recurso compartido no es adecuado para la replicación
(por ejemplo, no ubicado en una partición NTFS), estará marcado con una cruz roja,
Cuando intente pasar al siguiente paso, el asistente le pedirá que especifique un enlace diferente o
termina el trabajo.

Pulsando el botón " Almacenamiento provisional" (Carpeta de preparación) puede cambiar
Ubicación del directorio que se utilizará para el almacenamiento temporal.
datos replicados. Por defecto, este directorio está ubicado en una partición diferente
desde aquel en el que el recurso compartido asociado con DFS. próximo maestro
le solicita que seleccione una topología de replicación. Deberá especificar uno de
las siguientes opciones:

  • Anillo- todas las réplicas intercambian información con dos vecinas;
  • Estrella (eje y radio)- indica el enlace principal desde el que accederán
    intercambiar información con todas las demás réplicas;
  • Malla completa (Malla)- todas las réplicas se intercambian entre sí;
  • Especial (Personalizado)- Posteriormente, el administrador configurará la replicación de forma independiente.
    para cada par de servidores.

La topología en anillo es la predeterminada y adecuada para la mayoría
casos. Idealmente, la topología de replicación seleccionada debería coincidir con el diseño.
redes. Por ejemplo, si hay Oficina principal donde se encuentran los principales recursos,
y numerosas ramas están conectadas a ellos según sea necesario, entonces en este
En este caso, el esquema Estrella es más adecuado. Si ninguno de los ajustes preestablecidos es adecuado,
consulte la sección Especial.

Después de crear una réplica para un enlace, su icono correspondiente en la ventana del complemento
cambiará. También aparecerán dos nuevos elementos en el menú contextual: Mostrar/Ocultar
estado de replicación y Detener replicación. El campo de estado de replicación puede tener
uno de tres resultados. Si el proceso de replicación se completa normalmente, los iconos
Habrá banderas verdes. Una cruz roja en el icono de réplica indicará que actualmente está
momento no está disponible, la etiqueta en el campo Estado cambiará a Sin conexión. si en
solo algunas réplicas no están disponibles para el enlace que se está verificando, aparecerá un ícono amarillo
Punto de exclamación.

Antes de eliminar una de las réplicas alternativas, primero debe desactivar
replicación. Cuando se reanude la replicación, será recibido por el mismo maestro. Si
el servidor es un controlador de dominio, juntos con todos los datos DFS voluntad
replicar el contenido del volumen SYSVOL. Por ello, cabe recordar que hasta
hasta que se complete la replicación de todas las réplicas, comience cualquier cambio en
configuraciones DFS muy arriesgado, puede alterar la funcionalidad de todo
dominio.

Si la opción de topología de replicación seleccionada por algún motivo no es
abordado, la topología de replicación se puede cambiar fácilmente más tarde seleccionando la ventana
propiedades del enlace correspondiente y yendo a la pestaña Replicación. Aquí están
varios todavía configuraciones útiles. De forma predeterminada, la replicación se ejecuta continuamente,
Al hacer clic en el botón Programar, puede cambiar el programa de replicación para todos
conexiones. Justo debajo hay filtros para archivos y subcarpetas que no están
será replicado. Para hacer esto, haga clic en Editar e ingrese las plantillas de archivos o
subdirectorios.

Para forzar la replicación de la información almacenada en un servidor específico,
puede utilizar la utilidad NtfrsUtl.exe, que se incluye en el paquete
Herramientas de apoyo. El comando es simple: “ntfrsutl poll /now server.com”. Para ver
intervalos de tiempo establecidos en los que se produce la replicación,
debes ingresar "ntfrsutl poll". Todas las configuraciones están disponibles usando el comando "ntfrsutl sets"
servidor.com".

En la ventana de propiedades recurso compartido presentado en el servicio DFS, aparecerán más
una pestaña – DFS. Al abrirlo, el usuario puede ver con qué compartido
carpetas asociadas a este enlace, verifique el estado de la réplica, seleccione la activa
la réplica a la que será redirigido primero.

El administrador debería comprobar el registro con más frecuencia para controlarlo.
"Administración - Visor de eventos - Servicio de replicación de archivos", donde puede
Encuentre información sobre todos los eventos que ocurren con el servicio FRS.

El sistema de archivos distribuido (DFS) brinda la capacidad de administrar unidades de red de manera fácil y transparente. En lugar de utilizar la ubicación física de un recurso de red (por nombre de servidor), los usuarios pueden simplemente conectarse a la raíz del sistema de archivos distribuido.

La raíz de un sistema de archivos distribuido actúa como un punto de distribución lógico para las unidades de red. Esto significa que los usuarios pueden simplemente navegar hasta la raíz del sistema de archivos distribuido y ver una lista de carpetas montadas en esa raíz. Al hacer clic en una carpeta, el usuario puede ver su contenido. Pero es posible que el usuario ni siquiera sospeche que el contenido de la carpeta se encuentra en otro servidor.

Todo esto significa que un sistema de archivos distribuido proporciona nivel adicional Transparencia al acceder al contenido de los recursos de la red. Mucha gente se refiere a este concepto como virtualización del almacenamiento. Cuando se utiliza un sistema de archivos distribuido, el usuario no necesita saber dónde se encuentran físicamente los datos. En su lugar, basta con recordar la ubicación de la raíz del sistema de archivos.

Al administrar lógicamente la ubicación de las unidades de red, puede mover datos entre servidores de la red de forma transparente para los usuarios. Desde el punto de vista de los usuarios, los datos seguirán residiendo en la raíz del sistema de archivos distribuido. Todo lo que se requiere es copiar los datos a otra ubicación y actualizar el enlace del sistema de archivos distribuido al objeto compartido para reflejar la nueva ubicación.

Además de proporcionar acceso transparente a los almacenes de datos, los recursos compartidos administrados por un sistema de archivos distribuido se pueden configurar como socios de replicación. Esto le permite proporcionar un nivel de tolerancia a errores y equilibrio de carga (realizado automáticamente mediante un sistema de archivos distribuido).

Replicación de datos en progreso Servicio de replicación de archivos (FRS), que también replica la carpeta SYSVOL con objetos política de grupo Directorio Activo.

Cuando configura por primera vez un sistema de archivos distribuido, debe especificar un punto de partida para el árbol del sistema de archivos distribuido. Se conoce como raíz del sistema de archivos distribuido. Hay dos tipos de raíz del sistema de archivos distribuido:

  • Raíz aislada (independiente)- La configuración y la arquitectura del espacio de nombres del sistema de archivos distribuido se almacenan localmente en el servidor raíz. Ruta de acceso ( ruta UNC) a la raíz comienza con el nombre del servidor. Una raíz aislada permite que solo exista una raíz del sistema de archivos distribuido por cada espacio de nombres del sistema de archivos distribuido. Esto significa que la raíz no proporciona tolerancia a errores y representa un único punto de error al acceder a los datos.
  • Dominio- el espacio de nombres del sistema de archivos distribuido se almacena en Active Directory. Al utilizar un dominio de sistema de archivos distribuido, se pueden crear múltiples raíces de sistemas de archivos distribuidos tolerantes a fallas y los clientes accederán al sistema de archivos distribuido por nombre de dominio. El uso de la integración de Active Directory permite que los clientes sean redirigidos automáticamente a la raíz del sistema de archivos distribuido en el sitio local de Active Directory, lo que tiene ciertos beneficios en grandes redes, donde la infraestructura del sistema de archivos distribuido puede extenderse a varios sitios.

Otro término que necesitas saber es Enlace del sistema de archivos distribuido (enlace DFS). Las raíces son los puntos de partida de un sistema de archivos distribuido. Cuando agrega enlaces, se determinan los nombres de las unidades de red y las ubicaciones de los datos de la red. Cuando un usuario accede a la raíz de un sistema de archivos distribuido, las relaciones aparecen como subcarpetas lógicas de la raíz.

Actualmente, con el crecimiento de la información, surgen problemas a la hora de almacenar y procesar grandes cantidades de datos. Por lo tanto, estos datos se procesan simultáneamente en varios servidores, que forman clústeres. Para simplificar el trabajo con datos en clústeres, se están desarrollando sistemas de archivos distribuidos. Echaremos un vistazo más de cerca a un ejemplo de un sistema de archivos distribuido. Sistema de archivos de Google utilizado por la empresa Google. (El artículo es, de hecho, una traducción libre y abreviada del artículo original).

SGF Es probablemente el sistema de archivos distribuido más famoso. El almacenamiento de datos confiable y escalable es esencial para cualquier aplicación que trabaje con datos tan grandes como todos los documentos de Internet. SGF es la principal plataforma para almacenar información en Google. SGF- un gran sistema de archivos distribuido capaz de almacenar y procesar grandes cantidades de información.
SGF fue construido en base a los siguientes criterios:

  • El sistema se construye a partir de una gran cantidad de equipos comunes y económicos, que a menudo fallan. Debe haber monitoreo de fallas y capacidad de restaurar el funcionamiento del sistema en caso de falla de algún equipo.
  • El sistema debe almacenar muchos archivos grandes. Por regla general, varios millones de archivos, cada uno de 100 MB o más. A menudo también hay que lidiar con archivos de varios gigabytes, que también deben almacenarse de forma eficiente. También se deben almacenar archivos pequeños, pero el sistema no está optimizado para ellos.
  • Normalmente, hay dos tipos de lecturas: leer una gran cantidad de datos secuenciales y leer una pequeña cantidad de datos aleatorios. Al leer un gran flujo de datos, es común solicitar un fragmento de 1 MB o más. Estas operaciones secuenciales del mismo cliente a menudo leen fragmentos consecutivos del mismo archivo. Leer no es talla grande los datos, por regla general, tienen un volumen de varios kilobytes. Las aplicaciones en las que el tiempo es crítico deben acumularse Una cierta cantidad de dichas consultas y ordenarlas por desplazamiento desde el principio del archivo. Esto evitará deambular de un lado a otro al leer.
  • A menudo hay operaciones para escribir una gran cantidad de datos secuenciales que deben agregarse a un archivo. Normalmente, la cantidad de datos que se van a escribir es del mismo orden que los que se van a leer. Las escrituras en volúmenes pequeños, pero en lugares arbitrarios del archivo, por regla general, no se realizan de manera eficiente.
  • El sistema debe implementar una semántica estrictamente definida. trabajo paralelo varios clientes, si simultáneamente intentan agregar datos al mismo archivo. En este caso, puede suceder que lleguen simultáneamente cientos de solicitudes para escribir en un archivo. Para hacer frente a esto, se utiliza la atomicidad de las operaciones de agregar datos a un archivo, con cierta sincronización. Es decir, si llega una operación de lectura, se ejecutará antes o después de la siguiente operación de escritura.
  • Es preferible un alto rendimiento a una baja latencia. Por tanto, la mayoría de las aplicaciones de Google dan preferencia a trabajar con grandes volúmenes datos, en alta velocidad, Y la ejecución de una única operación de lectura y escritura, en términos generales, se puede ampliar.
Los archivos en GFS se organizan jerárquicamente mediante directorios, como en cualquier otro sistema de archivos, y se identifican por su ruta. Puede realizar las operaciones habituales sobre archivos en GFS: crear, eliminar, abrir, cerrar, leer y escribir.
Además, GFS admite copias de seguridad o instantáneas. Puede crear copias de seguridad de archivos o árboles de directorios a bajo costo.

Arquitectura GFS

La figura está tomada del artículo original.

En el sistema hay servidores maestros y servidores fragmentados, que en realidad almacenan los datos. Generalmente, SGF el clúster consta de una máquina maestra principal (maestra) y muchas máquinas que almacenan fragmentos de archivos: servidores de fragmentos (chunkservers). Los clientes tienen acceso a todas estas máquinas. Los archivos en GFS se dividen en partes: fragmentos (fragmento, se puede decir fragmento). trozo tiene tamaño fijo, que se puede personalizar. Cada uno de estos fragmentos tiene una clave única y global de 64 bits, que emite el maestro al crear el fragmento. Los servidores de fragmentos almacenan fragmentos como los normales archivos de linux, en su disco duro local. Para mayor confiabilidad, cada fragmento se puede replicar en otros servidores de fragmentos. Normalmente se utilizan tres réplicas.
El maestro es responsable de trabajar con los metadatos de todo el sistema de archivos. Los metadatos incluyen espacios de nombres, información de control de acceso a datos, mapeo de archivos en fragmentos y posición actual trozos. El maestro también controla todas las actividades globales del sistema, como la gestión de fragmentos libres, la recolección de basura (recopilación de fragmentos que ya no son necesarios) y el movimiento de fragmentos entre servidores de fragmentos. El maestro intercambia constantemente mensajes (mensajes HeartBeat) con servidores fragmentados para emitir instrucciones y determinar su estado (averiguar si todavía están vivos).
El cliente interactúa con el maestro solo para realizar operaciones relacionadas con metadatos. Todas las operaciones con los datos en sí se realizan directamente con servidores de fragmentos. SGF- el sistema no es compatible con la API POSIX, por lo que los desarrolladores no tuvieron que meterse con la capa VNode de Linux.
Los desarrolladores no utilizan el almacenamiento en caché de datos, aunque los clientes sí utilizan el almacenamiento en caché de metadatos. En servidores fragmentados, el sistema operativo sistema linux y así almacena en caché los bloques más utilizados en la memoria. En general, negarse a almacenar en caché le permite no pensar en el problema de la validez del caché (coherencia del caché).

Maestro

El uso de un asistente simplifica significativamente la arquitectura del sistema. Le permite producir movimientos complejos fragmentos, organiza replicaciones utilizando datos globales. Parecería que tener un solo maestro debería ser el cuello de botella del sistema, pero no es así. Los clientes nunca leen ni escriben datos a través del maestro. En cambio, le preguntan al maestro con qué servidor de fragmentos deben contactar y luego hablan directamente con los servidores de fragmentos.
Veamos cómo lee los datos el cliente. Primero, conociendo el tamaño del trozo,
nombre del archivo y desplazamiento relativo al comienzo del archivo, el cliente determina el número de fragmento dentro del archivo. Luego envía una solicitud al maestro que contiene el nombre del archivo y el número de fragmento de este archivo. El maestro emite servidores de fragmentos, uno en cada réplica, que almacenan el fragmento que necesitamos. El maestro también emite el identificador del fragmento al cliente.
Luego, el cliente decide qué réplica le gusta más (generalmente la más cercana) y envía una solicitud que consta de un fragmento y un desplazamiento relativo al comienzo del fragmento. La lectura adicional de datos no requiere la intervención del asistente. En la práctica, como regla general, el cliente incluye varios fragmentos en una solicitud de lectura y el maestro proporciona las coordenadas de cada uno de los fragmentos en una respuesta.
El tamaño del trozo es característica importante sistemas. Normalmente, se establece en 64 megabytes, que es mucho mayor que el tamaño del bloque en un sistema de archivos normal. Está claro que si es necesario almacenar muchos archivos, cuyo tamaño es menor que el tamaño del fragmento, se consumirá mucha memoria adicional. Pero la elección de un tamaño de trozo tan grande se debe a las tareas que hay que realizar. Google Decida sus grupos. Como regla general, hay que calcular algo para todos los documentos en Internet y, por lo tanto, los archivos en estas tareas son muy grandes.

Metadatos

El maestro almacena tres tipos importantes de metadatos: espacios de nombres de archivos y fragmentos, asignaciones de archivos a fragmentos y la posición de las réplicas de fragmentos. Todos los metadatos se almacenan en la memoria del maestro. Como los metadatos se almacenan en la memoria, las operaciones del asistente son rápidas. El maestro puede conocer la situación del sistema de forma sencilla y eficaz. Escanea servidores fragmentados en fondo. Estos exploraciones periódicas se utiliza para la recolección de basura, replicaciones adicionales, en caso de detección de un servidor de fragmentos no disponible y movimiento de fragmentos, para equilibrar la carga y el espacio libre en los discos duros de los servidores de fragmentos.
El maestro rastrea la posición de los trozos. Cuando se inicia un servidor de fragmentos, el maestro recuerda sus fragmentos. Durante la operación, el maestro controla todos los movimientos de los fragmentos y los estados de los servidores de fragmentos. Así, tiene toda la información sobre la posición de cada trozo.
Una parte importante de los metadatos es el registro de transacciones. El maestro almacena la secuencia de operaciones para romper los cambios de metadatos. Con base en estas marcas en el registro de operaciones, se determina el tiempo lógico del sistema. Es este tiempo lógico el que determina las versiones de archivos y fragmentos.
Dado que el registro de transacciones es una parte importante, debe almacenarse de forma segura y todos los cambios en él deben ser visibles para los clientes sólo cuando cambien los metadatos. El registro de operaciones se replica en varias máquinas remotas y el sistema responde a una operación del cliente solo después de guardar este registro en el disco maestro y en los discos de las máquinas remotas.
El asistente restaura el estado del sistema ejecutando un registro de operaciones. El registro de operaciones se guarda en relación con talla pequeña, manteniendo sólo Transacciones Recientes. En el proceso de trabajo, el maestro crea. puntos de control, cuando el tamaño del registro excede un cierto valor y el sistema solo se puede restaurar en el punto de control más cercano. Además, utilizando el registro, puede reproducir algunas operaciones, de modo que el sistema pueda retroceder a un punto que se encuentre entre el último punto de control y la hora actual.

Interacciones dentro del sistema.

La arquitectura del sistema se describió anteriormente, lo que minimiza la intervención del maestro en la realización de las operaciones. Ahora veamos cómo interactúan el cliente, el maestro y los servidores fragmentados para mover datos, realizar escrituras atómicas y crear una copia de seguridad (instantánea).
Cada cambio en un fragmento debe duplicarse en todas las réplicas y cambiar los metadatos. EN SGF el maestro da un trozo posesión(arrendamiento) a uno de los servidores que almacenan este fragmento. Un servidor de este tipo se denomina réplica primaria. Las réplicas restantes se declaran secundarias. La réplica principal recopila cambios sucesivos fragmento, y todas las réplicas siguen esta secuencia cuando ocurren estos cambios.
Mecanismo posesiones El trozo está diseñado de tal manera que se minimice la carga sobre el maestro. Al asignar memoria, espere primero 60 segundos Y luego, si es necesario, la réplica principal puede solicitar al maestro que extienda este intervalo y, por regla general, recibe una respuesta positiva. Durante este período de espera, el asistente puede deshacer los cambios.
Consideremos en detalle el proceso de registro de datos. Se muestra paso a paso en la figura, con líneas finas que representan flujos de control y líneas en negrita que representan flujos de datos.


Esta cifra también está extraída del artículo original.
  1. El cliente pregunta al maestro cuál de los servidores de fragmentos es el propietario del fragmento y dónde se encuentra este fragmento en otras réplicas. Si es necesario, el maestro entrega el trozo a otra persona para que lo posea.
  2. El maestro responde con una réplica primaria y las réplicas restantes (secundarias). El cliente almacena estos datos para otras acciones. Ahora, es posible que el cliente solo necesite comunicarse con el maestro si la réplica principal deja de estar disponible.
  3. A continuación, el cliente envía datos a todas las réplicas. Puede hacer esto en cualquier orden. Cada servidor de fragmentos los almacenará en un búfer especial hasta que sean necesarios o queden obsoletos.
  4. Cuando todas las réplicas han aceptado estos datos, el cliente envía una solicitud de escritura a la réplica principal. Esta solicitud contiene la identificación de los datos que se enviaron en el paso 3. La réplica principal ahora establece el orden en el que se deben ejecutar todos los cambios que recibe, posiblemente desde varios clientes en paralelo. Y luego, realiza esos cambios localmente en ese orden específico.
  5. La réplica principal reenvía la solicitud de escritura a todas las réplicas secundarias. Cada réplica secundaria realiza estos cambios en el orden especificado por la réplica principal.
  6. Las réplicas secundarias informan de la finalización exitosa de estas operaciones.
  7. La réplica principal envía una respuesta al cliente. Cualquier error encontrado en cualquier réplica también se envía al cliente. Si se produce un error al escribir en la réplica principal, entonces no se produce la escritura en las réplicas secundarias; de lo contrario, la escritura se produjo en la réplica principal y en un subconjunto de las secundarias. En este caso, el cliente procesa el error y decide qué hacer a continuación.
En el ejemplo anterior se puede ver que los creadores separaron el flujo de datos y el flujo de control. Si el flujo de control va sólo a la réplica principal, entonces el flujo datos que vienen en todas las réplicas. Esto se hace para evitar la creación de cuellos de botella en la red y, a cambio, aprovechar al máximo el ancho de banda de cada máquina. Además, para evitar cuellos de botella y conexiones congestionadas, se utiliza un esquema de transferencia al vecino más cercano en la topología de la red. Digamos que el cliente transmite datos a servidores fragmentados. T1,..., T4. El cliente envía datos al servidor más cercano, dejemos T1. Luego lo reenvía al servidor más cercano, déjalo ser T2. Más T2 los reenvía al más cercano T3 o T4, etcétera.
Además, el retraso se minimiza mediante el uso de canalización de paquetes de datos transmitidos a través de tcp. Es decir, tan pronto como el servidor de fragmentos recibe una parte de los datos, comienza a enviarlos inmediatamente. Sin congestión de la red, Tiempo perfecto envíos de datos de volumen B byte por R habrá réplicas B/T + RL, Dónde t ancho de banda de la red, y l- retraso al enviar un byte entre dos máquinas.
SGF admite operaciones como agregar datos atómicamente a un archivo. Normalmente, al escribir algunos datos en un archivo, indicamos estos datos y el desplazamiento. Si varios clientes realizan una operación similar, estas operaciones no se pueden intercambiar (esto puede provocar una operación incorrecta). Si solo queremos agregar datos al archivo, en este caso indicamos solo los datos en sí. SGF los agregará con una operación atómica. En términos generales, si una operación falla en una de las réplicas secundarias, entonces SGF, devolverá un error y los datos serán diferentes en diferentes réplicas.
Otra cosa interesante sobre SGF- Se trata de copias de seguridad (también se puede decir una instantánea) de un árbol de archivos o directorios, que se crean casi instantáneamente, casi sin interrumpir las operaciones en curso en el sistema. Esto se logra mediante tecnología similar a Copiar en escrito. Los usuarios utilizan esta función para crear ramas de datos o como punto intermedio para iniciar algunos experimentos.

Operaciones realizadas por el asistente.

El maestro es un eslabón importante en el sistema. Gestiona las replicaciones de fragmentos: toma decisiones de ubicación, crea nuevos fragmentos y coordina diversas actividades dentro del sistema para mantener los fragmentos completamente replicados, equilibrar la carga entre los servidores de fragmentos y recopilar recursos no utilizados.
A diferencia de la mayoría de los sistemas de archivos SGF no almacena la composición de archivos en un directorio. SGF Representa lógicamente un espacio de nombres como una tabla que asigna cada ruta a los metadatos. Una tabla de este tipo se puede almacenar efectivamente en la memoria en forma de fresa (un diccionario de estas mismas rutas). Cada nodo de este árbol (correspondiente a una ruta absoluta a un archivo o a un directorio) tiene un bloqueo de lectura y escritura correspondiente. Cada operación del asistente requiere el establecimiento de algunos bloqueos. Aquí es donde el sistema utiliza bloqueos de lectura y escritura. Normalmente, si una operación se ejecuta con /d1/d2/.../dn/hoja, luego activa los bloqueos de lectura /d1, /d1/d2, ..., d1/d2/.../dn y bloqueo, ya sea para leer o escribir en d1/d2/.../dn/hoja. Donde hoja puede ser un directorio o un archivo.
Demostremos con un ejemplo cómo el mecanismo de bloqueo puede impedir la creación de archivos. /home/usuario/foo durante Copia de reserva /Usuario doméstico V /guardar/usuario. La operación de copia de seguridad activa los bloqueos de lectura. /hogar Y /ahorrar, así como escribir bloqueos en /Usuario doméstico Y /guardar/usuario. La operación de creación de archivos requiere un bloqueo de lectura. /hogar Y /Usuario doméstico, así como escribir bloqueos en /home/usuario/foo. Por lo tanto, la segunda operación no comenzará a ejecutarse hasta que la primera termine de ejecutarse, ya que hay un bloqueo conflictivo en /Usuario doméstico. Al crear un archivo, no se requiere un bloqueo de escritura en el directorio principal; es suficiente un bloqueo de lectura, lo que evita que se elimine el directorio.
Clústeres SGF Están muy distribuidos y tienen múltiples capas. Normalmente, un clúster de este tipo tiene cientos de servidores fragmentados ubicados en diferentes bastidores. Estos servidores generalmente están disponibles para una gran cantidad de clientes ubicados en el mismo rack o en uno diferente. Las conexiones entre dos máquinas de diferentes racks pueden realizarse a través de uno o más interruptores. Los niveles múltiples presentan un desafío muy difícil a la hora de distribuir datos de manera confiable, escalable y asequible.
La política de ubicación de réplicas intenta satisfacer las siguientes propiedades: maximizar la confiabilidad y disponibilidad de los datos y maximizar el uso del ancho de banda de la red. Las réplicas deben estar ubicadas no sólo en diferentes discos o diferentes autos, pero también en diferentes stands. Esto garantiza que un fragmento esté disponible incluso si todo el bastidor está dañado o desconectado de la red. Con esta disposición, la lectura tarda aproximadamente el mismo tiempo que el ancho de banda de la red, pero el flujo de datos durante la escritura debe pasar a través de varios bastidores.
Cuando el maestro crea un trozo, elige dónde colocar la réplica. Proviene de varios factores:
  • Es recomendable colocar la nueva réplica en un servidor fragmentado con la carga de disco promedio más baja. Esto eventualmente igualará la carga del disco en diferentes servidores.
  • Es recomendable limitar la cantidad de nuevos fragmentos creados en cada servidor de fragmentos. Aunque crear un fragmento es una operación rápida en sí misma, implica la escritura posterior de datos en ese fragmento, lo que ya es una operación pesada y puede provocar un desequilibrio en la cantidad de tráfico de datos a diferentes partes del sistema.
  • Como ya hemos dicho, es recomendable distribuir los trozos entre diferentes rejillas.
Tan pronto como el número de réplicas cae por debajo de un valor configurable por el usuario, el maestro replica el fragmento nuevamente. Esto puede suceder por varias razones: el servidor de fragmentos no está disponible, uno de los discos ha fallado o se ha aumentado el valor que especifica el número de réplicas. A cada fragmento que debe replicarse se le asigna una prioridad, que también depende de varios factores. En primer lugar, la prioridad es mayor para el fragmento que tiene el menor número de réplicas. En segundo lugar, para aumentar la confiabilidad de la ejecución de la aplicación, se aumenta la prioridad de los fragmentos que bloquean el progreso en el trabajo del cliente.
El maestro selecciona el fragmento con mayor prioridad y lo copia, indicando a uno de los servidores del fragmento que lo copie desde una réplica disponible. La nueva réplica se ubica por los mismos motivos que cuando se creó.
Mientras trabaja, el maestro equilibra constantemente las réplicas. Dependiendo de la distribución de réplicas en el sistema, mueve la réplica para ecualizar la carga en los discos y equilibrar la carga. El maestro también debe decidir cuál de las réplicas debe eliminarse. Como regla general, la réplica que se encuentra en el servidor de fragmentos con el menor espacio libre en discos duros.
Otro función importante, acostado sobre el maestro: esto es recolección de basura. Al eliminar un archivo, SGF no requiere la devolución inmediata del espacio liberado en el disco. Lo hace durante la recolección de basura normal, que se produce tanto a nivel de fragmento como de archivo. Los autores creen que este enfoque hace que el sistema sea más sencillo y fiable.
Cuando una aplicación elimina un archivo, el asistente recuerda este hecho, como muchos otros, en los registros. Sin embargo, en lugar de requerir que los recursos liberados se restablezcan inmediatamente, simplemente se cambia el nombre del archivo añadiendo el tiempo de eliminación al nombre del archivo y se vuelve invisible para el usuario. Y el asistente, durante el escaneo regular del espacio de nombres del sistema de archivos, elimina todos los archivos ocultos que fueron eliminados por el usuario hace más de tres días (este intervalo es configurable). Hasta ese momento, el archivo continúa oculto en el sistema y puede leerse o cambiarse el nombre para recuperarlo. Cuando archivo oculto es eliminado por el maestro, luego la información sobre él también se elimina de los metadatos y todos los fragmentos de este archivo se desvinculan de él.
Además de escanear periódicamente el espacio de nombres del archivo, el asistente realiza un escaneo similar del espacio de nombres del fragmento. El maestro identifica los fragmentos que se separan del archivo, los elimina de los metadatos y, durante las comunicaciones regulares con los servidores de fragmentos, les indica que todas las réplicas que contienen el fragmento determinado se pueden eliminar. Este enfoque de recolección de basura tiene muchas ventajas, con un inconveniente: si el sistema se queda sin espacio, el retraso en la eliminación aumenta el espacio no utilizado hasta la eliminación física en sí. Pero existe la posibilidad de restaurar datos eliminados, la posibilidad de un equilibrio de carga flexible durante la eliminación y la capacidad de restaurar el sistema en caso de fallas.

Tolerancia a fallos y diagnóstico de errores.

Los autores del sistema lo consideran uno de los más problemas complejos Fallos frecuentes de los componentes del sistema. La cantidad y calidad de los componentes hacen que estas fallas no sean sólo la excepción, sino la norma. La falla de un componente puede deberse a que el componente no esté disponible o, peor aún, a la presencia de datos corruptos. SGF mantiene el sistema en funcionamiento utilizando dos estrategias simples: Rápida recuperación y replicación.
La recuperación rápida es esencialmente un reinicio de la máquina. Al mismo tiempo, el tiempo de inicio es muy corto, lo que provoca un ligero problema y luego el trabajo continúa con normalidad. La replicación de fragmentos ya se ha discutido anteriormente. El maestro replica un fragmento si una de las réplicas deja de estar disponible o los datos que contienen la réplica del fragmento están dañados. Los trozos dañados se determinan calculando sumas de verificación.
Otro tipo de replicación en el sistema, del que se ha hablado poco, es la replicación maestra. Se replican el registro de operaciones y los puntos de control. Cada cambio en los archivos del sistema se produce solo después de que el maestro y los discos de las máquinas en las que se replica el registro escriben el registro de operaciones en los discos. En caso de problemas menores, el asistente puede reiniciarse. En caso de problemas con disco duro u otra infraestructura vital del maestro, GFS inicia un nuevo maestro, en una de las máquinas en las que se replicaron los datos del maestro. Los clientes contactan al maestro DNS, que puede ser reasignado carro nuevo. nuevo maestro es una sombra de lo viejo, no una copia exacta. Por lo tanto, tiene acceso de sólo lectura a los archivos. Es decir, no se convierte en un maestro de pleno derecho, sino que solo mantiene el registro de operaciones y otras estructuras del maestro.
Una parte importante del sistema es la capacidad de mantener la integridad de los datos. Común SGF Un cluster consta de cientos de máquinas en las que miles de unidades de disco duro, y estos discos, cuando funcionan con una consistencia envidiable, fallan, lo que conduce a la corrupción de datos. El sistema puede restaurar datos mediante replicación, pero para ello es necesario comprender si los datos se han dañado. Simplemente comparar diferentes réplicas en diferentes servidores de fragmentos no es efectivo. Además, pueden producirse incoherencias en los datos entre diferentes réplicas, lo que da lugar a diferencias en los datos. Por lo tanto, cada servidor de fragmentos debe determinar de forma independiente la integridad de los datos.
Cada trozo se divide en bloques de longitud. 64KB. Cada uno de estos bloques corresponde a 32 -suma de comprobación de bits. Al igual que otros metadatos, estas cantidades se almacenan en la memoria y se guardan periódicamente en el registro, por separado de los datos del usuario.
Antes de leer los datos, el servidor de fragmentos verifica las sumas de verificación de los bloques de fragmentos que se superponen con los datos solicitados por el usuario u otro servidor de fragmentos. Es decir, el servidor fragmentado no distribuye datos corruptos. Si las sumas de verificación no coinciden, el servidor de fragmentos devuelve un error a la máquina que envió la solicitud y lo informa al maestro. El usuario puede leer datos de otra réplica y el maestro crea otra copia a partir de los datos de la otra réplica. Después de esto, el maestro le indica a este servidor de fragmentos que elimine esta réplica dañada.
Al agregar nuevos datos, no se produce la verificación de la suma de verificación y se escriben nuevas sumas de verificación para los bloques. Si el disco está dañado, se determinará al intentar leer estos datos. Al grabar, el servidor de fragmentos compara solo el primero y el últimos bloques, intersección con los límites en los que se produce la escritura, ya que algunos de los datos de estos bloques no se sobrescriben y es necesario comprobar su integridad.

¿Qué son los sistemas de archivos distribuidos?

La capacidad de compartir discos, directorios y archivos a través de una red es uno de los logros más importantes de la tecnología de la información moderna. Esta capacidad puede reducir significativamente los requisitos de espacio en disco de las computadoras y facilitar la colaboración de los usuarios. Las computadoras que ejecutan Microsoft Windows y MacOS Apple/MacOS X utilizan un mecanismo para compartir disco y directorio para esto. En sistemas Linux/Unix se utiliza tradicionalmente para las mismas tareas. Red NFS sistema de archivos.

NFS es el mecanismo para compartir archivos más famoso para Linux y otros sistemas Unix porque está presente en muchos sistemas similares a Unix y es muy fácil de configurar. NFS es compatible con el kernel de Linux y las utilidades relacionadas con NFS están presentes en todas las distribuciones. Pero en el mundo Linux, existen mecanismos más modernos para compartir archivos y directorios. Cada uno tiene ciertas ventajas para configurar o utilizar.

Sistema de archivos distribuido OpenAFS ( http://www.openafs.org/) es un análogo de código abierto del conocido sistema de archivos distribuido comercial AFS. El soporte para los sistemas de archivos distribuidos InterMezzo (http://www.inter-mezzo.org/) y Coda (http://coda.cs.cmu.edu/) ya está presente en los nuevos kernels Linux de la serie 2.4. También se pueden utilizar como sistemas de archivos nuevos mecanismos para compartir archivos basados ​​en la Web (por ejemplo, WebDAV (http://www.webdav.org/)).

Este artículo proporciona una breve descripción general de los beneficios de los sistemas de archivos distribuidos, analiza los problemas más comunes y sus soluciones y describe los sistemas de archivos distribuidos más interesantes disponibles para Linux en la actualidad.

Introducción a los sistemas de archivos distribuidos.

Los sistemas de archivos de red ahora se llaman<<распределенными>>. Este término refleja el hecho de que muchos de estos sistemas de archivos hacen mucho más que simplemente transferir datos a través de una red. Es posible que los medios de almacenamiento asociados con estos sistemas de archivos no estén necesariamente ubicados en una computadora; pueden estar distribuidos entre muchas computadoras.

Los sistemas de archivos distribuidos OpenAFS y Coda tienen sus propios mecanismos de gestión de particiones que simplifican las opciones de almacenamiento. información disponible públicamente. También admiten la duplicación, la capacidad de hacer copias de particiones y guardarlas para otros. servidores de archivos. Si un servidor de archivos deja de estar disponible, aún se puede acceder a los datos almacenados en sus particiones utilizando las copias de seguridad existentes de esas particiones.

La diferencia más importante entre el enfoque de Windows/MacOS (compartir directorios y discos) y el enfoque de Linux, MacOS X y otros sistemas operativos multiusuario similares a Unix es cómo estos sistemas operativos usan y organizan las particiones. Windows/MacOS exporta particiones como directorios o unidades independientes, y los sistemas remotos que quieran acceder a dispositivos compartidos deben asegurarse de montarlos ellos mismos.

Cuando el nivel más alto de organización en un sistema de archivos es una partición de disco (por ejemplo, como en los sistemas de archivos de Windows), las estaciones de trabajo cliente deben conectarse a la partición y asignarle una letra separada en su diseño local (por ejemplo, unidad E, F , G, etc.). Se pueden asignar letras a particiones de red en perfiles de usuario y grupo de Windows (para estandarización). Pero, lamentablemente, es posible que la disposición de las letras no sea la misma en todos los ordenadores. Por ejemplo, en una computadora con una gran cantidad de discos duros y particiones, las letras necesarias pueden estar ocupadas y, por lo tanto, deberá asignar diferentes designaciones a las particiones de la red.

Por el contrario, el sistema de archivos Unix es un sistema de archivos jerárquico al que se agregan particiones adicionales montándolas en un directorio existente. Esto le permite agregar efectivamente cualquier fuente de datos a cualquier existente sistema de archivos. Si monta una nueva fuente de contenido en un directorio que forma parte de un sistema de archivos distribuido, estará inmediatamente disponible para todos los clientes de ese sistema de archivos distribuido.

Los sistemas de archivos distribuidos modernos como OpenAFS o Coda incluyen servicios especiales para administrar particiones. Esto le permite montar particiones de diferentes servidores de archivos en una jerarquía de directorio central compatible con los sistemas de archivos. OpenAFS utiliza un directorio central llamado<>, y usos de Coda<>. Estas jerarquías de directorios están disponibles para todos los clientes del sistema de archivos distribuido y tienen el mismo aspecto en cualquiera de las estaciones de trabajo del cliente. Esto permite a los usuarios trabajar con sus archivos de la misma manera en cualquier computadora. Si tu computadora de escritorio no funciona, puedes usar cualquier otra; todos tus archivos están seguros en el servidor.

Los sistemas de archivos distribuidos, que proporcionan los mismos datos a muchos sistemas informáticos diferentes, brindan a los usuarios la posibilidad de utilizar cualquier sistema operativo que mejor se adapte a sus necesidades. Los usuarios de Macintosh pueden aprovechar al máximo las herramientas gráficas disponibles en Mac OS mientras almacenan sus datos en servidores de archivos centralizados. Los usuarios de Windows también pueden tener acceso a un sistema de archivos global persistente. Los sistemas de archivos distribuidos son especialmente atractivos cuando se intenta coordinar el trabajo entre grupos ubicados en diferentes ciudades, estados o incluso diferentes países. La ventaja es que los datos compartidos siempre están disponibles en línea, independientemente de su ubicación.

Problemas de administración de sistemas de archivos distribuidos.

El uso de sistemas de archivos distribuidos brinda a los administradores de sistemas no sólo nuevas oportunidades, sino también nuevos problemas. Pero sistemas distribuidos puede simplificar muchas de las tareas administrativas estándar. En un entorno de red, los usuarios deberían poder iniciar sesión en la red con su propio nombre desde cualquier computadora. Esto significa que el mecanismo de inicio de sesión (o autenticación) de la red también debe estar basado en la red. Por lo tanto, en un entorno de sistema de archivos distribuido, los archivos de grupo y contraseña ubicados en computadoras individuales son secundarios a los mecanismos de autenticación de red (como Kerberos o NIS, que permiten a los usuarios trabajar en cualquier computadora). Pero aún deben existir mecanismos de verificación de contraseñas locales estándar para que los administradores puedan realizar computadoras locales tareas necesarias. El almacenamiento de datos compartidos en servidores de archivos centralizados (en lugar de en computadoras individuales) simplifica las tareas administrativas, como realizar copias de seguridad y restaurar archivos y directorios. También centraliza tareas administrativas estándar, como monitorear el uso del sistema de archivos, e introduce nuevas capacidades de administración de almacenamiento, como el equilibrio de carga.

Los sistemas de archivos distribuidos como OpenAFS y Coda proporcionan sistemas lógicos gestión de particiones, que brinda a los administradores la capacidad de mover datos muy utilizados a computadoras más potentes o menos utilizadas. Si un sistema de archivos distribuido admite la duplicación, se pueden distribuir copias de datos muy utilizados entre muchos servidores de archivos. Esto puede reducir la carga en la red y facilitar el trabajo de los servidores. Uso de sistemas de archivos distribuidos particiones lógicas en lugar de particiones de disco físico, y esto facilita agregar nueva memoria libre a la red mientras trabaja. (Tomaría algún tiempo agregar un nuevo disco a la computadora local).

El uso de sistemas de archivos distribuidos también facilita compartir software y hardware. Pero antes de eso, debe asegurarse de que las licencias de los programas que utiliza permitan la instalación del software en un sistema de archivos distribuido. Los servidores de impresión son una de las razones originales del surgimiento del medio ambiente.<<клиент-сервер>>. Los sistemas de archivos distribuidos también facilitan el compartir hardware especializado al conectarse a través de una red a una computadora que tiene el hardware instalado y al mismo tiempo tener acceso a sus datos.

El uso de un sistema de archivos distribuido y centralizado puede proporcionar importantes beneficios de costo y rendimiento a los sistemas cliente. Los sistemas de archivos distribuidos reducen significativamente los costos de hardware al minimizar la cantidad de memoria en cualquier computadora de escritorio o portátil. El uso de un sistema de archivos distribuido como archivo para los datos del usuario generalmente significa tiempos de arranque más rápidos para las máquinas cliente porque grandes cantidades de datos ya no se almacenan localmente y, por lo tanto, no es necesario verificarlos después de reiniciar el cliente. La combinación de un sistema de archivos distribuido y el uso de sistemas de archivos registrados en las computadoras cliente puede proporcionar un aumento significativo en la velocidad de inicio del sistema.

Soporte para procesamiento de datos fuera de línea.

El uso de un sistema de archivos distribuido aumenta la dependencia de los sistemas informáticos de la red. Esta dependencia de datos a los que las personas sólo pueden acceder a través de la red plantea algunas cuestiones interesantes para los usuarios de computadoras portátiles o móviles que necesitan acceder a sus datos incluso cuando el acceso a la red no es posible. Se llama<<автономная работа>> el sistema debe funcionar si los recursos que normalmente están presentes en la red (por ejemplo, datos del usuario) no están disponibles por algún motivo. Incluso Windows proporciona una GUI que le permite etiquetar los archivos con los que desea trabajar cuando no está conectado y sincronizarlos cuando se vuelve a conectar.

Los sistemas de archivos distribuidos Coda e InterMezzo, actualmente disponibles para Linux, también ofrecen soporte integrado para duración de la batería. Actualmente también se está trabajando para proporcionar esta capacidad a los sistemas de archivos NFS. Coda e InterMezzo ya son compatibles con el kernel de Linux. El soporte de Intermezzo se ha integrado en el kernel desde la versión 2.4.5, y Coda generalmente se integró en el kernel 2.4 desde el principio.

Coda es un sistema de archivos distribuido con origen en OpenAFS, desarrollado en la Universidad Carnegie Mellon desde 1987. InterMezzo es un sistema de archivos distribuido relativamente nuevo que se centra en alta disponibilidad, duplicación de directorios flexible, soporte para operaciones fuera de línea y almacenamiento en caché persistente. Los creadores de InterMezzo se inspiraron en CMU Coda, pero este proyecto no se basa en texto de origen Coda. El creador original de InterMezzo, Peter Braam, fue el director del proyecto Coda en CMU durante varios años, y después comenzó a desarrollar él mismo InterMezzo y varios otros proyectos.

Ampliación de sistemas de archivos mediante la Web.

Antes de los sistemas de archivos distribuidos, compartir archivos a través de una red se limitaba a simples transferencias de archivos mediante un protocolo de transferencia. Archivos FTP(Protocolo de transferencia de archivos). La llegada de la World Wide Web ha simplificado enormemente el proceso de trabajar con FTP; ahora no es necesario conocer los comandos, porque el protocolo FTP está integrado en la mayoría de los navegadores. La capacidad de transferir archivos fácilmente a través de la Web también condujo a la expansión de la Web y a mejoras significativas en el protocolo básico de transferencia de hipertexto.

HTTP (Protocolo de transferencia de hipertexto), que ahora es la base de muchos sistemas distribuidos para compartir archivos.

El más famoso de ellos es WebDAV, que significa<> (Creación y control de versiones distribuidos habilitados para Web). WebDAV es un conjunto de extensiones del protocolo HTTP que proporciona un entorno colaborativo para que los usuarios descarguen, organicen y editen archivos almacenados en servidores web.

La compatibilidad con WebDAV está integrada en muchos servidores web populares, como Apache, donde se basa en los mecanismos de autenticación del servidor. (Desde simples archivos .htaccess hasta NIS integrado, LDAP o incluso mecanismo de autenticación de Windows). El uso de WebDAV para acceder y modificar archivos a través de la Web está integrado en los sistemas operativos Mac OS X, en nuevas versiones. internet Explorer, y también está disponible en Linux mediante aplicaciones como el administrador de archivos Nautilus. Si bien no es un sistema de archivos en el sentido tradicional, incluso puedes montar WebDAV en Linux usando un módulo del kernel cargable llamado davfs.

WebDAV proporciona funciones estándar para sistemas distribuidos, como bloqueo de archivos, creación, cambio de nombre, copia y eliminación de archivos, y también admite funciones avanzadas como metadatos de archivos (información más detallada sobre el archivo, título, tema, creador, etc.) d ). En un futuro próximo, WebDAV incluirá soporte de versiones integrado que facilitará a muchos usuarios trabajar en archivos compartidos mediante el seguimiento de los cambios, los autores de esos cambios y otros aspectos del uso general de un documento. Estas capacidades de control de versiones se proporcionan a través del protocolo DeltaV, que se está desarrollando activamente. Grupo de trabajo DeltaV (http://www.webdav.org/deltav) por una división del Internet Engineering Task Force (IETF). Algunos proyectos, como Subversion (http://subversion.tigris.org/) (reemplazo del estándar CVS basado en WebDAV y DeltaV), ya están disponibles en alfa. Subversion proporciona control de versiones y archivado de archivos basado en una base de datos que tiene API de idioma C, y modela un sistema de archivos versionado al que se puede acceder fácilmente a través de la Web.




Arriba