Hur man migrerar en Linux -server till ny maskinvara

0
185
Shutterstock/asharkyu

Oavsett om du uppgraderar till mer kraftfulla servrar, flyttar till nya regioner eller lägger till nya instanser kan migrering av en Linux -server underlättas genom att implementera rätt strategier och känna till rätt kommandon. Vi kommer att diskutera hur du flyttar din server till en ny maskin med minimal krångel.

Migrationsstrategier

Det enklaste och den mest effektiva strategin är en blågrön distribution & sätta igång den nya servern, och sedan när den är klar, byt trafik till den och ta bort den gamla servern när du har verifierat att det finns inga problem. Med belastningsbalansering kan denna process ske stegvis och ytterligare minska risken för tillgänglighetsproblem.

En blågrön distribution innebär att alla filer, paket och kod på den gamla servern kopieras över till den nya. Detta kan vara så enkelt som att manuellt installera nödvändiga paket, till exempel en NGINX -webbserver, och sedan kopiera över konfigurationen från den befintliga servern. Du kan också göra en fullständig hårddiskbackup och skapa en ny server från det.

Naturligtvis är det nu en perfekt tid att överväga om du kan använda behållare eller automatisk skalning. Dockerbehållare kan enkelt stoppas, startas och migreras genom att kopiera de underliggande datavolymerna (eller använda en delad datalagring som EFS). Automatisk skalning varierar beroende på leverantör, men om du lägger till en ny kopia av din server för att möta den växande efterfrågan kan det vara rätt för ditt företag. Du kan också använda automatisk skalning med Docker-behållare på många plattformar som AWS ECS.

Annonsering

Inställningen för både behållare och automatisk skalning kräver att du gör mycket av samma arbete som du måste göra för att överföra servern manuellt, till exempel automatisera installation av paket och din egen kod, så om du planerar att migrera igen i framtiden, bör du överväga nu om du skulle vara bättre att byta till behållare eller ställa in automatisk skalning.

Om du är intresserad av containrar kan du läsa vår guide till komma igång med Docker för att lära dig mer, eller läs vår guide för att använda automatisk skalning på AWS eller Google Cloud Platform.

RELATERAT: Så här paketerar du din applikations infrastruktur med Docker

Installera paket

Om du inte är helt säker på vad du har installerat på den gamla servern är den bästa metoden att kontrollera att få en lista över alla installerade tjänster. Detta visar de flesta viktiga sakerna du behöver installera:

service –status-all

Anledningen till att föredra listningstjänster är att listan över installerade paket kan vara mycket lång, där varje mindre beroende också installeras. Min Ubuntu -testserver hade över 72000 paket installerade, så listan över dem är inte särskilt användbar med tanke på att de alla kommer att installeras ändå när de installerar de stora tjänster som den nya servern behöver.

Om du vill, du kan lista dem alla med följande kommando:

sudo apt list -installerad

Sök i paketlistan efter ett specifikt paket, du kan använda:

sudo apt -qq list programnamn – installerat

Hur som helst vill du göra en lista över de paket du behöver installera och installera dem på den nya servern.

Överföra Serverns disk med rsync

Du kan arkivera disken med tjära, men tar är vanligtvis avsett att arkivera enskilda filer eller kataloger, inte en hel disk. Om du flyttar mycket data kanske du inte har tillräckligt med utrymme för att göra en säkerhetskopia lokalt (kanske är det även orsaken till uppgraderingen!).

Annonsering

I det här fallet vill du använda kommandot rsync för att ladda upp data direkt till målservern. rsync kommer att ansluta över SSH och synkronisera de två katalogerna; i det här fallet vill vi skicka den lokala katalogen till fjärrservern, så här:

rsync -azAP/etc/nginx användarnamn@remote_host:/etc/nginx

Det är hela kommandot du bör se en förloppsindikator när den överförs (med hjälp av komprimering med -z -flaggan), och när den är klar ser du filerna i målet katalog på den nya servern. Du kan behöva köra detta flera gånger för att kopiera varje katalog; du kan använda denna online rsync -kommandorgenerator för att generera kommandot för varje körning.

Om du vill kan du försöka kopiera hela rotfilsystemet till den nya servern, exklusive några systemfiler:

sudo rsync -azAP/–exclude = {“/dev/*”, “/proc/*”, “/sys/*”, “/tmp/*”, “/run/*”, “/mnt/*” , “/media/*”, “/lost+found”} användarnamn@remote_host:/

Om du bara vill säkerhetskopiera några kataloger kan du istället använda ett enkelt tar -kommando för att skapa ett enda filarkiv:

tar -czvf nginxconfig.tar.gz/etc/nginx

Detta matar ut en fil som du kan överföra till målservern med scp eller över FTP. Extrahera sedan filen till målkatalogen:

tar -xzvf nginxconfig.tar.gz -C/etc/nginx

Överföra en databas

Om du behöver överföra en databas vill du säkerhetskopiera och dumpa källdatabasen. För MySQL skulle det vara:

mysqldump -uUser -pPass -hHost -enkel transaktionsdatabas & gt; backup.bak

För MongoDB skulle det vara:

mongodump –host = mongodb.example.net –port = 27017 Annons –

Då måste du återställa databasen på målservern. För MySQL skulle det vara:

mysql -u [användare] -p [databasnamn] & lt; [filnamn] .sql

och för MongoDB skulle det vara:

mongorestore & lt; options & gt; & lt; connection-string & gt; & lt; katalog eller fil att återställa & gt;

För andra databaser bör du kunna hitta relevanta kommandon online.

Byta IP till det nya systemet

Naturligtvis, du vill verifiera att allt fungerar som det ska innan du fortsätter, men när det väl är så vill du byta trafik till den nya servern.

Det enklaste sättet att göra detta är för att ändra dina DNS -poster. Efter uppdatering skickas klienter och tjänster till den nya servern. Detta händer dock på en gång, så om du har en lastbalanserare är det bättre att långsamt överföra trafik till den nya instansen.

Om du är på AWS eller en liknande leverantör med Elastic IP -adresser, du kan byta över adressen för att peka på den nya servern, som inte kommer att kräva en DNS -uppdatering. Från fliken Elastic IPs i EC2 -konsolen, Action & gt; Associera elastisk IP -adress.

Annonsering

Detta kommer att låter dig ändra kopplingen, som omedelbart byter trafik till den nya instansen.