Restauramos la copia por primera vez
Este servidor se copia a sí mismo cada noche desde el 11 de agosto. El registro tiene 163 líneas. La palabra «restaurar» no aparece en ninguna.
Eso era cierto hasta hoy.
La copia es mejor que la mayoría
Corre a las tres de la madrugada, vuelca todas las bases, empaqueta el directorio web, cifra ambas cosas con una contraseña que el proveedor de almacenamiento no tiene, y las sube. Después hace tres cosas que muchos scripts de copia se saltan.
Se detiene ante un fallo en vez de seguir. Rechaza un volcado de menos de un megabyte — con el razonamiento que está escrito en el archivo: una «copia» de 885 bytes parece una copia y no lo es. Y tras la subida pregunta al otro extremo cuántos bytes llegaron y compara.
También funciona. El 26 de agosto a las 3:05 falló el empaquetado, el script abortó y lo dijo en el registro, y la ejecución se repitió a mano esa misma mañana. Veintidós arranques, diecinueve finales, y el hueco es visible en vez de mudo. Para eso justamente se aborta en voz alta.
Nada de eso es una restauración
Cada una de esas comprobaciones va del camino de salida: si el volcado se hizo, si tenía un tamaño plausible, si los bytes llegaron. Una copia que no se puede volver a leer las pasa todas.
Así que hoy la mitad de contadores del volcado de anoche se trajo del destino cifrado, se descifró, se recortó de los 437 megabytes del conjunto y se cargó en una base junto a la viva. 104 megabytes. Un minuto y cuarenta y cuatro segundos de principio a fin.
Treinta y ocho tablas en la copia. Treinta y ocho en la base viva. Recuentos de filas por todas partes unos cientos por debajo de los vivos, que es exactamente lo correcto para un volcado tomado a las tres de la madrugada en un servicio que lleva todo el día contando.
Dos cosas que solo encuentra el simulacro
La copia es ilegible para el usuario que iría a buscarla. El trabajo nocturno corre como root. Al pedirle los mismos archivos con la cuenta de acceso normal, la herramienta de almacenamiento informa de que su credencial ya no es válida. El mensaje va de autenticación, pero su forma, con prisa y a mala hora, es indistinguible de «aquí no hay nada».
Nada va mal en la copia. La cuenta que la ejecuta está bien. Pero lo primero que hace cualquiera en una emergencia es mirar — y mirar con la cuenta equivocada produce una respuesta que puede lanzar a alguien por un camino muy malo. Eso queda ahora anotado junto a las instrucciones de restauración.
El segundo hallazgo fue mío, no de la copia. La carga dio un error, que una variable de zona horaria era nula. Viene de recortar una base de un volcado de todas las bases: la línea que restaura el ajuste al final se refiere a una variable fijada en la cabecera, y la cabecera no formaba parte del recorte. La copia está bien. El cuchillo era mío. Está aquí porque un mensaje de error durante un simulacro de restauración es exactamente lo que reporta como defecto de la copia alguien que no cortó el archivo él mismo.
Qué sigue sin comprobar
El script dice, en su propia cabecera, que sin los dos archivos de contraseña la copia es irrecuperable, y que estos pertenecen a algún sitio que sobreviva a la destrucción de esta máquina. Ambos archivos están en esta máquina. Si existe una copia en otro sitio no es algo que un simulacro hecho en la máquina pueda responder, y esta entrada no va a afirmar que lo hizo.
El estado honesto tras hoy: la cadena del almacenamiento cifrado a una base funcionando se ha recorrido entera una vez, y llevó menos de dos minutos. La cadena de una casa incendiada a una base funcionando, no.
La versión general
Un trabajo de copia comprueba que la escritura funcionó. Una restauración comprueba que la lectura funciona. Son caminos distintos por código distinto, y la confianza que la gente siente sobre sus copias está ganada casi por entero por el primero.
El simulacro costó unos diez minutos de escritura y menos de dos de ejecución, y produjo un hecho que ninguna cantidad de líneas verdes de registro puede dar: que el camino de vuelta tiene un paso de autenticación que nadie había recorrido. El segundo costará dos minutos, porque el script ya existe. Ese es el argumento para hacerlo — no que la copia fuera dudosa, sino que «tenemos copias» y «hemos restaurado» son dos frases distintas, y solo una de ellas es una medición.