BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Festplatten dauerhaft überwachen

Mit den smartmontools können nicht nur Festplatten auf Fehler überprüft, sondern mit der dazugehörigen smartd auch überwacht werden. Dazu müssen die smartmontools installiert sein. Diese findet man im FreeBSD Portbaum unter sysutils/smartmontools:

# cd /usr/ports/sysutils/smartmontools && make install clean

Nun kann eine Konfigurationsdatei für den smartd erstellt werden. Dazu wird zuerst die Vorlage kopiert:

# cp /usr/local/etc/smartd.conf.sample /usr/local/etc/smartd.conf

In der smartd.conf kann nun angegeben werden, welche Laufwerke überwacht werden sollen. Mit folgendem Eintrag werden alle gefundenen Laufwerke überwacht und Fehler und Warnungen werden an die angegebene E-Mailadresse gesendet:

DEVICESCAN -m <E-Mailadresse>

Nun kann manuell geprüft werden, welche Laufwerke gefunden werden und ob es smartd möglich ist, die Laufwerke zu überwachen. Der Test kann mit Ctrl + \ wieder beendet werden:

# /usr/local/sbin/smartd -d -c /usr/local/etc/smartd.conf
smartd version 5.37 [i386-portbld-freebsd6.1] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

Opened configuration file /usr/local/etc/smartd.conf
Drive: DEVICESCAN, implied '-a' Directive on line 23 of file /usr/local/etc/smartd.conf
Configuration file /usr/local/etc/smartd.conf was parsed, found DEVICESCAN, scanning devices
Device: /dev/ad4, opened
Device: /dev/ad4, found in smartd database.
Device: /dev/ad4, is SMART capable. Adding to "monitor" list.
Device: /dev/ad6, opened
Device: /dev/ad6, found in smartd database.
Device: /dev/ad6, is SMART capable. Adding to "monitor" list.
Monitoring 2 ATA and 0 SCSI devices
^\smartd received signal 3: Quit: 3
Memory still allocated for devices at exit is 0 bytes.
smartd is exiting (exit status 0)

Damit smartd automatisch gestartet wird, muss folgender Eintrag in der /etc/rc.conf gemacht werden:

smartd_enable="YES"

Nun kann smartd gestartet werden:

# /usr/local/etc/rc.d/smartd start

Alle Konfigurationsmöglichkeiten von smartd findet man in der Manpage smartd(8).

 Permalink

FreeBSD auf ZFS installieren

Möchte man FreeBSD auf ZFS installieren, so ist das noch nicht über die Installationsroutine möglich. Unter http://www.ish.com.au/solutions/articles/freebsdzfs findet man ein Anleitung wie man FreeBSD trotzdem auf ZFS installieren kann. Hier eine kleine Zusammenfassung: Um FreeBSD auf ZFS zu installieren, muss man mindestens FreeBSD 7 einsetzen. Man erstellt zuerst mit sysinstall einen Slice über die ganze Festplatte und anschliessend ein Label so, dass die Partition a 512 MB gross ist, und als / gemountet wird. Auch die Swappartition wird bereits erstellt. Im Rest des Slices wird eine Partition gelabelt, welche nicht formatiert und gemountet wird. In / wird dann ein minimal FreeBSD installiert.

Danach wird das installierte System im Single User Mode gestartet und die / Partition schreibend gemountet:

# mount -w / 
Nun kann auf dem freien Speicherplatz ein ZFS-Pool erstellt werden:

# zpool create tank /dev/ad0s1d
WARNING: ZFS is considered to be an experimental feature in FreeBSD.
ZFS filesystem version 6
ZFS storage pool version 6

Danach können die Dateisysteme für /usr, /var und /tmp erstellt werden:

# zfs create tank/usr
# zfs create tank/var
# zfs create tank/tmp

Mit folgendem Eintrag in der /etc/rc.conf wird das ZFS Kernelmodul beim Booten geladen:

# echo 'zfs_enable="YES"' >> /etc/rc.conf

Nun kann der Inhalt der root-Partition auf das ZFS-Dateisystem verschoben werden:

# find -x / | cpio -pmd /tank
471416 blocks

Da FreeBSD noch nicht von ZFS booten kann, muss die bestehende UFS-Partition als boot-Partition verwendet werden:

# rm -rf /tank/boot
# mkdir /tank/bootdir
# cd /tank
# ln -s bootdir/boot boot

In der /tank/etc/fstab muss nun der Eintrag für die UFS boot-Partition geändert werden:

/dev/ad4s1a  /bootdir        ufs     rw      1       1 

Nun muss in der /boot/loader.conf eingetragen werden, dass das ZFS root-Dateisystem beim Booten geladen werden soll:

# echo 'zfs_load="YES"' >>  /boot/loader.conf
# echo 'vfs.root.mountfrom="zfs:tank"' >> /boot/loader.conf

Zum Schluss müssen noch die ZFS-Mountpoints für /usr, /var und /tmp konfiguriert werden und dabei sichergestellt werden, dass /tank nicht gemountet wird, da dies nun das root-Dateisystem ist:

# zfs set mountpoint=/tmp tank/tmp
# zfs set mountpoint=/usr tank/usr
# zfs set mountpoint=/var tank/var
# zfs set mountpoint=legacy tank

Jetzt sind alle Einstellungen gemacht und FreeBSD kann neu gestartet werden:

# shutdown -r now

Falls man möchte, können nun nicht gebrauchte Dateien aus der UFS boot-Partition gelöscht werden:

# cd /bootdir
# chflags noschg var/empty
# rm -rf usr var tmp COPYRIGHT home compat media mnt proc bin cdrom dev dist etc lib libexec root sbin sys

Mehr Informationen dazu findet man im FreeBSD wiki: http://wiki.freebsd.org/ZFSOnRoot

Eine kleine Einführung in ZFS auf FreeBSD findet man hier: http://www.chruetertee.ch/blog/archive/2007/05/26/zfs-auf-freebsd.html

Related Entries:
ZFS-Statistiken anzeigen
ZFS-Installation mit Hilfe von mfsBSD
FreeBSD nur auf ZFS installieren
Alle Änderungen eines ZFS-Pools anzeigen
Automatisch ZFS Snapshots erstellen
Comments (5)  Permalink
1-2/2