QLogic Corp. stellt auf seiner Download-Seite nur Pakete für die Enterprise-Linux-Distributionen bereit, will man eine Fibre Channel - Karte unter Ubuntu nutzen, dann ist schon etwas Handarbeit nötig.
Das Mediation-System enthält 4 Maschinen mit zwei von einer dieser beiden Karten:
# lspci Fibre Channel: QLogic Corp. ISP2312-based 2Gb Fibre Channel to PCI-X HBA (rev 02) Fibre Channel: QLogic Corp. ISP2312-based 2Gb Fibre Channel to PCI-X HBA (rev 02)
# lspci Fibre Channel: QLogic Corp. ISP2432-based 4Gb Fibre Channel to PCI Express HBA (rev 03) Fibre Channel: QLogic Corp. ISP2432-based 4Gb Fibre Channel to PCI Express HBA (rev 03)
benötigt wird der Treiber "qla2xxx":
# lsmod qla2xxx 404541 8 scsi_transport_fc 54395 1 qla2xxx
Das Ubuntu-Paket "scli" ist etwas ganz anderes!
Jetzt müssen wir das RPM-Paket auseinandernehmen:
# mkdir /tmp/qlogic # cd /tmp/qlogic # aptitude install alien # gunzip scli-1.7.3-40.i386.rpm.gz # alien -g scli-1.7.3-40.i386.rpm Warning: Skipping conversion of scripts in package scli: postinst postrm preinst Warning: Use the --scripts parameter to include the scripts. Directories scli-1.7.3 and scli-1.7.3.orig prepared.
jetzt sind noch ein paar Anpassungen notwendig:
# cd scli-1.7.3 # mv debian DEBIAN # sed -i 's/^KERNEL=.*/KERNEL="2.6"/' usr/local/lib/qlogic/lib/libinstall # echo '#!/bin/bash' > usr/local/bin/scli # echo 'export LD_LIBRARY_PATH="/usr/local/lib/qlogic/lib/ia32/2.6"' >> usr/local/bin/scli # echo '/opt/QLogic_Corporation/SANsurferCLI/scli' >> usr/local/bin/scli # chmod 0755 usr/local/bin/scli # cd ..
DEB-Paket-Control bearbeiten:
So sieht die Datei noch aus:
# vi scli-1.7.3/DEBIAN/control
Source: scli
Section: alien
Priority: extra
Maintainer: root <root@mm00>
Package: scli
Architecture: i386
Depends: ${shlibs:Depends}
Description: SANsurfer FC HBA CLI
QLogic FC HBA Command Line Interface application
.
(Converted from a rpm package by alien version 8.86.)
Und so soll die Datei aussehen:
# vi scli-1.7.3/DEBIAN/control Source: scli Section: admin Priority: optional Maintainer: Your Name <yourname@your.host.com> Version: 1.7.3-40 Package: scli Architecture: i386 Depends: Description: SANsurfer FC HBA CLI QLogic FC HBA Command Line Interface application . (Converted from a rpm package by alien version 8.86.)
DEB-Paket bauen:
# dpkg -b scli-1.7.3 scli-qla-1.7.3-40.i386.deb dpkg-deb: Paket »scli:i386« wird in »scli-1.7.3-40.i386.deb« gebaut.
DEB-Paket installieren:
# aptitude install d-shlibs glibc-2.13-1:i386 # aptitude remove scli # dpkg -i scli-1.7.3-40.i386.deb (Lese Datenbank ... 60513 Dateien und Verzeichnisse sind derzeit installiert.) Vorbereitung zum Ersetzen von scli:i386 1.7.3-40 (durch scli-1.7.3-40.i386.deb) ... Ersatz für scli:i386 wird entpackt ... scli:i386 (1.7.3-40) wird eingerichtet ...
# scli
Scanning QLogic FC HBA(s) and device(s), please wait...
-
SANsurfer FC/CNA HBA CLI
v1.7.3 Build 40
Main Menu
1: General Information
2: HBA Information
3: HBA Parameters
4: Target/LUN List
5: iiDMA Settings
6: Boot Device
7: Utilities
8: Beacon
9: Diagnostics
10: Statistics
11: Help
12: Exit
Enter Selection: 2
# multipath -ll 3600508b4000e419b00006000008e0000 dm-3 HP,HSV400 size=100G features='1 queue_if_no_path' hwhandler='0' wp=rw |-+- policy='round-robin 0' prio=50 status=active | |- 7:0:2:1 sdd 8:48 active ready running | `- 7:0:3:1 sde 8:64 active ready running `-+- policy='round-robin 0' prio=10 status=enabled |- 7:0:0:1 sdb 8:16 active ready running `- 7:0:1:1 sdc 8:32 active ready running
# sg_map -x /dev/sg0 6 2 0 0 0 /dev/sda /dev/sg1 7 0 0 0 12 /dev/sg2 7 0 0 1 0 /dev/sdb /dev/sg3 7 0 1 0 12 /dev/sg4 7 0 1 1 0 /dev/sdc /dev/sg5 7 0 2 0 12 /dev/sg6 7 0 2 1 0 /dev/sdd /dev/sg7 7 0 3 0 12 /dev/sg8 7 0 3 1 0 /dev/sde
# /lib/udev/scsi_id -g -u -d /dev/mapper/* 3600508b4000e419b00006000008e0000
# ls -la /dev/mapper/ lrwxrwxrwx 1 root root 7 Jun 19 12:24 3600508b4000e419b00006000008e0000 -> ../dm-3
eigentlich gehört hier noch eine "device"-Sektion rein:
# vi /etc/multipath.conf
#
# multipath.conf file generated by mkmpconf
#
# MAKE EDITS WHERE APPROPRIATE BEFORE PLACING IN SERVICE!
# Look for the "EDIT_ME" string for appropriate places to change
#
defaults {
udev_dir /dev
polling_interval 10
selector "round-robin 0"
path_grouping_policy multibus
#getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
getuid_callout "/lib/udev/scsi_id -g -u -d /dev/mapper/*"
prio_callout /bin/true
path_checker readsector0
rr_min_io 100
rr_weight priorities
failback immediate
no_path_retry fail
user_friendly_name yes
multipath_tool "/sbin/multipath -v0"
}
devnode_blacklist {
# Standard "defaults"
#devnode "^sda$" # EDIT_ME: Insert internal disk and virtual floppy
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z]\"
devnode "^cciss!c[0-9]d[0-9]*"
}
multipaths {
multipath {
# 100GB-Vol auf dem SAN
wwid 3600508b4000e419b00006000008e0000
alias san_vol_01
}
}
# /etc/init.d/multipath-tools reload * Reloading multipath daemon multipathd
jetzt (aber spätestens nach einem Reboot) ist hier das neue Gerät zu sehen:
# ls -la /dev/mapper/ lrwxrwxrwx 1 root root 7 Jun 19 13:22 san_vol_01 -> ../dm-2
weitere Kommandos zur Anzeige der SAN-Volumen:
# dmsetup -v deps # dmsetup -v table # dmsetup status -v # dmsetup ls
partitionieren:
# fdisk /dev/mapper/san_vol_01
formatieren:
# mkfs -t ext4 -m 0 /dev/mapper/san_vol_01-part1