Kõvaketaste kasutamine operatsioonisüsteemiga Solaris Sun-SPARC riistvaral
Sisukord
Kõvaketta arvutiga ühendamine
Klassikaliselt kasutatakse Sun Sparc arvutitega SCSI kõvakettaid.
- Kõige otsekohesemal juhul ühendatakse SCSI kõvaketas arvuti SCSI kontrolleri pordiga kasutades SCSI kaablit. Tavaliselt on sellisel kaablil mitu kontakti, üks on ühendatud arvuti kontrolleriga ning ülejäänutel asuvad kõvakettad. See moodus on aga selles mõttes nö kodukootud, et tuleks kombineerida, kuhu nii ühendatud kõvakettad paigutada, reeglina Sun Sparc arvuti korpuses ei ole ette nähtud kohta kõvaketaste paigutamiseks või pole neid piisavalt.
- Levinud mooduseks on kasutada Sun Sparc arvuti juures kõvakettakasti, milles olevatesse pesadesse paigutatakse kõvakettad endid. Seejärel ühendatakse kõvakettakast SCSI kaabli abil arvuti SCSI pordiga. Kuigi esimesel ja teisel juhul reeglina tuleb kasutada erinevate kontaktidega kõvakettaid (nn tavalised vs hotswap), siis loogilises mõttes tingimata suurt vahet pole.
- Lisaks saab arvutile teha kõvakettaressuresi kättesaadavaks kasutades FC (Fiber Channel) tehnoloogiat. Arvuti ühendatakse taas kettakastiga, aga mitte SCSI kaabli vaid FC kaabli abil. See eeldab FC portide olemasolu kõvakettakastil ja arvuti küljes ning operatsioonisüsteemis tuleb kasutada FC kaardile vastavat draiverit.
Vaatamata, kuidas kõvaketas kasutusele võeti on edu tunnuseks, et lisatud kõvaketas on käsu format väljundis paista, näiteks selline väljund
bash# format Searching for disks...done c4t0d0: configured with capacity of 199.99GB AVAILABLE DISK SELECTIONS: 0. c0t0d0 <FUJITSU-MAP3147NC-3701 cyl 38343 alt 2 hd 8 sec 936> /pci@83,4000/FJSV,ulsa@2,1/sd@0,0 1. c0t1d0 <FUJITSU-MAW3147NC-3701 cyl 38343 alt 2 hd 8 sec 936> /pci@83,4000/FJSV,ulsa@2,1/sd@1,0 2. c1t0d0 <FUJITSU-MAP3147NC-3701 cyl 38343 alt 2 hd 8 sec 936> /pci@83,4000/FJSV,ulsa@2/sd@0,0 3. c1t1d0 <FUJITSU-MAW3147NC-3701 cyl 38343 alt 2 hd 8 sec 936> /pci@83,4000/FJSV,ulsa@2/sd@1,0 4. c4t0d0 <DGC-RAID10-0220 cyl 51198 alt 2 hd 256 sec 32> /pci@80,2000/fibre-channel@1/fp@0,0/ssd@w500601613a601529,0 5. c4t0d1 <DGC-RAID 10-0220-691.00GB> /pci@80,2000/fibre-channel@1/fp@0,0/ssd@w500601613a601529,1 Specify disk (enter its number): ^C
Kusjuures uue kõvaketta kohta öeldakse tavaliselt sedasi
c4t0d0: configured with capacity of 199.99GB
Antud näiteks on 0. - 3. on füüsilised SCSI kõvakettad ning 4. ja 5. üle FC kettakastist eraldatud ressurss, mis operatsioonisüsteemi jaoks on loogilises mõttes samaväärne füüsilise kettaga.
Kui lisatud kõvaketas pole paista, siis tuleks arvutile öelda devfsadm või OBP promptist 'boot -r'. Kui dmsg'i ilmub rikkalikult veateateid, siis maksab üle kontrollida, et igal SCSI kanalil oleval kõvakettal oleks unikaalne SCSI ID määratud (füüsilise jumperi paigutusega).
Solaris operatsioonisüsteemi puhul on praktiliselt valida kahe failisüsteemi vahel, UFS või ZFS, lisaks võib rakendustarkvara saada hakkama ka ise otse kõvakettaseadme kasutamisega, nt Oracle andmebaas.
Kõvaketaste nimetamine
Solaris operatsioonisüsteemis tähistatakse kõvakettaid kolmekomponendiliste nimedega cxtydz, kus komponendid omavad sellist tähendust
- x - SCSI kanali number (st kontrolleri number)
- y - kõvaketta number kanalil (st kontrolleri küljes)
- z - praktiliselt alati null, sisuline tähendus teadmata
Näiteks esimese kontrolleri number kaheksandal positsioonil oleva kõvaketta seadme nimi on c2t8d0.
Kõvaketta partitsioneerimine
Kõigel lihtsamal juhul jaotatakse kõvaketas osadeks ehk partitsioonideks, millele moodustatakse saaleala või failisüsteemid ning operatsioonisüsteem hakkab neid kasutama. Keerulisemal juhul saab kasutada Solaris Volume Mananger'i võimalusi, et saavutada suuremat kiirust või paremat töökindlust, kombineerides mitmeid kõvakettaid nn tarvkvaralise RAID'i lahenduseks.
Kui kõvaketas on füüsiliselt arvutisse installeeritud ning esimeses punktis illustreeritud viisil käsu format väljundis paista, siis edasi toimub kõvaketta partsioneerimine utiliidi format abil. Näiteks moodustame 16,8 GB suurusele kettale kaks partitsiooni, kusjuures tegevusega kaasneb kõvakettal varem olnud andmete hävinemine
- 0 - 15,8 GB andmed
- 1 - 1 GB saaleala
Partisioonile vastab kaks seadmefaili
- toores (ingl. k. raw) seadmefail kataloogis /dev/rdsk - kasutatakse nt newfs käsu argumendina
- plokkseadmefail kataloogis /dev/dsk - kasutatakse nt mount käsu argumendina
kusjuures seadmefaili nimi moodustatakse kettanimest, millele on lisatud lõppu 'sn', antud juhul
- /dev/rdsk/c2t9d0s0
- /dev/dsk/c2t9d0s0
ja
- /dev/rdsk/c2t9d0s1
- /dev/dsk/c2t9d0s1
Partitsioonide moodustamiseks käivitame programmi format
bash-3.00# format Searching for disks...done
AVAILABLE DISK SELECTIONS: 0. c2t8d0 <SUN18G cyl 7506 alt 2 hd 19 sec 248> /sbus@44,0/QLGC,isp@0,10000/sd@8,0 1. c2t9d0 <SUN18G cyl 7506 alt 2 hd 19 sec 248> /sbus@44,0/QLGC,isp@0,10000/sd@9,0
Ütleme, et soovime tegeleda teise kettaga, vastuseks jõuame FORMAT menüüsse
Specify disk (enter its number): 1 selecting c2t9d0 [disk formatted] FORMAT MENU: disk - select a disk type - select (define) a disk type partition - select (define) a partition table current - describe the current disk format - format and analyze the disk repair - repair a defective sector label - write label to the disk analyze - surface analysis defect - defect list management backup - search for backup labels verify - read and display labels save - save new disk/partition definitions inquiry - show vendor, product and revision volname - set 8-character volume name !<cmd> - execute <cmd>, then return quit
Liigume edasi partitsioneerimise menüüsse
format> p PARTITION MENU: 0 - change `0' partition 1 - change `1' partition 2 - change `2' partition 3 - change `3' partition 4 - change `4' partition 5 - change `5' partition 6 - change `6' partition 7 - change `7' partition select - select a predefined table modify - modify a predefined partition table name - name the current table print - display the current table label - write partition map and label to the disk !<cmd> - execute <cmd>, then return quit
Esitame olemasoleva partitsioonitabeli sisu, mis on selline nagu ta viimasest kõvakettakasutusest jäänud on
partition> p Current partition table (original): Total disk cylinders available: 7506 + 2 (reserved cylinders) Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 55 128.84MB (56/0/0) 263872 1 swap wu 56 - 111 128.84MB (56/0/0) 263872 2 backup wu 0 - 7505 16.86GB (7506/0/0) 35368272 3 unassigned wm 0 0 (0/0/0) 0 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 usr wm 112 - 7505 16.61GB (7394/0/0) 34840528 7 unassigned wm 0 0 (0/0/0) 0
Sun Sparc arvutite SCSI kõvaketastel on kaheksa partitsiooni kusjuures
- partitsioon 0 on juurfailisüsteem millelt booditakse operatsioonisüsteem
- partitsioon 1 on tavaliselt kasutusel saalealana
- partitsioon 2 tähistab kogu kõvaketast ja seda otseselt ei kasutata
Muid partitsioone võib kasutada vastavalt vajadusele.
Ülesande saavutamiseks tuleb valida partitsioneerimise menüüst modify
partition> m Select partitioning base: 0. Current partition table (original) 1. All Free Hog
Ning seejärel All Free Hog
Choose base (enter number) [0]? 1 Part Tag Flag Cylinders Size Blocks 0 root wm 0 0 (0/0/0) 0 1 swap wu 0 0 (0/0/0) 0 2 backup wu 0 - 7505 16.86GB (7506/0/0) 35368272 3 unassigned wm 0 0 (0/0/0) 0 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 usr wm 0 0 (0/0/0) 0 7 unassigned wm 0 0 (0/0/0) 0 Do you wish to continue creating a new partition
Vastame, et soovime partitsioneerida ning sisestame soovitud partitsioonide suurused
table based on above table[yes]? Free Hog partition[6]? Enter size of partition '0' [0b, 0c, 0.00mb, 0.00gb]: 15.8gb Enter size of partition '1' [0b, 0c, 0.00mb, 0.00gb]: 1gb Enter size of partition '3' [0b, 0c, 0.00mb, 0.00gb]: Enter size of partition '4' [0b, 0c, 0.00mb, 0.00gb]: Enter size of partition '5' [0b, 0c, 0.00mb, 0.00gb]: Enter size of partition '7' [0b, 0c, 0.00mb, 0.00gb]: Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 7032 15.80GB (7033/0/0) 33139496 1 swap wu 7033 - 7478 1.00GB (446/0/0) 2101552 2 backup wu 0 - 7505 16.86GB (7506/0/0) 35368272 3 unassigned wm 0 0 (0/0/0) 0 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 usr wm 7479 - 7505 62.12MB (27/0/0) 127224 7 unassigned wm 0 0 (0/0/0) 0
Vastame, et kujunenud tulemus on sobiv
Okay to make this the current partition table[yes]? Okay to make this the current partition table[yes]? Enter table name (remember quotes): disk1
Vastame, et kirjutada label kettale
Ready to label disk, continue? y
Ning väljume programmist
partition> q FORMAT MENU: disk - select a disk type - select (define) a disk type partition - select (define) a partition table current - describe the current disk format - format and analyze the disk repair - repair a defective sector label - write label to the disk analyze - surface analysis defect - defect list management backup - search for backup labels verify - read and display labels save - save new disk/partition definitions inquiry - show vendor, product and revision volname - set 8-character volume name !<cmd> - execute <cmd>, then return quit format> q bash#
Kõvaketta partitsioonitabelit saab küsida öeldes
bash# prtvtoc /dev/rdsk/c2t9d0s2 * /dev/rdsk/c2t9d0s2 partition map * * Dimensions: * 512 bytes/sector * 248 sectors/track * 19 tracks/cylinder * 4712 sectors/cylinder * 7508 cylinders * 7506 accessible cylinders * * Flags: * 1: unmountable * 10: read-only * * First Sector Last * Partition Tag Flags Sector Count Sector Mount Directory 0 2 00 0 33139496 33139495 1 3 01 33139496 2101552 35241047 2 5 01 0 35368272 35368271 6 4 00 35241048 127224 35368271
UFS failisüsteemi moodustamine
Selleks, et operatsioonisüsteem saaks kõvaketast kasutada andmete salvestamiseks tuleb tavaliselt moodustada partitsioonile failisüsteem. Solarise puhul on valida kahe failisüsteemi, UFS ja ZFS vahel. UFS failisüsteemi tekitamiseks tuleb öelda
bash# newfs /dev/rdsk/c2t9d0s0 newfs: construct a new file system /dev/rdsk/c2t9d0s0: (y/n)? y Warning: 1240 sector(s) in last cylinder unallocated /dev/rdsk/c2t9d0s0: 33139496 sectors in 5394 cylinders of 48 tracks, 128 sectors 16181.4MB in 338 cyl groups (16 c/g, 48.00MB/g, 5824 i/g) super-block backups (for fsck -F ufs -o b=#) at: 32, 98464, 196896, 295328, 393760, 492192, 590624, 689056, 787488, 885920, Initializing cylinder groups: ...... super-block backups for last 10 cylinder groups at: 32244768, 32343200, 32441632, 32540064, 32638496, 32736928, 32835360, 32933792, 33032224, 33130656
Ning seejärel võib tekitatud failisüsteemi külge ühendada ja asuda kasutama öeldes näiteks
bash# mkdir /data bash# mount /dev/dsk/c2t9d0s0 /data
Selleks, et bootimise käigus failisüsteem külge ühendataks, peab lisama faili /etc/vfstab sellise rea
#device device mount FS fsck mount mount #to mount to fsck point type pass at boot options ... /dev/dsk/c2t9d0s0 /dev/rdsk/c2t9d0s0 /data ufs 2 yes -
UFS failisüsteemi snapshot
UFS failisüsteemi snapshot võimaldab kiiresti fikseerida ajahetkele vastava samal ajal kasutuses oleva failisüsteemi oleku ning seda kasutada näiteks varukoopia tegemiseks. Juurfailisüsteemist snapshoti võtmine ja varukoopia tegemine toimub näiteks selliselt
- Snapshoti tekitamine, vastav failisüsteem tuleks viia võimalikult nö vaiksesse olekusse seal toimuvate failidesse kirjutamise mõttes
bash# fssnap -F ufs -o unlink,bs=/moni-teine-failisysteem/backing-store-file-juurfailisysteem /
- Veendume, et snapshot on olemas
bash# /usr/lib/fs/ufs/fssnap -i Snapshot number : 0 Block Device : /dev/fssnap/0 Raw Device : /dev/rfssnap/0 Mount point : / Device state : idle Backing store path : /moni-teine-failisysteem/backing-store-file-juurfailisysteem <UNLINKED> Backing store size : 256 KB Maximum backing store size : Unlimited Snapshot create time : Wed Oct 01 19:25:16 2008 Copy-on-write granularity : 32 KB
- Teeme varukoopia ufsdump utiliidiga
bash# ufsdump 0f /mnt/loomaaed-juurikas-20080705.dump /dev/rfssnap/0
- Eemaldamine snapshoti
bash# fssnap -d /
Juurfailisüsteemist snapshoti võtmisel tuleb ntp server peatada ja peale snapshot eemaldamist jällegi käivitada
bash# svcs | grep ntp online Jan_10 svc:/network/ntp:default bash# svcadm disable ntp bash# svcadm enable ntp
Nii moodustatud koopia kasutamiseks peab olema ühendatud külje piisavalt suur tühi failisüsteem ning tuleb öelda
bash# cd /mnt bash# cat /root/loomaaed-juurikas-20080705.dump | ufsrestore rf -
Saaleala moodustamine
Saaleala moodustamiseks ja kasutuselevõtmiseks tuleb öelda
bash# swap -a /dev/dsk/c2t9d0s1
Kasutusel olevaid saalealasid näeb käsuga
bash# swap -l swapfile dev swaplo blocks free /dev/dsk/c2t8d0s1 32,105 16 2101536 2101536 /dev/dsk/c2t9d0s1 32,113 16 2101536 2101536
Saaleala kasutusest eemaldamine toimub öeldes
bash# swap -d /dev/dsk/c2t9d0s1
Ühe kõvaketta partitsioonitabeli kopeerimine teisele samasugusele kõvakettale
Ühe kõvaketta partitsioonitabeli kopeerimine teisele samasugusele kõvakettale võib olla vajalik näiteks juhtumil, kui soovitakse moodustada peeglit (ingl. k. mirror) ning üks kõvaketas on juba ettevalmistatud. Peegli valmistamine toimub Solaris Volume Manager'i vahendite abil, kuid reeglina on eelduseks, et mõlemad peegli pooled moodustavad kõvakettad on ühesuguselt partitsioneeritud.
Partitsioonitabel on kirjas kõvaketta disklabelis, disklabeli kopeerimine otse teisele kettale toimub öeldes
bash# prtvtoc /dev/rdsk/c2t8d0s2 | fmthard -s - /dev/rdsk/c2t9d0s2 fmthard: New volume table of contents now in place.
Probleemid
- Kui kõvaketas oli kasutusel eelnevalt ZFS skeemis, siis on seal kasutusel EFI label, mille üheks tunnuseks on format disk käsu väljundis üheksa partitsiooni (Sun Sparc arvutitel on muidu kaheksa partitsiooni). Nö normaalse SMI disklabeli tekitamiseks tuleb öelda
bash# format -e ...
Partitsioonitabel paistab sellisena
partition> p Current partition table (original): Total disk sectors available: 35362115 + 16384 (reserved sectors) Part Tag Flag First Sector Size Last Sector 0 usr wm 34 16.86GB 35362115 1 unassigned wm 0 0 0 2 unassigned wm 0 0 0 3 unassigned wm 0 0 0 4 unassigned wm 0 0 0 5 unassigned wm 0 0 0 6 unassigned wm 0 0 0 7 unassigned wm 0 0 0 8 reserved wm 35362116 8.00MB 35378499
Labeli muutmiseks tuleb öelda
partition> l [0] SMI Label [1] EFI Label Specify Label type[1]: 0 Warning: This disk has an EFI label. Changing to SMI label will erase all current partitions. Continue? y Auto configuration via format.dat[no]? Auto configuration via generic SCSI-2[no]? partition>
Ning lõpuks format programmist käsu q abil väljuda.
Kui labeli muutmine ei õnnestunud ja vastati
partition> l Unable to get current partition map. Cannot label disk when partitions are in use as described.
Siis tõenäoliselt on zfs failisüsteemis kõvaketas veel kasutusel, lahti ühendamiseks tuleb öelda kui tank on pool'i nimi
bash# zpool export tank