Case study: Solaris operatsioonisüsteemi migreerimine ühelt arvutilt teisele
Sisukord
Eesmärk
Lähtepunktiks on Vmware 64bit questina töötav operatsioonisüsteem Solaris 10 versioon u3 ehk 11/06 ning see oleks tarvis panna käima otse 64bit toega riistvaralisel arvutil. Solaris paigaldusmeedialt operatsioonisüsteemi uuesti paigaldamine ei ole soovitav seetõttu, et sel juhul tuleks ka hulka rakendustarkvara uuesti paigaldada.
Ülesandele on lähenetud selliselt, et vältida riistvaralist sekkumist, näiteks kõvaketaste arvutite vahel ringitõstmist, ideaalsel juhul võiks ka asjaga seotud teenuste mitte-töötamise aeg olla minimaalne. Sedasi võiks asjatoimetust käsitleda ka teatud mõttes taasteplaanina.
Eeldame, et lähtearvutis on nn solaris kriitilised failisüsteemid so /usr, /var jms juurfailisüsteemiga koos. Teiseks eelduseks on, et sihtpunktiks olevas arvutis on mitu kõvaketast, ühel neist on juba töötav Solaris operatsioonisüsteem ning migreeritav operatsioonisüsteem hakkab asuma teisel kõvakettal.
Tõõtavast süsteemist koopia tegemine
Teeme töötavast süsteemist failisüsteemi taseme koopia programmiga ufsdump kusjuures koopia teeme failisüsteemi snapshotist. Selleks peab vajadusel seiskama ntp serveri ning ütlema
bash# fssnap -F ufs -o unlink,bs=/juurikast-vajas/backing-store-file-juurikas / bash# /usr/lib/fs/ufs/fssnap -i bash# ufsdump 0f - /dev/rfssnap/0 | gzip -c > /juurikast-valjas/lahtearvuti-juurikas-20070715.dump.gz bash# fssnap -d /
Kus fssnap -i on lihtsalt abiks vaatamiseks, millised snapshotid parasjagu olemas on, ufsdump moodustab dump faili ning viimane käsk eemaldab snapshoti.
Uue arvuti kõvakettale andmete kopeerimine
Nagu esimeses punktis kirjeldatud, sihtpunktiks oleval arvutil töötab Solaris operatsioonisüsteem. Esimese sammuna operatsioonisüsteemi migreerimisel on teise kõvaketta partitsioneerimine ning ufs failisüsteemi tekitamine. Selleks sobib kasutada format ning newfs käske. Ühendame moodustatud failisüsteemi külge ning kopeerime sinna ufsdumpiga moodustatud arhiivi sisu
bash# cd /mnt bash# gunzip -c /net/lahte-arvuti-20070715.dump.gz | ufsrestore rf -
Tulemusena on /mnt kataloogi all olemas töötavast arvutist tehtud juurfailisüsteemi koopia, mis on vaja bootima saada.
Uue arvuti seadistamine
Kuna uus arvuti sisaldab SCSI ja võrgukontrollerit, mille Solarise draivereid jagab tootja, siis tuleb vastavad paketid paigaldada
bash# pkgadd -R /mnt paketifailinimi
Kuna riistvara on muutunud, tuleb moodustada uuesti seadmepuu
bash# devfsadm -r /mnt
Samuti tuleks uuesti moodustada boot-archive
bash# bootadm update-archive -R /mnt
Muudame /etv/vfstab faili, kus on näidatud juurfailisüsteemile vastava seadme nimi, swap võib ajutiselt välja kommenteerida, uue arvuti seadmete nimed saab teha kindlaks format käsu väljundist, antud näites on 0 kõvaketas, kus asub uue arvuti primaarne operatsioonisüsteem ning 2 on migreeritav.
bash# format ... AVAILABLE DISK SELECTIONS: 0. c2t0d0 <DEFAULT cyl 8917 alt 2 hd 255 sec 63> /pci@0,0/pci8086,25e2@2/pci8086,350c@0,3/pci103c,3225@1/sd@0,0 1. c3t0d0 <HP-LOGICALVOLUME-1.20 cyl 17560 alt 2 hd 255 sec 32> /pci@0,0/pci8086,25e3@3/pci1166,103@0/pci103c,3211@8/sd@0,0 2. c3t1d0 <DEFAULT cyl 8917 alt 2 hd 255 sec 63> /pci@0,0/pci8086,25e3@3/pci1166,103@0/pci103c,3211@8/sd@1,0
Paigaldame migreeritud süsteemi kõvakettale ka GRUB bootloaderi kuigi saaks ilmselt hakkama ka olemasoleva bootloaderiga
bash# /sbin/installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c3t1d0s0
Uue arvuti kõvaketta GRUB bootloaderini jõudmiseks lisame olemasoleva GRUB bootloaderisse sektsiooni
title Migratsioon rootnoverify (hd1,0,a) chainloader +1 makeactive
Kus hd1 kohal on sobiv kettaseadme nimi.
Ja uue st /mnt kataloogis oleva arvuti bootloaderis tuleb üle vaadata root parameetri väärtus.
Uue arvuti bootimine
Kui eelmisel punktis kirjeldatud tegevused on sooritatud, siis põhimõtteliselt võiks uus arvuti bootida. Selleks tuleb teha alglaadimine ning valida Migratsioon ning migreeritud arvuti bootloaderist valida nn vaikimisi valik.
Seejuures võib olla vajalik aidata uut arvutit järgi tema GRUB kernel parameetri argumendiga, mis näitab milliselt kettalt toimub bootimine, sedasi
kernel /platform/i86pc/multiboot -B bootpath="/pci@0,0/pci8086,25e3@3/pci1166,103@0/pci103c,3211@8/sd@1,0"
Seejuures võib ilmneda selline asjaolu, et sama riistvara peal erinevate Solaris operatsioonisüsteemi eksemplaride puhul kasutab Solaris erinevaid kõvaketta seadmenimesid. Kui nii juhtub, siis võiks ta ikkagi bootimisel jõuda single userisse ning siis saab juba küsida format käsuga seadmenimesid ning teha /etc/vfstab failis vastav parandus.