Baza wiedzy

Smart NTFS i kopie zapasowe na poziomie bloków

Smart NTFS i kopie zapasowe na poziomie bloków

Typowym ograniczeniem operacji kopii zapasowych jest skanowanie metadanych wymagane przez tradycyjne oprogramowanie tworzące kopie na poziomie plików. Takie rozwiązania zwykle przechodzą po drzewie katalogów i sprawdzają znaczniki czasu modyfikacji operacjami stat(). Na serwerach plików z dużą liczbą plików skanowanie to może zająć znaczną ilość czasu, zanim rozpocznie się transfer danych.

Aby zwiększyć wydajność przyrostowych kopii zapasowych, StateWarden pomija przeglądanie systemu plików w przestrzeni użytkownika na rzecz śledzenia zmian na poziomie bloków.


1. Ograniczenia kopii zapasowych na poziomie plików

Tradycyjne oprogramowanie, wykonując kopię zapasową na poziomie plików, działa w przestrzeni użytkownika:

  1. Odpytuje system operacyjny o listę katalogów i plików.
  2. Odpytuje system operacyjny o metadane plików (np. rozmiar, datę modyfikacji).
  3. Otwiera plik i odczytuje go sekwencyjnie.

Jeśli duży plik (np. obraz dysku maszyny wirtualnej o rozmiarze 50 GB) zostanie nieznacznie zmodyfikowany, rozwiązanie tworzące kopię na poziomie plików często odczytuje cały plik i oblicza jego skrót, aby przetworzyć zmiany.

2. Architektura kopii zapasowych na poziomie bloków

StateWarden przetwarza wolumeny pamięci masowej na poziomie bloków. Dzięki integracji z niskopoziomowymi interfejsami API jądra systemu hosta system identyfikuje i przesyła wyłącznie zmodyfikowane sektory.

Windows: Smart NTFS i dziennik USN

W środowiskach Windows StateWarden stosuje następujący proces:

  1. Analiza dziennika USN: Agent monitoruje dziennik USN (Update Sequence Number) systemu NTFS, który rejestruje modyfikacje plików. Agent analizuje ten dziennik, aby zidentyfikować zmienione pliki bez skanowania drzewa katalogów.
  2. Mapowanie fizycznych LCN: Agent używa FSCTL_GET_RETRIEVAL_POINTERS, aby zmapować zmodyfikowane pliki bezpośrednio na ich fizyczne numery klastrów logicznych (Logical Cluster Numbers, LCN) na dysku.
  3. Surowe odczyty sektorów: Agent wykonuje surowe odczyty sektorów z \\.\PhysicalDrive0 zamiast standardowych odczytów plików w przestrzeni użytkownika. Zwiększa to przepustowość i pozwala uniknąć typowych konfliktów blokad plików.

Linux: śledzenie na poziomie jądra i zarządzanie wolumenami logicznymi

W środowiskach Linux StateWarden wykorzystuje platformę Device Mapper:

  1. Przechwytywanie zapisów: StateWarden integruje się z celami śledzenia opartego na epokach w jądrze Linuksa (dm-era). Struktury te monitorują i rejestrują operacje zapisu na poziomie urządzenia blokowego.
  2. Niezależność od systemu plików: Ponieważ śledzenie odbywa się na poziomie sektorów wolumenu (np. /dev/md0p1), mechanizm Changed Block Tracking (CBT) działa niezależnie od użytego systemu plików (np. ext4, xfs, btrfs).

3. Korzyści operacyjne

Działanie poniżej warstwy abstrakcji systemu plików zapewnia szereg korzyści:

  • Wydajne skany przyrostowe: Skanowanie metadanych jest minimalne. Agent identyfikuje, przetwarza i przesyła wyłącznie zmodyfikowane bloki danych.
  • Mniejsze obciążenie IOPS: Dzięki surowym odczytom sektorów StateWarden zmniejsza obciążenie odczytami i zapisami (IOPS) serwera produkcyjnego w oknie wykonywania kopii zapasowej.
  • Deduplikacja na poziomie bloków: Matematyczne dzielenie surowego strumienia dysku na bloki umożliwia wydajną deduplikację między urządzeniami w warstwie danych (Driad). Zduplikowane bloki występujące na różnych serwerach (np. wspólne aktualizacje systemu operacyjnego) są przechowywane tylko raz.

Czy ten artykuł był pomocny?