Linux/Unix

Re: Backup, die tausendste

Avatar von Bickabunk

Bickabunk

mehr als 1000 Beiträge seit 08.08.2008

   E-Mail   
08.01.2013 11:03 Permalink
Wurgl schrieb am 7. Januar 2013 12:36

> Ich kenne diese Problematik von Snapshots bei Datenbanken seit
> $immer. Soweit mir das bekannt ist, stellen manche Datenbanken
> spezielle Features dafür zur Verfügung. Dass ein Dateisystem dies
> macht, ist mir neu.
Ja, früher mußte man teuer bezahlte Agents für jede Datenbank und
alles, was konistent gehalten werden sollte, installiert werden. Das
macht heute in der Tat das OS, und zwar, wie ich denke, noch
unterhalb des Dateisystemes.

> Kann das Windows tatsächlich? Also kannst du in einer (sagen wir mal)
> 50GB großen Datenbank lustig drauf los schreiben während eine
> Sicherung gemacht wird und das File ändert sich die ganze Stunde
> während du die Daten absaugst nicht? Wo liegen während dieser Zeit
> die Änderungen rum?
>
Das funktioniert in etwa so: Das OS stellt ein Framework zur
Verfügung, in den sich bestimmte Programme einhängen können. Eine
vernünftige Datenbank tut genau das. Die bekommt dann bei Beginn der
Sicherung den Hinweis, einen Event, eine Nachricht (wie auch immer
das gestaltet ist), dass ein Snapshot erstellt werden soll. Der
Client hat sich daraufhin in einen konsistenten Zustand zu begeben.
Daraufhin erstellt das OS einen Snapshot, was in der Regel unter 1
Sekunde geht. Dabei wird ein extra Bereich auf dem Datenträger
reserviert, der dann den konsistenten Datenbestand repräsentiert.
Nach der Erstellung des kann weiter munter geschrieben werden. Dann
startet das Backup, welches nun genau diesen Snapshot sichert. Dieser
Snapshot stellt also eine Kopie zum Zeitpunkt X dar. Wie das genau
unter der Haube aussieht, kann ich Dir nicht sagen.
Linux bietet mit LVM eine Ähnliche Funktionalität. Man kann per
lvcreate einen snapshot anlegen, der sich danach nicht mehr ändert.
Diesen Snapshot kann man sichern. Allerdings bietet das OS selber
keinen Framework, sondern man muß selber dafür sorgen, dass die
entsprechenden Dienste/Programme einen konsistenten Zustand haben. Im
einfachsten Falle als stoppt man die Datenbank, den IMAP server etc,
also alles, was schreibend zugreifen könnte, erzeugt einen Snapshot
und startet die Dienste wieder. Dann kann man den Snapshot mounten
und sichern. Zuletzt wird der Snapshot wieder entfernt.

Auf beiden OS ist es so, dass der Snapshot als solches ultraschnell
vonstatten geht. Da bei Linux im allgemeinen dazu geraten wird, den
Snapshot wirklich nur solange am Leben zu erhalten, wie man ihn
unbedingt benötigt, weil es sonst zu unnötigen Performanceinbußen
kommt, gehe ich davon aus, dass bei der Erstellung desselben nur ein
paar Metadaten erzeugt werden, aber sobald sich auf dem Original
etwas ändert, wird vorher der "konsistente" Teil in den Snapshot
verschoben. Das passiert unterhalb der FS Ebene (Sektorweise???) und
ist deshalb vollständig transparent.
Unter Windows wird das ähnlich sein.

Also für Linux: LVM ist dein Freund.

MfG Stefan Fröhlich
42 ;-)

Thread-Anzeige einblenden

Anzeige

heise online Themen