Real time web analytics, Heat map tracking

NetApp DS14MK4 Multipath FC SAN unter Debian (Openmediavault)

A. Problemaufriss

Um für einen meiner VMWare ESXi Server ein Storage bereit zu stellen, habe ich auf ein NetApp DS14MK4 Fibre Channel mit 14x 146 GB 15k FC Festplatten zurückgegriffen, da dieses für meine Bedürfnisse eine ausreichende Leistung sowie mit knapp 1 TB im RAID 10 ausreichend Platz bietet und auch preislich überzeugt. Softwareseitig habe ich auf Openmediavault, das auf Debian basiert, zurückgegriffen.

B. Festplatten mit einer Sektorgröße von 512 KB statt 520 KB formatieren

Die NetApp FC Festplatten haben eine Sektorgröße von 520 KB statt der üblichen 512 KB. Mit 520 KB lassen sich die Platten nicht betreiben. Daher müssen diese zunächst mit einer Sektorgröße von 512 KB formatiert werden.

Haben die Platten noch eine Sektorgröße von 520 KB, so darf das Disk-Shelv erst nach dem Start von Debian mit dem FC HBA verbunden werden, da ansonsten Debian nicht startet.

Nachdem Openmediavault respektive Debian installiert ist und SSH aktivert ist, loggen Sie sich via SSH auf dem Openmediavault ein.

  • durch die Eingabe von apt-get install sg3-utils werden die sg3_utils installiert
  • mit sg_scan -i finden Sie heraus, welche Bezeichnung die NetApp Platten haben (in meinem Fall sg1 bis sg14)
  • wechseln Sie mittels cd /tmp in das temporärer Verzeichnis
  • erstellen Sie durch Eingabe von vi netapp512 eine Datei
  • in diese geben Sie jenachdem, was Ihnen zuvor bei sg_scan angezeigt worden alle Platten und jede weitere Platte jeweils in einer neuen Zeile an. In meinem Fall also:

/dev/sg1
/dev/sg2
/dev/sg3
/dev/sg4
/dev/sg5
/dev/sg6
/dev/sg7
/dev/sg8
/dev/sg9
/dev/sg10
/dev/sg11
/dev/sg12
/dev/sg13
/dev/sg14

  • Starten Sie den Formatierungsvorgang durch Eingabe von
    • cat netapp512 | while read drive ; do
    • > sg_format --format --size=512 $drive &
    • > done
  • Hierdurch werden alle 14 Platten gleichzeitig formatiert.
  • mittels reboot den Rechner neu starten.

C. Multipath einrichten

Multipath ermöglicht es, über zwei FC-Ports die Verbindung zu den Festplatten herzustellen. Dies bietet entweder Redundanz oder - wie von mir gewählt - mehr Durchsatz. Erforderlich sind dafür zwei ESH4 am Shelv und eine Dual-FC-Karte.

Verbinden Sie ohne die entsprechenden Tools installiert und konfiguriert zu haben, beide ESH4 mit beiden FC Ports, so werden Ihnen statt der 14 Platten 28 angezeigt. Also müssen für das Loadbalancing die Tools installiert und konfiguriert werden.

Dies erfolgt durch die Eingabe von apt-get install multipath-tools-boot. Hierbei werden alle Abhängigkeiten, also multipath-tolls und kpartx, automatisch mitinstalliert. Das multipath-tools-boot ist erforderlich, da ansonsten der später zu erstellende Software RAID (mdadm) die Mulipath-Pfade nicht erkennt und das RAID dann entweder degraded ist oder zwei RAIDs erkannt werden und das Ganze dann nicht mehr funktioniert.

Anschließend muss wiederum über SSH durch die Eingabe von vi /etc/multipath.conf die Konfigurationsdatei erstellt werden.

Diese enthält für ein DS14MK4:

defaults {
user_friendly_names yes
path_grouping_policy multibus
}
devices {
device {
vendor "NETAPP"
features "1 queue_if_no_path"
path_checker readsector0
failback immediate
}
}

Mittels service-multipath-tools restart wird die neue Konfiguration geladen.

Nun muss noch mulipath-tools-boot beim Starten automatisch geladen werden. Dies kann entweder über Webmin oder einfach über die Shell erfolgen:

  • apt-get install sysv-rc-conf installiert das Debian-Pendant zu chkconfig
  • sysv-rc-conf multipath-tools-boot on wird multipath-tools-boot beim Booten automatisch geladen.

Wenn Sie die blacklist geändert haben, müssen Sie über update-initramfs -u -k all die ramdisk aktualisieren. Ansonsten wirkt sich die Blacklist nicht aus.

D. RAID einrichten

Nun kann über das Webinterface von Openmediavault das RAID-Array eingerichtet werden. Wichtig ist, dass Sie dabei nicht die Platten mit /dev/sdX, sondern die 14 Multipath-Devices auswählen.

E. mdadm RAID beschleunigen

Durch die Eingabe von sysctl -w dev.raid.speed_limit_max=5000000 heben Sie die Geschwindigkeitsbegrenzung in Debian für den mdadm RAID auf. Um dies dauerhaft zu erhalten muss in der Datei /etc/sysctl.conf die Zeile

dev.raid.speed_limit_max = 5000000

eingefügt werden.

Durch die Eingabe von blockdev --setra 65536 /dev/md0 wird die Read-ahead Option gesetzt.

 F. NFS für ESXi freigeben

Anschließend kann für den ESXi ein NFS Share freigegeben werden. Die Anbindung über iSCSI funktioniert nicht, da das von OMV eingesetzte iscsi traget Enterprise (Stand 2010) einen Bug hat.

Als Option muss bei dem NFS Share die Option no_root_squash hinzugefügt werden. Standardmäßig wird einem root Benutzer mit der UID 0 nämlich kein Zugriff auf ein NFS Share gestattet. Der VMWare Kernel benötigt jedoch einen root Zugriff mit der UID 0. Die o.g. Option behebt dies.