Du bist nicht berechtigt, die Seite zu bearbeiten. Grund:
Diese Aktion ist auf Benutzer beschränkt, die der Gruppe „Benutzer“ angehören.
Freitext:
[[Category:Projekte]] == Idee == iSCSI erweist sich auf Grund des hohen Overloads an Netzwerkkommunikation nicht als besonders performant im Einsatz mit Netzwerk-Speichern, wenn es darum geht die System-Festplatte zu ersetzten. Eine Technik, die dieses Problem löst ist z.B. FiberChannel bzw. HBAs als SAN. Da wir über solche Hardware verfügen, wollen wir diese in den produktiven Einsatz bringen. == Aufbau == - SAN1 - Speicherdienste-System < ] Redundanz - SAN2 == Anwendungen für den SAN == - Backup-Speicher - Ausfallsichere Netzwerkfestplatte für Virtuelle Maschinen - Gemeinsam genutzter Speicherplatz ... == Vorüberlegungen == Die entscheidende Seite für Linux ist http://scst.sourceforge.net/ Ein Vergleich der möglichen Dienste: http://scst.sourceforge.net/comparison.html Wir haben uns für SCST entschieden (aus Performancegründen) und dafür entweder die Kernel Treiber (qla2xxx) oder den vom SCST mitgelieferten. Quelle sind: http://scst.sourceforge.net/downloads.html == SCST HowTos == http://scst.sourceforge.net/qla2x00t-howto.html + READMEs aus dem SCST-SVN == Kernel compilieren == (Debian Lenny/Squeeze) http://scst.sourceforge.net/downloads.html cd /usr/src svn co https://scst.svn.sourceforge.net/svnroot/scst cp scst/kernel/scst_exec_req_fifo-2.6.32.patch ./ tar jxvf linux-2.6.32.32.tar.bz2 mv linux-2.6.32.32 linux-2.6.32 patch -p0 < scst/trunk/scst/kernel/scst_exec_req_fifo-2.6.32.patch mv /usr/src/linux-2.6.32/drivers/scsi/qla2xxx /usr/src/linux-2.6.32/drivers/scsi/qla2xxx_orig cp -r /usr/src/scst/trunk/qla2x00t /usr/src/linux-2.6.32/drivers/scsi/qla2xxx Danach der bekannte: make all, make modules_install, make_install, update-grub, reboot Wenn der Kernel läuft, SCST und QLA-Target Module bauen (make all und make install in scst/src und qla2xx-target) ls -l /lib/modules/`uname -r`/extra/* -rw-r--r-- 1 root root 608423 14. Mär 17:58 /lib/modules/2.6.32.32/extra/qla2x00tgt.ko -rw-r--r-- 1 root root 2374206 14. Mär 17:51 /lib/modules/2.6.32.32/extra/scst.ko /lib/modules/2.6.32.32/extra/dev_handlers: insgesamt 2152 -rw-r--r-- 1 root root 189427 14. Mär 17:51 scst_cdrom.ko -rw-r--r-- 1 root root 181074 14. Mär 17:51 scst_changer.ko -rw-r--r-- 1 root root 212885 14. Mär 17:51 scst_disk.ko -rw-r--r-- 1 root root 192243 14. Mär 17:51 scst_modisk.ko -rw-r--r-- 1 root root 181058 14. Mär 17:51 scst_processor.ko -rw-r--r-- 1 root root 180946 14. Mär 17:51 scst_raid.ko -rw-r--r-- 1 root root 193709 14. Mär 17:51 scst_tape.ko -rw-r--r-- 1 root root 406327 14. Mär 17:51 scst_user.ko -rw-r--r-- 1 root root 407097 14. Mär 17:51 scst_vdisk.ko ls -l /lib/modules/2.6.32.32/kernel/drivers/scsi/qla2xxx/ insgesamt 252 -rw-r--r-- 1 root root 250206 14. Mär 17:24 qla2xxx.ko == Name/Port/WWN == (WWN für alle 21:00:00:e0:8b...) dk (Port2) :02:7a:a0 [Initiator] san3 (Port10) :06:d6:4e [Initiator] san1 (Port8) :03:67:9e [Target - Debian] san2 (Port4) :03:fa:96 [Target - Debian] == Client/Server Prozedur == ==== Auf dem Switch ==== Zoning: Alias => Immer 1 Initiator und n Targets zusammen in eine Gruppe (Alias) legen. Zone => Zone defnieren mit dem entsprechenden Alias als Member. Config => Enable config ==== Auf dem "Target" (=Server) ==== qla-Target (qla2xxt/qla2xxtgt) Modul laden /etc/init.d/qla2x00t start SCST-Config laden: scstadmin -config /etc/scst.conf Die Config sieht z.B. so aus: HANDLER vdisk_fileio { DEVICE SAN1_disk1 { filename /srv/disk1.img } } TARGET_DRIVER qla2x00t { TARGET 21:00:00:e0:8b:03:67:9e { LUN 0 SAN1_disk1 enabled 1 } } oder z.B. bei BLOCKIO und LVM HANDLER vdisk_blockio { DEVICE SAN1_disk1 { t10_dev_id "SAN1_disk1 e1fe3f77" usn e1fe3f77 filename /dev/LVM/SAN1 } } TARGET_DRIVER qla2x00t { TARGET 21:00:00:e0:8b:03:67:9e { HW_TARGET rel_tgt_id 2 enabled 1 LUN 0 SAN1_disk1 } } ==== Auf dem Initiator (=Client) ==== qla (qla2xxx) Modul laden modprobe qla2xxx Wenn das nicht schon geladen ist. Wichtig ist, dass auf dem Client (Initiator) eigentlich nichts gemacht werden muss. Das Modul qla2xxx ist im Standard-Kernel enthalten und wird bei Booten mit der Karte mitgeladen. Der Initiator wird auch nur über den Switch eingeschränkt sich Platten zu nehmen, die die Targets bereitstellen. == Speedtest == In diesem Zusammenhang interessant: http://scst.sourceforge.net/comparison.html Wir haben uns aus Performance Gründen für SCST entschieden. -Normaler Fileserver (Gigabit/NFS/RAID5): CMD "dd if=/dev/zero of=/mnt/speedtest_pvsa bs=4k count=25000": 102400000 Bytes (102 MB) kopiert, 52,7076 s, 1,9 MB/s -SAN Server (FC 1GBit/SCST(2.0.0.1)/IDE-DISK) erste Tests zeigen zwischen 50 und 60 MB/s: ~# dd if=/dev/zero of=/mnt/san/testdisk.img bs=512 count=10000 5120000 Bytes (5,1 MB) kopiert, 0,0772498 s, 66,3 MB/s ~# dd if=/dev/zero of=/mnt/san/testdisk.img bs=512 count=100000 51200000 Bytes (51 MB) kopiert, 0,785867 s, 65,2 MB/s RAM-Disk (Flaschenhals Festplatte): dd if=/dev/zero of=/mnt/san/testdisk.img bs=512 count=80000 40960000 Bytes (41 MB) kopiert, 0,625479 s, 65,5 MB/s Das ganze geht auch, wenn zwei Initiatoren gleichzeitig das gleiche Block-Device gemountet haben. Allerdings verteilt sich dann die Performance auf zwei.
Zusammenfassung:
Nur Kleinigkeiten wurden verändert Diese Seite beobachten
Abbrechen