Sistema de archivos de Apple (APFS)

Inodos de 64 bits, transacciones atómicas, marcas de tiempo en nanosegundos, clonación de directorios, cifrado incorporado


En la presentación de WWDC 2016 de ayer , Apple mostró nuevas versiones de macOS (Sierra) 10.12, iOS 10, tvOS 10, sistemas operativos watchOS 3, una aplicación Swift Playgrounds para enseñar programación infantil y nuevos emojis.

No parecería nada interesante. Sin embargo, Apple aún lanzó algo fundamental. El desarrollo más significativo de todo lo que se mencionó en la presentación es el sistema de archivos de nueva generación Apple File System (APFS) en el sistema operativo macOS (Sierra) 10.12.

En el sitio para desarrolladores, poco después de la presentación, se publicó documentación con las características principales y una descripción del sistema de archivos, que repite las funciones individuales del poderoso sistema de archivos ZFS gratuito.

Las computadoras Apple ahora usan el sistema de archivos HFS +, una versión extendida del HFS (Hierarchical File System, creado hace más de 30 años). Al igual que su predecesor, HFS + utiliza una estructura de árbol llamada árbol B * para almacenar la mayoría de los metadatos. De ahí el nombre de "sistema de archivos jerárquico".

La introducción oficial de HFS + tuvo lugar el 19 de enero de 1998, junto con MacOS 8.1. Desde 2002, el sistema ha implementado el registro en diario para aumentar la confiabilidad del almacenamiento de información. Desde OS X 10.3, el registro está habilitado de forma predeterminada, ahora es posible trabajar en modo sensible a mayúsculas y minúsculas.

Hasta OS X 10.7, los desarrolladores continuaron refinando HFS + e implementando nuevas funciones para OS X a nivel del sistema de archivos, pero el hecho sigue siendo: HFS se desarrolló originalmente durante disquetes y discos duros giratorios, cuando los tamaños de los archivos se midieron en kilobytes o megabytes. Hoy en día, muchos trabajan con unidades SSD, que almacenan millones de archivos: gigabytes o terabytes de datos. El sistema de archivos tiene requisitos completamente diferentes. En lugar de finalizar el código anterior, Apple finalmente decidió escribir un nuevo sistema de archivos desde cero.

El sistema de archivos APFS de próxima generación todavía está en la vista previa del desarrollador, es decir, no está previsto su uso masivo en el futuro cercano. No puede usar el volumen APFS como disco de arranque en este momento, ni puede usarse en el sistema de copia de seguridad de Time Machine, en Fusion Drive o con el cifrado de File Vault. Pero es posible para un volumen normal que no sea de arranque.

Todavía hay un largo refinamiento y pruebas, pero solo entonces APFS se convertirá en el principal sistema de archivos de Apple en las próximas décadas.

APFS, a diferencia de HFS +, distingue inicialmente mayúsculas y minúsculas en los nombres de archivos y carpetas, y esta función no se puede desactivar. Esto debe ser tenido en cuenta por cualquiera que decida usar APFS.

En principio, Apple recomienda primero experimentar con APFS en una unidad externa, que no almacena nada importante. Para esto, se propone utilizar la utilidadhdiutil .

Características clave


La documentación oficial enumera las características generales del sistema de archivos APFS en comparación con HFS +.

Contenedores y Volúmenes


Un contenedor es el objeto principal para almacenar datos en APFS. Los contenedores suelen ser exactamente iguales a las entradas de la tabla de particiones GUID (GPT); tienen su propio esquema de protección contra accidentes y asignación de espacio en disco. Cada contenedor contiene uno o más volúmenes o sistemas de archivos, cada uno de los cuales tiene su propio espacio de nombres , es decir, un conjunto de archivos y directorios.

APFS no admite directamente RAID de software, pero se puede usar con volúmenes RAID de Apple para admitir Striping (RAID 0), Mirroring (RAID 1) y Concatenation (JBOD).

Inodos de 64 bits


Los inodos de 64 bits aumentan significativamente el espacio de nombres en comparación con los identificadores de 32 bits en HFS +. El sistema de archivos APFS de 64 bits admite más de 9 quintillones de archivos en cada volumen. Eso debería ser suficiente para todos, como dijo Bill Gates.

Marcas de tiempo de nanosegundos


APFS aumentó significativamente la precisión de las marcas de tiempo (marcas de tiempo). APFS admite el sellado de tiempo exacto al nanosegundo. A modo de comparación, en HFS + las marcas de tiempo se establecieron en el segundo más cercano.

Las marcas de tiempo de nanosegundos son muy importantes en los sistemas de archivos modernos, porque ayudan a implementar la atomicidad y las transacciones atómicas, uno de los principales requisitos de ACID para un sistema transaccional (por ejemplo, un DBMS). Atomicity asegura que ninguna transacción esté parcialmente comprometida con el sistema. O se completarán todas sus operaciones secundarias o no se completará ninguna.

Protección contra choques


APFS implementa un innovador esquema de metadatos de copia en escritura, que Apple llama "Protección contra choques". Asegura que los cambios en el sistema de archivos y el registro se mantengan sincronizados si ocurre algo durante la grabación; por ejemplo, se pierde la energía.


Esquema de copia en escritura ZFS

Archivos dispersos


Un archivo con el atributo "disperso" asume el contenido de bloques de cero bytes, no almacenados en la unidad, sino implícitos. HFS + no tenía compatibilidad con archivos dispersos.

Atributos extendidos


APFS tiene soporte incorporado para atributos de archivo extendido, que en HFS + se implementó a través del archivo de Atributos, es decir, a través del árbol B.

Cifrado


Apple afirma que el cifrado es una propiedad fundamental que está integrada en APFS a nivel del sistema de archivos. Para cada volumen en el contenedor APFS, se instala uno de los modelos de cifrado: sin cifrado, cifrado con una clave, cifrado con varias claves. En el último caso, las claves individuales se utilizan para cifrar archivos y metadatos. Dependiendo del hardware, APFS usa el modo de cifrado AES-XTS o AES-CBC.

Clonación de archivos y directorios


Clonación: copia casi instantánea de un archivo o directorio, que no requiere espacio adicional para el almacenamiento de datos. Cuando se modifica un clon, el sistema de archivos registra solo los cambios de datos. Por lo tanto, el nuevo sistema de archivos puede almacenar muchas versiones de archivos grandes, consumiendo menos espacio en disco.

Instantáneas


Instantáneas: "instantáneas" de solo lectura del sistema de archivos en el volumen. El sistema operativo puede usar instantáneas para un procedimiento de copia de seguridad más eficiente. Es decir, finalmente, Time Machine funcionará bien (rápido).



Por supuesto, en sus capacidades, APFS es significativamente inferior al sistema de archivos ZFS de 128 bits , que es compatible con Linux, FreeBSD y otros sistemas operativos gratuitos, pero por parte de Apple este es un paso en la dirección correcta.

Es extraño que la documentación preliminar no mencione la función de compresión que HFS +, por cierto, admite.

Apple había intentado portar ZFS a OS X durante mucho tiempo, hubo una discusión activa sobre las listas de correo de ZFS, se publicaron instantáneas preliminares para la próxima versión de OS X. Más tarde, se implementó OpenZFS para OS X (O3X) y MacZFX .

El sistema de archivos ZFS es de código abierto, y Apple podría tomar prestadas algunas ideas para el sistema de archivos APFS. La implementación de código abierto para APFS aún no está lista, Apple planea publicar documentado y publicar el formato APFS en 2017.

La primera sesión formal se llevará a cabo hoy en WWDC, donde los desarrolladores mostrarán con más detalle las nuevas características de APFS.

Source: https://habr.com/ru/post/es395253/


All Articles