Jak na migraci souborového a tiskového serveru

Pořešil jsem problém spočívající v migraci souborového a tiskové serveru ze starého OS Windows Server 2008 na nový Windows Server 2019. Stálo to trochu přemýšlení, ale nakonec to nebylo zas až tak těžké a vše se přeneslo bez jakýhkoliv problémů a skoro bez práce...

Startovní pozice je jasně daná, starý server OLD_ONE se dvěma svazky, systémovým a datovým, poskytující role tiskového a souborového serveru. A nový server, NEW_ONE, kde je čistá instalace nového OS. BUdeme tiše předpokládat, že oba dva servery jsou servery virtuální. Není to samozřejmě nutné, ale práce nám tak půjde rychleji od ruky. Dalším předpokladem je, že servery budou ve stejné doméně. No a posledním předpokladem je, že na starém serveru neběží žádné služby třetích stran, které by nám potom na novém serveru chyběly.

PŘÍPRAVA

Připravit nový server je jednoduchý a na konci by měla být čístá, plně aktualizovaná instalace a zapnuté role tiskového a souborového serveru (Print server, FIle server). Připravit starý server je trochu složitější. Potřebujeme před vlastní migrací dát do pořádku tiskový server, to znamená smazat nepoužívané tiskárny a odstranit nepoužívané ovladače. Sdílení by mělo být všechno z datového svazku, pokud je nějaká složky sdílená i ze svazku systémového, musíme ji přesunout. 

MIGRACE TISKOVÉHO SERVERU

K migraci všech tiskáren použijeme import/export ze Správce tisku (Print Management):

Výsledkem exportu ze serveru OLD_ONE je soubor, který pak naimportujem na server NEW_ONE. Po importu restartujte nový server.

 MIGRACE SOUBOROVÉHO SERVERU

Nejprve musíme připravit starý server OLD_ONE, pečlivě, bo na konci přípravy ho vypneme a už nebudeme zapínat:

  • přesvědčíme se, že na starém serveru opravdu neběží žádné důležité služby které by byly potřeba na novém serveru
  • přesvědčíme se, že všechna sdílení jsou ze složek na datovém svazku
  • zavřeme všechny otevřené soubory: Shared Folders / Open Files
  • ve vlastnostech síťového adaptéru vypneme sdílení 
  • vyexportujeme si klíč v registru, kde jsou uložena všechna sdílení: HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Shares a odstraníme sdílené tiskárny. 
  • ve vlastnostech síťového adaptéru nastavím pevnou IP adresu na dynamickou a někam si tu pevnou poznamenáme
  • server přejmenujeme na cokoliv a restartujeme

Po restartu se stačí jen přesvědčit, že se změny propsaly do DHCP a do DNS a můžeme starý server vypnout. Už ho nebudeme potřebovat. Jednitlivé klíče registru které jsme exportovali vypadají asi takto:

V Hyper-V, ESX nebo v čemkoli co požíváte pak stačí ze starého serveru, ten je už vypnutý, odpojit datový svazek a přidat ho do serveru nového. Oproti kopírování je to mnohonásobně rychlejší a bezchybně přenesete nastavené oprávnění. Po importu klíčů registru na nový server, možná budete muset editovat jednotlivé klíče aby parametr Path byl správný, a jeho restartu máte k dispozici kompletně přenesený tiskový a souborový server na nový server NEW_ONE.

Nicméně pravá kouzla začnou teprve teď.

PŘÍSTUP KLIENTŮ, IP ADRESY a FQDN

Tato kouzla spočívají v tom, že klient přistupující doteď na starý server by neměl poznat, že zdroj již je dávno přesunut a že místo starého serveru se mu už nabízí server nový. To znamená, že obě dvě jména, OLD_ONE a NEW_ONE, a obě dvě IP adresy, bývalá ip adresa starého a ip adresa nového serveru, odkazují na jediný platný zdroj a téím je nový server. 

Aby to fungovalo tak jak chceme, tak musíme nastavit toto:

  • IP adresy. Triviální záležitost, kdy ve vlastnostech síťového adaptéru přidáme druhou IP adresu. IP adresu co měl starý server. Pokud jste před vypnutím starého serveru na něm nastavili dynamickou IP adresu, tak to bude fungovat.
  • FQDN. I toto lze. Příkazem z administrátorské příkozové řádky: netdom computername NEW_ONE /add: OLD_ONE.DOMENA.LOCAL kde si samozřejmě dosadíte svoji doménu. Tento příkaz mimo jiné vytvoří záznam v registru: HKLM\System\CurrentControlSet\Services\DNSCache\Parameters\AlternateComputerNames se jménem starého serveru. Po provedení registrace v DNS a restartu budou oba dva servery, OLD_ONE i NEW_ONE, odpovídat na stejné IP adrese. 

Nicméně je pracvděpodobné, že služby tisku a sdílení zatím fungovat nebudou bo ještě nejsme u konce.

TISKÁRNY

Pro úspěšné připojení tiskáren potřebujeme nastavit další klíče v registru:

  • HKLM\System\CurrentControlSet\Control\Print\DnsOnWire, nastavím REG_DWORD hodnotu 1
  • HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\DisableStrictNameChecking, nastavíme REG_DWORD hodnotu 1

Restartujte nový server a odzkoušejte vše! Přístup na sdílení přes obě IP adresy, přístup na sdílení přes obě FQDN a k tisku navím připojit tiskárnu a něco na ni vytisknout. Pokud všechno funguje, máte vyhráno, ale pravděpodobně něco nepůjde, pak je nutné pokračovat dalším kouzlem a tím je:

KERBEROS

Kerberos je šifrovaný autentizační protokol, který je, velmi zjednodušeně, použit při přihlášení klienta k serveru. Pokud dojde k úspěšné autentikaci, klient dostane tiket, který jej opravňuje ke komunikaci v rámci domény bez nutnosti zadávat opakovaně heslo.

Můžete si všimnout, že každý neúspěšný pokus o přístup ke sdílení nebo neúspěšný pokus o připojení tiskárny vygeneruje v System logu podobnou chybu:

Event Type: Error

Event Source: Kerberos

Event Category: None

Event ID: 4

Computer: NEW_ONE

Description:

The Kerberos client received a KRB_AP_ERR_MODIFIED error from the server NEW_ONE. The target name used was XXX/OLD_ONE.

Kde XXX znamená použitou, v terminologii protokolu Kerberos, službu. Jde o to, že někde v databázi Kerbera je záznamstále vyžaduje jméno starého serveru, i když ten již nefunguje. Korekci provedeme příkazem setspn. Zde bude nutná improvizace, ale příkazy jsou jasně dané:

  • setspn -L OLD_ONE. Neměl by vrátit žádný záznam. Pokud vrátí, znamená to, že je služba XXX stále registrovaná na starý server. Pak ji musíme smazat takto:
  • setspn -R XXX/OLD_ONE. Tímto se zbavíme starých záznamů. Jde nám předevsím o cifs, host, termsrv a spooler
  • setspn -Q */OLD_ONE. Tady už zjišťujeme, zda jsou všechny služby, na které se přistupuje přes jméno starého serveru, pro Kerberos správně resgistrovány na server nový. Pokud nějakou službu nevidíte, je nutné ji zaregistrovat:
  • setspn -S XXX/OLD_ONE NEW_ONE. A to je vše. Procházíme stále dokola, až Kerberos bude akceptovat všechny služby přes oba dva názvy, OLD_ONE i NEW_ONE.
  • setspn -X. A na závěr tímto příkazem zobrazíte případné duplicity. Doufám, že žádné nebudou.

Takže co závěrem. Nemusíte se toho bát, jen je nutné brát v potaz, že to zabere čas, hlavně restarty a přesuny svazků. Nemusím zdůrazňovat, že byste stále měli mít k dispozici zálohu datového svazku, že ne?

Takže GL&HF volové!