Estructura de archivos
Realice un esquema
sobre cómo se estructura cada bloque de información sobre varios discos bajo
RAID niveles 0, 1 y 5.
Raid 0
DISCO
0 |
DISCO
1 |
A1 |
A2 |
A3 |
A4 |
A5 |
A6 |
A7 |
A8 |
espacio total
El primer nivel de RAID brinda una ganancia tanto en espacio
total, dado
que presenta un volumen grande en vez de varios discos más
pequeños (simplificando la tarea del administrador) como de velocidad, dado que
las lecturas
y escrituras al volumen ya no estarán sujetas al movimiento de una
sola cabeza, sino que habrá una cabeza independiente por cada uno de los discos
que
conforme al volumen.
confiabilidad
La confiabilidad del volumen, sin embargo, disminuye respecto a si
cada uno de los discos se manejara por separado: basta con que uno de los
discos presente daños para que la información contenida en el volumen se
pierda. Un arreglo RAID nivel 0 puede construirse con un mínimo de dos discos.
velocidad de acceso
El objetivo de implementar un RAID 0 es la de
proporcionar buenas velocidades de acceso a los datos que estén guardados en
los discos duros, ya que la información está equitativamente repartida en ellos
para tener acceso simultáneo a mayor cantidad de datos con sus discos
funcionando en paralelo
Raid 1
2.
DISCO
0 |
DISCO
1 |
A1 |
A1 |
A2 |
A2 |
A3 |
A3 |
A4 |
A4 |
espacio total
El objetivo de implementar un RAID 0 es la de
proporcionar buenas velocidades de acceso a los datos que estén guardados en
los discos duros, ya que la información está equitativamente repartida en ellos
para tener acceso simultáneo a mayor cantidad de datos con sus discos
funcionando en paralelo
velocidad de acceso
La velocidad de acceso a los datos bajo RAID 1 es mayor a la que se
lograría con un disco tradicional: basta con obtener los datos de uno de los
discos; el controlador RAID (sea el sistema operativo o una implementación en
hardware) puede incluso programar las solicitudes de lectura para que se vayan
repartiendo entre ambas unidades. La velocidad de escritura se ve levemente
reducida, dado que hay que esperar a que ambos discos escriban la información.
confiabilidad
Este nivel está principalmente orientado a aumentar la
confiabilidad de la información: los datos son grabados de forma simultánea e
idéntica en todos los discos que formen parte del volumen. El costo de mantener
los datos en espejo, claro está, es el del espacio empleado: en su
configuración habitual, de dos discos por volumen, 50% del espacio de almacenamiento
se pierde por fungir como respaldo del otro 50 por ciento.
Raid 5
DISCO
0 |
DISCO
1 |
DISCO
2 |
DISCO
3 |
A1 |
A2 |
A3 |
Ap |
B1 |
B2 |
Bp |
B4 |
C1 |
Cp |
C3 |
C4 |
Dp |
D2 |
D3 |
D4 |
velocidad de
acceso
n, la velocidad de acceso de este nivel puede ser es ligeramente
menor que la obtenida de los discos que no operan en RAID, o ligeramente menor
a la que se logra con RAID nivel 0. Dado que la electrónica en los discos
actuales notificará explícitamente al sistema operativo en caso de fallo de
lectura, cuando el sistema requiere leer datos, estos pueden ser solicitados
únicamente a n − 1 discos (e ignorar al de paridad); si el arreglo está
configurado para verificar la paridad en lecturas, todas tendrán que obtener la
franja correspondiente de todos los discos del arreglo para poder calcularla.
El algoritmo de verificación y recuperación de RAID 5 es sorprendentemente
eficiente y simple: el de una suma XOR, ilustrado en la figura C.11. La
operación booleana XOR (de Exclusive OR) suma los bits individuales, columna
por columna. Si es un número par, almacena un 0, si es impar, almacena un 1.
Esta operación es muy eficiente computacionalmente.
espacio total
El nivel 5 de RAID proporciona un muy buen equilibrio respecto a
las características que se han mencionado: brinda el espacio total de
almacenamiento de todos los discos que formen parte del volumen menos uno. Para
cada una de las franjas, RAID 5 calcula un bloque de paridad. Para obtener una
mayor tolerancia a fallos, este bloque de paridad no siempre va al mismo disco,
sino que se va repartiendo entre todos los discos del volumen, desplazándose a
cada franja, de modo que cualquiera de los discos puede fallar, y el arreglo
continuará operando sin pérdida de información. Esta debe notificarse al
administrador del sistema, quien reemplazará al disco dañado lo antes posible
(dado que, de no hacerlo, la falla en un segundo disco resultará en la pérdida
de toda la información).
confiabilidad
Con RAID 5, una sola unidad fallida no pierde
datos, pero si dos unidades fallan, los datos se pierden, Si falla más de un
disco, los datos se tienen que restaurar a partir del medio de copia de
seguridad. Lógicamente, la capacidad de una unidad de disco está dedicada a
almacenar datos de paridad en un conjunto de paridad.
c. Conteste la siguiente
pregunta: ¿Cuál es el tamaño máximo de archivo que podrá manejar este sistema
de archivos? Partiendo del siguiente sistema de archivos basado en asignación
indexada; cada cluster mide 4.096 bytes, y el apuntador a un bloque requiere 32
bits (4 bytes). Dados los metadatos que van a almacenarse en el i-nodo del
archivo, dentro del i-nodo principal puede guardar 24 apuntadores directos, y
está considerando permitir indirección sencilla y doble.
con cuatro clusters, se hace necesario extender al i-nodo con una
lista adicional. La implementación más común de este mecanismo es que,
dependiendo del tamaño del archivo, se emplean apuntadores con los niveles de
indirección que vayan haciendo falta. ¿Qué tan grande sería el archivo máximo
direccionable bajo este esquema y únicamente tres indirecciones? Suponiendo
magnitudes típicas hoy en día (clusters de 4 KB y direcciones de 32 bits), en
un cluster vacío caben 128 apuntadores ( 4 096 32 ). Si los metadatos ocupan
224 bytes en el i-nodo, dejando espacio para 100 apuntadores: Un archivo de
hasta (100 − 3) × 4 KB = 388 KB puede ser referido por completo directamente en
el i-nodo, y es necesario un sólo acceso a disco para obtener su lista de
clusters. Un archivo de hasta (100 − 3 + 128) × 4 KB = 900 KB puede representar
7.2. ESQUEMAS DE ASIGNACIÓN DE ESPACIO 283 con el bloque de indirección
sencilla, y obtener su lista de clusters significa dos accesos a disco adicionales.
Con el bloque de doble indirección, puede hacerse referencia a archivos mucho
más grandes: (100 − 3 + 128 + (128 × 128)) × 4 KB = 66 436 KB ≈ 65 MB Sin
embargo, a estas alturas comienza a llamar la atención otro importante punto:
para acceder a estos 65MB, es necesario realizar hasta 131 accesos a disco. A
partir de este punto, resulta importante que el sistema operativo asigne
clusters cercanos para los metadatos (y, de ser posible, para los datos), pues
la diferencia en tiempo de acceso puede ser muy grande. Empleando triple
indirección, se puede llegar hasta: (100 − 3 + 128 + (128 × 128) + (128 × 128 ×
128)) × 2 KB = 8 455 044 ∗ kb∗ ≈
8 GB Esto es ya más de lo que puede representarse en un sistema de 32 bits. La
cantidad de bloques a leerse, sin embargo, para encontrar todos los clusters
significaron hasta 16 516 accesos a disco (en el peor de los casos).
d. Describa el
funcionamiento de un sistema de archivos con bitácora (journaling file system)
y responda la siguiente pregunta: ¿Cómo se asegura que el sistema se mantendrá
consistente después de una interrupción abrupta del suministro eléctrico?
Si se lleva el concepto del sistema de archivos con bitácora a su
límite, y se designa a la totalidad del espacio en el volumen como la bitácora,
el resultado es un sistema de archivos estructurado en bitácora (log-structured
file systems). Obviamente, este tipo de sistemas de archivos presenta una
organización completa radicalmente diferente de los sistemas de archivo
tradicionales.
Si se lleva el concepto del sistema de archivos con bitácora a su
límite, y se designa a la totalidad del espacio en el volumen como la bitácora,
el resultado es un sistema de archivos estructurado en bitácora (log-structured
file systems). Obviamente, este tipo de sistemas de archivos presenta una
organización completa radicalmente diferente de los sistemas de archivo
tradicionales. Las ideas básicas detrás de la primer implementación de un
sistema de archivos de esta naturaleza (Ousterhout y Rosenblum, 1992) apuntan
al empleo agresivo de caché de gran capacidad, y con un fuerte mecanismo de
recolección de basura, acomodando la información que esté más cerca de la cola
de la bitácora (y liberando toda aquella que resulte redundante). Este tipo de
sistemas de archivos facilita las escrituras, haciéndolas siempre secuenciales,
y buscan –por medio del empleo del caché ya mencionado– evitar que las cabezas
tengan que desplazarse con demasiada frecuencia para recuperar fragmentos de
archivos. Una consecuencia directa de esto es que los sistemas de archivos
estructurados en bitácora fueron los primeros en ofrecer fotografías
(snapshots) del sistema de archivos: es posible apuntar a un momento en el
tiempo, y –con el sistema de archivos aún en operación– montar una copia de
sólo lectura con la información del sistema de archivos completa (incluyendo
los datos de los archivos). Los sistemas de archivo estructurados en bitácora,
sin embargo, no están optimizados para cualquier carga de trabajo. Por ejemplo,
una base de datos relacional, en que cada uno de los registros es típicamente
actualizado de forma independiente de los demás, y ocupan apenas fracciones de
un bloque, resultaría tremendamente ineficiente. La implementación referencia
de Ousterhout y Rosenblum fue parte de los sistemas BSD, pero dada su tendencia
a la extrema fragmentación, fue eliminado de ellos.
Comentarios
Publicar un comentario