Jaki jest najbezpieczniejszy sposób zachowania znaczników czasu podczas migracji NAS?

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Najbezpieczniejszym sposobem zachowania znaczników czasu jest kopiowanie za pomocą narzędzia obsługującego metadane, weryfikacja wyniku oraz pozostawienie źródła bez zmian aż do momentu przełączenia.

Nie zaczynaj od przenoszenia metodą przeciągnij i upuść. Najpierw zdecyduj, które znaczniki czasu są istotne, przetestuj, czy system plików źródłowy, protokół transferu, system plików docelowy oraz narzędzie do kopiowania potrafią je obsłużyć, a następnie wykonaj zalogowaną kopię początkową i mniejszą synchronizację końcową. Czas modyfikacji jest zwykle przenośny; czas utworzenia i zmiany mogą nie być.

Określ, które znaczniki czasu muszą zostać zachowane

„Zachowanie znaczników czasu” może oznaczać różne metadane na różnych systemach. Linux i Unix zwykle udostępniają mtime, atime i ctime, podczas gdy NTFS dodatkowo udostępnia czas utworzenia; różnice między mtime, atime, ctime i czasem utworzenia decydują o tym, co można porównać po migracji.

Priorytetowo traktuj mtime, gdy użytkownicy sortują dokumenty, zdjęcia lub pliki projektowe według ostatniej zmiany zawartości. Traktuj ctime jako zdarzenie metadanych nowego systemu plików, a nie czas utworzenia, i osobno weryfikuj czas powstania lub utworzenia, ponieważ nowo utworzony obiekt docelowy może otrzymać nową wartość.

Znak czasu Co zwykle oznacza Oczekiwania migracji
mtime Ostatnia modyfikacja zawartości pliku Główna wartość do zachowania i weryfikacji
atime Ostatni dostęp do pliku Może się zmienić podczas skanowania lub kopiowania
ctime Zmiana metadanych lub statusu inode Zwykle zmienia się na nowym systemie plików
Czas powstania/utworzenia Obiekt utworzony na tym systemie plików Wsparcie zależy od narzędzia, protokołu i celu

Użyj kopiowania z obsługą metadanych zamiast przenoszenia

Na ścieżkach Linux-do-Linuxa rsync jest popularnym wyborem, ponieważ tryb archiwum zachowuje czasy modyfikacji wraz z kilkoma innymi atrybutami. Dodaj tylko te flagi ACL, rozszerzonych atrybutów, twardych linków lub specyficzne dla platformy, których wymaga Twój zestaw danych, i podejrzyj polecenie przed zezwoleniem na usunięcie lub zastąpienie.

Na ścieżkach kontrolowanych przez Windows Robocopy może zachować metadane plików, ale znaczniki czasu katalogów wymagają wyraźnej opcji Robocopy. Unikaj flagi mirror, dopóki test niedestrukcyjny nie potwierdzi kierunku źródła i celu, ponieważ mirror może powtarzać usunięcia tak dokładnie, jak powtarza pliki.

Przetestuj protokół i system plików na małym zestawie danych

Utwórz próbkę zawierającą stare i nowe pliki, zagnieżdżone katalogi, nazwy z akcentami, dowiązania symboliczne jeśli istotne oraz znane wartości znaczników czasu. Skopiuj ją przez dokładnie ten sam protokół SMB, NFS, SSH, lokalny montaż lub ścieżkę aplikacji, która jest planowana do produkcji; protokół połączenia może zmienić wynik nawet gdy docelowy NAS jest ten sam.

Porównaj źródło i cel za pomocą manifestu znaczników czasu lub skryptowanego wyjścia stat, nie tylko przeglądarki plików. Przykład z życia pokazuje, że zachowanie montowania CIFS może unieważnić żądane flagi znaczników czasu, więc pomyślne zakończenie polecenia nie jest dowodem na wierność metadanych.

Użyj dwufazowego przełączenia i zachowaj kopię zapasową

Wykonaj dużą kopię początkową, gdy źródło jest nadal aktywne, zweryfikuj liczbę plików, sumy kontrolne zawartości dla reprezentatywnego lub krytycznego zestawu, znaczniki czasu, uprawnienia i dostęp aplikacji, następnie na krótko zatrzymaj zapisy i wykonaj końcowe, przyrostowe przejście. Zapisz logi i manifesty poza oboma drzewami danych.

Utrzymuj źródło jako tylko do odczytu lub w inny sposób możliwe do odzyskania przez uzgodniony okres przechowywania. Znaczniki czasu to tylko jedna warstwa metadanych; przed uznaniem dwóch drzew za równoważne przejrzyj rozszerzone atrybuty podczas migracji NAS, szczególnie dla plików macOS, multimediów i zarządzanych przez aplikacje.

FAQ

Czy tryb archiwum rsync zachowuje wszystkie znaczniki czasu?

Nie. Zwykle zachowuje czas modyfikacji, ale atime, czas utworzenia, ACL, rozszerzone atrybuty i inne metadane wymagają osobnego wsparcia lub opcji. System plików docelowy i protokół również muszą je akceptować.

Dlaczego daty folderów zmieniają się, nawet gdy daty plików są poprawne?

Niektóre narzędzia przywracają mtime plików, ale aktualizują mtime katalogów podczas tworzenia wpisów potomnych. Testuj znaczniki czasu katalogów jawnie i włącz odpowiednią opcję kopiowania katalogów, gdy jest to wymagane przez proces.

Czy znaczniki czasu można naprawić po skopiowaniu danych?

Często mtime można poprawić na podstawie niezmienionego źródła lub zapisanego manifestu bez ponownego kopiowania zawartości plików. Czas utworzenia i ctime są mniej przenośne, więc nie usuwaj źródła przed potwierdzeniem możliwości naprawy.

Wsparcie i wskazówki

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.