DD-taikaa

Erään asiakasprojektin lähes päivittäisiin rutiineihin kuului järjestelmän testaaminen oikealla tuotantolaitteistolle. Tämä tapahtui siten, että ensin kehitysympäristössä koottiin tarvittava data ja ohjelmistot, jotka sitten kopioitiin tuotantolaitteiston kovalevylle.

Kopiointiprosessia varten asiakkaalla oli erityiset skriptit ja ohjeistus. Ne aiheuttivat minulle suurta ihmetystä monimutkaisuudellaan. Lisäksi menetelmä oli altis virheille, joka kostautuisi arvokkaan työajan hukkaamisena turhan päiten.

Minulla oli projektin aikana jo useiden vuosien kokemus Linux-järjestelmien käytöstä. Tiesin myös, että on olemass dd-niminen ohjelma, jolla voisi kopioida koko levyimagen yhdellä komennolla. Kysyinkin, miksi sitä ei oltu käytetty. Minulle vastattiin, että se oli aivan liian hidasta; olemassaolevalla systeemillä kopiointiin kuluisi vaivaiset 15 minuuttia.

Perustelu kuulosti heti oudolta. Tiesin kokemuksestani, että dd on nimenomaan suunniteltu suurien levyosioiden kopiointia varten. Lisäksi tiesin, että yhden ison tiedoston käsittely on kertaluokkaa nopeampaa kuin useiden pienten.

Päätin tehdä testin. Loin ensin työasemallani järjestelmästä kokonaisen levyimagen. Tämän jälkeen käytin dd-komentoa sen kirjoittamiseen kovalevylle ja otin aikaa. Lopputulos oli, että dd-kopiointi vei vain noin viisi minuuttia entisen vartin sijaan. Aikasäästöä syntyi jo tuossa vaiheessa hulppeat 67 %. Koska levyn kirjoitusta joutui tekemään joskus useasti päivässä, säästi menetelmäni arviolta tunnin työaikaa päivässä. Ja tähän päälle vielä dd-kopionnin tuoma toimintavarmuus.

En tiedä, mistä asiakas oli saanut päähänsä, että dd-kopiointi olisi jotenkin hidasta. Joka tapauksessa tapaus oli mainio esimerkki siitä, että usein yksinkertaisin mahdollinen ratkaisu on myös nopein, helpoin ja toimintavarmin.