Hetzner je že dolgo priljubljena izbira za cenovno ugodno evropsko gostovanje, vendar ni primeren za vsako podjetje. Če se vam je kdaj zgodilo, da so vam račun blokirali brez opozorila, ste imeli težave pri pridobivanju računov v vašem jeziku ali pa preprosto želite ponudnika bližje srednje- in vzhodnoevropskemu trgu, vas ta vodnik vodi skozi selitev vašega VPS-a ali namenskega strežnika na MMITech z minimalnim izpadom.
V zadnjem letu smo desetinam strank pomagali pri selitvi s Hetznerja. Postopek je preprost, če sledite pravilnemu zaporedju korakov, in večino delovnih obremenitev je mogoče preklopiti v manj kot eni uri dejanske nedosegljivosti.
Kdaj se selitev s Hetznerja splača
Hetzner je sposoben ponudnik. Selitev je vredna vašega časa, kadar velja eno ali več od naslednjega:
- Doživeli ste nenadne zamrznitve računa ali zadržanja, pogosto sprožena s samodejnim zaznavanjem zlorab na deljenih podomrežjih.
- Potrebujete račune v slovenščini, hrvaščini, češčini ali madžarščini oziroma davčno dokumentacijo, ki ustreza vašim lokalnim računovodskim zahtevam.
- Vaše stranke so v regiji SVE in zakasnitev do Falkensteina ali Helsinkov škoduje zmogljivosti.
- Želite podporo v svojem časovnem pasu z odzivnim časom, merjenim v minutah in ne v delovnih dneh.
- Potrebujete bločno ali objektno shrambo z enako redundanco na osnovi Ceph, ne da bi plačevali ločene dodatke.
- Združujete več ponudnikov in želite eno samo razmerje za zaračunavanje VPS-ov, namenskih strežnikov, Nextcloud shrambe in domen.
Če nič od naštetega ne velja, je odločitev za ostanek povsem upravičena. Če velja vsaj eno, berite naprej.
Kontrolni seznam pred selitvijo
Preden na naši strani karkoli naročite, dokumentirajte, kaj imate na Hetznerju. Ena ura, porabljena tukaj, vam prihrani štiri ure pozneje.
- Popišite vse storitve, ki tečejo na strežniku. Spletni strežnik, podatkovne baze, cron opravila, pošta, vrste sporočil, ozadnji delavci, nadzorni agenti, končne točke VPN. Dober začetek je preprost ukaz
systemctl list-units --type=service --state=running. - Naštejte vse domene in DNS zapise. Zabeležite trenutne TTL vrednosti in kje gostuje DNS. Če je DNS pri Hetzner Console, ga boste morali preseliti tudi vi ali pa ga najprej premakniti k tretji osebi, kot je Cloudflare.
- Dokumentirajte velikosti in vrste podatkovnih baz. MySQL, MariaDB, PostgreSQL, Redis, MongoDB. Zabeležite različice, saj nadgradnje različic med selitvijo večkratno povečajo tveganje.
- Zabeležite vsa odprta vrata požarnega zidu in pravila Hetzner Cloud Firewall. Ta se ne preselijo samodejno.
- Prepoznajte zunanje storitve, ki na seznam dovoljenih dodajajo vaš trenutni IP. Plačilni prehodi, SMTP releji, partnerji prek API-ja, nadzorne storitve. Vsako bo treba posodobiti po preklopu.
- Preverite vire SSL potrdil. Potrdila Let's Encrypt se zlahka znova ustvarijo. Plačljiva potrdila so lahko vezana na trenutni IP ali ime gostitelja.
- Naredite varnostno kopijo pred začetkom. Posnemite polni posnetek ali izvoz. Če gre med selitvijo karkoli narobe, imate znano dobro točko za obnovitev.
1. korak: Naročite svoj MMITech VPS
Naročite VPS, ki se ujema z vašimi trenutnimi specifikacijami na Hetznerju ali jih rahlo preseže. Če uporabljate Hetznerjevo linijo CX ali CCX, naši načrti Cloud VPS lepo ustrezajo istemu profilu RAM in CPU. Če izvajate procesorsko zahtevne obremenitve, kot so prevajanje, kodiranje videa ali velike podatkovne baze, linija AMD VPS ponuja bistveno boljšo zmogljivost na posameznem jedru Ryzen.
Izberite isto različico operacijskega sistema, ki jo uporabljate na Hetznerju. Selitev iz Ubuntu 22.04 na Ubuntu 22.04 je preprosta. Selitev med večjimi različicami med selitvijo gostitelja je recept za presenečenja. To opravite kot ločen projekt.
Ko je strežnik naročen, dokončajte osnovno utrjevanje, preden karkoli prenesete:
# Posodobitev sistema
apt update && apt upgrade -y
# Ustvarjanje uporabnika, ki ni root
adduser deploy
usermod -aG sudo deploy
# Kopiranje vašega SSH ključa
mkdir -p /home/deploy/.ssh
cp ~/.ssh/authorized_keys /home/deploy/.ssh/
chown -R deploy:deploy /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
chmod 600 /home/deploy/.ssh/authorized_keys
# Onemogočanje SSH prijave za root in prijave z geslom
sed -i 's/^#PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/^#PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart ssh
2. korak: Pred selitvijo znižajte DNS TTL vrednosti
To je korak, ki ga večina ljudi preskoči in potem obžaluje. Vsaj 24 do 48 ur pred preklopom znižajte TTL vrednost na vsakem DNS zapisu, ki ga boste spreminjali.
Če imajo vaši zapisi trenutno TTL 3600 ali 14400 sekund, jih spustite na 300. Ko boste DNS preklopili, bo razširjanje končano v 5 minutah namesto v 4 urah. Po preverjeni selitvi TTL vrednosti vrnite nazaj na 3600.
Če je vaš DNS pri Hetzner Console in ga nameravate preseliti, opravite to že zdaj. Premaknite DNS na Cloudflare ali drugega ponudnika, medtem ko še vedno kaže na IP Hetznerja. Tako imate eno spremenljivko manj ob času preklopa.
3. korak: Začetna sinhronizacija podatkov
Za večino strežnikov je rsync prek SSH pravo orodje. Bistvo je v dveh prehodih: prvi prehod, ko izvor še teče v živo, in končna delta sinhronizacija po ustavitvi storitev ob preklopu.
Iz vašega novega MMITech VPS-a povlecite podatke s Hetznerja:
# Sinhronizacija spletnih korenov
rsync -avz --progress \
-e "ssh -i /root/.ssh/id_ed25519" \
root@stari-hetzner-ip:/var/www/ \
/var/www/
# Sinhronizacija aplikacijskih imenikov
rsync -avz --progress \
-e "ssh -i /root/.ssh/id_ed25519" \
root@stari-hetzner-ip:/opt/ \
/opt/
# Sinhronizacija domačih imenikov
rsync -avz --progress \
-e "ssh -i /root/.ssh/id_ed25519" \
root@stari-hetzner-ip:/home/ \
/home/
# Sinhronizacija konfiguracij
rsync -avz --progress \
-e "ssh -i /root/.ssh/id_ed25519" \
root@stari-hetzner-ip:/etc/ \
/etc/hetzner-backup/
Vsebino /etc/ povlecite v ločen imenik, namesto da prepišete svojo svežo namestitev. Te datoteke boste uporabili kot referenco za konfiguracije storitev in ne za slepo kopiranje.
Za gostitelje Docker sinhronizirajte /var/lib/docker/volumes/ in svoje compose datoteke. Ne poskušajte kopirati celotne poti /var/lib/docker/, ker ni varno prenosljiva.
4. korak: Pravilna selitev podatkovnih baz
Podatkovne baze zahtevajo pristop z izvozom in obnovitvijo, ne pa kopiranje datotek. Kopiranje surovih datotek baz med delujočima sistemoma pogosteje povzroči poškodovanje podatkov kot ne.
Za MariaDB ali MySQL:
# Na starem Hetzner strežniku
mysqldump --all-databases \
--single-transaction \
--quick \
--routines \
--triggers \
--events \
| gzip > /tmp/full-dump.sql.gz
# Prenos
scp /tmp/full-dump.sql.gz root@novi-mmitech-ip:/tmp/
# Na novem MMITech strežniku
zcat /tmp/full-dump.sql.gz | mysql
Za PostgreSQL:
# Na Hetznerju
pg_dumpall -U postgres | gzip > /tmp/pg-dump.sql.gz
# Na MMITech
zcat /tmp/pg-dump.sql.gz | psql -U postgres
Testni izvoz in obnovitev opravite pravočasno pred preklopom. Preverite, ali novi strežnik čisto zažene aplikacije proti obnovljenim podatkom. Napake zaradi neskladja različic odpravite zdaj in ne med preklopom ob 2. uri zjutraj.
5. korak: Ponovna namestitev in nastavitev storitev
Ne kopirajte binarnih datotek ali enot systemd dobesedno s Hetznerjevega strežnika. Storitve namestite na novo na MMITech in šele nato dodajte svoje konfiguracije.
Tipično zaporedje ponovne namestitve:
# Spletni strežnik
apt install -y nginx
# PHP, če je potreben
apt install -y php-fpm php-mysql php-redis php-curl php-gd \
php-imagick php-mbstring php-xml php-zip
# Odjemalska orodja za baze (strežniki so že bili v 4. koraku)
apt install -y mariadb-client redis-tools
Nato kopirajte določene konfiguracijske datoteke iz imenika /etc/hetzner-backup/:
cp /etc/hetzner-backup/nginx/sites-available/* /etc/nginx/sites-available/
cp /etc/hetzner-backup/php/8.2/fpm/pool.d/* /etc/php/8.2/fpm/pool.d/
# Preizkus pred omogočanjem
nginx -t
Tak pristop ujame Hetznerju lastne predpostavke v vaših starih konfiguracijah, kot so trdo vpisani zasebni omrežni vmesniki ali sklicevanja na Hetzner Cloud metapodatkovno storitev, preden te kaj pokvarijo.
6. korak: Končna sinhronizacija in preklop
Preklop načrtujte v obdobju z malo prometa. Za večino evropskih podjetij je to med 23.00 in 5.00 po srednjeevropskem času.
Zaporedje preklopa:
- Na Hetznerjev strežnik postavite vzdrževalno stran ali v aplikaciji omogočite način samo za branje.
- Na Hetznerju ustavite storitve z veliko pisanja: spletni strežnik, aplikacijske delavce, cron.
- Z MMITech-a poženite končno rsync delta sinhronizacijo, da povlečete vse spremembe od začetne sinhronizacije.
- Naredite končni izvoz podatkovne baze in ga obnovite na MMITech.
- Zaženite storitve na MMITech in opravite preizkus dima neposredno proti novemu IP-ju (uporabite
curl --resolveali uredite lokalno hosts datoteko). - Preverite veljavnost SSL potrdil. Po razširitvi DNS po potrebi ponovno izdajte Let's Encrypt potrdila z novim IP-jem.
- Preklopite DNS zapise A in AAAA na novi MMITech IP.
- Spremljajte dnevnike na obeh strežnikih. Promet na Hetznerju bi se moral v 5 do 30 minutah ob izteku predpomnilnikov spustiti na nič.
7. korak: Preverjanje po selitvi
Hetznerja še ne odjavljajte. Pustite ga teči v načinu samo za branje ali ugasnjenega vsaj 7 dni. To vam omogoča hitro povrnitev in čas za odkrivanje težav.
V prvih 24 urah preverite te postavke:
- Vsa spletna mesta se pravilno naložijo z veljavnim SSL.
- Dostava e-pošte deluje v obe smeri. Če sami gostite pošto, znova preverite SPF, DKIM in DMARC.
- Cron opravila tečejo. Preverite dnevniške datoteke ob pričakovanih časih.
- Dnevniki aplikacij ne kažejo ponavljajočih se napak.
- Zunanje storitve, ki imajo IP na seznamu dovoljenih, so posodobljene.
- Nadzorni agenti poročajo z novega strežnika.
- Varnostne kopije tečejo na novem strežniku.
Po 7 dneh čistega delovanja lahko Hetzner strežnik varno odpoveste. Pri morebitnem predplačanem znesku vam lahko pomagamo z dokončno uskladitvijo prek našega računa.
Pogoste pasti pri selitvi s Hetznerja
Zasebna omrežja Hetzner Cloud na novi strani ne obstajajo. Če se vaše aplikacije sklicujejo na naslove 10.x.x.x za komunikacijo med strežniki, boste morali na MMITech vzpostaviti enakovredno zasebno omrežje ali povezljivost prek VPN. Pri večstrežniških postavitvah podpiramo zasebne VLAN-e.
rDNS ni samodejen. Povratni DNS za strežnike, ki pošiljajo pošto, je treba nastaviti na naši strani prek zahteve za podporo. To opravite, preden preklopite pošto.
Cloud-init metapodatki so vezani na ponudnika. Vse, kar se zanaša na Hetznerjevo metapodatkovno storitev, bo tiho odpovedalo. Po svoji kodi poiščite sklicevanja na 169.254.169.254.
Poti Hetzner Storage Box prenehajo delovati. Če za varnostne kopije priklapljate Hetzner Storage Box, vzpostavite nadomestno shrambo za varnostne kopije. Ponujamo namenski prostor za varnostne kopije, združljiv s Proxmox Backup Server.
Pogosta vprašanja
Kako dolgo običajno traja selitev s Hetznerja na MMITech?
Za en sam VPS s standardno LAMP ali LEMP aplikacijo in manj kot 50 GB podatkov pričakujte 2 do 4 ure priprav in 30 do 60 minut dejanske nedosegljivosti. Večje podatkovne baze ali zapletene večstoritvene postavitve potrebujejo sorazmerno več načrtovanja.
Ali lahko MMITech pomaga pri selitvi?
Da. Strankam, ki naročijo VPS ali namenski načrt, ponujamo pomoč pri selitvi. Pred začetkom se obrnite na našo ekipo in skupaj načrtujemo termin selitve, svetujemo glede zmogljivosti in pomagamo pri preklopu.
Ali bom med selitvijo izgubil podatke?
Če sledite pristopu z izvozom in obnovitvijo baze ter ob preklopu poženete končni rsync, ne. Okno tveganja je nekaj minut med končno sinhronizacijo in razširitvijo DNS, zato je vnaprejšnje znižanje TTL vrednosti pomembno.
Ali moram preseliti vse storitve hkrati?
Ne. Mnogo strank seli obremenitev za obremenitvijo. Najprej preselite razvojni VPS, potrdite izkušnjo, šele nato preselite produkcijo. To je prav tako pravi pristop, če združujete več Hetzner strežnikov.
Kaj pa moje domene, registrirane pri Hetznerju?
Prenosi domen so ločeni od selitev strežnikov. Ko vaše storitve tečejo na MMITech, lahko domene kadarkoli prenesete k nam. Podpiramo večino TLD-jev prek naše storitve prenosa domen.
Pripravljeni na selitev?
Če ste prebrali do sem, imate jasno sliko, kaj selitev vključuje. Našo infrastrukturo smo gradili na podjetniški Ceph shrambi, redundantnem 40 GbE omrežju in podatkovnem centru v Sloveniji prav za stranke, ki potrebujejo zanesljivost brez korporativne odvečnosti večjih ponudnikov.
Naročite Cloud VPS ali AMD VPS in se obrnite na našo ekipo, če želite pomoč pri načrtovanju preklopa. Odgovorili vam bomo v vašem jeziku, v vašem časovnem pasu, in isti ljudje vam bomo na voljo tudi prihodnji mesec, ko boste potrebovali kaj drugega.