Compartir a través de


Bloquear la clonación en ReFS

Se aplica a: Windows Server 2022, Windows Server 2019, Windows Server 2016

La clonación de bloques da la orden al sistema de archivos para que copie un intervalo de bytes del archivo en nombre de una aplicación, en el que el archivo de destino puede que sea el mismo o diferente del archivo de origen. Las operaciones de copia tradicionales, desafortunadamente, son costosas, ya que desencadenan escrituras y lecturas costosas en los datos físicos subyacentes.

La clonación de bloques en ReFS, sin embargo, realiza copias de metadatos con una operación de bajo coste en lugar de leer y escribir los datos de los archivos. Ya que ReFS permite que varios archivos compartan los mismos clústeres lógicos (ubicaciones físicas en un volumen), las operaciones de copia solo necesitan volver a asignar una región de un archivo a una ubicación física independiente, convirtiendo así una costosa operación física en una operación rápida y lógica. Esto permite que las copias se realicen más rápido y se generen menos E/S en el almacenamiento subyacente. Esta mejora también beneficia a las cargas de trabajo de virtualización, ya .vhdx que las operaciones de combinación de puntos de control se aceleran drásticamente al usar operaciones de clonación de bloques. Además, ya que varios archivos pueden compartir los mismos clústeres lógicos, los datos idénticos no se almacenarán físicamente varias veces y se mejorará la capacidad de almacenamiento.

Cómo funciona

La clonación de bloques en ReFS convierte una operación de archivo de datos en una operación de metadatos. Para llevar a cabo esta optimización, ReFS presenta recuentos de referencia en los metadatos para las regiones que se han copiado. Este recuento de referencias registra el número de las distintas regiones de archivo que hacen referencia a las mismas regiones físicas. Esto permite a varios archivos compartir los mismos datos físicos:

Mostrar actualizaciones de recuento de referencia cuando varios archivos hacen referencia a la misma región

Al mantener un recuento de referencias para cada clúster lógico, ReFS no interrumpe el aislamiento entre archivos: escrituras en regiones compartidas desencadenan un mecanismo de asignación de escritura, donde ReFS asigna una nueva región para la escritura entrante. Este mecanismo conserva la integridad de los clústeres lógicos compartidos.

Ejemplo

Supongamos que hay dos archivos, X e Y, que cada archivo se compone de tres regiones y cada región se asigna para separar los clústeres lógicos.

Dos archivos, cada uno de ellos con tres regiones distintas que se asignan a las regiones con un recuento de referencia 1

Ahora supongamos que una aplicación realiza una operación de clonación de bloques del archivo X al archivo Y para que las regiones A y B se copien en el desplazamiento de la región E. A continuación, se produciría el siguiente estado en el sistema de archivos:

Recuento de referencias muestra 2 en la región de bloques clonados.

Este estado en el sistema de archivos revela una duplicación con éxito de la región de bloques clonados. Dado que ReFS realiza esta operación de copia mediante la actualización de asignaciones VCN a LCN, no se podían leer datos físicos ni se sobrescribieron datos físicos en el archivo Y. Los archivos X e Y ahora comparten clústeres lógicos, reflejados en los recuentos de referencia en la tabla. Ya que no hay datos copiados físiciamente, ReFS reduce el consumo de capacidad en el volumen.

Ahora supongamos que la aplicación intenta sobrescribir la región A en el archivo X. ReFS duplica la región compartida, actualiza los recuentos de referencias correctamente y realiza la escritura entrante en la región recién duplicada. Esto asegura que el aislamiento entre los archivos se conserve.

Aislamiento conservado al escribir en una nueva región G y al actualizar los recuentos de referencia

Tras de la escritura de modificación, la región B aún se comparte en ambos archivos. Si la región A era mayor que un clúster, solo se habría duplicado el clúster modificado y la parte restante se habría compartido.

Comentarios y restricciones de funcionalidad

  • La región de origen y de destino deben comenzar y terminar en los límites de un clúster.
  • La región clonada debe tener menos de 4 GB de longitud.
  • El número máximo de regiones de archivos que pueden asignarse a la misma región física es 8175.
  • La región de destino no debe extenderse más allá del final del archivo. Si la aplicación desea extender la región de destino con datos clonados, se debe llamar en primer lugar a SetEndOfFile.
  • Si las regiones de origen y destino están en el mismo archivo, no deben superponerse. (La aplicación puede continuar dividiendo la operación de clonación de bloques en varios bloques de clones que ya no se superpongan).
  • Los archivos de origen y de destino deben tener el mismo volumen ReFS.
  • Los archivos de origen y de destino deben tener la misma configuración de las secuencias de integridad.
  • Si el archivo de origen es disperso, el archivo de destino también debe serlo.
  • La operación de clonación de bloques interrumpe los bloqueos oportunistas compartidos (también conocidos como bloqueos oportunistas de nivel 2).
  • El volumen de ReFS debe haber sido formateado con Windows Server 2016, y si el clúster de conmutación por error se ha utilizado, el nivel funcional del clúster debe haber sido formateado con Windows Server 2016 o posterior en el momento de formatear.
  • A partir de la actualización de Windows 11 Moment 5 (KB5034848) y versiones posteriores de las compilaciones de cliente de Windows y Windows Server, la clonación de bloques se produce de forma nativa en las operaciones de copia de Windows admitidas.

Consulte también