Meltdown és Spectre sérülékenység, ami a hírekből kimaradt

Ahogyan a rendszeres olvasók már megszokhatták, nem szoktunk fajsúlyos informatikai témák mellett elmenni szó nélkül. Január elején egy olyan súlyos, processzorokat érintő sérülékenységre derült fény, ami teljes joggal járta be a világsajtót és nagyon sokan foglalkoztak akkor a témával. Éppen a nagy médiavisszhangnak köszönhetően nem éreztük akkor fajsúlyosnak foglalkozni a dologgal, mivel számtalan nagyon jó cikk volt elérhető a neten a témával kapcsolatban. Akik esetleg akkor lemaradtak volna, azoknak ajánlom az alábbi linkeket:
https://index.hu/tech/2018/01/04/ujabb_sulyos_processzorhibat_talaltak_minden_gepet_telefont_tabletet_erint/
http://hvg.hu/tudomany/20180111_microsoft_windows_szoftverfrissites_meltdown_spectre_miert_lassu_a_gepem_2018_benchmark_lassulas_merteke
http://hvg.hu/tudomany/20180108_mit_csinal_a_meltdown_video_intel_botrany

Meltdown

Spectre

A probléma megoldásán persze vélhetően az összes csúcsmérnök megkezdte a munkát az Intelnél, ennek ellenére a megoldás kulcsát a mai napig nem igazán találták meg. Erről szeretnénk most néhány tapasztalatot megosztani az olvasókkal, illetve a cikk első felében összeszedném azokat az információkat, amiket a két hónap alatt eddig megtudtunk a két hibáról.

Először is fontos leszögezni, hogy rengeteg médiában megjelent cikk általánosságban említi a processzorokat, hogy mind sérülékeny, de ez nem teljesen így van. Ugyanakkor az említett két sebezhetőség valamelyike szinte minden felhasználót érint a világban. A Meltdown hibában az Intel által az elmúlt 20 évben gyártott szinte minden (csak néhány korábbi Atom processzor és a rég elfeledett, jellemzően szerverekben használt Itanium kivétel) processzor érintett. Más gyártók a Meltdown problémában nem érintettek. A Spectre sérülékenységnek viszont két különböző fajtája is ismert, ezek közül jelenlegi ismeretek szerint a kevésbé érzékeny 1-es típusban érintett az AMD is, a súlyosabb 2-es típust szintén csak az Intel chipjeiben azonosították. Rossz hír viszont a mobilos felhasználóknak, hogy a jellemzően mobileszközökben jelen lévő ARM processzorok is érintettek a Spectre problémában, ahogyan az NVidia is jelezte, hogy egyes grafikus chipjeivel szintén baj van. A probléma tehát igen súlyos és mindenkit érint a világban, bár nem egyformán, a továbbiakban megnézzük melyik sebezhetőség milyen problémákat vet fel és annak mi a megoldása.

A Meltdown sebezhetőség
Először is kezdeném ezzel a problémával, mivel az Intel által a világ nagy része érintett és ez a hiba ráadásul a súlyosabb. Egyrészt könnyebben kihasználható, mint a Spectre, másrészt a hardveres hiba jellegéből adódóan bármilyen operációs rendszeren fennáll. A nagyobb szoftver gyártók (Microsoft, Apple) már mind adtak ki javításokat rá, hogy a rést befoltozzák, illetve a legújabb Linux kernelek is nyújtanak már védelmet, ezek alkalmazásával is adódnak gondok, de erről bővebben majd a folytatásban. Jelen cikknek nem témája részletesen kitárgyalni a processzorok belső működését, arra rengeteg írás született már a neten magyar nyelven is. Amit esetleg egy átlag felhasználónak tudnia érdemes, hogy a processzorok munkájuk során adatokat töltenek be különböző átmeneti memóriákba (cache), hogy ott dolgozzanak velük. A különböző programok által kezelt minden adat átfut itt, amire most biztonsági kutatók olyan kiskaput találtak, amin keresztül ezek az átmeneti tárolók megcsapolhatóak. Ezért (teljes joggal) a világméretű pánik, mivel az Intel processzorai szinte mindenhol jelen vannak és így a rés is velük együtt. Az AMD tulajdonosok örülhetnek, ők nem érintettek.

A Spectre sebezhetőség
Egy kicsit más jellegű, de szintén a processzorok működési mechanizmusán alapuló biztonsági probléma a Spectre. Egyedül ebben hasonlítanak a Meltdownnal, illetve közös pont még, hogy az Intel processzorai ugyanúgy érintettek benne, ráadásul ők egyedül akik mindkét típusú Spectre támadással szemben védtelenek. A jó hír ezzel szemben, hogy a Spectre sokkal nehezebben kihasználható biztonsági rés és kevésbé kritikus is, illetve szűkebbek a lehetőségek is egy Spectre alapú támadás során. A rossz hír viszont, hogy szoftveresen nem javítható. Tehát ez a probléma egyedül a processzorok cseréjével lesz csak teljes mértékben kiküszöbölhető. Az AMD tulajdonosok ismét örülhetnek, jelenlegi ismereteink szerint ugyanis csak az 1-es számú Spectre támadással szemben védtelenek és azzal szemben is csak egyes Linux változatok gyáritól eltérő kernel beállításai esetén, a 2-es számú egyáltalán nem fut le rajtuk. Ezzel szemben az Intel processzorok minden operációs rendszer alatt érintettek mindkét Spectre támadással szemben. Itt lényegében a felhasználói fiókok és a jogosultságok közötti falat törik át, jellemzően böngészőn keresztül. A processzor egy tervezési hibáját kihasználva úgy fér hozzá egy program kód egy másik adatához, hogy közben a rendszer szintjén nem lehetne ahhoz hozzáférése. A jelenlegi állás szerint erre nem tudnak biztos szoftveres megoldást adni, ugyanakkor a szoftver gyártók és a legelterjedtebb böngészők fejlesztői már adtak ki frissítéseket a szoftvereikhez, amelyek a Spectre ellen hivatottak védeni.

A megoldás: szoftverfrissítés?
A Meltdown problémában a legjobb hír, hogy van rá biztos szoftveres megoldás, sőt már szinte minden rendszerre adtak is ki frissítést. A rossz hír az Intel processzorok tulajdonosainak, hogy az alkalmazása 5-50% közötti lassulást fog jelenteni programtól függően (egyes források szerint 5-30%), ami az olyan rendszereknél, ahol egyébként is nagyon ki van hegyezve a hardver komoly problémákat fog okozni. Ezzel szemben egyes források szerint a problémát a kezdetben kiadott frissítések nem oldották meg, sőt egyéb problémákhoz is vezettek. Egy dolog biztos, hogy több általunk felügyelt rendszeren a naprakész Windows és a konkrét Windows Update csomag telepítése után is sebezhetőnek jelzik a gépeket a tesztprogramok, ami egybevág több szakmai portál információival is, miszerint a hibát azóta sem oldották meg. Csak bízni tudunk benne, hogy az IT történelem legnagyobb biztonsági incidense nem marad hosszú ideig megoldatlan…

Kapcsolódó cikkek:
https://index.hu/tech/2018/01/23/linus_torvalds_az_intelnek_a_hibajavitasotok_szemetre_valo/
http://hvg.hu/tudomany/20180123_intel_processzor_hiba_javitas_frissites_spectre_szoftverfrissites_telepitese
https://en.wikipedia.org/wiki/Meltdown_(security_vulnerability)
https://en.wikipedia.org/wiki/Spectre_(security_vulnerability)

Teszt és tapasztalatok: kipróbáltuk az SSD-k legújabb generációját

Nemrégiben felújításra került az otthoni gépem, a régi 8 magos AMD FX processzor helyére egy új Ryzen érkezett, AM4-es alaplappal és DDR4-es RAM-okkal. Gondoltam ha már lúd legyen kövér és a régi jól bevált SATA-s SSD-t is lecserélem egy M2-es foglalatúra, úgyis kevés volt a hely. A választás a Samsung 960 EVO-ra esett, 250GB-os méretben. A gyártó 3200MB/s olvasási és 1900MB/s írási sebességet ígért. A cikkből kiderül mi a valós teljesítmény és milyen egyéb buktatók jelentkeztek a használat során.

Samsung 960 Evo
Samsung 960 Evo

 

Az NVMe (más néven NVM Express) típusú SSD nem újkeletű dolog, a lényeg azon van, hogy a kis M2 foglalat segítségével egy csavarral rögzített, kinézetében a hagyományos RAM-okra hasonlító SSD-t a SATA adat csatorna helyett a PCIe buszra csatolja rá. Míg a SATA3 szabvány elméleti maximuma 600MB/s körül mozog, addig a PCIe 4.0 szabvány ennek a sokszorosát biztosítja. Persze nem csupán ennyi különbség van a két szabvány közt, aki kíváncsi a részletekre, nézzen szét itt: https://en.wikipedia.org/wiki/NVM_Express
Az alábbi táblázatban láthatjuk a PCIe foglalat különböző verziói által elérhető sávszélességeket, ezek közül a 4.0 szabvány a jelenlegi legújabb, az 5.0 2019-re várható a tervek szerint.

PCIe szabványok és átviteli sebességek
PCIe szabványok és átviteli sebességek

A nagyobb sávszélesség és a jelenlegi félvezető technológia tehát megadja a lehetőséget, hogy növelt sebességű tárolókat használjuk, a jelenleg is remek teljesítményt nyújtó SATA SSD-k helyett még gyorsabb M2 foglalatba illeszkedő NVMe modulokat. Persze a történet azért nem ennyire egyszerű, ahogyan a cikk végére látni fogjuk rengeteg buktatót kell kiküszöbölnie azoknak, akik valóban gyors tárolót akarnak és mellé a stabilitás sem utolsó szempont. Elsőként említeném meg, hogy aki NVMe-re adja a fejét az mindenképpen bizonyosodjon meg róla, hogy a legfrissebb BIOS (UEFI) fut az alaplapján. Ahogy említettem nem újkeletű technológiáról van szó, viszont kezdetben az alaplapok hiába tudták fogadni az ilyen csatolóval érkező tárolókat, bootolni már nem voltak képesek róla. Így a friss Windows telepítésekor azt tapasztalhatjuk, hogy az első újraindítást követően “no boot device” üzenet fogad minket. A BIOS-hoz visszatérve azzal sem árt tisztában lenni, hogy az M2 foglalat használatával a legtöbb alaplap esetében SATA portokat veszítünk el, ahogyan az én ASUS-om esetében is le kellett mondjak az 5-6. portról.

Ha a legfrissebb BIOS fent van, újabb szoftveres buktatók következnek. (Itt fontos megjegyeznem, ha kicsit is bizonytalanok vagyunk a BIOS frissítés terén ne féljünk segítséget kérni szakembertől.) Ennyire új hardverek esetében talán már mondanom sem kell, hogy mindenképp a Windows 10-et javaslom, ahogy a tapasztalat megmutatta abból sem érdemes a legrégebbi telepítőkkel kísérletezni. A 1607-es változat már gond nélkül kúszott fel az SSD-re, majd a telepítést követően azonnal frissítésre került a 1703-asra. A legfrissebb driverek felkerültek, elkezdhettem belakni a gépet. A gép nagyon fürge lett, az első pillanattól kezdve nem okozott csalódást, a 1703-as Windows frissítés is a letöltést követően percek alatt felkerült rá. Az első mérések szerint az SSD közel tudta azt a sebességet, amit a Samsung ígért. Aztán jött a feketeleves.

Második nap először egy nagyobb program telepítése (25-30GB) alatt iszonyatos laggolást vettem észre. Elsőre nem tudtam mitől van, de 2-3 órányi szenvedést (egér kurzor megáll, folyamatjelző percekig áll, továbbmegy, megint megáll…) követően némi guglizás után kiderült, hogy a probléma a Ryzen processzor körül keresendő, annak is az energiagazdálkodása okoz gondot a 1703-as Windows-nak. (A Ryzen ne feledjük a második negyedévben érkezett, míg a 1703-as Windows verzió a márciusra utal, tehát némiképp felkészületlen volt még a rendszer rá.) Sokan ezt az Insider programon belül letöltött 1709-es frissítés előzetesével orvosolták sikerrel, nekem nem volt kedvem kísérletezni, így az energiagazdálkodásban eszközöltem pár ajánlott módosítást, ami után sikeresen fel tudtam telepíteni a programot. Az egér kurzor rendszeres akadozása (régebbi gépekről ismert megszakítás vezérlési hiba) ugyanakkor megmaradt és még aznap este jött az újabb probléma. Amikor munkába lendültem volna a gép kb. óránként fagyott. Elsőre a mentés gombra kattintva kezdett homokozni, majd a megnyitott ablakok közt még lehetett váltani pár alkalommal, majd kb. fél perc múlva az egér kurzor is megfagyott. Ez már inkább tároló problémának tűnt. Végül kiderült, hogy jó a megérzésem, a 1703-as Windowsban már megjelent egy új energiagazdálkodási funkció kimondottam NVMe szabványra vonatkozóan, amit első körben registryből kellett bekapcsolni, majd egy fórum ajánlása alapján beállítottam az értékeket. A fagyás megszűnt.

NVMe energiagazdálkodás beállítása
A problémámat orvosló beállítások

A gép ezt követően már stabil maradt, megszűntek a laggolások és a fagyások is. Egyedül az egérkurzor véletlenszerűen visszatérő akadozás problémája nem szűnt meg, de tudtam, hogy a Ryzen processzor kezelése majd csak a 1709-es Windows verzióban lesz tökéletes, addig pedig ekkor már csak 1 hét volt, kivártam. A 1709-es frissítés aztán minden korábbi problémát orvosolt, így mostanra egy stabil és gyors gépen dolgozhatok.

A Samsung SSD esetében fontos még szót ejteni a hozzá adott Samsung Magician szoftverről. Egy nagyon hasznos kis alkalmazást kapunk hozzá, amivel könnyedén nyomon követhetjük a meghajtó állapotát, mérhetjük a sebességét, optimizálhatjuk a meghajtót (TRIM), és az over provisioning funkció segítségével növelhetjük a meghajtó teljesítményét és élettartamát.

Samsung Magician
Samsung Magician, a nagy varázsló

Elsőként essen szó a Magician féle teljesítmény mérésről. A metodika ismeretlen, mindenesetre 3200MB/s-tól a 2000-ig terjedő skálán ahány mérés annyiféle eredmény született nem kis szórással. Hozzá kell tenni a rendszer ez idő alatt az SSD-ről futott, ahogyan majd a későbbi AIDA tesztekben is így lesz, ez némiképpen árnyalja az eredményt. A 2000MB/s is szép eredmény mindenesetre, nem beszélve az elérési időkről, az IO eredményekről.

Samsung Magician teljesítmény teszt
Samsung Magician teljesítmény teszt, a legalacsonyabb kapott értékek

Az over provisioningról is érdemes néhány szót ejteni. Akik kicsit jártasabbak az SSD technikában azok tudják, hogy az SSD-k esetében szokás egy bizonyos területet fenntartani és nem használni. Ha van szabad terület az SSD némi trükközéssel spórolni tud az adatblokkok felülírásának számán, ami az élettartamának legnagyobb ellensége. Ennek a folyamata és mikéntje egy külön cikket is megérne, most maradjunk annyiban, ha az SSD-nek van olyan szabad, formázatlan területe, ami nincs használatban azzal tudja növelni az élettartamot. Ebben segít nekünk az over provisioning funkció, ami ezt automatikusan beállítja nekünk. Vannak olyan SSD-k is, amelyekben gyárilag ki van ez alakítva és nem kell vele törődjünk, általában a méretéből látszik melyik ilyen. Például a 240GB-os SSD-k rendre 256GB-osak fizikailag, itt 16GB van fenntartva gyárilag, amit a lemezkezelőben már nem is látunk. A Samsung Magician-ben ez megjelenik, vélhetően itt nincs gyárilag rejtett terület.

Végül következzenek az AIDA által mért eredmények szépen sorjában. A linear read test suite lényegében minden fontos paraméterre megadja nekünk a mérési eredményt. Érdemes viszont megnézni az average read access tesztet is, ami az átlagos elérési időket mutatja meg. Ez az az érték, ami igazán pörgőssé tesz egy SSD-t és ez az, amiben a hagyományos merevlemezekhez képest utcahossznyi, behozhatatlan előnye van. Míg egy jobb merevlemez elérési ideje átlag 8-10ms körül mozog, a véletlenszerű adatelérés esetén, amikor a fejnek be kell gyűjteni az adatokat ez még több, addig az NVMe típusú SSD 0.05ms értékkel hasít.

AIDA olvasás tesztek
AIDA olvasás tesztek
AIDA átlagos elérési idő teszt
AIDA átlagos elérési idő teszt

A gyakorlati tapasztalat azonban egy picit más képet fest. 2 hónapnyi használat után azt mondhatom, hogy az esetek nagy többségében, a mindennapi használatban a szupergyors NVMe SSD előnyei nem jönnek elő. A korábbi SATA OCZ-vel összehasonlítva, ami gyári előírás szerint 500MB/s körül tudott, a gyakorlatban picit kevesebbet, a kettő közti sebesség nem vehető észre. A “csak” 500MB/s és a picit nagyobb késleltetés mellett is mire az egérgombot felengedtem megnyílt a böngésző, vagy a kisebb program, Office alkalmazás, amit épp használtam. Egy Adobe Photoshop vagy Illustrator már picit többet tekert, most a legújabb verzió betöltési ideje 3 másodperc körül van. (Nyilván ebben némi szerepe azért a CPU-nak és a DDR4-es memóriának is van.) Amikor a program betöltött a működése alatt nem venni észre különbséget, ha menteni kell jellemzően azért nem akkora fájlokat, ami a régi SATA SSD-n percekbe telt volna. Nyilván 0,6 másodperc és 0,2 között nem érzékel az ember akkora különbséget, mert íráskor kb. ennyi a különbség az NVMe javára. Olvasáskor picit nagyobb, de itt megintcsak nem jön elő a különbség, csak ritka esetekben érzékelhető. Kicsit az embernek az az érzése, mintha anno a HDD-ről SSD-re váltáskor egy kis köbcentis régi Suzukiból egy jóval nagyobb lóerejű, villámgyors német prémium autóba ülne át, majd azt cserélné egy 1000 lóerő környéki sportkocsira. Ritka az az eset, amikor igazán elő tud jönni a plusz erő és még hasznos is tud lenni. Picit sántít azért a példa, mert vannak sokan olyanok, CAD-es programokkal dolgozó mérnökök, videóvágással, esetleg 3D-vel foglalkozó emberek vagy hardcore játékosok, akiknek napi szinten segítséget nyújthat, de a mindennapok emberének nem fog többet nyújtani egy ilyen SSD. Az ára miatt ugyanakkor egyre inkább elérhetővé válik a technika, a kipróbált Samsung 250GB-os SSD például 30 ezer nettó körüli áron már elérhető, ami alig pár ezer forinttal drágább, mint hasonló kapacitású, márkás SATA csatlakozóval ellátott társai. Ha valaki olyan munkát végez mindenképpen megéri neki befektetni egy ilyenre, otthoni felhasználásra vagy irodába ugyanolyan élményt nyújt továbbra is a hagyományos SSD. Cserében viszont kevesebb szoftveres problémával kell megküzdeni.

A tesztben szereplő SSD-t az alábbi hardverekkel teszteltük.
Alaplap: ASUS Prime B350-Plus (0902-es BIOS)
Processzor: AMD Ryzen 5 1500X
Memória: Kingston 2133MHz DDR4

Exchange Server migrálás linuxos levelezőről

Az alábbi sikertörténet valójában két jól sikerült munkát foglal össze. Korábban több alkalommal vittünk már véghez olyan jellegű migrálást, amikor nem volt a cégnek korábban saját levelező rendszere, csak (jobb esetben) Outlook-ba beállított levelezés, (rosszabb esetben) Thunderbird vagy valami egyéb levelezőprogram, esetenként webmail. Ilyenkor általában a meglévő levelező programba a régi fiók mellé csatoltuk mindig az új fiókot és IMAP segítségével kézzel mozgattuk át a korábbi leveleket. Jobb esetben Outlook PST-ből tudtunk közvetlenül importálni egy frissen felépített Exchange rendszerbe.

Exchange Server 2016

A címben szereplő történetben ez nem így történt. Egy picit nehezebb változatát kellett elvégezni a levelezés átpakolásánál, amikor ügyfelünknél igényként felmerült a közös naptárak, értekezletek összehívása, csoportmunka funkciók, teendőlista és egy jól működő, felhasználóbarát adatszinkron (ActiveSync) igénye, így a meglévő linuxos levelezőrendszert egy minden tekintetében modernebb és barátságosabb Exchange levelezőrendszerre cseréltük. A gépek többségén Outlook levelezők voltak IMAP-pal beállítva, a lehetőség tehát itt is adott lett volna, hogy mappánként tegyük át a leveleket, azonban ez a 160-170GB körüli és 30-35 fiók közötti levelezőrendszer esetében nem lett volna járható út. A feladatra 1 hétvégénk volt, hétfőn már a kliensek átállításával kellett kezdeni, hogy a munka ne álljon le a cégnél.

Elsőként feltelepítettük az új szerver gépet, amelyen helyet kapott először egy Active Directory címtár (amellyel korábban szintén nem rendelkeztek) és egy másik virtuális gépen helyet kapott az Exchange rendszer is. Miután a felhasználókat Powershell-ből felvittük, kialakításra kerültek az időközben szintén Excel táblákba felvitt postafiókok is. Az Exchange-et bekonfiguráltuk az IMAP használatához, majd egy kimondottan a migrálás céljára létrehozott felhasználó számára hozzáférési jogot adtunk az új postafiókokra, így egyetlen név/jelszó segítségével lehetőség nyílt a migrálást elvégezni. A közös csatorna, az IMAP tehát megvolt a szerverek közt, már csak a script-eket kellett előállítani. Mivel a linuxos felhasználói fiókok listája és azok jelszavai rendelkezésre álltak, így már az imapsync telepítését követően a forrás szerveren, a linuxon kezdtük el a scripteket kialakítani. A migrálási táblázatból mentett szövegfájl tartalmazta a felhasználónév/jelszavakat, illetve a minden joggal felruházott migráló felhasználó hozzáférését, ami az Exchange oldalról biztosította a jogokat. Az adminisztrátor és néhány korábbi dolgozó levelezésével élesben teszteltük a script-eket még a hétvégét megelőzően, hogy aztán a péntek délután beköszöntével élesben is elindulhasson a script az összes felhasználó fiókján.

Természetesen nem ment ennyire simán minden, már a próba migrálások alkalmával is számos problémával kellett megküzdeni, köztük a Citrix Xen hálózatkezelési bugjával is, ami az amúgy sem túl acélos hálózati kapcsolatot folyton 10MBit-re vette le. Az éles migrálás alatt is jelentkeztek problémák, főleg az átviteli sebességekkel és az ezzel járó időtúllépési hibákkal. Egyes imapsync folyamatok a nagyobb postafiókok esetén rendre leakadtak, így volt fiók, amelyen többször is el kellett indítani a script-et, hogy végül minden átmenjen. A migrálási folyamat minden egyes száláról közben a script jelentést küldött a rendszergazdai fiókba, így folyamatosan nyomon tudtuk követni a folyamatot. Vasárnapra végül az utolsó levél is megérkezett az Exchange-be. Hozzá kell tenni, hogy ez idő alatt aki már ismerte az Exchange webes elérését, esetleg be tudta magának állítani a telefonját az új szerverre az egész idő alatt már tudott küldeni és fogadni is az új szerverről/re.

Hétfőn aztán megtörtént a gépek Windows-os tartományba való beléptetése is, majd az Outlook-ok beállításra kerültek az Exchange használatára. Már a kliensek beállításakor azt tapasztaltuk, hogy a gyakorlottabb felhasználók már az átállás alatt elkezdték használni az új rendszer nyújtotta lehetőségeket, értekezlet összehívásokat, közös naptárakat, egyebeket. A néhány Thunderbird felhasználó számára volt kicsit keserűbb az indulás, nekik végül egy ingyenes bővítmény segítségével sikerült Exchange üzemmódban beállítani a levelezést, amit nem sokkal később a bővítmény fizetőssé válásával az IMAP váltott fel, természetesen így csökkent funkcionalitással. Az átállás viszont teljes győzelemmel zárult, a régi linuxos levelező kiürült, a hétfői induláskor a küldés/fogadás már gőzerővel az új rendszerről futott, ahogyan a régi levelek is mind elérhetőek voltak az új szerveren.

Ekkor még nem tudtuk, hogy ez a munka egy remek főpróbája volt egy fél évvel későbbi nagy migrálásnak, ahol ugyanez volt a feladat, csak nagyban. 500GB levelezés és 200 körüli fiókszám. Mivel itt korábban már az Active Directory rendelkezésre állt így picit módosultak a folyamatok, de alapvetően ugyanaz zajlott. Telepítettük az Exchange Servert (ez esetben már a 2016-ot, ami nem sokkal ezelőtt jelent meg RTM változatban) és beállítottuk. Amikor minden teszt sikeres volt Excelben összeraktuk a migrálási táblát. Mivel nagyon nagy mennyiségű adatról volt szó, és a korábbi tapasztalat az volt, hogy az imapsync sebessége messze elmarad a tényleges hálózati átviteli sebességektől (jellemzően 2-3MB/sec sebességgel csorogtak az adatok a másik helyen), így a projektbe egy plusz csavart is bele kellett vinni. Mivel nem voltunk biztosak abban, hogy a péntek délután-hétfő reggel intervallumban mindent át tudunk másolni, továbbá több dolgozónak is szüksége volt a hétvégén a levelezésére, így kénytelenek voltunk felállítani egy prioritási listát. A tervezés ezen fázisa a helyi informatikával együttműködve történt. A migrálandó fiókokat tartalmazó Excel táblába létrehoztunk egy új oszlopot, prioritás. Nullás prioritás értéket kaptak azok, akiknek hétvégén szüksége van a postafiókjára, ez 2-3 felhasználót érintett. 1-est azok, akiknek hétvégén nem, de hétfőn feltétlen szükség van a levelezésére, ők voltak jellemzően a nagyobb vezetők. 2-est a kisebb vezetők kaptak, akik szintén magas prioritásúak voltak, majd következtek a kevésbé fontos felhasználók és a már nem használt, de még fontos archív leveleket tartalmazó fiókok. Ez utóbbiakat próba migrálásként már csütörtök-péntek folyamán átpakoltuk tesztelve a rendszert és a scripteket. Az 5-6-os (5 – nem fontos, 6 – archív) prioritást kapott dolgozók fiókjai voltak azok, akiknél belefér az is, hogyha a hétfői napon még nem férnek hozzá a leveleikhez. A táblázatba egy script segítségével lekérdezett levélfiók méretek is felvezetésre kerültek, így néhány Excel függvény használatával már láttuk is, hogy az adott prioritású felhasználók összesen hány GB levelezést hoznak át magukkal. Számoltunk vele, hogy IMAP-pal lassú lesz a migrálás, így a prioritásos migrálás bevezetése mellett is volt B terv, szükség is volt rá.

Péntek délutánig átmozgattuk a próbamigrálásra kijelölt fiókokat, amivel a munka néhány százaléka készült el, egyben teszteltünk mindent. Az átviteli adatok itt is adtak okot az aggodalomra, habár az előző munka során a hálózati problémákból eredő időtúllépések itt elmaradtak. Eljött a munkaidő vége, hazament mindenki, kezdődött az éles folyamat. Első körben mentek a 0-ás prioritásúak. Éjfél körül át is értek, ezzel az első és legfontosabb lépés teljesült, ők már szombat reggel tudtak dolgozni az új levelezőrendszerrel. Aztán éjfél után indultak az 1-es prioritásúak, akikből már jóval több volt, és jellemzően nagy postafiókok, így a teljes állomány kb. 25-30%-át ők adták. Szombat reggelre aztán már látszott, hogy ezzel a tempóval kb. 5-6 nap lenne a teljes migrálás, így először be kellett vetni a B, majd a C tervet is, legvégül a menet közben született D tervet is.

A B terv az volt, hogy lassú migrálás esetén a script egy apró módosításával kizárjuk a migrálásból a nagyobb méretű leveleket, azokat egy második körös migrálással pakoljuk át. A módszer működött, a nagyobb méretű csatolmányokkal rendelkező levelek ott maradtak a régi rendszeren, a script pedig lépett tovább és egyre gyorsabban pakolta át a fiókokat. A tempó azonban még így is nagyon kevés volt, becslés szerint jó esetben a 3-as prioritású fiókok végéig jutott volna csak el a script hétfő reggelre. Így eljött a C terv ideje. Ez előtte a másik helyen már kipróbálásra került, ott a hálózati sávszélesség problémája miatt kevésbé, itt szerencsére jobban működött. A két Exchange közötti migrálás adta az alapötletet, ott ugyanis beállítható a rendszerben, hogy egyszerre hány migrálási folyamatot végezzen a gép. Mivel ott a sávszélességet alapból korlátozza a rendszer (hogy közben használni is lehessen akár a levelezést), így nagy mennyiségű levélnél muszáj hozzányúlni, hogy belátható időn belül végezni tudjunk. Az imapsync esetében is működött, a fiókok adatait tartalmazó szövegfájlt több részre, több fájlra bontottuk szét és egyszerre több scriptet futtattunk. A 2 script ugyan nem jelentett 2-szeres sebességet, de kb. másfelet igen, így sokat gyorsult a folyamat. Sajnos nem eleget, így szombat estére eljött a D verzió ideje, a script-ekbe beépítettük, hogy a régebbieket ne pakolja át, csak az x időnél újabb leveleket. Ekkor már a 2-es prioritású fiókokig minden készen volt, szombat este egy újabb script az 1-2 prioritású fiókokból kihagyott nagyobb leveleket is átpakolta, így odáig teljesen meg voltunk. A 3-as prioritástól kezdődően már csak az újabb és kis méretű leveleket szedtük át. Így végül hétfő reggelre már a script-ek az 5-ös prioritással bíró fiókok utolsó leveleit pakolták át, a munkaidő kezdete környékén futtathattuk újra őket az összes fiókon, már kizárások nélkül, ami végül a 3-5 prioritású fiókokon másnap reggelre végzett csak. A jó szervezésnek köszönhetően nem hiányolt senki semmit abban az egy napban, amikor még picit hiányos levelezéssel futott a rendszer.

Itt mivel nagyrészt webes felületet engedélyezett a dolgozóknak a vezetőség, így a hétfő reggel nyugodtabban telt. A hétvége folyamán beállítottunk egy csoportházirendet, ami a felhasználók asztalára ikonként kiteszi a webes felület URL-jét, illetve ezen kívül a kedvencekbe, a start menübe is helyez el linkeket. Bár az ügyfelet felkészítettük rá lélekben, hogy hétfőn még várható leállás, minden bizonnyal nem lesz teljesen készen minden, a jó szervezésnek köszönhetően fennakadásmentesen rajtolhatott az új rendszer, aminek az extra funkcióit sokan el is kezdték még aznap használni.

Aztán kicsivel később többen jelentkeztek, hogy szükségük lenne a korábban beállított levelezőklienseikből (Outlook, Thunderbird), másoknál a webmailből az automatikus kiegészítés elemeire, illetve többen használtak névjegyeket is. Mivel senki nem tudta pontosan, hogy ki hogyan levelezik a régi rendszeren így ezeket az igényeket csak egyenként tudtuk kezelni és bár számítottunk rá és készültünk előre, nem ment simán. A régi webes levelezőt használó felhasználók adatait a Roundcube webes levelezőjük tartalmazta, annak az exportjával nem mentünk sokra. A PostgreSQL adatbázishoz hozzáférve viszont egy szerkesztő progival ki tudtuk nyerni ömlesztve az automatikus kiegészítések és címjegyzék adatait. Egy másik fájlba pedig kinyertük, hogy melyik felhasználóhoz milyen azonosító tartozik. Így volt két fájl, benne ömlesztve az adatokkal. Olyan formába kellett hozni, ami importálható, ha lehet tömegesen az Exchange-be. Kb. 1 órás munkával írtunk rá egy programot, ami szabvány XML-es formába külön-külön fájlokba elmenti felhasználónként az adatokat. Ezt a formátumot aztán egy másik, netről letölthető program már tudta olvasni és konvertálni nekünk PST-be. Amikor készen állt a rengeteg apró felhasznalonev.pst fájlunk, készült rá egy Powershell script, ami szépen betolta mindet az Exchange-be. Ezzel a webmail-esek gondja megoldódott. Az asztali levelező kliensekből érkező adatokat aztán egyesével át kellett alakítani PST-be és importálni azok számára, aki ezt kérte. Nehézkes és fáradtságos munkával, de aztán végül minden megérkezett az Exchange rendszerbe.

FlashCom Powered System

Ennek már másfél éve, az Exchange azóta is néhány apróbb hibát leszámítva közel 100%-os rendelkezésre állással üzemel és teszi a dolgát.