Nowe posty

Autor Wątek: kopia całego systemu  (Przeczytany 1263 razy)

ocb

  • Gość
kopia całego systemu
« dnia: 2016-11-18, 09:40:01 »
Witam.
Chciałbym wykonać kopie całego systemu(odwzorować hosta) przez sieć, z różnymi rozmiarami partycji które są w software raid1.
Jak mogę tego dokonać?

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2862
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Odp: kopia całego systemu
« Odpowiedź #1 dnia: 2016-11-19, 21:18:11 »
1. Bootujesz obie maszyny np z sysrescuecd
2. Na maszynie źródłowej montujesz w /mnt/backup katalog / systemu-dawcy i następnie wszystkie potrzebne partycje w podkatalogach  /mnt/backup (na podstawie fstab dawcy - jak w dawcy masz partycję dla /var to montujesz ją z tymi samymi parametrami w /mnt/backup/var, itd)
3. Maszynę docelową partycjonujesz jak potrzebujesz (może być całkiem inaczej niż w źródłowej, inne filesystemy, inne rozmiary, RAID, LVM, szyfrowanie, whatever), po czym montujesz docelowy / w /mnt/backup i pozostałe partycje jak trzeba w podkatalogach /mnt/backup (zakładając ewentualnie potrzebne katalogi pośrednie na punkty montowania, np /boot, /home czy co tam trzeba).
4. Na maszynie docelowej robisz polecenie
nc -l -p 5000 | tar -xvpf - -C /mnt/backup -Ilz4
5. Na maszynie źródłowej robisz polecenie
tar -cvf - -C /mnt/backup -Ilz4 . | nc IP_MASZYNY_DOCELOWEJ 5000
6. Po zakończeniu kopiowania chrootujesz się do /mnt/backup na maszynie docelowej, poprawiasz fstab do nowego układu i instalujesz GRUB-a
7. Po resecie powinno wszystko zadziałać.

Uwaga! Przy powyższym rozwiązaniu dane lecą "otwartym tekstem" przez sieć. Jeżeli to jest problem, to możesz zastosować rozwiązanie bezpieczne, ale wolniejsze. Do wykonania na maszynie źródłowej (zastępuje punkty 4 i 5 powyżej). Wymaga ustawienia hasła roota i zezwolenia logowania po SSH jako root na maszynie docelowej:
tar -cf - -C /mnt/backup -Ilz4 . | ssh IP_MASZYNY_DOCELOWEJ "tar -xvpf - -C /mnt/backup -Ilz4"

Kompresja LZ4 jest tak szybka, że nie obciąża procesora a pozwala wyciągnąć kilkanaście % więcej z szybkości transmisji karty sieciowej (typu na karcie 1Gbit przepchać efektywnie ~120-130MB/s, w zależności od rodzaju danych na dysku). Jak któraś strona jest ewidentnie słaba, wystarczy ze wszystkich poleceń tar usunąć parametr -Ilz4 i dane lecą wtedy "na żywca".

Q: Dlaczego nie
rsync -avP /mnt/backup/ IP_MASZYNY_DOCELOWEJ:/mnt/backup/
?
A: Rsync ma (w każdym razie miał) problemy z atrybutami SUID/SGID (po prostu je usuwa) i po rsyncnięciu systemu np nie działa ping jako zwykły użytkownik (brak uprawnień do gniazda sieciowego).
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy