czwartek, 14 stycznia 2016

Przenoszenie danych/migracja z uwzględnieniem hardlinków i właścicieli

Trzeba zmigrować serwer, lub przenieść dane (wyrównać) ze starej maszyny na nową. Podczas kopiowania wychodzi na maszynie docelowej więcej objętościowo danych, niż na źródłowej. Okazuje się, że winnymi są hard linki w systemie plików. Standardowo rsync lub scp traktuje hard linki jako pliki. Pomocny w kopiowaniu tego lub nawet do backupu przychodzi rsync. Za pomocą polecenia skopiujemy hard linki jako powiązania, a nie jako osobny plik:

rsync -az -H --delete --progress --numeric-ids /sciezka_kat/folderXYZ user@serwerzdalny:/sciezka_kat/

gdzie:

-a jest używane w trybie archiwizującym. Na stronie man jest ona wyjaśniona jako “sposób na zrobienie kopii zapasowej rekursywnie i na zachowanie 'prawie' wszystkiego". Wspomina się jeszcze, że nie są zachowane hard linki ze względu na złożoność przetwarzania.
-z jest używany, aby kompresować dane, które musi “przenieść” lub skopiować, opcja czyni
proces kopiowania szybszym, ponieważ dane przenoszone są mniejsze niż ich rzeczywisty rozmiar.

-H kopiuje hard linki jako hard linki
--delete jest używane, aby usunąć docelowe pliki, które już nie istnieją na źródłowym systemie. W tym przypadku utrzymujemy lustrzaną kopie pomiędzy kopiowanymi folderami

--numeric-ids kopiuje grupy i użytkowników do plików i katalogów
--progress pokazuje postęp kopiowania


Kopiowanie może potrwać trochę wolniej niż standardowo, lecz mamy skopiowane katalogi 1:1 i nie mnożą nam się nadprogramowe gigabajty na dysku. A jeśli mamy wcześniej skopiowany "spuchnięty" docelowy folder, to to nam posprząta :)

Brak komentarzy:

Prześlij komentarz