Te contamos qué es NTFS y cuáles son sus características, así como su evolución a lo largo de los años para entender mejor por qué este sistema de ficheros ha tenido una vida tan longeva y sigue siendo el filesystem de cabecera de Microsoft.
El sistema de ficheros NTFS es usado por los sistemas operativos de servidor de Microsoft desde su aparición en Windows NT 3.1 en julio de 1993, además de ser usado por los últimos sistemas de escritorio.
NTFS se puede encontrar como sistema de ficheros principal en los siguientes sistemas de uso actual:
- Windows Server 2022.
- Windows Server 2019.
- Windows Server 2016.
- Windows 11.
- Windows 10.
Sin embargo, debemos tener en cuenta que los sistemas de servidor del gigante de Redmond lo han usado desde NT 3.1, por lo que en esta lista también entrarían otros sistemas ya discontinuados como Windows Server 2012, Windows Server 2008 y sus respectivas versiones R2 entre otros.
Pero, ¿cómo es posible que, siendo un sistema de ficheros de 1993, siga siendo usado tan ampliamente hoy en día? Bueno, la respuesta es bastante extensa, pero vamos a intentar explicarla de manera resumida.
Lo primero que debemos decir es que la versión publicada en origen tiene poco que ver con la vigente actualmente, ya que ha evolucionado de manera notable en estos años.
Lo segundo, es que este sistema de ficheros proporciona una serie de funcionalidades que lo hacen altamente eficiente y seguro y precisamente este es el secreto de su longevidad.
Características de NTFS:
A continuación y para poder entender mejor porque NTFS es un filesystem tan popular, vamos a revisar algunas de las características más relevantes de manera breve, pero intentando exprimir todo el jugo.
Entre las funcionalidades de NTFS tenemos:
- Sistema de archivos transaccional (Journaling).
- Autorrecuperación (Self-Healing).
- Mayor confiabilidad.
- Mayor seguridad de los datos.
- Sistema de cuotas de disco.
- Nombres y accesos largos.
- Compatibilidad con grandes volúmenes.
- Indexación de datos.
NTFS como sistema de archivos transaccional:
Una de las principales ventajas de NTFS es que constituye un sistema de ficheros transaccional, lo que quiere decir que incluye una serie de medidas encaminadas a preservar la integridad de los datos y a solventar los posibles errores que se produzcan durante el movimiento de datos.
NTFS, como sistema transaccional, proporciona soporte de tipo ACID (Atomicity, Consistency, Isolation, Durability) o lo que es lo mismo, atomicidad, consistencia, aislamiento y durabilidad en las transacciones.
El modelo ACID permite que el sistema agrupe conjuntos de operaciones de archivo y registro, de manera que se realicen todas las operaciones o no se realice ninguna. De esta manera, mientras se lleva a cabo la transacción, los cambios no son visibles para los actores que estén fuera de la operativa. Así, en caso de que se produzca el error, las operaciones serán revertidas hasta el comienzo de la transacción, evitando de esta manera errores o estados indeseados.
Estas operaciones transaccionales, además, se pueden conjugar con otros sistemas como por ejemplo MSMQ (Message Queue Server), SQL Server de Microsoft o incluso con script de líneas de comandos.
NOTA: Es posible que el concepto de ACID suene a los lectores, sobre todo en lo relacionado a diseño de bases de datos. Recordemos que es un término acuñado por Andreas Reuter y Theo Härder para referirse a las propiedades necesarias para establecer transacciones fiables en la década de los 80.
El propósito final de las transacciones de tipo ACID es el de garantizar que las operaciones de archivos se completen sin interrupciones de ningún tipo y sin errores que puedan hacer inestables los datos.
Cuando hablamos de volúmenes NTFS, debemos pensar que se gestionan de manera autónoma y que se coordina con el KTM (Kernel Transaction Manager) cuando se producen transacciones entre distintos volúmenes.
Lo anterior se conjugaría con que NTFS, como sistema transaccional, dispone de su propio registro para cada volumen, que usa para proporcionar recuperación y cancelación en caso de ser necesario, permitiendo de esta manera hacer un seguimiento de esas transacciones para su reconstrucción.
Lo anteriormente expuesto termina constituyendo lo que usualmente se conoce como “journaling” (registro por diario).
Autorrecuperación de sistemas NTFS (Self-Healing)
Las versiones actuales de Windows Server proporcionan una implementación de NTFS que se autorreparan de manera automática. Esto permite descargar al sistema de los procesos de reparación anteriores en los que se usaba la herramienta “chkdsk” (Check Disk) para realizar las tareas de mantenimiento, de manera que afectaban tremendamente a la disponibilidad del servicio, ya que mientras se ejecutaba, el rendimiento era penalizado de manera severa.
El nuevo modelo, basado en una mejora sustancial del kernel y de las interacciones de este con los gestores de filesystems, permite un mantenimiento de la integridad de los sistemas de ficheros de manera más eficiente e igualmente confiable, incrementando de hecho este segundo punto, ya que es el propio sistema el que, de manera predeterminada, lanza los chequeos y subsana los errores conforme los va detectando.
Esta revisión automática pretende, entre otras cosas, minimizar las situaciones catastróficas que se producirían por un error en el sistema que terminara afectando al filesystem o incluso al montaje de este.
Otro punto que facilita este nuevo modelo de gestión es el de una mejor trazabilidad del estado de los discos, a través de los informes generados por las revisiones que se van realizando.
Esto también revierte en que los administradores y técnicos podrán usar todos estos informes para realizar procesos de verificación, monitorización o incluso auditorías mucho más ricas que aporten un mayor valor a la información extraída.
A pesar de todo lo expuesto, se pueden producir situaciones en las que se requiera lanzar una recuperación manual con el sistema offline, pero estos eventos son mucho más difíciles de producirse por el mantenimiento proactivo que lleva a cabo el sistema.
Un ejemplo de esta situación en la que se tiene que hacer una operación fuera de línea (offline) puede ser cuando se produzca un daño en el que el sector de arranque es legible, pero el sistema no puede identificar el sistema de ficheros como NTFS.
Un poco más abajo hablamos sobre opciones de mantenimiento de NTFS y de “chkdsk” entre otras herramientas.
Mayor confiabilidad:
Este punto está muy vinculado al anterior. En los sistemas de ficheros tradicionales, uno de los problemas recurrentes era que, cuando el sistema sufría un reinicio o un apagado no planificado, muchas veces, el sistema iniciaba en un estado inestable, y esto se debía en gran parte a que los sistemas de ficheros no habían terminado algunas transacciones y estas no eran recuperables.
NTFS utiliza el journaling para generar una traza y un punto de control seguro al que volver en caso de haberse producido una falla de este tipo. Si es capaz, terminará la transacción, y si no, seguirá hasta el último punto de control seguro que encuentre.
Esto puede producirse, además de por apagados bruscos de sistema, por errores en la asignación de clústeres o por algunos otros errores producidos por la mecánica del soporte sobre el que se aloja el sistema de ficheros.
En caso de que se produjera este error por una falla mecánica, el sistema intentará resolverlo de manera autónoma mediante la reasignación dinámica, sin solicitar intervención del administrador.
En los casos más extremos, NTFS puede intentar recuperar ficheros mediante la reproducción de la cadena de transacciones en la que se produjo el fallo, siendo un procedimiento que, si bien tiene una alta tasa de recuperación, no siempre garantiza el “restore”.
Mayor seguridad de los datos:
Otro de los puntos fuertes de los sistemas de ficheros NTFS es la gran seguridad de los datos, ya que permite la implementación de distintos métodos de control de acceso entre los que cabe destacar:
- Las listas de control de acceso.
- Cifrado de unidad con BitLocker.
Las listas de control de acceso (ACL – Access Control List) permiten establecer permisos en archivos y carpetas, especificando que usuarios o grupos pueden acceder a los datos y a que nivel queremos que se acceda a los mismos.
Mediante las ACL podemos permitir o restringir de manera explícita los accesos con un alto nivel de granularidad. Permitiendo, por ejemplo, que vean el contenido de una carpeta pero que no puedan abrir los archivos, o que puedan abrir los archivos pero no escribir sobre ellos.
En el sistema de listas de control de acceso, usualmente, se parte de una concepción en la que se deniega todo y posteriormente se van abriendo los permisos de manera gradual para aquellos usuarios que necesitan acceso a los recursos.
Por otra parte, el cifrado de unidad con BitLocker proporciona un nivel de seguridad adicional que permite aislar la información más crítica en volúmenes de datos NTFS cifrados, impidiendo que se pueda acceder a los datos en caso de que un disco sea extraído y conectado a otro sistema.
Aunque no es objetivo de este artículo el entrar en grandes detalles, porque se trata más de un artículo divulgativo que técnico, se debe decir que BitLocker admite el cifrado de dispositivos en equipos basados tanto en x86 y x64 con basados en el módulo de plataforma segura (TPM) compatible con el modo de espera conectado.
El punto más interesante de BitLocker es la simplicidad de uso de cara al usuario, ya que solo necesita conocer una contraseña o disponer de un método que lo autorice para acceder a los datos, siendo transparente para toda la mecánica del uso de dicha tecnología.
Sistema de cuotas de disco en NTFS:
El sistema de cuotas de disco en volúmenes NTFS es otro de los grandes avances en lo que respecta a sistemas de ficheros, ya que, mediante una herramienta realmente sencilla de implementar, configurar y mantener, permite asignar cuotas o porciones de disco que cada usuario podrá usar.
Estas cuotas permiten limitar el volumen del que podrá hacer uso cada usuario y grupo, mostrando una advertencia al usuario que quiera tomar más espacio del autorizado o bloqueando directamente la escritura cuando llegue a dicho límite.
Las cuotas pueden aplicarse a volúmenes, carpetas o subcarpetas.
El sistema de cuotas permite realizar las siguientes tareas:
- Crear cuotas para limitar el espacio asignado a un volumen o carpeta.
- Generar notificaciones cuando se llegue al umbral blando, que es un umbral de aviso.
- Generar notificaciones cuando se llegue al umbral duro, o lo que es lo mismo, cuando se supera el límite de dicha cuota y ya no se permita escribir.
- Generar cuotas automáticas aplicables a todas las carpetas existentes en un entorno.
- Definir plantillas de cuota que puedan aplicarse más fácilmente.
- Limitar por usuarios y grupos.
Nombres y accesos largos:
El sistema de ficheros NTFS permite nombres de archivos y rutas mucho más largas que en sistemas de ficheros anteriores.
En este aspecto, cabe destacar la compatibilidad con rutas de acceso de longitud extendida que permite rutas de acceso de una longitud extendida hasta 32767 caracteres.
Este límite está a años luz del límite de ruta de acceso de 260 caracteres definido por la configuración “MAX_PATH”.
En este sentido, esta ampliación también se extiende a modelos de almacenamiento basados en NTFS como el Clúster de volumen compartido (CSV – Cluster Shared Volume) en el que varios nodos acceden a los mismos datos de manera concurrente, garantizando que en caso de caída de un nodo, no se perderá servicio en ningún momento.
Compatibilidad con grandes volúmenes:
El sistema de ficheros NTFS ha ido evolucionando a lo largo de los años y por supuesto, también ha ido evolucionando en lo que respecta a la capacidad. A fecha de hoy, NTFS es capaz de lidiar con volúmenes de hasta 8 Petabytes sobre Windows Server 2022 y hasta 256 TB en Windows 11.
La forma en que se formatea el disco durante su preparación incide directamente en el tamaño soportado, siendo necesario escoger el tamaño de clúster apropiado para los discos de mayor tamaño, aunque siempre existe la opción de dejarlo en selección automática.
En base a este motivo exponemos la siguiente tabla, para así saber que tamaños debemos escoger al trabajar con volúmenes NTFS de gran tamaño:
Tamaño de clúster | Mayor volumen y archivo |
4 KB (tamaño predeterminado) | 16 TB |
8 KB | 32 TB |
16 KB | 64 TB |
32 KB | 128 TB |
64 KB (máx. anterior) | 256 TB |
128 KB | 512 TB |
256 KB | 1 PB |
512 KB | 2 PB |
1024 KB | 4 PB |
2048 KB (tamaño máx.) | 8 PB |
Indexación de datos:
NTFS proporciona la indexación de ficheros, o lo que es lo mismo, creaciones de tablas de índices de contenidos. Este es un proceso por el cual el sistema de ficheros repasa todo el contenido almacenado, creando un índice detallado de todo lo que encuentra, tanto a nivel de contenidos como de metadatos.
De esta manera, una vez creados los índices, las búsquedas serán mucho más rápidas, agilizándose de esta manera los accesos a la información de manera notable.
El principal problema de este proceso es que, cuando se realiza la indexación por primera vez, esta puede extenderse por horas, siempre en función del tamaño de disco, y además puede penalizar de manera severa el uso de los accesos a disco. Por esta razón, se recomienda hacer los procesos en horas en las que el sistema no vaya a ser usado, o en aquellas en los que menor carga de trabajo vaya a tener.
El proceso requiere un mantenimiento automático en el cual cada poco tiempo se realiza el proceso de indexación en segundo plano, en el que se buscan los cambios en el sistema de ficheros y no penaliza el rendimiento.
Operación de NTFS:
Existen distintas tareas de operación y mantenimiento que se pueden realizar cuando tratamos con sistemas de ficheros y, como no puede ser de otra manera, esto se aplica también en el caso de NTFS.
A continuación, haremos un breve repaso de las operaciones básicas de:
- Mantenimiento de NTFS.
- Gestión de permisos NTFS (es más bien un apunte).
- Protección de datos con BitLocker.
Mantenimiento de NTFS:
Casi todas las opciones de mantenimiento de NTFS se realizan de manera autónoma, pero puede ser necesario realizar una revisión manual; bien porque se quiere realizar como método de auditoría del estado del sistema o porque se sabe que va a haber problemas.
Estas revisiones manuales del sistema de ficheros se podrán realizar con “chkdsk” o mediante consola gráfica.
En caso de querer hacer las comprobaciones mediante línea de comandos con “chkdsk”, la sintaxis usada es la siguiente:
chkdsk <destino> <parámetros>
Donde:
- <destino>: Se refiere al disco sobre el que se quiere actuar.
- <parámetros>: Se refiere a los parámetros y modificadores que se podrán aplicar, entre los que se puede destacar:
- /f Corrige errores en el disco.
- /r Busca sectores incorrectos y recupera información legible.
- /x Obliga al volumen a desmontar primero
A continuación, dejamos el enlace a Microsoft Learn por si quiere ampliar la información sobre chkdsk y ver todos los parámetros, junto a distintos ejemplos de uso.
En caso de querer hacer la comprobación desde consola gráfica, se puede usar la herramienta “Comprobación de errores”.
En caso de querer hacer la comprobación de errores mediante la herramienta gráfica, bastará con acceder a un explorador de Windows, posicionarnos sobre el volumen que queremos comprobar y hacer botón derecho sobre el mismo, seleccionando la opción de “Propiedades”.
Una vez estemos en las propiedades del disco, se deberá ir a la pestaña “Herramientas”, donde se podrá hacer clic en “Comprobar” dentro de la sección “Comprobación de errores”.
Gestión de permisos NTFS:
La gestión de permisos y accesos en el sistema de ficheros NTFS es posiblemente una de las tareas más complicadas en los sistemas Microsoft. Esta complicación no radica en que sea difícil de entender ni de ejecutar, sino que se debe tener especial cuidado para evitar problemas de mala asignación de accesos y sobre todo con la gestión de herencias.
Una mala gestión de los permisos podrá hacer que los accesos no sean correctos y los usuarios puedan acceder a lugares donde no deberían acceder.
Por esta razón, creemos que tiene una entidad suficiente como para tener su propio artículo, en el que se tratarán con suficiente cuidado y dedicación todos los aspectos de concesión de permisos, herencias, etc. Y que será publicado próximamente en este mismo blog.
Protección de datos con BitLocker:
La protección de unidades con BitLocker es relativamente sencilla, ya que, mediante el cifrado de los volúmenes, ayuda a proteger los datos en aquellos dispositivos que se desee para que solo puedan ser accedidos por los usuarios que tengan la autorización, que en este caso viene dada en forma de contraseña, token de paso, identificador biométrico, etc.
Esta funcionalidad no está disponible en todas las versiones de sistemas operativos, no siendo soportada por ejemplo por Windows 10 Home Edition.
El proceso de activación es realmente sencillo, basta con ir al explorador de archivos y hacer clic en el botón derecho sobre el disco que se quiera activar BitLocker, seleccionando la opción “Activar BitLocker”. A partir de ese momento se pide método de acceso y contraseña, y pasado un tiempo se podrá empezar a usar.
NOTA: Los volúmenes en los que ya existan datos deberán disponer de una copia de seguridad por si hubiera problemas al activar BitLocker.
Conclusión:
Como hemos comentado en este artículo sobre NTFS, este es un filesystem ampliamente usado dentro del mundo de servidores de Microsoft que también es usado en el mundo de los sistemas de escritorio.
Con casi 30 años de vida, el secreto de la longevidad de este sistema de ficheros ha sido su continua evolución y sus características realmente útiles para convertirlo en un sistema estable, seguro y eficiente.
Su funcionamiento es realmente bueno y la mayoría de las funcionalidades se autogestionan, por lo que no es necesario operar sobre ellas.
A lo largo del artículo hemos visto sus características, su gestión y algunos trucos de mantenimiento que esperamos que te sean de utilidad.
¡Gracias por acompañarnos!