Categories
Internet, Unix en security

BtrFS as ongoing project

BtrFS is still an ongoing project for me, but if it will become a production platform for me soon is the question. Also playing with mirroring on BtrFS level made me wonder even more as it does the calculating about storage usage a little bit differently. Normally with mirroring you see the storage you can allocate and has been allocated. With BtrFS you see the total amount of data available on all disks combined as shown in the example below.

$ sudo btrfs filesystem df /mnt
Data, RAID1: total=5.98GB, used=5.36GB
System, RAID1: total=8.00MB, used=4.00KB
System: total=4.00MB, used=0.00
Metadata, RAID1: total=256.00MB, used=6.01MB
$ df -h /mnt
Filesystem                Size  Used Avail Use% Mounted on
/dev/mapper/vg01-btrfsm1   16G   11G  4.8G  70% /mnt

I really like ZFS, but I really wonder if BtrFS could replace it. For now, I see too many drawbacks in how BtrFS has been implemented and how distributions may use it. Maybe when Debian 8 is in testing it may be a better time to give BtrFS another chance, but swap space and encrypted file systems are still problems that need to be tackled.

Categories
Internet, Unix en security

MD en een nieuwe disk

Op Sun Solaris was en is het nog steeds met SVM redelijk makkelijk om een RAID1 opstelling van de boot-disken te herstellen. Je kopieert het disklabel over van de ene disk naar de andere, maakt de metadevices aan en koppelt deze weer. En met ZFS is het zelfs nog minder werk, maar hoe op Linux?

Op Linux is het gelukkig niet veel anders en met sfdisk kan snel de partitietabel worden overgezet.

$ sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sdb

De tweede stap is om de partities weer in het array te hangen en een flinke tijd te wachten.

$ sudo mdadm --add /dev/md0 /dev/sdb1
$ sudo mdadm --add /dev/md1 /dev/sdb2

De derde stap voor boot-disken is om de code voor de boot-loader te installeren. Zoals GRUB in dit voorbeeld.

$ sudo grub-install /dev/sdb
Installation finished. No error reported.

Vanaf dit moment is de RAID1 configuratie voor de boot-disken weer operationeel.

Categories
Internet, Unix en security

MD in degraded mode, deel 2

In een vorige posting liep er nog een zelftest op een harddisk. De zelftest was na enige tijd klaar en smartmontools leek geen fouten te hebben gevonden of toch wel? Want als het onderstaande ziet dan ziet het er goed uit.

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

Maar zodra je verder kijkt in de output van smartctl dan blijken dat er drie sectoren waren die moesten worden vervangen. Nu deze zijn intern zijn vervangen accepteert de RAID-software weer de disk na een volledige synchronisatie.

5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 3

Voor de zekerheid toch eens bij de leverancier eens op de website gekeken en die boden een applicatie voor onder DOS aan of als live CD. Bij controle blijkt die software exact hetzelfde te doen als wat smartmontools doet en werkt ook met S.M.A.R.T. De vraag is dan misschien wanneer Windows deze functionaliteit standaard aan boord krijgt nu dit al jaren bij de Unix’en standaard is.

De vraag die nog wel overbleef was of er ook een interface was die geen root-privileges vereiste, want smartctl moet nu direct met de disk kunnen praten. Gelukkig kan met behulp van DeviceKit ook worden uitgevraagd naar de status van een disk. En ook hier lijkt zoals bij dmidecode er een duidelijke verbetering te komen in de benodigde privileges die nodig zijn.

$ udisks --show-info /dev/sdb
...
ATA SMART: Updated at za 03 apr 2010 15:17:51 CEST
overall assessment: Disk has a few bad sectors

Zal Linux dan toch langzaam aan volwassen worden? Maar tot die tijd blijft smartmontools nog regelmatig de status van de disken controleren om zo problemen snel te detecteren.

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.