domingo, 8 de julio de 2012

Instalando un segundo disco a un iMac mid 2011 (III). Software

La segunda parte de esta entrada está aquí.
Bueno, si todo os ha ido bien, el MAC arrancará como siempre, pero ahora tendrá un disco más que tendréis que inicializar. En mi caso, sin contar nada externo al MAC, ahora tengo dos discos duros, uno SSD de 256GB y otro mecánico de 1TB, cada uno de ellos conectado a su propio puerto SATA III. El mecánico es el que viene de serie con el iMAC, el SSD es un Cruzier M4 (El de 2TB es el FireWire 800 que ahora uso de Time Machine):

Mi primera idea fue restaurar la partición completa que tenía en el mecánico sobre el SSD. Pese a haber sido copiada sin problemas desde la partición de recuperación del iMac, y tras reiniciar el disco mecánico, dos cosas empezaron a ir mal:
Perdí la partición de recuperación que estaba en el de 1TB, y mi cuenta de usuario perdió algún tipo de token de seguridad y se fueron al garete la mitad de las activaciones de programas y la otra mitad dejó de funcionar bien, dando extraños errores. Por lo que tuve que restaurar de nuevo sobre el mecánico, desactivar algunos programas que llevaban activaciones, y luego realizar una instalación en limpio sobre el SSD, dejando el mecánico como disco para datos. 
En el SSD tengo el sistema operativo con todo, incluso un par de máquinas virtuales. En el otro todo lo que me voy descargando de internet, otras máquinas virtuales y el código fuente, que tengo duplicado online mediante SkyDrive. Tengo ambos discos ocupados en un 50% aproximadamente.
***
Realicé una serie de pruebas de rendimiento sobre el Cruzier. Yo no sé dónde se sacan las tasas de escritura, pero las de lectura sí que acompañan. Recién instalado, con el sistema operativo en el disco mecánico, me dio unas tasas de 200MB/s de escritura y unos 600MB/s de lectura. Sí, 600. Ahí queda eso.
Justo ahora, con todo el sistema operativo instalado, el rendimiento del disco es el indicado:

La escritura ha tenido picos de 300, y la lectura de 600. Como dijo aquél, ahora vas y lo kaskas.
***
¿En qué se traduce eso? 
Pues en 8 segundos de tiempo de arranque desde que aparece la pantalla blanca hasta que tienes el escritorio funcionando. Antes con el mecánico tardaba unos cuarenta segundos a aparecer el escritorio, y luego el disco se tiraba sus buenos cinco minutos rascando como loco. También era habitual que me apareciera la roseta multicolor de la muerte con bastante frecuencia. Básicamente siempre que tenía que hacer alguna tarea intensiva de disco y a veces hasta redimensionando ventanas.
Ahora, lanzar programas como Pages, Word, Excel o el propio iTunes son operaciones instantáneas. Y la rosa multicolor sólo la veo cuando accedo al disco mecánico y está detenido, porque si todavía no se ha parado tampoco tengo esos autismos a la hora de escribir en disco.
Incluso la máquina virtual Windows que tengo se levanta en un par de segundos, y los programas se lanzan de forma instantánea. Más que en PC (también con discos SSD pero mucho más antiguos y más lentos). Las que están en el disco mecánico van algo más lentas, pero no mucho más.
Digamos que tener un disco para el sistema operativo y otro para los datos es lo que realmente necesita OS X para disparar el rendimiento de todo.
***
TRIM o no TRIM
La pregunta del millón. ¿He parcheado para activar el TRIM? Pues no. Os cuento.
Los discos SSD son memorias tipo flash como las SD y los USB, lo único que sensiblemente más rápidas. Este tipo de chips funcionan de forma completamente diferente a los discos tradicionales. Digamos que se presentan como una serie de sectores lineales como los discos, pero debajo hay otra cosa: chips de memoria estática.
Estos chips tienen tres comandos: lectura, escritura y borrado. Y una regla: antes de escribir hay que borrar. O escribir sobre borrado. 
Cuando el sistema operativo lee de disco, el driver del SSD traduce la orden de lectura ATA a la de lectura del chip o chips afectados. La lectura se realiza y no pasa nada.
Cuando el sistema operativo escribe en un archivo, el driver SSD traduce la orden de escritura ATA a una del chip. Si el chip está borrado, se escribe y no pasa nada. Si el chip no está borrado, primero se emite un comando de borrar y luego de escribir. Cosa curiosa el borrado es sensiblemente más lento que la escritura. Digamos que borrar es “peinar” las celdillas, dejándolas en punta. Cuando escribes, agachas las celdillas pertinentes y punto.
Cuando el sistema operativo borra un archivo, realmente no lo borra, sino que lo marca, dentro de la tabla de índice, como borrado. Por lo tanto, el contenido del fichero no se borra, tanto en un disco magnético como en uno SSD. Cuando se sobreescribe un sector de un fichero borrado (pero que no está borrado en sí), en un disco mecánico la cabeza pasa y reescribe sin problemas. En uno SSD no. En uno SSD hay que, primero borrar las celdillas y luego escribir. 
Para que os hagáis una idea: una operación de escritura sobre unas celdas no borradas puede pasar de una tasa de 250MB/s a 10 ó 20MB/s, como cuatro veces más lenta que en un disco mecánico.
Conforme vamos usando un disco SSD, vamos creando y borrando ficheros. Lo hacemos nosotros y lo hace el sistema operativo, y el driver del disco, que no es tonto, va usando partes borradas para escribir, hasta que ya no quedan de esas y entonces se utilizan las que están todavía sin borrar. Y viene la caída de rendimiento. Os aseguro que yo lo he experimentado con el PC y es enorme. De diez a uno, o más.
¿Cómo se soluciona eso? TRIM. Cuando un MAC (o un Windows o las últimas versiones de Linux) marca un archivo como borrado, mira qué sectores ocupaba y envía un comando TRIM para cada una de esas celdillas. Luego, el disco, cuando tiene tiempo libre, va ejecutando el comando de borrar sobre dichas celdas. Y cuando se vaya a escribir de nuevo, éstas ya están peinadas y nos ahorramos el comando de borrado y por tanto la caída de rendimiento.
Aquí hay un handicap, y es que si el disco no tiene tiempos idle no va a borrar nada, por lo tanto los discos SSD no suelen valer para los servidores. Con los mecánicos pasa lo mismo, que al tener una tasa de uso intensiva, la parte que calcula cómo evitar la fragmentación no tiene tiempo de actuar y el disco se fragmenta que da gusto, pero la caída de rendimiento de un disco mecánico fragmentado no es tanta como la de uno SSD sin celdas vacías.
***
¿Qué pasa con mi Cruzier M4? Pues que según el fabricante tiene una cosa que se llama recolector de basura, que es una variante al TRIM pero sin TRIM, y que en concreto para los MAC, dicen, no es necesario activar el TRIM porque ellos ya lo hacen de forma automática con su recolector, y que de hecho, activar ambos es contraproducente. Ignoro si es cierto o no, pero en mi caso, y de momento (y sin activar el TRIM) todavía no he experimentado ninguna caída de rendimiento.
Parece ser que todos los Cruzier M4 llevan este sistema, y que si el tuyo no, actualiza a la última versión del firmware y lo tendrás.
***
Desfragmentar, recuperar datos borrados
Los discos SSD no necesitan desfragmentarse (cierto es que, salvo excepciones, los mecánicos tampoco). Iba a decir que no se fragmentan, pero sí que lo hacen, en la misma medida que uno mecánico. La diferencia está en que dicha fragmentación no afecta para nada al rendimiento. 
Un disco SSD es una serie de chips uno al lado del otro, y el tiempo de acceso es prácticamente idéntico. Salvo en una lectura/escritura en modo ráfaga, bastante poco común salvo que estemos copiando ficheros grandes, el rendimiento es prácticamente el mismo ya que el tiempo de acceso a cualquier parte a partir de otra diferente es prácticamente el mismo.
Cuando un disco SSD se rompe los datos no se pierden. Se queda en modo lectura y punto. Al no tener partes mecánicas no hay nada que se pueda romper físicamente. Está claro que si una celda se rompe está rota, o que si sufre una sobretensión se puede ir todo al garete, pero no es lo habitual. Cuando un SSD empieza a tener problemas serios de escritura el firmware impide más escrituras, pero todavía se puede usar como dispositivo de solo lectura, aunque mi consejo es que copies los datos lo más rápido posible.
Finalmente, cuando un fichero ha sido borrado (y el TRIM o el recolector ha hecho su trabajo), olvídate de recuperar nada. Si formateas, formateado has. No hay vuelta atrás. Las celdas se han borrado y no queda rastro, no al menos desde el punto de vista de la calle. Supongo que los gobiernos y otras entidades tendrán sistemas para cortar los chips y fotografiarlos y encontrar las celdillas residuales no borradas, o restos de electrones atascados aquí o allí, pero a efectos prácticos olvídate de recuperar tus datos por cualquier medio. Así que afila tus copias de seguridad.