Case study: Solaris operatsioonisüsteemi migreerimine ühelt arvutilt teisele

Allikas: Kuutõrvaja

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.