LVM y Snapshots
Julio Pacheco T.
julio.pacheco en provectis.cl
Vie Ago 10 18:30:12 CLT 2007
Victor Hugo dos Santos escribió:
> Maestros,
>
> estoy leyendo y trabajando con snapshots en un servidor con BD
> oracle.. la idea es reducir el actual downtime actual (unas 8 horas)
> para un valor mas aceptable. ;-)
>
> hasta el momento va todo de maravilla, logramos que el downtime sea <
> a 15 minutos, con un procedimento para parar la BD, hacer el snapshot
> y volver a llevantar la BD.
>
> las dos preguntas que tengo, son:
>
> - he visto en varios documentos (LVM-howto incluso) indicando que se
> debe de eleminar el cuanto antes el snapshot por un tema de rendimento
> !!!la verdad es que entendi poco el porque.. no se supone que una vez
> creado una instantanea del FS, este ya no tiene ninguna relacion con
> el FS original ??? en que afecta el rendimento tener por ejemplo un
> SNAP de 600GB durante un mes ??? cual seria el TTL limite para un SNAP
> ???
Por en contrario, un snapshot _sí_ mantiene relación con el FS original, ya que va
guardando los cambios a partir del momento en que "sacó la foto". Por eso es que un
snapshot ocupa (físicamente) menos espacio que el FS original.
Por ejemplo, supón un FS como este, y supongamos que ABCD son bloques de tu datafile:
Original
+-------+
| A |
+-------+
| B |
+-------+
| C |
+-------+
| D |
+-------+
| ... |
+-------+
Al crear el snapshot(t=0), nace vacío. Si no hay cambios en tu filesystem original,
cualquier lectura del snapshot se entrega desde el FS original, por lo que no ves mayor
impacto.
Original Snapshot
+-------+ +-------+
| A | | |
+-------+ +-------+
| B | | |
+-------+ +-------+
| C | | |
+-------+ +-------+
| D |
+-------+
| ... |
+-------+
Si, por ejemplo, cambias el bloque 'C', este debe copiarse al snapshot _antes_de escribir
el bloque nuevo, lo cual te genera un impacto en la escritura.
Original Snapshot
+-------+ +-------+
| A | | |
+-------+ +-------+
| B | | |
+-------+ +-------+
| C | ---C---> | |
+-------+ +-------+
| D |
+-------+
| ... |
+-------+
Original Snapshot
+-------+ +-------+
| A | | C |
+-------+ +-------+
| B | | |
+-------+ +-------+
| C' | | |
+-------+ +-------+
| D |
+-------+
| ... |
+-------+
Si ahora lees tu snapshot, la lectura es:
orig(A), orig(B), _SNAP_(C), orig(D) ...,
lo cual (por lo general) significa estar buscando los datos en particiones y/o discos
distintos
Extrapola para unos cuantos GB y hartos cambios, y le vas a encontrar sentido a la
recomendación de deshacerte del snapshot tan pronto como cumpla su función.
> - mis conocimentos en oracle son bastante limitados, pero he visto en
> internet que existe un "backup mode" que permite que la BD continue
> operativa durante el processo de creaccion del SNAP... alguien tiene
> algun enlace que explique como puedo aplicar esto en un script que se
> ejecute en un CRON ???
>
> mmm. esto era.
>
> salu2 y atento
>
--
It is pitch black. You are likely to be eaten by a grue.
Más información sobre la lista de distribución Linux