Apple File System: Qué es y por qué es un avance para Apple

clusten

ADMIN
Miembro del Equipo
ADMIN
Se incorporó
1 Julio 2007
Mensajes
6.181
Introducción
Los sistemas de archivos suelen ser el "hermano pobre" de la cadena de almacenamiento, ya sea porque el sistema predeterminado es suficiente para nuestras necesidades o porque son la mejor (o única) opción ofrecida por el sistema. Aún con estos antecedentes, el caso de Apple sobrepasa todo lo conocido, pues el sistema HFS tiene 32 años y su "mejora", HFS+ ya cumplió la mayoría de edad (19 años). Este sistema, que ha sido catalogado por Linus Torvalds como el peor sistema de archivos jamás hecho, tiene sus días contados y hoy le dedicamos un espacio, pues hace aproximadamente cinco semanas (desde el 27 de marzo de 2017), dejó su lugar en iOS para dar paso a un nuevo sistema, uno hecho a medida por y para Apple.

A continuación, le pegamos una repasada a las gracias que trae este sistema.

¿Por qué pasar a Apple File System?
Lo primero que debemos saber es que este sistema de archivo está orientado a dispositivos Flash o SSD. Un lujo que se puede dar Apple pues todos sus dispositivos actuales hacen uso de SSD (desde el iWatch hasta el MacPro). Con este puro enfoque ya debería llamar la atención de quienes usen MacOS o iOS, pero no se quedan solo en eso.

El segundo enfoque es a la encriptación, que ofrece distintos tipos:

  • No encriptar el sistema de archivos
  • Encriptar con una llave única (para metadatos y/o datos)
  • Múltiples llaves
    • Encriptación de metadata
    • Encriptación por archivo
    • Encriptación por región, permitiendo que porciones del sistema de archivos requiera múltiples llaves para ser desencriptado.
La última encriptación es única, ningún otro sistema de archivos lo ofrece. Finalmente, Apple unifica el software de encriptación para todas sus plataformas.
Si ya tenemos tu atención, podemos pasar a lo que son nuevas características que trae APFS.

Clones
Esta característica consiste en que al generar una copia de un archivo, el sistema de archivos en lugar de duplicarlo, escribe solo los metadatos del nuevo archivo, volviendo la duplicación casi instantánea y a costo cercano a cero, a diferencia de HFS+ que duplica los datos.

clone.png

Clone: En el caso de APFS se tienen dos set de metadatos, pero la información es solo una
A primera vista no nos parece muy útil, pues no es algo que uno haga cotidianamente; a fin de cuentas; ¿Quién anda duplicando archivos en la misma unidad? Creo que muy pocos, pero inconscientemente SI duplicamos archivos, al menos en iOS.

Como bien sabemos, en iOS cada aplicación tiene su espacio y una aplicación no se puede meter en el espacio del resto. Esto lleva a que si queremos trabajar en una foto o audio, el sistema tiene que generar una copia en el espacio de la aplicación. Si tomamos esa foto con la cámara y después queremos editarla con retrica o instagram, iOS genera una copia duplicando innecesariamente la foto, con el costo de tiempo y espacio que esto implica.

Con esta característica, los softwares de edición deberían tardar menos en "levantar" los datos y además, usar menos espacio pues otra de las gracias es que al trabajar en uno de los clones, cuando uno guarda el archivo, en lugar de guardar la copia, se guarda solo las modificaciones y/o cambios incrementales.

clone2.png

Clone: Al modificar uno de los clones, el sistema no modifica la información adicional. Se guardan los cambios incrementales, ahorrando espacio, ademas de no afectar a las aplicaciones que apunten al archivo no editado.
Como resumen, con esta característica ahorraremos espacio, tardaremos menos en levantar los archivos y protegeremos nuestra unidad.

Snapshots
Esta característica consiste en generar "instantáneas" de los archivos seleccionados. Una forma limpia de generar respaldos dentro del mismo disco, sin necesidad de duplicar el espacio utilizado. Al igual que clonar, los cambios realizados son incrementales (Es decir, se guarda sólo la diferencia entre los cambios, no una copia completa). Como "contra", al borrar archivos, no se libera el espacio mientras el archivo esté en una snapshot.

snapshots.png

Snapshots: se genera una instantánea del sistema. Si se modifican archivos dentro de la instantánea, los datos no son borrados y los cambios realizados se guardan como incrementales, manteniendo la integridad de la instantánea en todo momento.
Otra de las ventajas es que en cualquier momento se puede levantar la instantánea, haciendo que cualquier cambio realizado sea deshecho. Si me preguntan a mí, es una característica excelente para equipos compartidos, pues te permite generar una instantánea y cada cierto tiempo invocarla para tener una instalación "limpia" sin necesidad de formatear y sin perder archivos nuevos (esto esperando que APFS en su versión final para MacOS permita booteo).

Space Sharing
La característica de espacio compartido es ideal para quienes nos gusta tener múltiples particiones. Uno de los principales problemas de esta práctica es definir cuánto espacio se deja para cada partición. Con APFS esto ya no será un problema, pues no define las particiones de manera rígida (inclusive si no tienen formato APFS, pero están dentro del contenedor), permitiendo que cada una pueda crecer o achicarse según demanda. Con esto, todos los volúmenes que sean parte del contenedor APFS reportarán el mismo espacio libre, que es igual al total de espacio libre (Por ejemplo, si tenemos una unidad de 1024 GiB, con 200 GiB ocupados en una partición y 124 GiB ocupados en otra, ambas particiones indicarán que disponen de 700 GiB libres (1024-200-124)). Esto último simplifica el cálculo de espacio en la unidad por parte del usuario, evitando que tenga que sumar el espacio en cada unidad, además del clásico "rebalanceo" cuando uno queda corto de espacio en una partición.

Cálculo mejorado de espacio utilizado (Fast Directory Sizing)
¿Cuántas veces no hemos querido saber cuántos archivos tiene un directorio o cuánto espacio está utilizando y tenemos que esperar segundos o hasta minutos antes de tener nuestra respuesta?

Esto es porque épicamente los sistemas de archivos recorren el directorio de manera recursiva, contando la cantidad de archivos y sumando el peso. La forma simple de solucionar esto sería que al haber una modificación, el sistema fuese actualizando el valor desde la carpeta modificada hasta el nivel más alto, pero esto genera un problema: la forma segura de hacer esta actualización sería "bloqueando" el directorio modificado e ir subiendo hasta la raíz.

Esta operación es una violación en los sistemas de archivo, lo que complica una actualización rápida y segura. APFS soluciona esto almacenando el tamaño de directorios en un espacio especial, lo que permite tener esta información casi instantáneamente al ser solicitada. El sistema utiliza las operaciones "atómicas" para actualizar el tamaño de directorios, por lo que es esperable que esta información siempre está actualizada.
Como contra tiene que esto tiene un costo de espacio, el cual en los sistemas actuales es despreciable al lado de las ventajas.

Atomic Safe-Save
Los usuarios finales y/o que estamos acostumbrados a Windows, no entenderemos mucho sobre este problema que tenía HFS+, pero una vez explicado, se hace evidente esta necesidad.

Cuando uno guarda un archivo, lo que ocurre es lo siguiente:

rename.png

Renombrado/guardado de archivos: El archivo temporal y el original "intercambian" nombres. Una vez finalizado el intercambio, el archivo temporal es borrado (en caso de guardado).
Ok, no hay perdida de documentos en caso de corte de luz o necesidad de recurrir a recuperar de alguna manera el archivo, pues en el peor de los casos, perdemos los cambios si por alguna extraña razón se pierde la energía en la pequeña ventana que ocurre el intercambio. En MacOS es otro tema, pues existen los Bundles, que corresponden a archivos-directorios.

Como es de esperar, los bundles al ser guardados estos archivos tienen otro tratamiento (como directorio). Esto produce que en HFS+ pudiese haber pérdida de documentos en caso de un corte de luz, pues para guardar los cambios, se requiere primero "mover" el archivo original para dar espacio al nuevo. Si hay corte en ese momento, se pierde el original.

En APFS esto no ocurre, pues el guardado ocurre de una manera que para el usuario: pasó o no pasó sin intermedios, similar a lo que muestra la figura arriba. Todo esto ocurre a un nivel interno, por lo que resulta transparente para el usuario y simple para el programador, pues él solo llama a la función que hace el trabajo.

Otros cambios
Otros cambios incluidos son:

  • Sistema de archivos predeterminadamente sensible a mayúsculas y minúsculas: /CaPa9 y /capa9 son rutas distintas. Si bien existía en HFS+, no era el predeterminado. De igual manera, si el usuario necesita, APFS permite obviar esa sensibilidad.
  • Timestamp de nanosegundo vs segundo utilizado por HFS+
  • Protección contra fallos: APFS utiliza un esquema copy-on-write de los metadatos para asegurar que el sistema de archivos está protegido contra fallos.
  • Archivos "dispersos", el archivo utiliza el espacio real y no el lógico.
  • Flexibilidad a futuro: Soporte para agregar etiquetas a los archivos sin que esto implique problemas de retr0compatibilidad (las nuevas etiquetas se ignorarán)
Limitaciones
Como limitaciones actuales, se tienen:

  • No se puede utilizar como disco de inicio. Se espera futuras iteraciones de MacOS permitan iniciar con APFS.
  • No se pueden realizar respaldos en Time Machine.
  • Los volúmenes APFS no pueden ser encriptados con FileVault.
  • No se puede utilizar para Fusion Drives
Estas limitaciones son temporales y se espera que en futuras versiones de MacOS y Time Machine se pueda usar APFS sin problemas.

Conclusiones
Con esto ya hemos recorrido las principales mejoras del nuevo sistema de archivos, que como pueden ver, es una mejora notable a HFS+. ¿Ahora, qué ventaja hemos visto en uso del nuevo sistema de archivos? iOS en general es un sistema que funciona bien, sobretodo en equipos de la última o penúltima generación, por lo que es difícil notar cambios significativos entre versiones. Sobre el aprovechamiento de las características, se puede observar que es efectivo, al menos las funciones "clone" han sido aprovechadas por Apple, pues hay reportes en la red que muestran usuarios que han tenido una reducción de espacio utilizado después de la actualización. En mi caso no puedo dar fe de eso, pues el equipo que tenía disponible para utilizar era nuevo y venía con iOS 9.3. Aun así, fue extraño ver que saltar de una versión antigua a una más nueva liberara espacio:

cambioios.png

Pasar de iOS 9.3.2 a 10.3.1, para quienes estamos acostumbrados a Android es una experiencia incómodamente placentera: ganar 5 GB y mejoras de sistema.
Al cierre final y para quienes dudan de la estabilidad que pueda tener APFS, desde el 27 de Marzo a la fecha, Apple ha actualizado millones de dispositivos (todos los que soportan 10.3) sin reportes de fallos, aún cuando el cambio de sistema de archivos fue realizado "en caliente".

Referencias:
WWDC2016: https://developer.apple.com/videos/play/wwdc2016/701/ (Nota: Usar Edge o Safari para ver. No es compatible con chrome)
Guía técnica: https://developer.apple.com/library...ual/APFS_Guide/Introduction/Introduction.html
 
Última modificación:

Harima

Pegao al tarro
Se incorporó
15 Mayo 2008
Mensajes
3.931
Se ve bastante interesante, en especial los clones y snapshots, pero la guinda de la torta se la lleva el space sharing.
 

t3b4n

Ocioso
Se incorporó
27 Febrero 2006
Mensajes
1.643
Introducción

Conclusiones
Con esto ya hemos recorrido las principales mejoras del nuevo sistema de archivos, que como pueden ver, es una mejora notable a HFS+. ¿Ahora, qué ventaja hemos visto en uso del nuevo sistema de archivos? iOS en general es un sistema que funciona bien, sobretodo en equipos de la última o penúltima generación, por lo que es difícil notar cambios significativos entre versiones. Sobre el aprovechamiento de las características, se puede observar que es efectivo, al menos las funciones "clone" han sido aprovechadas por Apple, pues hay reportes en la red que muestran usuarios que han tenido una reducción de espacio utilizado después de la actualización. En mi caso no puedo dar fe de eso, pues el equipo que tenía disponible para utilizar era nuevo y venía con iOS 9.3. Aun así, fue extraño ver que saltar de una versión antigua a una más nueva liberara espacio:

cambioios.png

Pasar de iOS 9.3.2 a 10.3.1, para quienes estamos acostumbrados a Android es una experiencia incómodamente placentera: ganar 5 GB y mejoras de sistema.
Al cierre final y para quienes dudan de la estabilidad que pueda tener APFS, desde el 27 de Marzo a la fecha, Apple ha actualizado millones de dispositivos (todos los que soportan 10.3) sin reportes de fallos, aún cuando el cambio de sistema de archivos fue realizado "en caliente".

Referencias:
WWDC2016: https://developer.apple.com/videos/play/wwdc2016/701/ (Nota: Usar Edge o Safari para ver. No es compatible con chrome)
Guía técnica: https://developer.apple.com/library...ual/APFS_Guide/Introduction/Introduction.html

Gran aporte, Clusten. Ojo con el último párrafo y la captura. Por lo que veo, no es que se te hayan "liberado" 5Gb más de almacenamiento, sino que aparentemente cambió la forma en que se interpreta la cantidad de espacio de almacenamiento, de ahí vienen esos 5Gb libres adicionales. Fíjate que en la primera captura dice que la capacidad del disco es de 55,7 Gb y la segunda dice que es de 60,43. Me imagino que es algo similar a lo que me pasa cuando conecto un disco externo en Linux versus Windows: uno me dice que enchufé una unidad de 1Tb mientras el otro me dice que enchufé 900 y pico.

No se ven las imagenes :(

Yo las veo, en chrome desde el PC.
 

clusten

ADMIN
Miembro del Equipo
ADMIN
Se incorporó
1 Julio 2007
Mensajes
6.181
Gran aporte, Clusten. Ojo con el último párrafo y la captura. Por lo que veo, no es que se te hayan "liberado" 5Gb más de almacenamiento, sino que aparentemente cambió la forma en que se interpreta la cantidad de espacio de almacenamiento, de ahí vienen esos 5Gb libres adicionales. Fíjate que en la primera captura dice que la capacidad del disco es de 55,7 Gb y la segunda dice que es de 60,43. Me imagino que es algo similar a lo que me pasa cuando conecto un disco externo en Linux versus Windows: uno me dice que enchufé una unidad de 1Tb mientras el otro me dice que enchufé 900 y pico.
.
Tienes razón, no hice mayor analisis de esa parte, más que ver el espacio disponible. Investigando, la capacidad toal aumenta producto de las ventajas de APFS: no requiere reservar espacio para cabeceras, dejar espacios vacíos para particiones dedicadas, etc. gracias a Space Sharing. Ahora ese espacio esta disponible para el usuario y será tomado por el sistema solo cuando lo necesite.

En el caso linux vs windows es que uno puede mostrar la capacidad como GiB o GB, siendo la diferencia entre 932 GiB - 1000 GB.

Saludos
 

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.467
Que wena el artículo, yo algo sabía del tema pero la verdad ni me molesté en saber de qué se trataba esto, interesante el haber tenido una mirada más profunda a este tema que mal que mal es la base sobre la que todo corre jajajaja

Igual me cagué de la risa con las declaraciones de Linus al respecto de HFS+

Saludos.


Sent from my iPhone using Tapatalk
 

tglaria

InExperto
Se incorporó
10 Febrero 2005
Mensajes
9.713
Gran aporte, Clusten. Ojo con el último párrafo y la captura. Por lo que veo, no es que se te hayan "liberado" 5Gb más de almacenamiento, sino que aparentemente cambió la forma en que se interpreta la cantidad de espacio de almacenamiento, de ahí vienen esos 5Gb libres adicionales. Fíjate que en la primera captura dice que la capacidad del disco es de 55,7 Gb y la segunda dice que es de 60,43.
Explíqueme más.
En ambas capturas veo la unidad de medida (55,7GB y 60,43GB), esperaría que fueran la misma unidad de medida (aunque no descarto que no lo sean) por lo que sí esperaría que hubiera una reducción en los requerimientos de espacio del sistema operativo.
 

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.467
ojo que eso tiene que ver más con space sharing: la forma de calcular esto cambió (por lo que entendí del artículo arriba) por lo que toma ahora el espacio disponible en todas las particiones. Supongamos el siguiente particionamiento:


/ => 12GiB, de los cuales 7 están ocupados
/home => 50GiB, de los cuales 40 están ocupados

Si hacías un cálculo de espacio disponible, te tomaba sólo /home, por lo que te decía que el espacio disponible en total eran 10Gib.

Ahora, con el nuevo sistema, te suma los 5 disponibles en /, ya que la puede redimensionar al vuelo sin mayor problema. Por lo tanto, el espacio total disponible ya no son 10GiB, ahora son 15GiB.

Saludos.
 

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.769
Oye @clusten , ¿quiénes se beneficiarían hoy de este nuevo filesystem? ¿Los productos nuevos que se adquieran desde hoy?

PD: Muy buen artículo, felicitaciones.
 

t3b4n

Ocioso
Se incorporó
27 Febrero 2006
Mensajes
1.643
Oye @clusten , ¿quiénes se beneficiarían hoy de este nuevo filesystem? ¿Los productos nuevos que se adquieran desde hoy?

PD: Muy buen artículo, felicitaciones.
En el caso de Macos debería ser opcional, junto a una actualización mayor del sistema, creo yo. Si la hicieran obligatoria, algunos usuarios podrían perder acceso a particiones que estuvieran leyendo desde otros S.O. o dispositivos como routers, NAS o similares.
 

NIN

Opteron Fanboy
Se incorporó
5 Septiembre 2005
Mensajes
1.444
Oye @clusten , ¿quiénes se beneficiarían hoy de este nuevo filesystem? ¿Los productos nuevos que se adquieran desde hoy?

PD: Muy buen artículo, felicitaciones.

Me atrevería a decir que esto beneficiaría a cualquier equipo que use una unidad de estado sólido, incluyendo equipos mas antiguos o equipos con un upgrade de hdd a ssd. Todo apunta a generar menos escritura, que es la principal desventaja de una unidad flash. Un sistema de archivos no debiese representar una incompatibilidad por requerimientos de hardware a menos que hablemos de sistemas de archivos para storages o equipos empresariales que demanden mucho uso de CPU y RAM para calculo de paridades u otras yerbas. Quizá apple se afirme de este desarrollo para dar por obsoleto algunos equipos.
 

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.769
Me atrevería a decir que esto beneficiaría a cualquier equipo que use una unidad de estado sólido, incluyendo equipos mas antiguos o equipos con un upgrade de hdd a ssd. Todo apunta a generar menos escritura, que es la principal desventaja de una unidad flash. Un sistema de archivos no debiese representar una incompatibilidad por requerimientos de hardware a menos que hablemos de sistemas de archivos para storages o equipos empresariales que demanden mucho uso de CPU y RAM para calculo de paridades u otras yerbas. Quizá apple se afirme de este desarrollo para dar por obsoleto algunos equipos.

Yo no cacho mucho del mundo apple por eso la pregunta, ¿uno puede mandarle un update o upgrade a un notebook de... no se... un año de antigüedad para utilizar este nuevo filesystem?
 

clusten

ADMIN
Miembro del Equipo
ADMIN
Se incorporó
1 Julio 2007
Mensajes
6.181
Oye @clusten , ¿quiénes se beneficiarían hoy de este nuevo filesystem? ¿Los productos nuevos que se adquieran desde hoy?

PD: Muy buen artículo, felicitaciones.
En la actualidad, solo iOS lo aprovecha al 100%. En MacOS Sierra esta como preview para desarrolladores (para que puedas probar como se comportará tu app).
Se espera que tvOS, watchOS y MacOS en las siguientes versiones se pasen a APFS, siendo el caso más delicado el de MacOS, donde el cambio puede producir que apps no funcionen.

Yo no cacho mucho del mundo apple por eso la pregunta, ¿uno puede mandarle un update o upgrade a un notebook de... no se... un año de antigüedad para utilizar este nuevo filesystem?
Solo iOS lo soporta completo. En MacOS sierra puedes crear unidades con APFS, pero para probar solamente.
 

NIN

Opteron Fanboy
Se incorporó
5 Septiembre 2005
Mensajes
1.444
Yo no cacho mucho del mundo apple por eso la pregunta, ¿uno puede mandarle un update o upgrade a un notebook de... no se... un año de antigüedad para utilizar este nuevo filesystem?

Un ejemplo,

http://www.everymac.com/systems/app...o-2.4-aluminum-13-mid-2010-unibody-specs.html

Este es el equipo que poseo para intrusear en apple. Siendo de 2010, aún puede ser actualizado a MacOS Sierra.

Al parecer, Apple tiene la politica de ir matando equipos cuando ya se ven muy limitadas sus capacidades para nuevas actualizaciones de software. El anterior a este solo difieren sus graficos integrados, geforce 320m vs geforce 9400m, y ya fué limitada su actualizacion, como El Capitan el sistema operativo mas reciente que puede manejar. Una modificación en el sistema de archivos, en especial lo que propone apple con su APFS, solo deberia beneficiar al equipo. No veo razones para descartar esto en una proxima actualización.
 

Carlos E. Flores

Zombie
Miembro del Equipo
MOD
Se incorporó
17 Marzo 2005
Mensajes
28.206
Gracias por el artículo. Buenísimo.

Creo que entendí más de la mitad a primera vista. :p Merece una lectura con calma.
 
Subir