Discos Magnéticos Sistemas Operativos Principal medio de almacenamiento secundario Discos Mario Medina ([email protected]) Disco circular de metal o plástico cubierto por sustancia magnética Datos se leen y escriben a través de bobina conductora • Cabeza lectora ubicada sobre brazo móvil • Disco gira bajo la cabeza a velocidad constante If you torture data sufficiently, it will confess to almost anything. Si torturas bien los datos, éstos confesarán casi cualquier cosa. Datos se almacenan en anillos concéntricos llamados pistas Pistas están divididas en sectores de tamaño fijo • 512 bytes Número de sectores por pista constante • Densidad de grabación variable Fred Menger Número de sectores por pista variable • Intenta mantener densidad de grabación constante • Mejor desempeño lejos del eje Torres de discos • Múltiples platos apilados verticalmente • Una cabeza por superficie • Cilindro: todas las pistas a la misma distancia del eje Sistemas Operativos, 2008-1 Sectors Sistemas Operativos, 2008-1 1 Tracks Inter-sector gap • • • S6 Inter-track gap • • • S6 S5 SN S5 SN S4 S1 S4 S1 S2 S2 S3 S3 Figure 11.16 Disk Data Layout (a) Constant angular velocity (b) Multiple zoned recording Figure 11.17 Comparison of Disk Layout Methods Read/write head (1 per surface) Direction of arm motion Surface 9 Platter Surface 8 Surface 7 Surface 6 Surface 5 Surface 4 Surface 3 Surface 2 Surface 1 Surface 0 Spindle Boom Figure 11.18 Components of a Disk Drive Figure 11.19 Tracks and Cylinders Desempeño de discos duros Factores que influyen en el rendimiento del disco Procesos compitiendo por el dispositivo • Depende del grado de multiprogramación y del comportamiento de los procesos Procesos compitiendo por el bus de Entrada/Salida • Depende del grado de multiprogramación y del comportamiento de los procesos Tiempo en ubicar la cabeza sobre la pista deseada • Depende de factores fı́sicos y mecánicos del disco • No es lineal sobre el número de pistas recorridas ◦ Tiempo en recorrer de un extremo del disco al otro ◦ Tiempo en pasar de una pista a la pista vecina Tiempo en alinear sector deseado con la cabeza lectora • Depende de la velocidad de rotación del disco • En promedio, se estima como 1/2 tiempo de rotación Tiempo de transferencia de datos • Depende de la velocidad de rotación del disco • Depende de la densidad de grabación • Depende de la cantidad de datos a transferir Sistemas Operativos, 2008-1 2 Wait for Device Wait for Channel Seek Rotational Delay Device Busy Figure 11.6 Timing of a Disk I/O Transfer Data Transfer Parámetros de un disco duro Parámetro Valor Marca Modelo Capacidad Velocidad de rotación Interfaz Latencia promedio de rotación Número de discos Número de cabezas Buffer interno TBusqueda mı́nimo, lectura TBusqueda mı́nimo, escritura TBusqueda promedio, lectura TBusqueda promedio, escritura TBusqueda máximo, lectura TBusqueda máximo, escritura Tasa peak de transferencia Tasa de transferencia sostenida MTBF Maxtor Atlas 15K II 8E147L0 147.1 GB 15000 RPM SCSI Ultra320 2 ms 4 8 8MB 0.3 ms 0.5 ms 3.4 ms 3.8 ms 8.0 ms 9.0 ms 320 MB/s 98 MB/s 1.4 × 106 horas Sistemas Operativos, 2008-1 Table 11.7 Typical Hard Disk Drive Parameters Characteristics Seagate Barracuda 180 Seagate Cheetah X15-36LP Seagate Barracuda 36ES Toshiba HDD1242 Hitachi Microdrive Application High-capacity server High-performance server Entry-level desktop Portable Handheld devices Capacity 181.6 GB 36.7 GB 18.4 GB 5 GB 4 GB Minimum track-to-track seek time 0.8 ms 0.3 ms 1.0 ms — 1.0 ms Average seek time 7.4 ms 3.6 ms 9.5 ms 15 ms 12 ms Spindle speed 7200 rpm 15K rpm 7200 4200 rpm 3600 rpm Average rotational delay 4.17 ms 2 ms 4.17 ms 7.14 ms 8.33 ms Maximum transfer rate 160 MB/s 522 to 709 MB/s 25 MB/s 66 MB/s 7.2 MB/s Bytes per sector 512 512 512 512 512 Sectors per track 793 485 600 63 — Tracks per cylinder (number of platter surfaces) 24 8 2 2 2 Cylinders (number of tracks on one side of platter) 24,247 18,479 29,851 10,350 — 3 Algoritmos de Optimización de Movimiento Algoritmos de Planificación Tiempo de búsqueda es factor principal en tiempo de acceso a disco FIFO Bueno si hay pocos procesos y solicitudes contiguas Procesos realizan solicitudes con localidad espacial y temporal • Solicitudes llegan al disco en orden casi aleatorio • Movimientos de la cabeza serán muy costosos! Polı́tica justa y fácil de implementar Prioridades Reducir tiempos de búsqueda promedio al reordenar accesos Algoritmos de planificación del movimiento de la cabeza • Selección en función del proceso o de la cola ◦ FIFO ◦ Prioridades ◦ LIFO • Selección en función de la pista solicitada ◦ Shortest Seek Time First (SSTF) ◦ SCAN ◦ LOOK ◦ C-SCAN ◦ C-LOOK ◦ SCAN de N pasos ◦ FSCAN Control se lleva fuera de la gestión de la cola del disco Puede ser • prioridad a procesos cortos • prioridad a procesos interactivos Polı́tica no persigue optimizar uso del disco Posibilidad de inanición LIFO Atiende primero a la última solicitud recibida Útil para atender a solicitudes cortas y secuenciales • Muy pocos movimientos del brazo lector Posibilidad de inanición Sistemas Operativos, 2008-1 4 Sistemas Operativos, 2008-1 5 Algoritmos de Planificación Algoritmos de Planificación Shortest Seek Time First (SSTF) LOOK Atiende primero a la solicitud que requiera el menor movimiento posible del brazo Rendimiento mejor que FIFO Optimización de SCAN Posibilidad de inanición invierte dirección al llegar a la última solicitud en la dirección de movimiento • No llega hasta los extremos del disco SCAN C-SCAN Mueve brazo en un solo sentido hasta llegar a la última pista en esa dirección Atiende solicitudes en sólo una dirección de movimiento • Por ejemplo, atiende solicitudes en dirección hacia el eje • Vuelve al extremo opuesto del disco sin atender solicitudes • Atiende nuevamente solicitudes en dirección hacia el eje Luego invierte dirección y atiende nuevas solicitudes en esta nueva dirección Mejora tiempo de atención de solicitudes a extremos del disco • Textremo−a−extremo es mucho menor que N veces Tpista−a−pista • Tiempo en visitar 2 veces la pista más exterior ◦ SCAN: 2 × N × Tpista−a−pista ◦ C-SCAN: N × Tpista−a−pista + Textremo−a−extremo Favorece a procesos que usan pistas a distancia r/2 Favorece a las solicitudes nuevas Comportamiento similar a SSTF No hay inanición Algoritmos de Planificación Sistemas Operativos, 2008-1 track number 6 0 25 50 75 100 125 150 175 199 track number Sistemas Operativos, 2008-1 0 25 50 75 100 125 150 175 199 SSTF, SCAN y C-SCAN atienden solicitudes a medida que éstas llegan • El brazo puede quedar pegado en unas pocas pistas si hay solicitudes repetidas a éstas • Dividir las solicitudes recibidas en segmentos SCAN de N Pasos divide cola de solicitudes en subcolas de tamaño N • Colas se procesan una a una con SCAN ◦ Para N grande, se comporta como SCAN ◦ Para N = 1, se comporta como FIFO track number SCAN de N Pasos Como SCAN de N Pasos, pero usa sólo 1 cola adicional para solicitudes nuevas • Se planifica en base a una de las colas • Solicitudes nuevas ingresan a la otra cola • Solicitudes nuevas son postergadas hasta que se han procesado todas las de la otra cola Sistemas Operativos, 2008-1 8 track number FSCAN 7 (a) FIFO Time (b) SSTF Time (c) SCAN Time 0 25 50 75 100 125 150 175 199 0 25 50 75 100 125 150 175 199 (d) C-SCAN Figure 11.7 Comparison of Disk Scheduling Algorithms (see Table 11.3) Time Table 11.3 Disk Scheduling Algorithms Name Description Remarks Selection according to requestor RSS Random scheduling For analysis and simulation FIFO First in first out Fairest of them all PRI Priority by process Control outside of disk queue management LIFO Last in first out Maximize locality and resource utilization Table 11.2 Comparison of Disk Scheduling Algorithms (a) FIFO (starting at track 100) (b) SSTF (starting at track 100) (c) SCAN (starting at track 100, in the direction of increasing track number) (d) C-SCAN (starting at track 100, in the direction of increasing track number) Next track accessed Number of tracks traversed Next track accessed Number of tracks traversed Next track accessed Number of tracks traversed Next track accessed Number of tracks traversed 55 58 39 18 90 160 150 38 184 45 3 19 21 72 70 10 112 146 90 58 55 39 38 18 150 160 184 10 32 3 16 1 20 132 10 24 150 160 184 90 58 55 39 38 18 50 10 24 94 32 3 16 1 20 150 160 184 18 38 39 55 58 90 50 10 24 166 20 1 16 3 32 Average seek length 55.3 Average seek length 27.5 Average seek length 27.8 Average seek length Selection according to requested item SSTF Shortest service time first High utilization, small queues SCAN Back and forth over disk Better service distribution C-SCAN One way with fast return Lower service variability N-step-SCAN SCAN of N records at a time Service guarantee FSCAN N-step-SCAN with N = queue Load sensitive size at beginning of SCAN cycle 35.8 RAID Utilizar varios discos en paralelo para mejorar el desempeño y la confiabilidad RAID: Redundant Array of Inexpensive Disks Más discos, más baratos, menos confiables Vistos por el sistema operativo como una sola unidad lógica Puede haber • Datos distribuidos a través de muchos discos • Copias redundantes de datos en diferentes discos • Información para detección y corrección de errores • Acceso simultáneo a varios discos strip 0 strip 1 strip 2 strip 4 strip 5 strip 6 strip 3 strip 7 strip 8 strip 9 strip 10 strip 11 strip 12 strip 13 strip 14 strip 15 (a) RAID 0 (non-redundant) strip 0 strip 1 strip 3 strip 0 strip 1 strip 4 strip 5 strip 6 strip 7 strip 4 strip 5 strip 6 strip 7 strip 8 strip 9 strip 10 strip 2 strip 11 strip 8 strip 9 strip 10 strip 2 strip 11 strip 12 strip 13 strip 14 strip 15 strip 12 strip 13 strip 14 strip 15 b2 b3 f0(b) f1(b) f2(b) (b) RAID 10 (mirrored) Niveles de RAID Diferencias en distribución de datos, redundancia de datos, granularidad, etc. Niveles 1 a 5 definidos por los inventores del término Niveles 2 y 4 no se usan RAID 0, 0+1, 1+0, 5+0, 100, etc. definidos después Otros fabricantes han definido sus propios niveles: RAID 7, RAID S, etc. Sistemas Operativos, 2008-1 9 b0 b1 (c) RAID 2 (redundancy through Hamming code) Figure 11.8 RAID Levels (page 1 of 2) strip 3 b0 b1 b2 b3 P(b) block 2 block 3 P(0-3) (d) RAID 3 (byte-interleaved parity) Table 11.4 RAID Levels block 0 block 1 block 4 block 5 block 6 block 7 P(4-7) block 8 block 9 block 10 block 11 P(8-11) block 12 block 13 block 14 block 15 P(12-15) Category Striping Mirroring (e) RAID 4 (block-level parity) Level Description 0 block 1 block 2 block 3 P(0-3) block 4 block 5 block 6 P(4-7) block 7 block 8 block 9 P(8-11) block 10 block 11 block 12 P(12-15) block 13 block 14 block 15 P(16-19) block 16 block 17 block 18 block 19 Independent access Disks required Data availability Lower than single N disk 2N, 3N, etc. Mirrored 2 Redundant via Hamming code N+m 3 Bit-interleaved parity N+1 4 Block-interleaved parity N+1 Much higher than single disk; comparable to RAID 2, 3, or 5 5 Block-interleaved distributed parity N+1 Much higher than single disk; comparable to RAID 2, 3, or 4 6 Block-interleaved dual distributed parity N+2 Highest of all listed alternatives (f) RAID 5 (block-level distributed parity) block 0 block 1 block 2 block 3 P(0-3) Q(0-3) block 4 block 5 block 6 P(4-7) Q(4-7) block 7 block 8 block 9 P(8-11) Q(8-11) block 10 block 11 block 12 P(12-15) Q(12-15) block 13 block 14 block 15 Higher than RAID 2, 3, 4, or 5; lower than RAID 6 1 Parallel access block 0 Nonredundant Much higher than single disk; higher than RAID 3, 4, or 5 Much higher than single disk; comparable to RAID 2, 4, or 5 Large I/O data transfer capacity Small I/O request rate Higher than single disk for read; similar to single disk for write Very high for both read and write Up to twice that of a single disk for read; similar to single disk for write Highest of all listed alternatives Approximately twice that of a single disk Highest of all listed alternatives Approximately twice that of a single disk Very high Similar to RAID 0 for read; significantly lower than single disk for write Similar to RAID 0 for read; lower than single disk for write Similar to RAID 0 for read; lower than RAID 5 for write Similar to RAID 0 for read; significantly lower than single disk for write Similar to RAID 0 for read; generally lower than single disk for write Similar to RAID 0 for read; significantly lower than RAID 5 for write (g) RAID 6 (dual redundancy) Figure 11.8 RAID Levels (page 2 of 2) RAID 0 Datos distribuidos a través de N discos en franjas de tamaño fijo (Striping ) No hay redundancia de datos Una misma solicitud se divide en varios accesos paralelos • Alta tasa de transferencia de datos si aplicación permite grandes accesos secuenciales ◦ Aplicaciones cientı́ficas, minerı́a de datos, etc. • Canales de comunicación deben permitir dicha tasa ◦ Buses de E/S, buses de memoria, controladores, etc. Aplicación genera múltiples solicitudes independientes • Distribución de carga uniforme Disco 2 Disco 3 Disco 4 A0 A4 A1 A5 A2 A6 A3 A7 A8 A9 A10 A11 A12 A13 A14 A15 Sistemas Operativos, 2008-1 Physical Disk 0 Physical Disk 1 Physical Disk 2 strip 0 strip 0 strip 1 strip 1 strip 4 strip 5 strip 6 strip 7 strip 2 strip 8 strip 9 strip 10 strip 11 strip 3 strip 12 strip 13 strip 14 strip 15 strip 2 Physical Disk 3 strip 3 strip 4 strip 5 strip 6 strip 7 strip 8 strip 9 Array Management Software strip 10 strip 11 Tamaño de la franja es crucial • Franja muy pequeña no aprovecha ventajas de RAID 0 • Franja muy grande no aprovecha paralelismo Disco 1 Logical Disk strip 12 strip 13 strip 14 strip 15 Figure 11.10 Data Mapping for a RAID Level 0 Array [MASS97] 10 RAID 1 RAID 2 Discos en Configuración Espejo (Mirroring ) • Requiere 2N discos • Solicitud de lectura puede ser servida por cualquier disco ◦ Escoger el de tiempo de acceso más rápido • Solicitud de escritura tiene que actualizar ambos discos en paralelo ◦ Limitado por el tiempo de acceso más lento Redundancia mediante duplicación de datos • Recuperación de errores fácil y rápida • Principal desventaja es el costo • Desempeño aumenta si aplicación realiza alto porcentaje de lecturas ◦ Contabilidad, sistemas financieros, etc. Disco 1 Disco 2 A0 A1 A0 A1 A2 A2 B0 B0 Sistemas Operativos, 2008-1 11 Datos distribuidos a través de los discos • Nivel de granularidad de bits • Acceso paralelo a los bits de datos y de paridad • Sincronización de la rotación de los discos Código Hamming de detección y corrección de errores • Detecta errores de dos bits y corrige errores de un bit • Muy costoso y obsoleto ◦ Se requieren 7 discos para almacenar datos de 4 bits • Bits de paridad h3h2h1 se eligen tal que se cumplan ◦ h1 ⊕ b1 ⊕ b2 ⊕ b4 = 0 ◦ h2 ⊕ b1 ⊕ b3 ⊕ b4 = 0 ◦ h3 ⊕ b2 ⊕ b3 ⊕ b4 = 0 Obsoleto: Discos de hoy incorporan códigos de corrección de errores (ECC) Disco 1 Disco 2 Disco 3 b4 b3 b2 h3 Disco 5 b1 Disco 6 h2 Sistemas Operativos, 2008-1 Disco 7 h1 12 RAID 3 RAID 4 Similar a RAID 2, pero usa un sólo disco extra • Nivel de granularidad de bytes • Calcula sólo un byte de paridad • Acceso paralelo a los bytes de datos y de paridad • Sincronización de la rotación de los discos Byte de paridad permite detectar un error • Si falla un disco, su contenido puede ser reconstruido a partir de los datos en los otros discos y el byte de paridad ◦ Se calcula como P (b) = Byte0 ⊕ Byte1 ⊕ Byte2 ⊕ Byte3 ◦ Si Byte1 falla, se puede reconstruir haciendo Byte1 = Byte0 ⊕ P (b) ⊕ Byte2 ⊕ Byte3 Disco de paridad es el cuello de botella y eslabón más débil Disco 1 Disco 2 Disco 3 Disco 4 Disco 5 b0 b1 b2 b3 P(b) Sistemas Operativos, 2008-1 Disco 4 13 Utiliza franjas de datos con una franja de paridad Varios discos que operan de forma independiente • Un disco almacena todas las franjas de paridad • Este disco puede ser el cuello de botella • Este disco es más propenso a fallas Escritura de una franja de datos implica dos lecturas y dos escrituras • Si se modifica la franja B1, debe reescribirse una nueva franja de paridad P (B). ◦ P (B) = B0 ⊕ B1 ⊕ B2 ⊕ B3 ◦ La nueva paridad se calcula como P (B) = B0 ⊕ B 1 ⊕ B2 ⊕ B3 ◦ Pero, esto es equivalente a P (B) = P (B)⊕B 1⊕B1 Por lo tanto, deben leerse P (B) y B1 y escribirse P (B) y B (1). Disco 1 Disco 2 Disco 3 Disco 4 Disco 5 B0 B1 B2 B3 P(B) B4 B8 B5 B9 B6 B10 B7 B11 P(B) P(B) B12 B13 B14 B15 P(B) B16 B17 B18 B19 P(B) Sistemas Operativos, 2008-1 14 RAID 5 RAID 6 Similar a RAID 4 Similar a RAID 5 Uno de los RAID más populares Requiere N + 2 discos También requiere N + 1 discos 2 franjas de paridad se distribuyen en forma rotatoria a través de los discos • OR exclusivo • Otro algoritmo Franjas de paridad se distribuyen en forma rotatoria a través de los discos Evita sobrecargar excesivamente un disco en particular Desempeño aumenta si aplicación realiza alto porcentaje de lecturas • Procesamiento de transacciones, bases de datos, sistemas financieros, etc. Permite regenerar datos si fallan dos discos Esquema muy confiable Escritura de una franja implica leer y escribir dos franjas de paridad Disco 1 Disco 2 Disco 3 Disco 4 Disco 5 Disco 1 Disco 2 Disco 3 Disco 4 Disco 5 Disco 6 B0 B1 B2 B3 P(B) B0 B1 B2 B3 P(B) Q(B) B4 B8 B5 B9 B6 P(B) P(B) B10 B7 B11 B4 B8 B5 B9 B6 P(B) P(B) Q(B) Q(B) B11 B7 B11 B12 P(B) B13 B14 B15 B12 P(B) Q(B) B14 B15 B15 P(B) B16 B17 B18 B19 P(B) Q(B) B17 B18 B19 B19 Sistemas Operativos, 2008-1 15 Sistemas Operativos, 2008-1 Niveles de RAID Compuestos 16 Almacenamiento local y remoto Dispositivos de almacenamiento conectados localmente al computador Busca mejorar desempeño y confiabilidad de datos Combinan esquemas de RAID en forma jerárquica Configuraciones más comunes: RAID 1+0, RAID 0+1, 5+0, 5+1 • RAID 0 implica distribuir accesos a diferentes bancos de discos • RAID 1 implica duplicar los datos • RAID 5 implica discos extras para almacenar paridad Discos duros Discos ópticos Esquemas compuestos tienen costos altos • Complejidad mucho mayor • Muchos requieren mı́nimo 2N discos Buses de comunicación local Aplicaciones donde confiabilidad de los datos es crı́tica • Recuperación ante fallas de 1 ó 2 discos • Acceso paralelo a diferentes secciones de un mismo archivo • Accesos paralelos independientes a distintos archivos RAID Unidades de cinta Bus PCI • Bus PCI 64-bit/100 MHz: 800 MB/s • Bus PCI-X 64-bit/133 MHz: 1.066 GB/s Bus PCI Express • Bus PCI Express x1: 250 MB/s • Bus PCI Express x16: 4 GB/s • Bus PCI Express 2.0 x32: 8 GB/s Hypertransport • Hypertransport 800 MHz, 16-pares: 6.4 GB/s • Hypertransport 2.8 GHz, 32-pares: 22.4 GB/s Sistemas Operativos, 2008-1 17 Sistemas Operativos, 2008-1 18 Buses de entrada/salida Network-Attached Storage (NAS) Sistema de almacenamiento diseñado para su acceso a través de una red local IDE (ATA) • 2 discos por cable paralelo • Ultra DMA/133: 133 MB/s Facilita compartir archivos SATA (Serial ATA) • 1 cable serial por disco • SATA/150: 150 MB/s • SATA/300: 300 MB/s Protocolos NFS, CIFS (Samba) permiten ver sistemas de archivos remotos como discos locales • Acceso compartido a archivos • Espacio de nombres común • Protocolo debe controlar concurrencia de accesos • Protocolos mantienen o no el estado de accesos anteriores (stateless protocols) SCSI • 16 discos por cable paralelo • SCSI Ultra 320: 320 MB/s SAS: Serial Attached SCSI • 1 disco por cable serial • SAS 1.5: 150 MB/s • SAS 3.0: 300 MB/s Protocolos de comunicación RPC sobre TCP/IP, iSCSI (SCSI sobre IP) Desempeño menor que almacenamiento local Utilizado en conjunto con RAID Unidades de almacenamiento de datos pueden ser inteligentes • Implementar operaciones básicas Sistemas Operativos, 2008-1 19 Sistemas Operativos, 2008-1 20 Storage Area Networks (SAN) Espacio de intercambio (swap) Network-Attached Storage conectado a la misma red que los computadores Sistema operativo utiliza el disco como extensión de la memoria fı́sica Problemas de latencia Procesos suspendidos Interferencia con otras transferencias por la red Páginas con tablas de páginas Páginas anónimas (pila y datos no inicializados) SAN: Red privada de interconexión entre servidores y unidades de almacenamiento de datos Páginas compartidas entre procesos Espacio de intercambio Diseñada para transferencias de datos Protocolos de comunicación de propósito especı́fico Facilita control de acceso y balance de carga Residente en disco como un archivo especial • Microsoft Windows (C:\pagefile.sys) • Manipulable for funciones estándar de C Partición especial del disco duro • Unix, Linux, Solaris • Optimizado para almacenar páginas Generalmente usan Fibre Channel • Fibre Channel 4FGC 425 MB/s Aumenta uso de Infiniband • Infiniband 1X: 325 MB/s • Infiniband 12X: 3.75 GB/s Sistemas Operativos, 2008-1 Partición sin formato (raw ) 21 Sistemas Operativos, 2008-1 22