viernes, 13 de marzo de 2009

Discos Duros: Conceptos, configuraciones e Historia


Una explicación general y amplia sobre los discos duros. Lectura obligada si deseas interiorizarte en el tema.



1.0 Introducción

Siempre se habla de los discos duros, que la capacidad de almacenamiento, que el SATA, IDE, NCQ, RAID, SCSI, entre muchos otros términos que para el que se está recién introduciendo en la computación pueden ser términos complicados y de un entendimiento a veces no tan fácil. Preguntas como “¿Qué es más rápido: ATA133 ó SATA?”, “¿SATAII es mejor que SATA?”, “¿Cuál es la utilidad de las particiones?” son preguntas bastante frecuentes en foros de debate relacionados con el tema.

Por lo mismo, esta guía pretende ser una introducción a todos estos términos, no es una guía que te enseñe cómo crear un arreglo RAID, sino que sólo aclara conceptos que no todos manejan.


2.0 Primer concepto: El disco duro





El disco duro en sí, es un conjunto de platos con sus respectivos cabezales, que giran a gran velocidad y que permite escribir y leer datos: Estos platos son por lo general de aluminio y están recubiertos por ambos lados en muchos casos por algún material sensible a alteraciones magnéticas. Los cabezales en el caso de que sea un disco que esté recubierto por ambos lados por este material sensible a alteraciones magnéticas, también están por ambos lados, pero no tocan el disco en sí, se encuentran a 3 ó 4 micropulgadas de este último, (Para efectos de comparación, un cabello humano tiene 4000 micropulgadas), permitiendo así la lectura o escritura mediante impulsos eléctricos que modifican los campos magnéticos del disco en caso de escritura. En caso de lectura, no hay modificación alguna de estos campos.


La velocidad de giro depende de cada disco, aunque en la actualidad (fines del 2005), el “estándar” está en los 7200rpm. Los discos más antiguos giraban a la velocidad de 5400rpm y hasta 3600rpm, y los discos más rápidos andan en los 10000rpm y hasta 15000rpm. Esta velocidad de giro define qué tan rápido puede llegar a ser el disco, ya que a mayor velocidad de giro, menor es el tiempo de acceso a los datos. (En palabras simples, más rápido llega donde tiene que llegar).

Una foto vale más que mil palabras, así que aquí va un esquema detallado de un disco duro:





Lo mismo de arriba, pero más simplecito:





3.0 Reseña histórica


A pesar de considerarme casi un experto de google y otros buscadores afines, no pude encontrar por ningún lado la fecha de creación exacta de lo que se conoció como el primer disco duro, sólo encontré esta imagen:





La señora tiene pinta de ser de finales de los ’50, y la verdad es que los discos duros más pinta tienen de lavadoras automáticas que disco duro. Y después nos vienen a decir que somos machistas, si la ñora realmente parece feliz con esa cosa que no tiene idea qué es, pero se parece más a algo que en el futuro se inventará y le aliviará la pega…


Continuando, de lo que sí encontré información, es sobre los distintos estándares sobre la que evolucionó el disco, así que aquí vamos



3.1 Mi primer disco


Los platos y los cabezales no lo son todo. De alguna parte se tienen que leer los datos desde los platos y llevarlos a alguna parte para que puedan ser procesados. El que hace esta pega en la actualidad es la controladora del disco, que sabe dónde queda cada sector y es capaz de llevar el cabezal a ese lugar y rescatar el dato. Esta controladora viene integrada con el disco, pero antes de eso, esa pega correspondía a la placa madre. Los conectores de ese entonces eran tres: un cable de alimentación (AKA energía eléctrica), un cable de control (el que hace mover el cabezal hacia todos lados), y un cable de datos, en la cual viajan los datos hacia la placa madre y vice-versa. Este controlador se llamaba la ST506, creada por Seagate. Estos discos en un principio no superaban los 40MB en capacidad y su velocidad de transferencia no superaban el medio mega por segundo.

Conforme iba pasando el tiempo, dentro de este mismo estándar, apareció otro modo, conocido en su tiempo como el modo RLL (Sobre el que hablamos anteriormente tenía como nombre el modo MFM). Este modo permitía discos de mayor tamaño, alrededor de los 120MB, y velocidades de transferencia de ¾ MB por segundo.
El hombre siempre aspira a más, y se va haciendo más inteligente a partir de los errores cometidos en el pasado (bueno, hay excepciones), y los desarrolladores de hardware se dieron cuenta de que era mucho más útil tener la controladora en el disco mismo en vez de tenerlo en la placa madre. Se comenzó a desarrollar una nueva interfaz, conocida como ESDI, que podía alcanzar velocidades de transferencia de hasta 1.25MB por segundo y las capacidades de los discos aumentaban hasta a 630MB. Aunque esta tecnología llegó a ver la luz escasamente, fue la antesala para lo que venía: el IDE.


3.2 Un pequeño paso para el humano, un gran paso para la humanidad


El gran salto a la fama lo dio Western Digital, por encargo de Compaq, que le pidió por falta de espacio físico en su nueva línea de computadoras que incorporaran la controladora totalmente en el disco, denominándose esta tecnología “Integrated Drive Electronics”, o IDE. Este gran avance en el desarrollo permitió reducir los tres cables que se conectaban al disco a sólo dos, llevando consigo una mejora en la velocidad de transferencia y una compatibilidad mejorada, mediante el estándar ATA.
Este nuevo sistema permitía velocidades de transferencia de hasta 4MB por segundo (dependiendo del modo de transferencia), y la capacidad máxima no superaba los 528MB, limitado tanto por la BIOS como por la controladora. Se podían conectar hasta dos discos duros.

Durante un par de años, esta tecnología fue masificada, pero como siempre, se hizo poco, por lo que tuvieron que mejorar este nuevo estándar, y plaf! Nació EIDE, o “Enhanced Integrates Drive Electronics”, también desarrollado por Western Digital, el que aumentaba la máxima capacidad a 8.4GB y alcanzaba velocidades de transferencia de alrededor de los 10MBps (de nuevo, dependiendo del modo de transferencia). Se mejoró asimismo el sistema de LBA y CHS, que eran las encargadas de limitar la capacidad máxima, y la máxima cantidad de discos conectados simultáneamente se aumentó a cuatro.


3.3 Los modos de transferencia

En un principio, habían dos modos de transferencia: El PIO y el DMA. El PIO dependía principalmente del procesador, requería atención de este para poder transferir datos, mientras que el DMA dependía de un controlador especializado en la placa que a su vez dependía de cada fabricante implementar. En cuanto a las velocidades de transferencia de cada uno de los distintos modos, nada mejor que una tablita:







Cabe destacar que todas estas velocidades de transferencia son, en el mejor de los casos, que según la Ley de Murphy, nunca se da. Un disco ATA100 o ATA133 da a lo más una tasa de transferencia máxima de 49MBps, bastante por debajo de los 100 ó 133 prometidos. En la práctica, no hay diferencia alguna entre un disco ATA100 o ATA133. (Este último de hecho fue un vil invento (algunos lo conocen también como marketing) de Maxtor)


3.4 Caso especial: SCSI

Como esta es una guía introductoria al tema, no ahondaré más allá en lo que a SCSI se refiere, ya que no es muy considerada como una tecnología al alcance del usuario común y corriente.





Los discos SCSI son más viejos de lo que se cree. Desde un principio, fueron y siguen desarrollándose igual que los ATA, con la diferencia de que no fueron hechos para el público final, sino para una tarea específica: desde un principio fueron hechos para labores pesadas, que requerían el fuerte flujo de información de un lado hacia otro. Estamos hablando de los servidores.

La gran gracia de los SCSI al principio era que no traían (y todavía no traen) la controladora integrada en la placa madre, por lo que perfectamente se pueden superar las barreras que incluye el traer la controladora en la placa: se pueden conectar más de cuatro dispositivos (Hasta 8 en un principio, pero en la práctica es siempre uno menos, ya que el principal es la controladora propiamente tal), además es compatible con cualquier sistema operativo y cualquier plataforma. Tiene la gran ventaja de poder conectar casi cualquier cosa, siempre y cuando ya sea la cámara, scanner, CD-ROM o disco duro cumpla con la normativa SCSI.


4.0 Los discos de hoy


Hoy en día, podemos elegir entre una gran variedad de discos, con distinta capacidad como también tipos de conexiones, y todos a un precio bastante aceptable y fácil de alcanzar para el bolsillo. Las capacidades fluctúan desde los 40GB hasta los 500GB, y tipos de conexiones tenemos como los principales tres: el ATA, el SATA y el SCSI.


4.1 ¿Pero qué es el SATA en sí?


El SATA, S-ATA o Serial-ATA no es nada menos que un tipo de cable, harto más delgadito que el tradicional ATA y que permite velocidades de transferencia más altos que esta última.





En la foto de arriba, tenemos a la izquierda el típico cable ATA, y a la derecha el cable SATA. Como se podrá apreciar, es bastante más chico el cable SATA, lo que permite una mejora sustancial en cuanto al movimiento de aire dentro del gabinete, ya que no estorba tanto como el cable ATA, además de ser más fácil de “esconder”.

En un futuro (ojalá) no muy lejano, este mismo cablecito permitirá velocidades de transferencia harto más altos, hoy en día anda alrededor de los 50MBps. La máxima teórica del estándar SATA es de 150MBps, o 1500Mbps

4.2 Bonito el cable SATA, pero qué pasa con el SATA II, ¿ocupa otro tipo de cable?

Afortunadamente, los discos son una tecnología que tampoco va cambiando de cable como otras partes del PC (¿Les suena Socket A, 754, 939, M2 o AM2 y ahora último hasta un F?). O sea, el cable de SATAII es el mismo que el cable SATA, la única diferencia radica en que el SATAII permitiría una tasa de transferencia de 300MBps, mientras que SATA normal sólo 150MBps.

Hasta el momento (comienzos año 2006), no hay gran diferencia entre estos dos en la práctica, aunque más adelante sin duda alguna lo habrá.


4.3 Qué es NCQ?

En palabras resumidas, el NCQ es una tecnología nueva y novedosa que la mayoría de los discos con conexión tipo SATAII está adoptando. La explicación de su funcionamiento es algo complicado, pero haré mi mejor intento por explicarlo con manzanitas, es decir, con un ejemplo, y no con el ejemplo típico del elevador que está en un paper de la seagate, sino un ejemplo aplicado a los discos:

Supongamos el siguiente caso:


1- Primero hay que leer 534 bytes de información

2- Luego hay que escribir 283 bytes

3- Luego hay que leer 300 bytes seguidos de los 534 bytes anteriormente leidos

4- Luego hay que leer 2 MegaBytes desde otro sector totalmente distinto del disco

5- La operación 1 y 3 son sectores al comienzo del disco

6- El disco se encuentra casi totalmente lleno excepto los últimos sectores del mismo

7- La operación número 4 se realiza en la mitad del disco




En un disco sin NCQ, estas operaciones se van haciendo uno por uno. Es decir, se leen los 534 bytes al comienzo del disco, luego la aguja se tiene que ir al final del disco, escribir los 283 bytes, luego vuelve al comienzo, lee los 300 bytes que faltaban, y luego se va a la mitad del disco a rescatar los 2 MegaBytes que es la última operación. Cinco pasos en total.

En un disco con NCQ, se haría esto mismo, pero en otro orden:


1- Se leen 534 + 300 bytes del principio, de una vez

2- Se leen los 2MB de la mitad del disco

3- Se escriben los 283 bytes al final del disco



Como se podrá apreciar, se aprovecha de mucho mejor manera la memoria, ya que el disco “reordena” todo lo que tiene que hacer, haciéndolo de esta manera mucho más eficiente, ya que en vez de andar saltando por aquí y por allá la aguja, aprovecha en 3 pasos lo que de otra manera tendría que hacer en 5, y lo hace en menor tiempo, ya que como ya fue dicho, la aguja del disco hace un solo movimiento en vez de andar saltando hacia todas partes del disco.


4.4 Las desventajas de NCQ


Todo el mundo llega, compra su disco con NCQ y espera que funcione al instante. Les tengo malas noticias: NCQ no es plug-and-play.


En el mundo de la programación, todo se reduce a un verdadero o un falso, a un on o un off, a un 1 ó 0. Por lo que actualmente, cuando se hace un programa, el compilador lo hace línea por línea. Para explicarlo, un ejemplo simple en Pascal:

Cita :


for nI := 0 to 5 do
begin
if nI mod 2=0 then
writeln(’Hola mundo con número par’)
else
writeln(’Hola mundo con número impar’);
end;




Explico el código: lo que hace este código es simplemente escribir en una pantalla de DOS lo siguiente:


Hola mundo con número par


Hola mundo con número impar


Hola mundo con número par


Hola mundo con número impar


Hola mundo con número par


¿Qué es lo que pasa internamente con el programa? Lo primero que hace es analizar la primera línea, si cumple con la condición de que nI es menor a 6, entonces entra a hacer lo de la tercera línea, sino, simplemente no hace nada y se sale del programa.

Una vez adentro, verifica si nI es par o impar, si es par, entonces entra a la cuarta línea e imprime esa línea (Hola mundo con número par), una vez terminado de hacer esto (o bien, una vez que se confirma que en pantalla efectivamente apareció lo que tenía que aparecer), empieza de nuevo y verifica todo. Nuestro siguiente número es impar, entonces el programa entrará a la sexta línea e imprimirá “Hola mundo con número impar”. Y así sucesivamente hasta que nI llegue al valor de 6 donde no hará nada más.

Bonito el cuento, ¿pero qué tiene que ver esto con NCQ? El concepto que está detrás de toda la explicación anterior es que todo ocurre en secuencia, es decir, primero una cosa, y luego la otra. Lo mismo ocurre con los archivos: los compiladores actuales (que son los que finalmente entregan un programa) primero abren un archivo, luego lo leen, finalmente lo cierran[8]. Mientras hace todo esto no puede hacer otra cosa mientras no termine, por lo que se iría a la cresta misma la funcionalidad del NCQ. Por lo tanto, mientras los programadores no empiecen a programar de otra manera no habrá ninguna funcionalidad en el NCQ, partiendo por el sistema operativo: si el sistema operativo no conoce NCQ, jamás le sacará algún provecho de esto, aunque los programas estén hechos con compatibilidad para NCQ.

Afortunadamente les traigo también una buena noticia: (desde) Windows XP y toda la gama Unix con kernel 2.4 en adelante tiene soporte para NCQ, el punto es que ahora falta que los programas se hagan con soporte para NCQ para que el cuento parta bien y tengamos una compatibilidad total con NCQ.

5.0 La moda de mañana: los RAID



Lo que está teniendo cada vez más auge, y que en realidad es cuento más viejo que el de la capurecita y el lobo (bueno, tal vez nunca tanto, en 1988 para ser más específicos se habló por primera vez de él), es el cuento del RAID. Con respecto del cuento de la caperucita roja creo que la primera vez que escuché hablar de ella fue alrededor de 1986, cuando tenía cuatro añitos. Seguramente antes me lo contaron, solo que no me acuerdo. Antes de eso no existía, porque mi mamá inventó el cuento.




El RAID fue introducido en una primera época para servidores y funcionaba sólo con discos SCSI, e involucra siempre dos o más discos “interconectados” que pueden funcionar ya sea simultáneamente o en conjunto para respaldar información importante en un segundo disco o bien obtener transferencias de datos más altos.


Explico: en el primer caso TODO lo que se hace en un disco, se copia en el segundo. De esta manera, si alguno de los discos llega a tener una falla, no importa (tanto), ya que siempre va a haber una copia de respaldo en el otro. La probabilidad de que dos discos fallen simultáneamente es bastante más baja que el caso de que falle uno solo.


Para el segundo caso, al tener dos discos “interconectados”, se graba la mitad de la información en un disco, y la otra mitad en el otro disco. De esta manera, al tener que escribir sólo la mitad de los datos en el disco, se puede lograr casi el doble de velocidad en las transferencias desde y hacia la placa madre.


Por supuesto que estas no son las únicas configuraciones conocidas, pero son las más importantes. Pero nada mejor que una tablita que lo explique todo de manera fácil, ¿o no?




5.1 Y ahora en profundidad por favor

Voy a explicar sólo los más populares en profundidad, el RAID0 y el RAID1.

RAID0: El RAID0 es creo yo el más ansiado por nosotros, los mortales comunes y corrientes que se pasan todo el día pegados frente al pc y que no hayan nada mejor que hacer que estar escribiendo guías sobre discos duros.
Cabe destacar que esto no es un arreglo en sí, ya que la finalidad de un arreglo RAID es la seguridad de los datos, pero por razones históricas pasó a ser simplemente un arreglo más.

Lo que en esencia busca este tipo de arreglo, es la velocidad con la que se transfieren los datos, es decir, lograr la mejor tasa de transferencia de datos posible.


Se necesitan como mínimo dos discos, ojalá idénticos, y en canales distintos. Es decir, si quisiéramos hacer un arreglo con discos ATA, no tienen que compartir el mismo cable de datos, sino que cada uno se tiene que colocar en un IDE distinto. Con los SATA no tenemos este problema, ya que con SATA sólo se puede c
conectar un disco a un canal a la vez.
Lo que hace este tipo de arreglo es simple: copia la mitad del archivo a un disco y la otra mitad al otro disco (grabar 10MB es bastante más lento que grabar 5MB), con lo que se logra una performance de casi el 100%.
Lo bueno es que no perdemos espacio, si colocamos dos discos de 80GB, nuestra capacidad final va a ser de 160GB, al doble de la velocidad.


¿Cuál es la principal desventaja?

- Si un disco por x razón llega a fallar, perdemos el 100% de los datos. No hay forma de poder recuperar los datos, ya no podremos sacar el disco, ponerlo en otro computador como esclavo y tratar de recuperar los datos. Imagínense que un día cualquiera, en Banco Nacion se les eche a perder un disco. No pueden llegar y decir: “¿Ah sabe qué? Usted que dice que tenía 100 millones de pesos guardados en el banco no se lo vamos a poder entregar, porque simplemente se perdió toda la información. Lo sentimos, vuelva a intentar más tarde”. En mi caso, me favorecería, el otro día fui al cajero y tenía como saldo -$8.843, pero creo que a la gran mayoría de los Argentinos no les caería muy bien la noticia.


Esquema de un raid 0+1, sirve para entender también un raid 0 y un raid 1.

RAID1: Yo diría que este tipo de arreglo es el ideal para PYMES (Pequeña Y Mediana Empresa), ya que con un costo no (tan) alto, se puede asegurar el 100% de los datos de manera eficaz: lo que hace es una vil copia de los datos que se graban en un disco al otro. Es el mismo fenómeno que ocurre en un espejo: si nos afeitamos, el feo que te está mirando por el espejo igual se va a afeitar. Si le sacas la lengua, el desubicado igual te va a sacar la lengua. Si le escupes, el desgraciado igual te va a escupir. Lo único extraño es que el escupo no nos va a llegar a nosotros, sino al espejo, ¿pero para qué entrar en filosofías extrañas que no van al caso?
En fin, continuando con el tema, si golpeamos el espejo… ejem… la principal ventaja de este tipo de arreglo es clara: cuando se nos eche a perder un disco, tendremos el otro de respaldo, no se pierde absolutamente ninguna información.

Como todo en la vida, tenemos también desventajas, que es principalmente el siguiente:


- Espacio: Recordemos que un RAID1 son dos discos idénticos, sin embargo, sólo estaríamos ocupando uno. Es decir, si tenemos un arreglo de dos discos de 80GB, nuestro espacio final va a ser de 80GB. Más encima, la velocidad de transferencia sería exactamente la misma que ocupando un disco.

Como mínimo para operar, vamos a necesitar de dos discos idénticos.


Fuente: http://imperioblog.com.ar/2009/03/12/discos-duros-conceptos-configuraciones-e-historia/