Julia

Från Lysators datorhandbok, den ultimata referensen.
Version från den 19 juli 2008 kl. 11.04 av Creideiki (diskussion | bidrag) (Beskrev hur man stoppar tillbaka i RAID-arrayen diskar som tappat sin disklabel vid omboot.)
Hoppa till navigering Hoppa till sök
Funktion CPU-server
Specialfunktion
Operativsystem Gentoo Linux unstable
Arkitektur Alpha
CPU 3 * 400 MHz Alpha EV56
Minne 1 GB
SSH-fingeravtryck
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

julia.lysator.liu.se har följande SSH-fingeravtryck:

SSH1:     a0:14:4f:e5:00:f3:2f:1e:e1:bf:92:6b:fc:c8:24:e6
SSH2 DSA: f7:46:51:dd:eb:f2:04:40:81:5f:81:29:42:12:83:60
SSH2 RSA: db:b3:65:c0:62:fd:f3:d5:69:bc:db:ef:8b:ea:72:64
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.8 (GNU/Linux)

iEYEARECAAYFAkd59VQACgkQAbrEtTMfrn2NHQCgjogb131WTtcOGAxkSSZ2aUdS
zTsAoIoyL5kWXahzCsz/LieiplPa/aOA
=GqzY
-----END PGP SIGNATURE-----
Modell Digital AlphaServer 4100
Placering FOO-hallen, Rack 11
Foto
Ansvarig root Karl-Johan Karlsson (creideiki)
Driftstatus I drift.
Nagios-status

Julia

LysINV

Julia

RAID-konfiguration

Julia har två SCSI-kort, kopplade till var sin disklåda.

Första disken i varje disklåda (sda respektive sde) är RAID-1-speglad /boot och swap. Resterande 6 diskar är en RAID-6-array för /.

Omboot

Ibland händer det att Julia glömmer bort disklabeln på någon disk. Eftersom den kör RAID överallt är det inte ett omedelbart problem, men om man glömmer att rätta till det blir det det vid nästa omboot.

Problemet kan ses på många olika sätt, t.ex. att det står

sdb: unknown partition table

i dmesg under boot, eller att det lite senare, när den försöker ta upp RAID-arrayerna, står sådana här felmeddelanden:

md: Loading md2: /dev/sdb1
md: could not open unknown-block(8,17).
md: md_import_device returned -6
md: bind<sdc1>
md: bind<sdd1>
md: could not open unknown-block(8,81).
md: md_import_device returned -6
md: bind<sdg1>
md: bind<sdh1>
raid5: device sdh1 operational as raid disk 5
raid5: device sdg1 operational as raid disk 4
raid5: device sdd1 operational as raid disk 2
raid5: device sdc1 operational as raid disk 1
raid5: allocated 12506kB for md2
raid5: raid level 6 set md2 active with 4 out of 6 devices, algorithm 2
RAID5 conf printout:
 --- rd:6 wd:4
 disk 1, o:1, dev:sdc1
 disk 2, o:1, dev:sdd1
 disk 4, o:1, dev:sdg1
 disk 5, o:1, dev:sdh1

eller att det står elaka saker i /proc/mdstat.

När det händer räcker det att skriva om disklabeln så att den blir identisk med den som finns på de andra diskarna, t.ex. så här:

Hitta rätt siffror från en fungerande disk (notera att dessa är olika för de två olika SCSI-kedjorna, så kolla själv):

root@julia ~ # fdisk /dev/sdc
Detected an OSF/1 disklabel on /dev/sdc, entering disklabel mode.

BSD disklabel command (m for help): u
Changing display/entry units to sectors

BSD disklabel command (m for help): p

3 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]
  a:        0   8353799   8353800       ext2
  c:        0   8369864   8369865     unused        0     0

BSD disklabel command (m for help): q
root@julia ~ #

Skapa en likadan disklabel på en ofungerande disk:

root@julia ~ # fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x83b06417.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): b
/dev/sdb contains no disklabel.
Do you want to create a disklabel? (y/n) y
# /dev/sdb:
type: SCSI
disk:
label:
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 521
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0           # milliseconds
track-to-track seek: 0  # milliseconds
drivedata: 0
3 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]
  c:        1       521       521     unused        0     0

BSD disklabel command (m for help): u
Changing display/entry units to sectors

BSD disklabel command (m for help): d
Partition (a-c): c

BSD disklabel command (m for help): n
Partition (a-p): a
First sector (0-8369864, default 0):
Using default value 0
Last sector or +size or +sizeM or +sizeK (0-8369864, default 8369864): 8353799

BSD disklabel command (m for help): t
Partition (a-a): a
Hex code (type L to list codes): 8

BSD disklabel command (m for help): n
Partition (a-p): c
First sector (0-8369864, default 0):
Using default value 0
Last sector or +size or +sizeM or +sizeK (0-8369864, default 8369864):
Using default value 8369864

BSD disklabel command (m for help): p

3 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]
  a:        0   8353799   8353800       ext2
  c:        0   8369864   8369865     unused        0     0

BSD disklabel command (m for help): w
Writing disklabel to /dev/sdb.

Syncing disks.
Calling ioctl() to re-read partition table.

BSD disklabel command (m for help): q
root@julia ~ #

Stoppa in disken i RAID-arrayen igen:

mdadm --manage --add /dev/md2 /dev/sdb1

Kontrollera att /proc/mdstat ser bra ut:

root@julia ~ # cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md2 : active raid6 sdf1[3] sdb1[0] sdh1[5] sdg1[4] sdd1[2] sdc1[1]
      16707328 blocks level 6, 64k chunk, algorithm 2 [6/6] [UUUUUU]
      bitmap: 2/64 pages [16KB], 16KB chunk

md1 : active raid1 sde2[1] sda2[0]
      4088448 blocks [2/2] [UU]
      bitmap: 0/63 pages [0KB], 16KB chunk

md0 : active raid1 sde1[1] sda1[0]
      72192 blocks [2/2] [UU]

unused devices: <none>