Un ZIR (ZFS Intent Log Record) es una entrada atómica dentro del ZIL (ZFS Intent Log), que es parte fundamental del sistema de archivos ZFS. Cada ZIR representa una operación de escritura síncrona (por ejemplo, una transacción de base de datos, una operación de metadatos crítica) que ha sido recibida por ZFS y debe ser garantizada como persistente antes de que la aplicación que la originó reciba una confirmación de éxito. El ZIL actúa como un write-ahead log, donde los ZIRs se escriben secuencialmente en un dispositivo de log de alta velocidad (SLOG) para asegurar la durabilidad y la consistencia de los datos, incluso en caso de un fallo del sistema antes de que los datos sean escritos en el pool principal de almacenamiento.
En el mundo real, ZIRs son utilizados implícitamente por cualquier aplicación que se ejecute sobre ZFS y realice escrituras síncronas. Por ejemplo, bases de datos transaccionales como PostgreSQL o MySQL (cuando se configuran para escrituras síncronas) se benefician directamente del ZIL y, por ende, de los ZIRs. Cuando una base de datos emite un 'fsync()' o una operación similar para garantizar que los datos estén en disco, ZFS escribe un ZIR en el ZIL. Otros sistemas que manejan datos críticos, como máquinas virtuales (VMs) con discos virtuales en ZFS, o sistemas de archivos de red (NFS, SMB) exportados desde ZFS, también dependen de los ZIRs para la integridad de los datos en caso de fallos.
Para un Arquitecto de Sistemas, entender los ZIRs y el ZIL es crucial para diseñar sistemas de almacenamiento de alto rendimiento y alta disponibilidad. La elección de un dispositivo SLOG adecuado (SSD NVMe de baja latencia y alta resistencia a escrituras) impacta directamente el rendimiento de las escrituras síncronas, ya que cada ZIR debe ser persistido rápidamente. Un SLOG lento puede convertirse en un cuello de botella significativo. Además, el arquitecto debe considerar el trade-off entre la durabilidad de los datos (garantizada por los ZIRs) y el rendimiento. Para cargas de trabajo con muchas escrituras síncronas, el ZIL es una bendición, pero para cargas de trabajo predominantemente asíncronas, su impacto puede ser menor. La correcta configuración del ZIL es una decisión de diseño estratégica que afecta tanto la resiliencia como la eficiencia del sistema.