This page created with Cool Page.  Click to get your own FREE copy of Cool Page!
 
 
 
 
 
 
 
Instituto Tecnológico de Acapulco
Sistemas Distribuidos
I
ALMACENAMIENTO DE DATOS

INTRODUCCION:

Dentro de los sistemas distribuidos, una de las aplicaciones más importantes es la del manejo de datos e información que son utilizados en prácticamente todos los niveles de cualquier sistema o empresa.

Cuando un sistema soporta el envío de mensajes entre objetos (tales como procesos, direcciones de correo, dispositivos de entrada salida, archivos), el sistema requiere la presentación de los identificadores de los objetos (nombres) de los servicios solicitados.
Se debe hacer referencia a los objetos de forma que se conserve la transparencia de su localización.

Uno de los primeros factores que deben contemplarse en la forma de identificar, referenciar y accesar los recursos que estén disponibles de una poco compleja y fácil. Para hacer esta identificación, el procedimiento más utilizado es la asignación de nombres o nomenclaturas a cada uno de los recursos disponibles del sistema.

Los nombres también son necesarios en un sistema distribuido cuando se requiere hacer referencia a entidades que están más allá del alcance de cualquier servicio o cuando se quiere establecer una comunicación entre los objetivos soportados dentro de un sistema distribuido. Los mejores ejemplos de estas entidades son los usuarios, los cuales tienen nombres propios, nombres de conexión (login), identificadores de usuario y direcciones de correo electrónico; las computadoras, que tienen nombres de máquina; y los servicios mismos, que tienen nombre de servicio de archivos, servicios de impresora

1.2  SERVICIO DE NOMBRES.

Un servicio de nombres administra una base de datos con las ligas que guardan entre sí un conjunto de nombres textuales (legibles a primera vista por humanos) y atributos de objetos tales como computadoras y usuarios. La operación que se presenta más comúnmente en un servicio de nombres es la resolución de un nombre; operación que consiste en encontrar sus atributos en la base de datos.

Algunas de las características en un sistema de servicios de nombres, son:

          
La capacidad de asignar nombres únicos a los objetos 
          
Facilitar el uso de recursos por varios usuarios
          
Proveer una nomenclatura estándar para identificar a los objetos.

En sistemas distribuidos, el uso de nombres para propósitos de comunicación no es del todo suficiente, por que los procesos de comunicación van de una computadora a otra, y es necesario el conocimiento de su ubicación

Los servicios de nombres tiene metas para llegar a su objetivo,  a continuación se mencionan algunas:

•El servicio de nombres debería ser visto como un espacio global de objetos identificados, en lugar de un espacio de computadoras anfitrionas identificadas, teniendo objetos identificados localmente.

•Los identificadores únicos deben ser generados de una forma distribuida.
Por razones de desempeño, los objetos deben ser movibles, así que el servicio de nombres debe soportar la relocalización de objetos.

•El número de servicios de nombres independientes requeridos en todo el sistema distribuido basado en una conexión de red, debería ser minimizado.

Algunos ejemplos de servicios de nombres:

Grapevine. Uno de los primeros sistemas de nombres extensible y de múltiples dominios.

Sistema Global de Nombres (GNS por sus siglas en inglés). Desarrollado por Digital Equipment Corporation, es un descendiente de Grapevine, pero con nuevas metas, incluyendo: capacidad de incluir los componentes que surjan con los cambios de las
organizaciones, alta disponibilidad, aislamiento de fallas.

Sistema de Dominio de Nombres (usado por Internet, DNS por sus siglas en inglés). Los principales objetos nombrados en DNS son computadoras, para las cuales se almacena principalmente una dirección IP.


Servicio de directorios X.500. A diferencia de los servicios de nombres, que tiene la finalidad de resolver nombres de recursos que son conocidos exactamente, X.500 puede además, ser usado para satisfacer búsquedas imprecisas y está diseñado para encontrar los nombres de otros usuarios o recursos.


2.2.  CRIPTOGRAFÍA

En un sistema en el que participan varios usuarios, existe la posibilidad de que algún usuario no autorizado intente tener acceso a información confidencial. Por ejemplo, un usuario puede traspasar el mecanismo de protección de un sistema o intervenir un canal físico, para robar información que se transporta en la red. Debido a esto, es necesario agregar otros mecanismos de protección para que los intrusos (usuarios no autorizados), si logran irrumpir en el sistema; no entiendan o hagan uso de la información que puedan obtener de manera no autorizada una de las maneras de hacer esto es usando la criptografía.

La criptografía es un proceso para transformar datos, generalmente de datos representados como un texto claro a un texto clave o cifrado, y que sólo puede ser convertido nuevamente en un texto claro y entendible usando una llave en particular y aplicándole un algoritmo apropiado.

El modelo criptográfico tradicional  es el que se menciona a continuación: supongamos que un cliente tiene un mensaje no cifrado, P, llamado texto plano, que se transforma mediante un algoritmo de cifrado parametrizado por una clave K.  El cifrado puede ser realizado por el cliente, el sistema operativo, o un hardware
especial. El mensaje resultante, C llamado texto cifrado, es ininteligible para los que no posean la clave. Cuando el texto cifrado llega al servidor, se descifra mediante K, lo que produce el texto plano original. La notación que se utiliza por lo general para indicar el cifrado es:

Texto cifrado = {Texto plano} Clave

es decir, la cadena dentro de las llaves es el texto plano, y la clave utilizada se escribe a continuación de ésta.

Suponiendo que la mayoría de lose servidores principales son moderadamente seguro,  suponemos de manera explícita que el servidor de seguridad se puede colocar en un cuarto cerrado,  protegido muy bien y teniendo mucha seguridad. En consecuencia, el servidor de seguridad puede conocer la contraseña de cada usuario,  aunque las contraseñas no se pueden enviar a través de la red. También se supone que los usuarios no olviden sus contraseñas o que accidentalmente las dejen en pedazos de papel en el cuarto de las terminales.

Existen varios tipos o categorías en que se clasifican las técnicas de encriptación de información, a continuación se mencionan algunas:

Sistemas convencionales de encriptación.

Este tipo de encriptación se basa en la sustitución de cifras, en la cual, cada caracter en un texto claro o base es sustituido por otro caracter. Existen varias técnicas que a continuación se discuten:

Cifra Caesar.

En éste método, cada letra del texto original se transforma en la tercer letra siguiente en el alfabeto o tabla de códigos. Por ejemplo, el texto "CASA" es transformado en "FDVD", de acuerdo al equivalente en la tabla de códigos ASCII.

Sustitución simple.

En este método, cualquier permutación de letras puede ser identificado al lenguaje Español o Inglés y elimina la relación posicional de la Cifra Caesar, debido a que cada permutación de letras es una llave, hay 26! (>1026) llaves en una cifra como ésta, lo que hace muy costosa una búsqueda exhaustiva. Sin embargo, la cifra por
sustitución simple preserva la frecuencia de sustitución de las letras de un alfabeto porque se ejecuta la misma sustitución en todas las ocurrencias de una letra, y puede usarse un análisis estadístico para desencriptar la cifra.


Cifra polialfabética.

La cifra polialfabética usa una secuencia periódica de n letras de sustitución, es decir; el método actúa con n sustituciones alfabéticas periódicamente. Este método puede tener un mayor impacto si se escoge apropiadamente la sustitución. Una forma de aplicar este método es usar la Cifra Caesar con diferentes llaves. Por ejemplo, se puede tener la secuencia de enteros 11, 19, 4, 22, 9, 25 y se obtendría el texto cifrado agregando repetidamente cada entero al texto original.

Sistemas modernos de encriptación


Los métodos de criptografía moderna van más allá de los métodos tradicionales y usan información representada en forma binaria (el texto original -plain text- y el texto
cifra -cipher text- se mantienen en forma binaria).

Dentro de este sistemas se encuentran dos métodos de  encriptación, los cuales se describen a continuación:

Método de llave privada

Este método es conocido como el Estándar de Encriptación de Datos (DES, por sus siglas en inglés), y utiliza básicamente dos operaciones:
Se usa una operación de permutación para permutar los bits de una palabra y su objetivo es difundir o esparcir la correlación y las dependencias entre los bits de una palabra.

Una operación de sustitución reemplaza una entrada de m bits por una salida n de bits, sin que exista una relación directa entre ambas. Generalmente, una operación de sustitución consta de tres pasos: primero, la entrada de m bits se convierte a una forma decimal; segundo, se permuta la forma decimal (para obtener otro número decimal); y finalmente, la salida decimal se convierte en una salida de n bits.

Método de llave pública


El método de encriptación por llave privada (así como los métodos convencionales) requiere la distribución de llaves secretas a través de una red de comunicaciones insegura, antes de que se pueda tener una comunicación segura.

Este problema es conocido como problema de distribución de llaves.

La criptografía por llave pública permite a dos usuarios entablar una comunicación segura aún si estos dos usuarios no se han comunicado antes, porque el procedimiento de encriptación usado para cifrar mensajes para cada usuario está disponible al público. Por ejemplo, si el usuario X desea enviar un mensaje M al usuario Y. X usa el procedimiento de encriptación de Y (EY) para encriptar el mensaje. Cuando Y recibe el mensaje encriptado EY(M), éste lo desencripta usando su procedimiento de desencriptación DY.

Cifrados Monoalfabeticos

Se engloban dentro de este apartado todos los algoritmos criptográficos que, sin desordenar los símbolos dentro del mensaje, establecen una correspondencia única esta correspondencia se mantiene a lo largo de todo el mensaje.

Cifrado de Vigenere.

Es un ejemplo de cifrado polialfabetico, cuya clave es una secuencia de símbolos   K = k0; k1; : : : kd - 1 g y que emplea la siguiente función de cifrado:
Ek (mi) = mi + k(i mod d) (mod n)
siendo mi el i-esimo símbolo del texto plano y n el cardinal del alfabeto de entrada.

2.3    PROTECCIÓN

Los mecanismos que previenen el acceso no autorizado se denominan como mecanismos de protección. Podemos hablar de la protección como una área que abarca varios aspectos de la seguridad, que resulta una meta en los sistemas distribuidos y los mecanismos de protección son sólo una parte para lograr esa meta.

El fin de estos mecanismos es el de prevenir que algunos usuarios puedan robar espacio en disco, ciclos de procesamiento, que los archivos no sean leídos por personas ajenas o que modifiquen bases de datos que no les pertenezcan.
Los mecanismos de protección tienen que poner atención en los siguientes temas:

Privacidad de almacenamiento. Se refiere a que los usuarios deben poder mantener su información en secreto; dicho en otras palabras, prevenir que otros usuarios la vean.

Privacidad en el paso de mensajes. La privacidad tiene que ver con que a los usuarios se les garantice que la información que entreguen sea usada solamente para los propósitos para los que fue remitida.

Autenticidad. La información que se entregue a algún usuario debe ser auténtica, es decir; se debe poder verificar y asegurar la fuente de donde proviene la información.

Integridad. La información almacenada por el sistema no debe ser corrupta ya sea por el sistema o por algún usuario no autorizado.

Los objetos resguardados por los mecanismos de protección van desde los archivos y los directorios, hasta los procesos, y aún los mismos dominios de protección.


2.4 SEGURIDAD

La seguridad y la protección se encargan del control del uso y del acceso no autorizado a los recursos de hardware y software de un sistema de computación, ya que organizaciones de negocios y oficinas de servicios usan en gran medida a las computadoras para almacenar información, por lo que es necesario prevenir su uso y acceso no autorizado.

La seguridad en los sistemas computacionales puede dividirse en dos tipos: seguridad externa y seguridad interna. La seguridad externa (llamada comúnmente seguridad física), se encarga de regular el acceso al hardware del sistema, incluyendo: discos, cintas, reguladores y no-breaks, acondicionadores de aire, terminales, procesadores.

La seguridad interna se encarga del acceso y uso del software almacenado en el sistema. A diferencia de la seguridad física, existe el tema de autenticación, en el cual el usuario se registra (login) en el sistema para accesar a los recurso de hardware y software del mismo.

Un tipo de seguridad es la seguridad con Firewall, la cual se describe a continuación:

Los Firewalls son un tipo de seguridad muy efectiva en redes. Intenta prevenir los ataque de usuarios externos a la red interna. Tiene múltiples propósitos:

•Restringir la entrada a usuarios a puntos cuidadosamente controlados
•Prevenir los ataques
•Restringir los permisos de los usuarios a puntos cuidadosamente controlados

Un Firewalls es a menudo instalado en el punto donde la red interna se conecta con Internet. Todo tráfico externo de Internet hacia la red pasa a través del Firewalls, así puede determinar su dicho tráfico es aceptable, de acuerdo a sus políticas de seguridad.

Lógicamente un Firewalls es un separados, un analizador, un limitador. La implementación física varia de acuerdo al lugar. A menudo, un Firewalls es un conjunto de computadoras de hardware  -un router, un host, una combinación de routers, computadoras y redes con software apropiado- . Rara vez es un simple objeto físico. Usualmente esta compuesto por múltiples partes y algunas de esas partes puede realizar otras tareas.

La conexión de Internet también forma parte de Firewall. Un Firewalls es vulnerable, él no protege de la gente que está dentro de la red interna. El Firewall trabaja mejor si se complementa con una defensa interna. Un Firewalls es la forma más efectiva de conectar una red a Internet y proteger su red. Los Firewalls también tienen distintas necesidad de seguridad.

2.5. ARCHIVOS DISTRIBUIDOS; NFS

Los sistemas de archivos distribuidos son la principal clase de mecanismos que han evolucionado para compartir información en un ambiente de múltiples usuarios.

Al hablar de archivos, debemos tener en cuenta el medio de almacenamiento para éstos; y debemos hablar de medios de almacenamiento permanente. Los medios de almacenamiento permanente consisten en un conjunto de objetos que explícitamente desde su creación, son inmunes a fallas del sistema, y persisten hasta que son físicamente destruidos.

En un modelo de un sistema de computación con un sólo usuario, en un sólo sitio de procesamiento; se observan cuatro apartados clave en el sistema de archivos:

Nombres. Tiene que ver con la forma en que los usuarios pueden nombrar a los    archivos, que tan largos pueden ser los nombres de los archivos o si tienen alguna extensión.

Interfaz de programación. Contempla la forma en los archivos serán accesados desde las aplicaciones, ya sea por un mapa en donde se dirigen los archivos a una dirección de memoria usada por un proceso y accesar su contenido como si fuese memoria virtual, o incorporar en el sistema operativo una serie de operaciones para tratar a los archivos.

Almacenamiento físico. Trata en la forma en que será llevada a cabo la organización de los archivos en los medios de almacenamiento físico, si la interfaz de programación es independiente del medio de almacenamiento, como se balancean los requerimientos de ejecución con los problemas de fragmentación.
Integridad. Se debe considerar la consistencia de los archivos en contra de fallas en la alimentación eléctrica, hardware, medio de almacenamiento y software.

El poder administrar archivos remotos proporciona una ventaja muy grande a los sistemas operativos ampliando su capacidad de administración de recursos. Se tiene varios objetivos en un sistemas de este tipo, a continuación se mencionan algunas:


•Diversidad de aplicaciones
•Semantica del sistema de archivos
•Cumple con requerimientos de diferentes usuarios
•Nomenclatura consistente
•Transparencia de localización
•Acceso remoto
•Consistencia de datos
•Consistencia de autentificación
•Protección de información
•Movilidad de usuarios
•Rendimiento
•Disponibilidad
•Recuperación
•Escalabilidad
•Adaptación a diferentes medios de almacenamiento


Resulta muy importante distinguir entre los conceptos de servicio de archivos y servidor de archivos. El servicio de archivos es la especificación de los servicios que el sistema ofrece a sus usuarios y marca las operaciones disponibles, los parámetros que usan y las operaciones que llevan a cabo. De hecho, el servicio de archivos define la interfaz que usarán los usuarios. A diferencia, el servidor de archivos es un proceso que se ejecuta en alguna máquina y ayuda a implantar el servicio de archivos, pero los usuarios no deben conocer el número de servidores de archivos, su posición o función.


2.6 DUPLICIDAD DE DATOS

   
Se usa la duplicidad de los datos para mantener en línea copias de información y de otros recursos. La duplicidad resulta un campo clave en los sistemas distribuidos, ya que provee un mejor desempeño, alta disponibilidad y tolerancia a fallas.

A continuación se mencionan algunas de las razones principales de la duplicidad :

Desempeño. La réplica de información puede ser usada para incrementar el tiempo de respuesta a un servicio, ya que la información compartida por un número grande de usuarios no debería ser almacenada en un sólo sitio, pues esa computadora se convertiría en un cuello de botella y aumentarían los tiempos de respuesta. Es preferible distribuir varias copias de información en varios servidores y lograr que cada uno de ellos atienda a un número de usuarios más reducido.

Disponibilidad. Al tener varias copias de información en dos o más servidores independientes a fallas ejecutando software similar, disponibles por líneas de conexión independientes, y si llegase a fallar el servidor por defecto, el software cliente puede accesar a un servidor alternativo y obtener los servicios requeridos.

Tolerancia a fallas. Si cada uno de los servidores de una colección procesa en paralelo cada petición de un cliente, entonces es posible garantizar el procesamiento correcto de una petición, aún si uno o más de los servidores llegaran a fallar.


El mayor requerimiento que se presenta al duplicar información, es la transparencia de almacenamiento. Esto quiere decir que los usuarios no deben preocuparse o tener en cuenta de que existen varias copias físicas de la información.

Otro requerimiento para la información duplicada es la consistencia. Consideremos el caso en que los clientes hacen peticiones de lectura y de escritura a un conjunto de partidas en la información. No es correcto que diferentes clientes que realicen la misma operación que afectan al mismo grupo de datos, obtengan diferentes resultados.


2.7. FALLAS DE PARTICIÓN

Las  fallas de partición, las cuales fragmentan la red en subredes aisladas llamadas particiones. A menos que las fallas de partición sean detectadas y reconocidas por todos los procesadores afectados, las modificaciones independientes y no coordinadas pueden aplicarse a las diferentes copias de la información, comprometiendo la correctitud (integridad) de ella.

El diseño de un algoritmo para administración de información duplicada y tolerante a fallas es notoriamente difícil. Típicamente, las causas o extensión de las fallas de partición no pueden ser percibidas por los propios procesadores. En el mejor de los casos, un procesador tiene la posibilidad de identificar a un procesador dentro de su partición; pero para los aquellos que se encuentran fuera de su partición, no podrá distinguir el caso donde se encuentran aislados.

Agregando a esto, las respuestas lentas pueden causar que la red parezca particionada cuando no lo está, complicando el diseño de un sistema tolerante a
fallas.

Sin embargo, los problemas relacionados con el funcionamiento correcto de un sistema de archivos distribuidos particionado no se limita sólo a aquellos asociados con que la información almacenada sea correcta. Debido al costo y la complejidad de mantener información duplicada, la mayoría de los sistemas de archivos distribuidos limitan la cantidad de réplicas a algunas cuantas copias. Ya que la información no se encuentra duplicada en todos los sitios de la red, se pueden montar consultas (queries, - transacciones que ejecutan operaciones para la lectura de información-) durante una partición de la red, por lo que no toda la información se encuentre disponible en determinado momento.

2.8. BENEFICIOS DE LA DUPLICIDAD

En un sistema distribuido, es común que la información se duplique para mejorar el desempeño y la disponibilidad. Almacenando copias de información compartida en procesadores donde sea frecuentemente accesada, se decrementará el uso de accesos de lectura remotos.

Además, almacenando copias de la información que resulta crítica en procesadores con modos de falla independientes, se aumentará la probabilidad de que estará disponible al menos una copia de la información crítica.


Es común que la duplicidad resulte central al resolver algunos problemas de computación distribuida. Por ejemplo, las consideraciones de modularidad y precio - desempeño que surgen en una fábrica automatizada. Sin embargo, muchas fábricas usan dispositivos controlados por procesadores dedicados que requieren de respuestas en tiempo real. Cualquier demora impuesta por la red a los controladores debe ser resuelta, pero en un sistema donde la información no es duplicada o almacenada en caché, esto es difícil de garantizar debido a la perdida de paquetes. Por lo anterior, los sistemas distribuidos de tiempo real necesitan de algún método para duplicar información crítica requerida en rutas críticas.

La duplicidad de la información beneficia altamente el trabajo en red, ya que en el caso de alguna caída de alguna máquina se puede propagar la falla a otras más. Puede ser necesario tener respaldos de procesos que se restablecerán para completar el proceso interrumpido.


 
Unidad 2