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älditakse riistvaralist sekkumist, näiteks kõvaketaste arvutite vahel ringitõstmist, ideaalsel juhul võiks ka asjaga seotud teenuste mitte-töötamise aeg olla minimaalne. Sedapidi võiks asjatoimetust käsitleda ka teatud mõttes taasteplaanina.
Eeldame, et lähtearvutis on Solarise nn 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 abiks ning migreeritav operatsioonisüsteem hakkab asuma teisel kõvakettal.
Uues arvutis on kasutusel kaunis eksootilised SCSI ja võrgukontrolleid, mille kasutamiseks on tarvis tootja tarkvara.
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 teisele kõvakettale andmete kopeerimine
Nagu esimeses punktis kirjeldatud, sihtpunktiks oleval arvutil töötab nn primaarsel kõvakettal Solaris operatsioonisüsteem. Esimese sammuna operatsioonisüsteemi migreerimisel on teise kõvaketta partitsioneerimine ning ufs failisüsteemi tekitamine. Selleks sobib kasutada format ning newfs programme. Ühendame moodustatud failisüsteemi külge ning kopeerime sinna eelnevalt ufsdumpiga moodustatud arhiivi sisu
bash# cd /mnt bash# gunzip -c /net/lahtearvuti-juurikas-20070715.dump.gz | ufsrestore rf -
Tulemusena on /mnt kataloogi all olemas töötavast arvutist tehtud juurfailisüsteemi koopia, mis on vaja bootima saada.
Migreeritava süsteemi seadistamine
Migreeritava süsteemi seadistamine toimub uue arvuti primaarselt kõvakettalt käivitatud Solaris operatsioonisüsteemi kasutades, reeglina pöördutakse migreeritava arvuti failisüsteemi poole -R või -r võtmega.
Ütleme migreeritavale süsteemile õige juurfailisüsteemiga seadme, käsu andmise tulemusena redigeeritakse /mnt/etc/vfstab faili (kui selle käsu andmine ei õnnestus, siis vfstab faili käsitsi redigeerimisest praktiliselt piisab samuti)
bash# metaroot -R /mnt /dev/dsk/c3t1d0
Kuna uus arvuti sisaldab SCSI ja võrgukontrollerit, mille Solarise draivereid jagab tootja, siis tuleb vastavad paketid paigaldada
bash# pkgadd -R /mnt -d 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 ka migreeritava süsteemi kõvakettale GRUB bootloaderi (kuigi saaks ilmselt hakkama ka olemasoleva bootloaderiga, tegelikult)
bash# /sbin/installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c3t1d0s0 stage1 written to partition 0 sector 0 (abs 16065) stage2 written to partition 0, 233 sectors starting at 50 (abs 16115)
ning tuleb üle vaadata /mnt/boot/grub/menu.lst failis migreeritava süsteemi root parameetri väärtus.
Lisame uue arvuti primaase operatsioonisüsteemi GRUB bootloaderi menüüfaili /boot/grub/menu.lst sektsiooni
title Migratsioon rootnoverify (hd1,0,a) chainloader +1 makeactive
kus hd1 on migreeritava süsteemi kõvakettaseadme nimi.
Migreeritud süsteemi bootimine
Kui eelmisel punktis kirjeldatud tegevused on sooritatud, siis põhimõtteliselt võiks migreeritud süsteem bootida. Selleks tuleb teha alglaadimine ning valida Migratsioon ning migreeritud arvuti bootloaderist valida nn vaikimisi valik.
Võib olla vajalik aidata migreeritud arvutit järgi tema GRUB kernel parameetri argumendiga, mis näitab milliselt kettalt toimub bootimine, sedasi (format väljundi ketas 2)
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.
Võrguseadistuste järele aitamine
Kuna tõenäoliselt on kasutusel uued võrguseadmed, siis tuleb nad esmalt plumbida
bash# ifconfig bnx1 plumb up
ning seejärel seadistada võrk
bash# ifconfig bnx1 192.168.1.3 netmask 255.255.255.0 bash# route add default 192.168.1.254
Kui on vajalik püsivate muudatuste tegemine, redigeerige /etc kataloogis olevaid faile, olulised failid leiab üles nende sisu järgi, näiteks
bash# find /etc -type f | xargs grep vana.ip.aad.ress
Lisaks tuleb muuta ka /etc/hostname.seadmenimi fail
bash# mv /etc/hostname.e1000g0 /etc/hostname.bnx1
Probleemid
- Kui migreeritav süsteem kasutab ZFS failisüsteemi, siis on asjakohane /mnt/etc/zfs/zpool.cache eemaldada ja ta unustab oma teadmise ZFS failisüsteemidest. Seejärel, kui uus süsteem töötab, moodustada ZFS pool ja failisüsteemid ning kasutatades 'zfs send' ja 'zfs receive' käske täita ZFS failisüsteemid andmetega.