Home
About
Archives
Contactenos
Ayuda | Help
Soporte TeamViewer

05 2015

Las cuatro etapas de crecimiento de los archivos NTFS

Esta semana estuve muy complicado y la semana proxima estare de viaje. Igualmente estoy relanzando el sitio y preparando/finalizando la edicion de algunos videos que tenis pendiente. Hoy queria compartir con ustedes esta interesante nota publicada por Microsoft sobre los ficheros NTFS y su crecimiento.

Espero que les sea de interes. Saludos. Roberto Di Lello
———-

Las cuatro etapas de crecimiento de los archivos NTFS

Jeff Hughes (CORE) 16 Oct 2009 11:09 AM 16 de octubre 2009 11:09 AM

En mi búsqueda para entender mejor la interconexión de cómo NTFS almacena la información en el disco, he estado investigando lo que ocurre con un archivo a medida que crece en tamaño y complejidad. La razón por la que estoy después de este conocimiento es lo que mejor puedo solucionar ciertos problemas de almacenamiento.

Recientemente, me di cuenta de que había metido la cabeza con suficiente información para tomar un buen blog. Leer a lo largo como explico lo que yo llamo ‘las cuatro etapas de crecimiento de archivo. Antes de que podamos abordar el crecimiento de archivos, tenemos que ver primero cómo NTFS funciona bajo las sábanas. Vamos a empezar con algunos conceptos básicos.

Cuando NTFS almacena un archivo, se inicia mediante la creación de un pequeño segmento de registro de archivo 1KB que llamaremos el registro de base.     Cada archivo comienza como este, incluyendo los archivos ocultos especiales como $ MFT, $ LOGFILE, $ VOLUMEN y así sucesivamente.     De hecho, cuando nos referimos a la MFT (tabla maestra de archivos), lo que estamos hablando es de toda la lista de segmentos de registro de la base y los segmentos de registro de los niños (explicado más adelante) para todos los archivos del volumen.

Para hoy, sólo vamos a hablar de algunos archivos de texto simple. Usted lo verá llegar lo suficientemente compleja sin hacer nada lujoso. Aquí hay tres registros de la base de tres archivos de texto.

01

Antes de ir más lejos, es importante aclarar un error común sobre lo que un archivo es en realidad. Tendemos a pensar en los datos en nuestro archivo como el propio archivo.

02

La verdad es que los datos es sólo un atributo de un archivo.

02

Cada registro del archivo comienza con una cabecera, y luego tiene varios atributos, cada atributo que tiene su propio encabezado.  Para los archivos pequeños, es común encontrar atribuyen los últimos datos.

No hay que confundir estos atributos con atributos de archivo como de sólo lectura, Oculto o Sistema (que en realidad son sólo las banderas). Piense en atributos como estructuras dentro del archivo que definen cosas sobre el archivo. Atributos comunes son $ STANDARD_INFORMATION, $ FILE_NAME, y por supuesto $ DATA.

02

Cualquier espacio de sobra en el registro 1KB no se utiliza hasta que uno de los atributos que necesita o se añade un nuevo atributo.

Ahora vamos a ver nuestro archivo de crecer ….

Primera etapa – residente Completamente

He creado un pequeño archivo de texto con una sola línea de texto en el mismo.     Este archivo era tan pequeño que era capaz de adaptarse a todas las partes del archivo en su registro de la base.     A esto le llamamos ser residente, ya que los datos para el archivo reside en el segmento de registro de base.     Esto significa también que existe el archivo completo en la MFT.     No hay necesidad de buscar en otra parte.     Todo lo que necesitamos está en ese registro de 1 KB.

El diagrama muestra el segmento de registro de la base de 1 KB para el archivo File1.txt.     En el interior se puede ver el atributo de datos y los datos de los archivos dentro de ella.     Los datos de archivo, también conocido como la corriente de este atributo, es lo que nosotros como usuarios de computadoras tendemos a pensar en cuando pensamos en un archivo.     Nosotros no pensamos en todas las estructuras involucradas en el almacenamiento de la corriente.

03

Junto con los datos que ponemos en el archivo, también se puede ver que tenemos un montón de espacio para las que aún quedan en el segmento de registro de la base de 1 KB. Para hacer que el archivo crezca, me acaba de pegar la misma línea de texto en un par de veces más.     Pronto tuve el archivo con este aspecto ….

03

Esto fue casi tan grande como podría conseguir el archivo antes de que fuera demasiado grande para caber en el rango 1k del segmento de registro de base.     Cualquier más grande y nos vamos a la segunda etapa.

Segunda etapa – Datos no residente

Una vez que los datos comienza a empujar hacia el final del segmento de registro de la base de 1 KB, los datos serán enviados fuera y almacenados en otro lugar del disco.     Para realizar un seguimiento de dónde está, mantenemos un par de mapas que nos dice la localización y longitud de los datos ahora no residentes.     La nueva ubicación está fuera de la MFT y es simplemente un rango asignado de clusters.

NOTA:     En su etapa de los datos del archivo es no residente, pero el registro de atributos es en el segmento de registro de base.

03

Como el archivo continúa creciendo vamos bien aumentar la longitud definida por el par de mapas, o si no podemos almacenar los datos de forma contigua, podemos crear más pares de mapeo.   

Finalmente, el archivo comienza a parecerse a esto ….

clip_image016_thumb

Tercera etapa – No Residentes Atributo

Cuando un atributo crece hasta el punto de que la lista de pares de mapeo ya no encaja en el segmento de registro de base, también se envía hacia fuera, pero esta vez se encuentra en un nuevo récord niño.     Para realizar un seguimiento de este expediente de niño una nueva estructura se crea en el registro de la base.     Llamamos a esta nueva estructura de una lista de atributos o $ ATTRIBUTE_LIST.

clip_image018_thumb
Cada entrada en la lista de atributos apunta al registro de archivo que cada atributo de instancia se puede encontrar.     Habrá una entrada de la lista de atributos para casi todos los atributos que el archivo tiene.     La excepción es que no hay una entrada en la lista de la lista de atributos.     Para los atributos todavía residentes (como el atributo $ FILE_NAME), su respectiva entrada de la lista simplemente apuntar de nuevo al segmento de registro de base.     El diagrama anterior muestra sólo la entrada que corresponde al atributo $ DATA.     Las otras entradas se quedan fuera del diagrama para mantenerla legible.

Después de más datos se metió en las ramas comprendidas archivo fuera y crea más registros secundarios según sea necesario.     Cada registro hijo tiene una entrada en la lista de atributos que apunta a la misma.

clip_image020_thumb
Esto es algo diferente de lo que hicimos cuando nos mudamos datos de archivo fuera del segmento de registro de base.     Cuando fue trasladado los datos del archivo, la nueva ubicación en el disco no contiene ninguna información de atributos.     Se acaba de tener datos.     Si se ve en un editor de sector, sería simplemente mostrar líneas y líneas de datos del archivo.

Los registros secundarios son sólo eso, los registros.     Contienen elementos comunes a los encontrados en un segmento de registro de base.     Tendrá un MULTI_SECTOR_HEADER y uno o más registros de atributos … .along con algunos pares de mapeo.     Los pares sí se apuntan a los grupos asignados que contienen datos de archivos reales.

La información objeto de dumping fuera del archivo se vuelve más complejo en cada etapa.     Pero no temas, es casi terminado.

Cuarta etapa – lista de atributos no residente

La etapa final de crecimiento de archivo se produce cuando la lista atributo contiene tantas entradas que la lista en sí ya no encaja en el segmento de registro de base.     Cuando lleguemos a ese punto, la lista de atributos es enviado fuera del registro en un rango de clúster asignado y un registro de lista de atributos se quede atrás para rastrear la ubicación de dicho rango clúster.     La nueva ubicación de la lista de atributos es fuera de la MFT y es similar a la forma en que estamos almacenando los fragmentos de datos que componen el $ DATA: "" corriente (que se muestra en los cuadros rojos) en que no se trata de un registro hijo real.

La línea de puntos muestra toda la corriente, ya que sería prácticamente.     Lógicamente estos fragmentos de datos se encuentran en todo el dispositivo de almacenamiento.  

clip_image022_thumb

A diferencia de los registros secundarios y las instancias de datos, un archivo sólo puede tener una lista de atributos y el registro ATTRIBUTE_LIST $ debe residir en el registro de la base a pesar de que la lista es no residente.

En revisión

Etapa uno residente Completamente

Un archivo comienza simple, el almacenamiento de datos de archivos de forma local.

clip_image023_thumb
Etapa de dos datos de No Residentes

Cuando los datos ya no caben en el rango de 1 KB, se mudaron a otra parte del disco.

 clip_image024_thumb
Este proceso puede resultar en múltiples pares de mapeo.

 clip_image025_thumb
Etapa 3-No Residentes atributo

Cuando los pares de mapeo son demasiado numerosos, se mueven hacia fuera para formar su propio récord niño.   

clip_image026_thumb
Se crea una entrada en la lista de atributos para cada registro hijo.     Múltiples entradas de la lista de atributos significarán múltiples registros secundarios.

 clip_image027_thumb
Etapa 4-No Residentes lista de atributos

Por último, cuando la lista de entradas de atributos es demasiado grande para ser almacenado en el interior del segmento de registro de base, la lista de atributos en sí se convierte en residente y se mueve fuera de la MFT.

clip_image028_thumb
Cuanto mayor es la complejidad utilizado para almacenar el archivo, mayor es el impacto en el rendimiento será el de su ordenador al recuperar y almacenar el archivo.     Cosas como la compresión, tamaño del archivo, número de archivos, y la fragmentación pueden afectar en gran medida esta complejidad y por lo tanto afectar su experiencia de la computadora.   

ARTÍCULO DE ACTUALIZACIÓN:

Parte 2 de este artículo ha sido escrito.  Por favor continua leyendo para más información sobre este tema.

Robert Mitchell
  Soporte Superior Escalation Engineer
  Microsoft Enterprise Plataformas de apoyo

Si te parecio util la informacion del blog hace click en el boton "DONATE" o Ayudar al Blog - DONAR Si te ha gustado este post, por favor considera Dejar un Comentario o Suscribirse a este sitio por medio de RSS para tener los futuros artículos desarrollados en su lector de feeds.

Dejar un comentario

« »