Categories
Internet, Unix en security

MD in degraded mode

Soms krijg je meldingen die je niet wilt zien. De volgende in de logfiles na een reboot is er z’n eentje:

md: md1 stopped.
md: bind
md: bind
md: kicking non-fresh sdb2 from array!
md: unbind
md: export_rdev(sdb2)
raid1: raid set md1 active with 1 out of 2 mirrors

Op het eerste gezicht lijkt er geen fout te zijn en met md –re-add ging de disk weer terug de array in. En dan wachten totdat de resync klaar was, maar het was sneller klaar dan verwacht. De volgende melding gaf te raden waarom.

ata3.00: exception Emask 0x10 SAct 0x0 SErr 0x40c0202 action 0xe frozen
ata3.00: irq_stat 0x00000040, connection status changed
ata3: SError: { RecovComm Persist CommWake 10B8B DevExch }
ata3.00: failed command: FLUSH CACHE EXT
ata3.00: cmd ea/00:00:00:00:00/00:00:00:00:00/a0 tag 0
res 50/00:00:00:00:00/00:00:00:00:00/a0 Emask 0x10 (ATA bus error)
ata3.00: status: { DRDY }
ata3: hard resetting link
ata3: softreset failed (device not ready)
ata3: applying SB600 PMP SRST workaround and retrying
ata3: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata3.00: configured for UDMA/133
ata3.00: device reported invalid CHS sector 0
end_request: I/O error, dev sdb, sector 0
raid1: Disk failure on sdb2, disabling device.
raid1: Operation continuing on 1 devices.

Er zijn duidelijk issues, maar wat precies blijft de vraag. Onder Linux kan met behulp van smartmontools worden gekeken naar de status van een disk en testen doen. Dus het wordt tijd om een long selftest te doen en ook wat informatie op de vragen.

$ sudo smartctl -t long /dev/sdb
$ sudo smartctl -l error /dev/sdb
$ sudo smartctl -l selftest /dev/sdb
$ sudo smartctl -a /dev/sdb

Dit is een redelijk lange testcycle en wachten is voorlopig het enige wat kan gebeuren, maar er lijkt een disk wissel aan te komen binnenkort.

Categories
Internet, Unix en security

File auditing in Linux

Controle krijgen over een machine en behouden begint door te weten wat er allemaal speelt. Een van de aspecten is om te weten wat er met bepaalde bestanden gebeurt. Windows NT heeft deze functionaliteit al jaren, maar met de komst van de 2.6 kernel is Linux nu ook in staat om auditing op bestanden en directories vast te leggen.

Op veel Linux-distributies is tegenwoordig al de audit-daemon geïnstalleerd en actief, maar vaak ontbreekt er nog een configuratie. Toch beginnen we met het installeren om zeker te zijn dat onze Debian-machine de juiste software heeft.

$ sudo apt-get install auditd audispd-plugins

Nu de machine voorzien is van de juiste software wordt het tijd om aan te geven welke bestanden we willen monitoren voor wijzigingen. In het voorbeeld hieronder gaan we /etc/passwd monitoren op schrijfacties en /etc/shadow op schrijf- en leesacties. En bij controle zien we wat de configuratie is waarmee de auditing draait op het systeem.

$ sudo auditctl -w /etc/shadow -p wa
$ sudo auditctl -w /etc/passwd -p w
$ sudo auditctl -l
LIST_RULES: exit,always watch=/etc/shadow perm=rw
LIST_RULES: exit,always watch=/etc/passwd perm=w

Door nu bv met cat de inhoud van /etc/shadow te tonen kan worden gezien in /var/log/audit/audit.log wat er gebeurt, maar ook wie het doet inclusief welke inode dit is. Het wordt dus tijd om elk bestand met een username/password te gaan monitoren wat er precies gebeurt.

Categories
Internet, Unix en security

Geheugen errors detecteren

ECC-geheugen bestaat al flink wat jaren, maar de integratie en mate daarvan in besturingssystemen wisselt vaak. Sun Solaris heeft al jaren ondersteuning om foutboodschappen te begrijpen en af te handelen, maar Linux liep nog wat achter. Sinds 2005 is daar verandering ingekomen en sinds kernel 2.6.21 is de ondersteuning opgenomen in de vanilla-kernel.

Met de komst van de Lenny-release van Debian zijn ook de scripts gekomen om out-of-the-box ondersteuning te krijgen op machines die daar geschikt voor zijn.

$ sudo apt-get install edac-utils

Na een reboot of het handmatig starten van deze dienst kan met behulp van het commando edac-util worden gebruikt om te kijken of er een ondersteunde memory controller met ECC-geheugen is gevonden. Ook kan worden bekeken of er enige fouten zijn.

$ sudo edac-util -s
edac-util: EDAC drivers are loaded. 1 MC detected
$ sudo edac-util
edac-util: No errors to report.

De vraag blijft dan over waarom mensen niet 5 euro per GB geheugen extra betalen om zeker te zijn dat geheugen betrouwbaar. En in een tijd waarin geheugen steeds belangrijker wordt nu encryptie en grotere caches de maatstaf worden. Zeker als je ontwikkelingen als ZFS, Btrfs en LUKS in beschouwing neemt.

Categories
Internet, Unix en security

Diskinformatie in Linux

Binnen Solaris kan je met behulp van het commando iostat -En opvragen wat oa het serienummer van een harddisk is, maar ook welk versie van de firmware actief is. Maar hoe zie je dit binnen Linux en het was jarenlang de vraag welke file in het /proc-filesysteem je moest hebben. Nu met het commando lshw kan deze informatie opvragen.

$ sudo lshw -C disk
*-disk:0
description: ATA Disk
product: ST31000340AS
vendor: Seagate
physical id: 0
bus info: scsi@0:0.0.0
logical name: /dev/sda
version: SD1A
serial: 9QJ0K3J6
size: 931GiB (1TB)
capabilities: partitioned partitioned:dos
configuration: ansiversion=5 signature=4b1bb901
*-disk:1
description: ATA Disk
product: ST31000340AS
vendor: Seagate
physical id: 1
bus info: scsi@2:0.0.0
logical name: /dev/sdb
version: SD1A
serial: 9QJ0VXJF
size: 931GiB (1TB)
capabilities: partitioned partitioned:dos
configuration: ansiversion=5 signature=e605e605
*-cdrom
description: DVD-RAM writer
product: CDDVDW SH-S223F
vendor: TSSTcorp
physical id: 0.0.0
bus info: scsi@3:0.0.0
logical name: /dev/cdrom
logical name: /dev/cdrw
logical name: /dev/dvd
logical name: /dev/dvdrw
logical name: /dev/scd0
logical name: /dev/sr0
version: SB01
capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram
configuration: ansiversion=5 status=nodisc

Het is belangrijk om te beseffen dat oa ook USB-storage zichtbaar wordt bij dit commando.

Categories
Internet, Unix en security

Daarom dus fanless

Ventilatoren worden in veel computers gebruikt, maar samen met disken gaan ze ook weleens stuk. Zoals nu ook weer en gelukkig op een Energy Efficient processor van AMD, maar de rateling is duidelijk hoorbaar. De bladen van de CPU-fan zijn duidelijk uit balans door speling is de lagers. Iets wat ook duidelijk te zien is aan rotatiesnelheid die van ongeveer 1800/rpm terug zakte naar 1250/rpm en nu weer langzaam zijn opgelopen naar een dikke 1400/rpm.

$ sensors
k8temp-pci-00c3
Adapter: PCI adapter
Core0 Temp: +32.0°C
Core0 Temp: +37.0°C
Core1 Temp: +38.0°C
Core1 Temp: +29.0°C
it8718-isa-0228
Adapter: ISA adapter
in0: +0.91 V (min = +0.00 V, max = +4.08 V)
in1: +1.95 V (min = +0.00 V, max = +4.08 V)
in2: +3.36 V (min = +0.00 V, max = +4.08 V)
in3: +2.94 V (min = +0.00 V, max = +4.08 V)
in4: +3.06 V (min = +0.00 V, max = +4.08 V)
in5: +3.23 V (min = +0.00 V, max = +4.08 V)
in6: +4.08 V (min = +0.00 V, max = +4.08 V) ALARM
in7: +3.36 V (min = +0.00 V, max = +4.08 V)
Vbat: +3.23 V
fan1: 1424 RPM (min = 10 RPM)
fan2: 988 RPM (min = 10 RPM)
fan3: 0 RPM (min = 0 RPM)
temp1: +40.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
temp2: +29.0°C (low = +127.0°C, high = +70.0°C) sensor = thermal diode
temp3: +84.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
cpu0_vid: +0.900 V

Gelukkig blijft de processor redelijk koel door het energiezuinige design van AMD voor deze processors, want het koelblok is amper warm aan. Ook doet Linux zijn best om de cores op een laagste snelheid te laten lopen en het is duidelijk aan het worden het powermanagement volwassen is geworden.

$ grep ‘^cpu MHz’ /proc/cpuinfo
cpu MHz : 1000.000
cpu MHz : 1000.000

Wel wordt langzaam aan dat er een einde moet komen aan ventilatoren, want op een of andere manier trek ik altijd defecte fans aan. Ook doet dit me denken aan het feit of er ook waarschuwingen komen dat fans niet draaien op een Linux-machine. Iets wat bij sommige SMART-events al wel gebeurt als je DeviceKit gebruikt.