Los equipos de almacenamiento masivo

Anuncio
Equipos de almacenamiento masivo
El sistema de archivo puede verse, desde el punto vista lógico, formado por
tres partes:

la primera es la interfase que le presenta el sistema a usuarios y
programadores,

la segunda está constituida por las estructuras de datos y algoritmos que
usa el SO para implementar la interfase anterior,

la tercera tiene que ver con la parte de más bajo nivel del sistema de
archivo que está formada por los equipos que almacenan la información
en sí, así como el conjunto de algoritmos que se asocian a ellos.
Este documento está dedicado a la tercera parte.
Discos magnéticos
Discos duros
La figura 1 presenta una imagen, esquematizada, de la estructura interna de un
disco magnético. El disco está formado por un conjunto de platos (platter) con
superficies regrabables arriba y abajo, cada plato se divide, lógicamente, en
pistas (track), las cuales a la vez se dividen en sectores. Debe observarse el
brazo (arm assembly) que soporta los cabezales de lectura y escritura (readwrite head), uno por cada superficie, esos cabezales no descansan sobre el
disco ya que “flotan” a unos micrones de su superficie. Todos los platos están
unidos a un eje central (splinde) que lo mueve el motor del disco.
Figura 1. Imagen esquematizada de un disco magnético
1
Es bueno destacar que los cabezales de lectura/escritura se mueven todos a la
vez (al moverse el brazo). Ese movimiento consume un tiempo determinado
que se conoce como tiempo de búsqueda (seek time). El conjunto de pistas
que quedan accesible por un seek time recibe el nombre de cilindro (cylinder)
por su similitud con el concepto geométrico de cilindro.
La información está grabada en los sectores, por ese motivo para leer el
contenido de un sector específico serán necesarios dos movimientos
mecánicos que tienen tiempos específicos:
1. Tiempo de búsqueda (seek time). Es el tiempo que se consume en
llevar el brazo de lectura/escritura desde la posición actual hasta el
cilindro en el que está el sector que se desea leer.
2. Tiempo de rotación (Rotacional time). Tiempo que tarda en rotar el
disco para que el sector deseado quede debajo del cabezal de
lectura/escritura.
La suma de los dos tiempos anteriores recibe el nombre de tiempo de
posicionamiento.
Después de haber situado el cabezal en la posición deseada, el sistema
consume un tiempo para transferir el dato que se conoce como tiempo de
transferencia, de ahí que la velocidad de un disco estará dada por la siguiente
ecuación: Vd = TP + TT
donde:
Vd es la velocidad del disco,
TP es el tiempo de Posicionamiento que es igual a seek time + rotacional time,
TT es el tiempo de transferencia.
Discos desmontables
Generalmente tienen un solo plato que está contenido dentro de una caja
plástica, los disquetes o discos floppy son unos discos magnéticos muy
baratos, aunque en realidad las últimas producciones son de muy mala calidad
y su uso está en franco declive. En el caso de los disquetes, generalmente los
cabezales descansan directamente sobre las superficies.
2
Forma de conexión
Una torre de disco se une a la computadora por un conjunto de alambres
denominado bus de entrada/salida y existen diversas tecnologías (unas mas
actuales que otras): Enhanced Integrated Drive Electronics (EIDE), Advanced
Technology Attachment (ATA), Serial ATA (SATA), Universal Serial BUS (USB)
Fiber Channel (FC) y SCSI.
La transferencia de datos sobre un bus la llevan a cabo procesadores
especiales denominados controladores, el controlador de host está en la
computadora y el controlador del disco viene con el disco. Para resolver una
operación de entrada/salida, la computadora pone un comando en el
controlador de host, el cual lo envía (como un mensaje) al controlador del disco
el que a su vez opera el hardware de disco para ejecutar el comando. Los
controladores de disco, típicamente, tienen una memoria cache interna y los
datos se transfirieren entre la superficie del disco y esa memoria cache y de
esta hacia el controlador del host.
Cintas magnéticas
Se usaron como medios de almacenamiento masivo en los primeros sistemas,
su principal ventaja es la capacidad de almacenamiento, así como la larga
permanencia de lo que sobre ella se graba, sin embargo son relativamente
lentas con relación a la memoria principal y a los discos, además los accesos
directos son muchos más lentos.
Por todas las razones anteriores hoy en día se usan principalmente como
medios para resguardar la información.
Estructura de las torres de discos
Hoy en día una torre de disco se ve como un arreglo de bloques lógicos, siendo
el bloque lógico la unidad mínima de transferencia. La longitud de un bloque
lógico es, típicamente, de 512 bytes aunque algunos discos se pueden
formatear a bajo nivel para especificar la longitud de los bloques.
El arreglo, de una sola dimensión, de bloques lógicos se mapean sobre los
sectores del disco secuencialmente: el sector 0 es el primer sector de la
primera pista sobre el cilindro mas externo del disco, el mapeo sigue en orden
3
por esa pista y después en el resto de las pistas del cilindro, para después
continuar en el cilindro siguiente hasta arribar al cilindro mas interior del disco.
Planificación de discos
El sistema operativo debe usar el hardware eficientemente en este sentido la
eficiencia está signada por la velocidad de acceso. Como ya se dijo, la
velocidad de acceso de un disco está asociada a dos movimientos mecánicos
que los nombramos seek time y rotacional time.
Por otra parte se conoce como el ancho de banda del disco al total de bytes
transferidos dividido entre el total de tiempo transcurrido entre la primera
petición y la terminación de la última transferencia, la idea entonces es tratar de
“optimizar” esos valores.
Cada vez que un proceso necesita una E/S de disco deberá hacer una llamada
al SO que especifica varias piezas de información:

El tipo de operación (entrada o salida).

La dirección del disco.

La dirección de memoria.

Cantidad de sectores a transferir.
Obsérvese que el hecho de hacer una petición no significa que será atendida
de inmediato debido a que el disco puede estar ocupado con peticiones
anteriores y en ese caso la nueva petición deberá quedar en una cola que
puede tener otras peticiones pendientes. A partir de esta realidad queda clara
la necesidad de usar algún algoritmo para decidir cuál de las peticiones
pendientes será la próxima a satisfacer cuando el disco termine la petición en
curso.
Algoritmo “el primero en llegar es el primero en ser servido” (First Come First
Served -FCFS)
Es el algoritmo más simple, como su nombre lo indica satisface las peticiones
por el orden de llegada. Puede producir un movimiento para adelante y para
atrás del brazo del disco sin tomar en cuenta ningún principio que le ayuda a
minimizar esos movimientos.
4
El tiempo de búsqueda menor (Shortest Seek Time First-SSTF)
En este caso se selecciona la siguiente petición que provoque el menor seek
time. Aunque este algoritmo se porta mejor que FCFS, al tratar de minimizar los
movimientos del cabezal, no es el más eficiente debido a que trata al mas
cercano a la posición actual y no toma en cuenta si la petición más cercana es
una petición asilada, siendo, en ese caso, mejor moverse a una petición que
tenga muchos vecinos tratando de reducir los movimientos totales y no los
locales.
El algoritmo SSTF es discriminatorio al provocar inanición (starvation) sobre
todo a las peticiones que estén en el inicio o final del disco.
Algoritmo Explorador (Scan)
En este caso el brazo comienza situándose en el cilindro más externo (o el más
interno) del disco y se mueve hacia el extremo opuesto satisfaciendo todas las
peticiones que se encuentra. Debido a la similitud del servicio que da un
elevador en un edificio también recibe el nombre de algoritmo del elevador.
Algoritmo C-Scan (Circular Scan)
Es una variante de Scan que pretende tener mejores tiempos de respuesta, en
este caso el “elevador” se mueve hacia una dirección y cuando llega al final no
regresa dando servicios sino que retorna directamente al lugar de inicio (el final
o el inicio del disco) para de esa forma no retardar tanto a las peticiones que
llegaron cuando ya el brazo había pasado por el lugar que ocupan.
En cualquiera de las dos variantes de Scan el cabezal se mueve al final o el
inicio del disco lo cual, a todas luces, es innecesario de ahí que las
implementaciones de este algoritmo lo que en realidad hacen es mover el
cabezal hasta la petición mas externa de la dirección que van sin arribar al final
del disco. Esas variantes se conocen como look.
Seleccionar un algoritmo
SSTF es un algoritmo que se usa con bastante amplitud porque tiene mejor
rendimiento que FCFS, aunque provoca inanición (starvation). Scan y C-Scan
5
son menos proclives a la inanición y por eso se usan en sistemas que tienen
una fuerte carga de trabajo con disco
Las peticiones al disco están fuertemente relacionadas con el tipo de
colocación o asignación del sistema de archivo, por ejemplo la asignación
contigua tiende a que las peticiones no estén dispersas por el disco contrario a
la indexada que si lo estarán con mayor probabilidad. También la localización
de los directorios y de los bloques de índices juega un rol muy importante en la
eficiencia de los algoritmos.
Debido a todas esas complejidades los algoritmos de planificación de disco se
escriben como un módulo independiente del SO de forma que puedan
reemplazarse si se considera necesario. Se considera que SSTF o Look son
adecuados para tenerlos como algoritmos por defecto.
Manipulación de discos
Formateo
Para que un disco puede almacenar datos, es necesario dividirlo en sectores
que el controlador de disco pueda leer y escribir, ese proceso se denomina
formateo físico o de bajo nivel y consiste en llenar todos los sectores del
disco con una estructura de datos especial que, típicamente, tiene tres partes:

un encabezado,

un área de datos (usualmente de 512 bytes),

una cola
El encabezado y la cola contienen información para el controlador de disco, se
pueden citar: el número del sector, y un código de corrección de error o ECC
(error correction code). Cuando el controlador escribe un sector de datos
durante una operación normal de E/S se actualiza el ECC con un valor que se
calcula a partir de todos los bytes del dato, cuando se lee el dato se recalcula el
valor del ECC y si no coincide con el valor almacenado es una indicación de
que el sector puede estar dañado.
La mayoría de los discos duros vienen formateados a bajo nivel desde la
fábrica
Todo SO necesita una estructura de datos específica para poder almacenar
archivos en los discos. El primer paso para hacer eso es dividir el disco en
6
varios grupos de cilindros contiguos de forma que el SO pueda tratar a cada
partición como si fuera un disco diferente, después de hacer eso es necesario
hacer un formateo lógico en el cual se crea el sistema de archivo, es en ese
instante en que el SO almacena en el disco las estructuras de datos iniciales
del sistema de archivo, las estructuras de datos pueden ser: un mapa de
espacio libre y asignado, y un directorio vacío.
El bloque boot
Para que una computadora pueda iniciarse con el SO que tiene instalado
necesita un cargador inicial que se encarga de cargar las partes iniciales del
SO, las cuales a su vez deberán cargar las partes restantes, el cargador inicial
debe ser sencillo y solo se ocupa de iniciar aspectos esenciales para el
sistema.
La mayoría de las computadoras tiene un cargador en memoria ROM que hace
el trabajo inicial para después buscar un bloque especial del disco que contiene
un cargador específico para el SO que se tiene instalado, ese cargador se
localiza en un lugar especial del disco que se conoce como bloque boot. El
disco que tiene ese cargador se denomina disco de sistema.
Veamos un ejemplo generalizado. El código del bloque boot se sitúa en el
primer sector del disco (se denomina Master Boot Record o MBR):
1. Cuando se enciende la computadora, el cargador de la ROM lee el
código del MBR en el cual se encuentra un código de carga y una tabla
con las particiones del disco (un campo de la tabla contiene una bandera
que indica cuál es la partición del sistema o activa).
2. Una vez que se identifica la partición del sistema y se determina su
localización, el cargador del MBR carga el cargador de la partición
activa, que se encuentra en el primer sector de esa partición (se
denomina boot sector).
3. El cargador del boot sector se encarga, en ese instante, de comenzar el
proceso de carga del SO el cual puede ser complejo y tener varias
partes.
7
Descargar