Sklonuj działający serwer Linux

18

Muszę sklonować działający serwer Linux. Nie możemy zamknąć działającego serwera. Czy jest jakiś sposób, aby uzyskać klon i wdrożyć go na innym serwerze?


źródło

Odpowiedzi:

14

Istnieje wiele sposobów kopiowania dysków, systemów plików lub plików. Ogólnie rzecz biorąc, skopiowanie systemu plików daje dobry klon z elastycznością, ponieważ może mieć nieco inny rozmiar w systemie docelowym. W systemie docelowym z uruchomionym rodzajem Linuxa (knoppix, ubuntu live itp.), Uruchomionym z cdrom, możesz tworzyć partycje na dysku za pomocą fdisk lub ulubionej aplikacji do partycji. Zakładając, że masz serwer SSH działający w systemie źródłowym, zastosuj podejście podobne do tego:

http://www.linuxfocus.org/English/March2005/article370.shtml

Magia dzieje się w tym poleceniu:

ssh sourcePC 'dump -0 -f - /' | restore -r -f -

Podczas korzystania z jakiejkolwiek konkretnej metody klonowania dysków w działającym środowisku Linux, jedyną troską będzie prawdopodobnie baza danych. Najlepszym sposobem tworzenia kopii zapasowej i przywracania bazy danych jest użycie narzędzia zrzutu do wykonania migawki bazy danych pliku ASCII tuż przed zrzutem systemu plików. Dla mysql jest:

mysqldump --all-databases > mysql_databases.sql

W przypadku postgresql istnieje:

pg_dumpall > pg_databases.sql

Jeśli wystąpi jakikolwiek błąd spójności w nowym systemie, przywróć bazę danych. Alternatywnie, po wyłączeniu usług w systemie źródłowym, wykonaj zrzut DB ponownie i przywróć w celu, a nie przegapisz żadnych ostatnio zmodyfikowanych danych.

labradort
źródło
1
+1 za odniesienie do
linuxfocus
2

Zbuduj układ dysku na nowym komputerze, tak jak chcesz.

Użyj rsync, aby przenieść zawartość dysku. Powtórz kilka razy, aby całkowicie nadrobić zaległości.

Na nowej maszynie eksperymentuj z tym, co musisz zrobić, aby poprawnie uruchomić komputer. Grub na przykład i spraw, aby był w spójnym stanie.

Dopóki nie możesz zamknąć starej maszyny, rsync w regularnych odstępach czasu, aby utrzymać nowy dysk blisko starego.

Następnie przenieś stary do trybu konserwacji, ponownie uruchom rsync i uruchom nowy, który powinien pojawić się, zachowując się jak stary.

Thorbjørn Ravn Andersen
źródło
5
Może to spowodować uszkodzenie danych. Aby zagwarantować prawidłową kopię plików (w tym baz danych na żywo), musisz być w stanie uruchomić całą komendę rsync w jednej operacji atomowej, podczas gdy system był zatrzymany. Migawka LVM może być atomowa lub zbudować lustro RAID, a następnie odłączyć jeden z dysków i umieścić go na nowej maszynie. Mimo to naprawdę musisz przejść do poziomu 1 ( en.wikipedia.org/wiki/Runlevel#Typical_Linux_runlevels ), zrobić migawkę i uruchomić ponownie na wyższym poziomie.
Lee B
1

Mój współpracownik przysięga na system Imager:

http://wiki.systemimager.org/index.php/Main_Page

Nie wiem, jak dobrze by to działało w systemach „na żywo”.

W przeciwnym razie myślę, że utknąłeś, robiąc rzeczy ręcznie:

  • Sprawdź, czy poza repozytoriami nie ma żadnych aplikacji instalacyjnych
  • Zrzuć listę zainstalowanych pakietów i zainstaluj je na nowym serwerze
  • Skopiuj pliki konfiguracyjne
  • Przywróć bazy danych
Natalie Adams
źródło
systemimager rocks. Działa w systemie na żywo z tymi samymi warunkami do uruchomienia rsync w celu skopiowania stanu systemu na żywo. Niektóre aplikacje będą musiały zostać zamknięte lub zrzucone na dysk (np. Mysql DB) przed kopiowaniem i będą musiały zostać przywrócone w nowym systemie.
gbjbaanb
0

Pod warunkiem, że możesz doprowadzić bazy danych do spójnego stanu na dysku, możesz po prostu użyć DAR, aby wykonać kopię wszystkiego, a następnie zapisać ją z powrotem na nowym serwerze.

Synchronizacja baz danych do spójnego stanu na dysku może być trudna, ale wystarczy zrobić migawkę, a następnie przywrócić z niej po przywróceniu obrazu DAR. DAR wpłynie na wydajność serwera podczas jego działania.

Jednak po uzyskaniu obrazu możesz dostosować ustawienia sieciowe i powinieneś być w stanie przywrócić go bez problemu.

http://dar.linux.free.fr/

Paul McMillan
źródło