9 de enero de 2006

El fin de los discos duros

Hacía tiempo que quería escribir esto pero por fin me he decidido, tras leer un artículo en slashdot donde se habla de que hay gente que predice que la memoria flash va a tomar el mercado de los discos duros. El artículo incluye la opinión de un directivo optimista - es un directivo de una empresa que fabrica memoria flash dando una opinión en un artíclo que habla sobre el futuro de la memoria flash, que esperabais - pero para una vez, y sin que sirva de precedente, estoy de acuerdo con él. Hasta voy más allá: Creo que en el plazo de 10 años, este tipo de memorias mandarán a la mierda a la tecnología de los discos duros

Antes de nada, hay que decir que este tipo de predicciones se han hecho siempre, al igual que otras: Los procesadores con varios cores, por ejemplo. Sistemas operativos como BEOS se crearon pensando que los ordenadores multiprocesador para usuarios estaban "a la vuelta de la esquina". Y en el fondo tenían razón: Estaban a la vuelta de la esquina. Por desgracia para ellos, la vuelta de la esquina han sido 10 años. La sustitución de los discos duros por la memoria flash es igual: Siempre ha estado "a la vuelta de la esquina" Pero aun no ha aparecido.

¿Y por qué siendo consciente de esto pienso que lo hará? Por una razón muy sencilla, al igual que los multiprocesadores, y al igual que pasará con la transparencia de red de plan 9 y otras de sus ideas, y otras ideas de otras cosas, algún día tiene que llegar el momento. Son buenas ideas, y siempre se acaban haciendo realidad, aunque se tarden décadas (y casi siempre, al menos en el software, se retrasan por la maldita obsesión con la compatibilidad). Y creo que ha llegado el momento de que la memoria flash tome el lugar de los discos duros. No hay más que fijarse en el estado de los discos duros. Para empezar: Son, junto a los CDs y a los DVDs, el último resquicio que queda de los tiempos en los que los ordenadores eran mecánicos (los que estudien electrónica sabrán mas de las épocas y del transistor y todo eso, a mi como informático francamente nunca me han interesado demasiado el rollo de los transistores ni las clases de electrónica. Y por favor, esas personas que estudian electrónica que se abstengan de ironizar sobre qué hace el informático chulo este prediciendo cosas sobre temas de electrónica y física :P). El procesador y los chips no van con engranajes ni dan vueltas ni hacen todas esas cosas raras. Los discos duros han estado ahí porque no hemos encontrado una manera mejor de almacenar tanta información de manera más eficiente.

Y el que los discos duros sean de naturaleza mecánica causa muchos problemas al software. El brazo de los discos duros para moverse tiene que vencer la inercia o como carajo se llame, y eso está ahí y por mucho que se mejore la física impone sus límites. A día de hoy, el tiempo de acceso de un disco SATA cualquiera (mirado en una tienda online) está sobre los 8-9 milisegundos. Un procesador de 3 GHz ejecuta 3.000.000.000 (tres mil millones) de instrucciones por segundo. Eso significa (si las cuentas no me salen mal) que un solo acceso al disco duro supone 24.000.000 de ciclos potencialmente perdidos esperando al disco. Bastantes. Y esta diferencia de velocidad se ha ido incrementando: Con los años, los ordenadores se han hecho "más lentos", la velocidad de los procesadores se ha incrementado vertiginosamente y la de los discos duros no mejora - no puede mejorar sustancialmente. La diferencia se incrementa con cada nuevo procesador que se saca al mercado. Y no, la multitarea no arregla este problema mágicamente como me han comentado. De hecho la multitarea, aislandola en este caso particular, se podría considerar con un parche a los defectos de los discos duros. Cuando un proceso se tiene que pasar 24 millones de instrucciones esperando a una petición de disco es cuando surge el problema. Y si el siguiente proceso que se ejecute para rellenar el hueco hace otra petición al disco, hará que el brazo se tenga que mover, perdiendo aun más tiempo. Haz esto de continuo y te las verás con el caso del arranque del sistema operativo, en el que el disco se pasa 1 minuto (en linux) yendo de un lado a otro y los procesos se pasan esperando un tiempo precioso.

Como digo, esto causa problemas, muchos más de los que la gente se cree. Todos sabemos que cuando más lento es un sistema es cuando tiene que tirar del disco. Gran parte de la arquitectura de gestión de memoria de todos los sistemas operativos modernos se basan en un solo principio: Los discos duros son lentos, y evitar un solo movimiento de brazo significa 24 millones más de ciclos aprovechados. Todo el concepto de "cache" y "buffer" del kernel se basa en esto. Se han diseñado e implementado complejísimos algoritmos para evitar movimientos de los malditos brazos del disco duro. Y siguen diseñandose e implementandose: hasta el 2002 no existían algoritmos como clock-pro o cart (clock-pro y cart están siendo implementados para linux). Y no entremos en la memoria virtual: Mover a swap una página que se va a utilizar dentro de poco significa tener que mover la página al disco y traerla de vuelta cuando se necesite de nuevo, asi que hay que tener mucho cuidado con que el algoritmo elija a las páginas adecuadas. Es un tema complejísimo, y no hay nadie que lo haga bien, solo hay sistemas que lo hacen menos mal.


Y bueno, aparte de esto, vamos con la predicción en si: ¿Si siempre ha sido asi, porque iba a cambiar ahora? Pues por que creo que existen signos evidentes de que los discos duros se están quedando, despues de tantas décadas, obsoletos

En primer lugar, porque su mayor ventaja y la razón real por la que tiramos de ellos - la capacidad - ha dejado de ser una ventaja. Me explico: Los primeros ordenadores que yo usé no tenian disco duro, sino que cargaban msdos de un disco de 5.25" (360 KB, si no recuerdo mal). En aquel tiempo había discos duros de 20 y pico o 50 MB. En tiempos de windows 95, los discos duros andaban por los 2 gigas, y windows ocupaba ¿100, 200 MB?. Un tamaño más o menos importante, y se te acababan los 2 GB rápido, siempre había algo que lo llenaba. Pero a día de hoy, en un disco de 200 GB, un windows XP aproximadamente ocupa 1.5GB: Ni tan siquiera un 1% del tamaño total. ¿Música? Podemos meter días, meses de música. ¿Películas? Puedes llenarlo, pero ya puedes bajarte películas de cojones. La música y el video son las maneras más eficientes que tenemos de llenar discos duros. Puede que 200 GB se puedan llenar. Pero en cuanto se incrementen los tamaños un poco mas, a 1 TB o así ¿con qué lo vamos a llenar, siendo realistas? (Y estamos hablando de escritorios, el mundo empresarial va por su lado, ya se que los estudios de video necesitan mucho espacio y que Microsoft y la CIA necesitan muchos teras para guardar la información de nuestra vida privada) El video no ocupa cada vez más, los codecs reducen los tamaños de los archivos finales y aumentan la calidad en cada versión, y las películas siguen durando dos horas o lo que duren. Seamos realistas: Una vez vencidos el video y la música, nos estamos estamos quedando sin cosas con las que poder llenar discos duros. Algunos frikis que lean esto tendrán un raid de varios teras lleno de porno, pero en el mundo real a la gente con sus discos duros de 100 y pico GB les vale (lo único que se me ocurre que podría llenar un disco duro es la propia "realidad"; es decir, la descripcion de escenarios 3D de juegos, y dudo que vaya a ocurrir.)

Y luego está la tecnología básica. Como decía antes, el brazo del disco tarda mucho en moverse, y el plato tambien. Hay tecnologías que mejoran eso, pero ya están explotando el sistema a límites bestiales: sistemas de complejidad enorme que prolongan la larga agonía. Aquí se puede ver un mensaje de un tipo de maxtor a la lista del kernel (siempre digo que la lista del kernel es única), donde admite sin ningún rubor que la presión que están metiendo a la densidad de los platos y a los sistemas que se utilizan va a producir que los discos duros esten continuamente remapeando sectores y haciendo copias de seguridad de un lado a otro y reescribiendo sectores porque pierden "intensidad" y los datos se van a la mierda. Y en ese post tambien la contestación de H. Peter Anvin - webmaster de kernel.org y creador de syslinux, el gestor de arranque que utilizan todos los CDs de las distros - donde pone en evidencia la realidad: Esos esfuerzos por remapear sectores y demás historias no son "impresionantes esfuerzos de maravillosa ingeniería", son la prolongación de una tecnología muerta. La tecnología esa revolucionaria de escritura perpendicular no creo que resuelva la papeleta a largo plazo (ojo, la tecnología consiste en poner los campos magnéticos en posicion perpendicular al plato, para que quepan más, si eso no es explotar algo a su límite no sé que lo será). Los sistemas mécanicos basados en grabar campos magnéticos en platos no tiene futuro.

¿Conclusión? Los discos duros empiezan a dar señales de agotamiento, y no hay vuelta de hoja. Esto unido al hecho de que ya no se necesitan grandísimos tamaños de almacenamiento va a desembocar en lo siguiente: Dado que la gente ya no necesita espacio, se fijará en el rendimiento: El tamaño no vende, y las empresas tendrán que hacer marketing de algo para vender, y la gente comprará lo que el marketing le diga. Mientras tanto, las tecnologías basadas en flash tendrán tiempo (repito que he dicho "en el plazo de 10 años", tiempo de sobra para que se investiga y se descubran cosas) para lograr aumentar sus tamaños. Empezarán por surgir "minidiscos duros flash" - ya están surgiendo, les hay de vaarios gigas incluso - que los fabricantes de sistemas operativos utilizaran para acelerar la carga y funciones básicas del sistema. Con el tiempo irán incrementando su tamaño, y como ya no hay una necesidad infinita de tamaño, llegará un punto en el que empiezen a surgir sistemas sin discos duros tradicionales. Entonces surgirá otro paso curioso: La unificación de la ram y el "dispositivo de almacenamiento secundario". Esto no es ninguna fantasmada, ya está ocurriendo hoy en los pocketpc y móviles y todos estos dispositivos embebidos: Tradicionalmente los programas han de llevarse a la ram para ejecutarse, pero con memoria flash no tienes porque hacerlo y gastar memoria en una copia del programa, puedes ejecutarlo directamente desde la memoria flash. Lo otro tiene su lógica en un sistema con discos duros mecánicos por cuestiones de rendimiento, pero con un disco basado en flash no debería ocurrir, y en linux ya tenemos soporte para que estas cosas desde 2.6.13. Y bueno, asi acabarán los discos duros. Usaremos discos basados en memoria flash, los sistemas operativos simplificarán y eliminaran gran parte de sus subsistemas de I/O (para qué tener "IO elevators" con memoria flash, un simple "prefetch" será suficiente). El rendimiento de nuestros sistemas se multiplicará al no tener que esperar millones de ciclos a que ningun brazo se mueva. A diferencia de los discos duros, la memoria basada en flash puede acceder de una punta a otra de la memoria sin tener que desplazar un brazo.

Lo que le falta a mi predicción es la parte donde explico como las memorias flash conseguirán alcanzar la capacidad de almacenamiento, resistencia a reescrituras y abaratamiento de precio suficientes. Esa es la parte que surgirá por propia inercia del capitalismo: Hay mucho dinero que ganar, y alguien lo hará. Alguno pensará que soy demasiado optimista, pero yo no lo creo: No creo que el ser humano, el mismo ser humano que fue capaz de inventar un artilugio que mató a decenas de miles de personas simultaneamente en centésimas de segundo en Hirosima y Nagasaki, que ha mandado un robot a marte y que ha conseguido calentar unos grados un planeta entero sea incapaz de hacer que una puñetera memoria flash sea grande buena y barata. No, si hay dinero de por medio.

18 comentarios:

  1. Anónimo1:55 p. m.

    hombre, lo de los ciclos perdidos no es verdad, para eso están las planificaciones de procesador. Se mejorarían los datos de acceso, pero no tan significativamente como dices.

    saludos

    ResponderEliminar
  2. Anónimo1:59 p. m.

    y sobre la capacidad de llenado de disco, no estoy de acuerdo (jeje, solo escribo lo malo). Yo trabajo con productores musicales y utilizan alrededor de 3-4 GigaBytes por cada cancion de menos de 10 minutos. Y mi carpeta de proyectos sin comprimir ocupa 25 gigas.

    saludos

    ResponderEliminar
  3. Anónimo2:03 p. m.

    y sin hablar de cosas como tivo. teras y teras de programas de television. a mi me encantaria tener varios teras para utilizar con mythTV

    por cierto, que ya existen ultraportatiles con disco duro flash. y el ordenador de 100 dolares del MIT lleva HD flash

    ResponderEliminar
  4. Anónimo11:07 p. m.

    tampoco sería nada malo que pudieran convivir ambos dispositivos de almacenamiento al mismo tiempo. Se agradecería una memoria rápida y medianamente grande en la que se encontraran el SSOO y ciertos programas de uso frecuente, y que el disco duro se quedara como un medio para almacenar "masivamente" música, películas,proyectos de 25 GB (jejeje) o lo que se desee...

    ResponderEliminar
  5. santino1:39 a. m.

    Ok, pero no sería mejor pensar antes en "El fin de las disqueteras"?
    Porque la instalación de Windows XP (2001) sigue pidiendo un disquete para instalar drivers extras (cualquier disco duro SATA lo necesita si es donde va a ser instalado), los fabricantes siguen dando el driver en diskette en lugar de CD (toma esa) y miles de PCs se siguen vendiendo con disketera.

    Mucha memoria en USB pero los diskettes se siguen vendiendo -no sólo en las tiendas especializadas sino en cualquier centro comercial- y usando para intercambiar y presentar documentos, por citar sólo un par de usos.

    ResponderEliminar
  6. Pues hay un <<RUMOR>> de que los apple que presentarán mañana en el keynote traerán memoria flash... a ver que nos traen... También los nuevos iPod (sísí, estos tan chiquitines) llevan memoria flash, es por esto que han podido reducir tanto el tamaño respecto los anteriores.

    Por lo de la mejora de velocidad... pues no sé, creo que aun es pronto para unificar memorias, aun asi con ambas memorias separadas se ganaría bastanta velocidad (cuantas veces nos hemos cagado en alguien al ver que estamos tirando de swap? Que ves la luz roja del hdd diciendo ¡No puedo!)

    Lo de los diskettes... creo que han pasado a la historia, pero no creo que salga ningún reemplazo, simplemente lo sublimaremos. El stick no es factible porque es demasiado caro como para ir repartiendolo creo yo (sí, considero 20e caro, qué pasa?), yo más bien veo la solución en pasar los documentos e historias por inet...

    Vaya rollazo que acabo de pegar... bueno chau.

    ResponderEliminar
  7. Anónimo10:57 a. m.

    Haberlos ya hailos:
    http://www.memtech.com/

    Están caros, pero tampoco es ningún disparate para servidores y equipos web críticos.

    ResponderEliminar
  8. Anónimo6:59 p. m.

    A pesar de que estoy de acuerdo con la mayor parte del artículo, discrepo en eso de que nos hemos quedado sin cosas con las que llenar los discos duros.

    Como tú mismo dices, antes MS-DOS cabía en un disco "prehistórico" y ahora Windows XP ocupa unos 1.5GB.

    Cada vez tenemos aplicaciones más pesadas (y en muchas ocasiones sin funcionalidades nuevas), conexiones a internet más rápidas que hacen que nos importe menos bajarnos unos megas más...

    Y eso sin entrar en el campo de la investigación científica, donde la física y la bioinformática cada vez tienen un problema mayor con el volumen de datos que tienen que manejar para realizar cálculos que dependen de cantidades ingentes de variables desconocidas y datos experimentales.

    En definitiva, no sólo Microsoft y la CIA (jeje) necesitan mover gran cantidad de datos. Desde el momento en el que la ciencia necesita la capacidad, aunque no sepamos cómo tarde o temprano esta necesidad se trasladará al usuario doméstico, como ha ocurrido siempre.

    Los discos duros tienen que cambiar, indudablemente, pero no creo que se estanque la búsqueda de métodos que permitan guardar más datos en menos espacio.

    Quizás las unidades Flash sean una posible alternativa, pero de momento no pueden reutilizarse indefinidamente. Pero eso ya es otro tema...

    Y perdón por la parrafada.

    ResponderEliminar
  9. Me parece un artículo muy interesante y bien escrito, así que yo también voy a destacar sólo lo malo... :-)

    Ya han dicho otros antes que yo lo de que nos las arreglamos para ocupar todo el tamaño que nos dejen. Yo tengo un disco duro de 200 Gigas y otro de 80 y estoy pasando cosas a DVD para hacer sitio: tengo que volcar unas cintas de vídeo MiniDV para hacer un montaje y cada hora ocupa 13 GB. Los formatos finales ocupan poco, pero los formatos adecuados para la edición siguen ocupando mucho y el MiniDV es el estándar en cámaras de vídeo de consumo.

    Cuando llegue la televisión digital y las películas vengan en los hijos del DVD (Blueray y demás) ocupando 30 Gigas, la gente no las querrá tener en calidad baja.

    Por último, está el tema de la memoria flash como sustituta de la RAM. No sé ahora mismo los datos, pero creo que los tiempos de acceso de la memoria flash están todavía muy lejos de los de la RAM e imagino que si pueden mejorar unos, también pueden mejorar otros.

    ResponderEliminar
  10. Anónimo2:32 p. m.

    Algo muy delicado seria, la cuestion de si hay sobrecarga de voltaje o despues de cierto tiempo se quemen los discos USB y toda la informacion se va a la porra.

    ResponderEliminar
  11. Yo diría que a las memorias de estado sólido todavía les queda una temporadita. Si se duplican cada 18 meses, son años hasta que alcancen los 30-40 gigas que serían razonables hoy en día.

    ResponderEliminar
  12. Yo perticularmente no edito video ni múscia, ni trabajo para un estudio de grabación. Pero entre tres tenemos unos 300 gb de películas y series acá en la oficina repartidos en varias PC. El espacio no será suficiente, al menos por ahora.

    ResponderEliminar
  13. jajaja cojonudo desenlaze. Yo tb creo que el disco duro empieza a ser una tecnologia muerta y que en un plazo relativamente corto las memorias flash tomaran el poder.

    ResponderEliminar
  14. Anónimo8:41 p. m.

    Hola! Estoy de acuerdo contigo en la inevitable desaparicion a la larga del disco duro, pero no estoy de acuerdo en que no haga falta una gran capacidad depende de para quien, sin ir mas lejos, yo mismo: Soy fotógrafo, y en un trabajo de fin de semana puedo llenar varias tarjetas de 4 GB, a eso le sumo que tengo copias de todo mi trabajo por duplicado (por si las moscas) y cuando edito algo en photoshop, el archivo resultante llega a los 100MB (fotos fusionadas, panoramicas de varias fotos...) Tengo un disco de 200 GB y otro de 300 GB, y ya estan a la mitad los dos, para finales de 2007 fijo que tengo que pillarme otro disco.....

    Saludos!

    ResponderEliminar
  15. Una película en HD ocupa entre cuatro y diez gigas ya comprimidos, y los juegos modernos desde instalan desde cinco gigas de archivos, hasta diez o más, según las extensiones y los vídeos que tengan. Diez pelis, cinco juegos, el vista, el office, y ya solo te queda el pico de ese disco de cien gigas que según dices le llega a cualquier usuario normalilo (si la mayoría de la gente que conozco tiene eso solo de música). No estoy de acuerdo en cuanto a la capacidad de llenado de los discos. Lo que yo espero que pasé, y no en diez años si no en cinco, es que los discos duros aumente su capacidad, y mucho, para poder almacenar todo aquello que nos apetezcan, y los discos de esos que no dan vueltecillas se abaraten hasta que podamos instalar todos nuestros programas y juegos en ella.
    Un saludo a todos.

    ResponderEliminar
  16. Anónimo3:19 a. m.

    jajajaj frikis con porno, juas te diria que es cierto pero 4 tb para porno como que mucho no, bueno la verdad eso de los discos duros es cierto que falencia eso de no actualizar esta forma de almacenar datos casi no ha variado nada desde su creacion por ahi en algo con la forma de transmision de datos pero nada mas evolutivo, igualmente creo que las flash son muy delicadas para este arduo trabajo, especialmente para los newies que le dan durisimo a la compu , asi nomas ya dñan compus, ahora con flash que rayos harian,. y por lo del espacio talvez tu no llenes nada pero yo solo con anime, musica, series, instaladores, juegos, trabajos, proyectos y demas haberes, sin contar la porno jeje (espacio reservado oculto) ojo, se me van mas de 4 tb y eso sin contar que tengo una conexion de 40mb de bajada osea que bajo alrededor de 300 gb semanales, quien pensaria que hubiera tanto en internet jaja. igual tiene logica tu hipotesis, pero yo creo que evolucionara deacuerdo a como cambien el sistema de almaceneja en discos, es decir cd, dvd, blueray, etc. Se dice que estos aumentaran en capacidades de 300gb por disco hasta teras, bueno habra que ver que evoluciona primero, lo que queda claro es que esto cuesta money, y a la final uno siempre usa lo que mas barato salga, sigo grabando en dvd. Salu2

    ResponderEliminar
  17. Anónimo9:32 p. m.

    Sí mi tarjeta madre (placa base) no me deja poner más discos grgrgr que venga la nueva tecnología!!

    ResponderEliminar
  18. Anónimo10:23 p. m.

    nojoda ke vaina bakana

    ResponderEliminar