Migrace dat z jednoho linuxového serveru na druhý je jednoduchá pouze v případě, že provozujete jednoduchý server. Pokud máte mnoho vzájemně závislých služeb nebo vysoce přizpůsobené nastavení, pak je znovuvytvoření prostředí od nuly obtížným procesem. Tento proces je méně složitý, pokud můžete zkopírovat pouze soubory, které potřebujete, aniž byste se museli starat o přepsání systémových souborů specifických pro nový server.
Tento článek popisuje, jak se připravit na úplnou migraci, a nástroje, které práci usnadní.
Pokud víte, že potřebujete zkopírovat více než jen několik datových souborů, je to nejpřímější přístup.
Příprava nového serveru
Potvrďte, že cílový server je přístupný přes SSH z původního serveru. Také povolte přihlášení root přes SSH na cílovém serveru (v /etc/ssh/sshd_config soubor), aby rsync mohl nahradit systémové a aplikační soubory.
Ověřte, že je rsync nainstalován na původním i cílovém serveru (název balíčku je obvykle rsync). Spusťte příkaz which rsync
abyste ověřili, že je nainstalován tam, kde jej můžete spustit.
Úplná migrace bude pravděpodobně úspěšná, pokud je cílový server co nejvíce podobný původnímu serveru. Měli by používat stejnou distribuci, architekturu systému, verzi jádra a verze softwaru.
Distribuce
Spusťte stejnou distribuci na každém serveru a pokuste se odpovídat verzi distribuce. Umístění systémových souborů není v různých distribucích vždy konzistentní a někdy nové verze distribuce některé soubory přesunou. Pokud provedete přímou kopii bez odpovídající distribuce, můžete mít nestabilní server.
Pokud chcete zkombinovat migraci serveru s upgradem distribuce, dokončete migraci před provedením upgradu.
Architektura
Oba servery by měly používat stejnou architekturu. Architekturu na linuxových serverech můžete zkontrolovat pomocí uname -a
příkaz:
$ uname -a
Linux demo 2.6.35.4-rscloud #8 SMP Mon Sep 20 15:54:33 UTC 2010 x86_64 Quad-Core AMD Opteron(tm) Processor 2374 HE AuthenticAMD GNU/Linux
Po datu (které končí UTC 2010
v příkladu) je kód, který představuje architekturu vašeho systému. V tomto případě x86_64
označuje systém x86 s 64bitovou architekturou. Pokud místo toho vidíte i686
pro architekturu je váš systém 32bitový.
Pokud se architektury neshodují, zkopírované programy se nespustí. Například software kompilovaný pro 32bitový systém obecně nefunguje dobře na 64bitovém systému. Pokud se architektury neshodují, musíte místo toho migrovat na základě jednotlivých balíčků.
Verze jádra
Zkuste použít stejnou verzi jádra na obou serverech. Někdy nové jádro přidává nebo mění funkce, takže jiné jádro může zkomplikovat migraci.
Verzi jádra můžete zkontrolovat spuštěním uname -a
příkaz, jako v předchozí části. Verze jádra je uvedena za názvem hostitele, takže v předchozím příkladu je verze jádra 2.6.35.4-rscloud
.
Obecně není dobrý nápad kopírovat jádra mezi servery. Pokud si zkompilujete nebo nainstalujete vlastní jádro (na rozdíl od toho, které poskytuje vaše hostingová služba), je bezpečnější provést tento proces ručně na cílovém serveru.
Verze softwaru
Pokuste se porovnat verze jakéhokoli softwaru, který je již nainstalován v cílovém umístění, s verzemi, které používáte na původním serveru. Nejjednodušší způsob, jak zajistit, aby oba systémy používaly stejné verze všech běžných balíčků, je před migrací spustit aktualizaci prostřednictvím správce balíčků.
Optimalizace před kopírováním
Čím více souborů máte na původním serveru, tím déle bude migrace na cílový server trvat. Odstraňte všechny dočasné soubory nebo soubory mezipaměti, které nepotřebujete, nebo přidejte jejich adresáře do souboru vyloučení. Zkontrolujte velikosti souborů protokolů a pokud můžete, archivujte nebo smažte starší protokoly.
Mnoho z toho, co se stane, když změníte velikost virtuálního serveru, je podobné tomu, co se stane, když použijete rsync k migraci z jednoho serveru na druhý. Výsledkem je, že většina tipů v článku o zrychlení rsync platí i zde.
Další krok
Vzájemně jste porovnali výchozí a cílový server a připravili své systémy souborů na kopii.
Informace o ručním spouštění rsync najdete v části Urychlení rsync při migraci linuxového serveru nebo Zálohování souborů pomocí rsync.