Posts Tagged “fc”

Vorlesen mit webReader

Das Projekt “Common Multiprotocol SCSI Target” hat es mit dem build90 zurück in den OpenSolaris-Code geschafft. Was bringt das nun für neue Features? Prinzipiell ist das Ziel des Projekts OpenSolaris als Storageplattform in die Lage zu versetzen in einem Fibrechannel-SAN Plattenplatz per SCSI-LUNs zur Verfügung zu stellen.

Üblicherweise werden bisher für solche Aufgaben spezielle Storagesysteme von z.B. EMC, Hitachi, oder HP eingesetzt. Aus technologischer Sicht ähnelt der Ansatz von OpenSolaris am ehesten dem von Netapp, die auch mit Standardhardware und optimiertem OS (ontap) arbeiten.

Das OpenSolaris-System stellt sich also nach außen im FC-SAN als SCSI Target dar (vgl. dazu auch ISCSI Target). Rechner mit FC-HBAs (Emulex, QLogic, …) können dann per SAN auf die bereitgestellten LUNs zugreifen.

LUN erstellen

Im OpenSolaris muß zunächst eine LUN im “Backing Store” mit dem sbdadm-Kommando erstellt werden. Dazu kann Plattenplatz in Form einer Disk, Datei oder eines ZFS-Volumes dienen. Die Größe der LUN kann im Nachhinein erweitert werden.

Hostgruppe erstellen

Mit dem stmfadm-Kommando wird im Anschluß eine sog. Hostgruppe erstellt, die z.B. alle WWPNs der gewünschten Initiator enthält (also alle HBA-Ports eines Rechners, die auf diese LUN zugreifen soll).

Mapping

Danach wird das Mapping mit dem stmfadm-Befehl durchgeführt. Die LUN wird nach außen sichtbar auf den HBA-Ports des OpenSolaris-Systems exportiert, welche dann die SCSI-Targets darstellen.

Zoning

Am FC-Switch bzw. in der Fabric muß obligatorischerweise noch das Zoning durchgeführt werden.

Zugriff auf die LUN

Am Rechner mit dem Initiator (OS ist dabei egal) ist nun (autom.) Persistent Binding angesagt. Daraufhin kann die Disk im Volumemanager des Betriebssystems verwendet werden.

Wissenswertes…

Der für die LUN benötigte Platz im Backingstore wird dynamisch, also nach Bedarf allokiert. Bestimmte Initialisierungsverfahren wollen aber alle Blöcke einer Disk beschreiben und belegen damit trotzdem bereits initial die volle zugewiesene Kapazität.

Am Rechner mit dem SCSI-Initiator muß eine Multipathing-Software aktiv sein wenn die LUNs über mehrere Initiator-HBAs und/oder Target-HBAs angesprochen wird. Im Gegensatz zu (Open) Solaris und Linux bringt Windows kein Multipathing im Auslieferungszustand mit, deshalb benötigt man z.B. EMC Powerpath oder Symantec/Veritas DMP.

Comments Kommentare deaktiviert

Vorlesen mit webReader

- Anschluß EMC DMX-Speichersystem an Sun Fire V490
- Sun/Emulex-FC-HBAs an SAN-Switch
- UFS für / und swap auf internen FC-Disks
- Mirroring der Boot-Disk per SVM
- ZFS für EMC Disks
- Multpathing per mpxio
- Solaris 10 u5 enthält alle relevanten EMC und SAP/Oracle recommended Patches

Informationshilfen:
http://www.solarisinternals.com//wiki/index.php?title=Category:ZFS – ZFS tuning
http://www.sun.com/bigadmin/content/submitted/svm_mirroring.jsp – SVM Bootdisk Mirroring
http://powerlink.emc.com > EMC E-Lab-Navigator für Supportmatrix

E-Lab-Navigator Supportmatrix für EMC DMX und SF V490

Tools:

https://HOSTNAME:6789/zfs/zfsmodule/Index – ZFS Webgui

Installiertes Solaris-Release?
# cat /etc/release
Solaris 10 5/08 s10s_u5wos_10 SPARC
Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
Use is subject to license terms.
Assembled 24 March 2008

Kernelparameter für SVM, ZFS, EMC, SAP/Oracle
# cat /etc/system


* Begin MDD root info (do not edit)
rootdev:/pseudo/md@0:0,10,blk
set md:mirrored_root_flag=1
* End MDD root info (do not edit)

* ZFS
* http://www.solarisinternals.com/wiki/index.php/ZFS_Evil_Tuning_Guide

* disk-cache flush aus
set zfs:zfs_nocacheflush=1

* 4GB RAM max. fuer ZFS-Arc-Cache (0xWERT , WERT = MB*1024*1024 > HEX)
set zfs:zfs_arc_max=0×100000000

* File-Level-Prefetching
* set zfs:zfs_prefetch_disable = 1

* Device-Level-Prefetching (13 = 8k-Bloecke fuer disks reads, OLTP-tuning)
set zfs:zfs_vdev_cache_bshift = 13

* Device-Level-Prefetching ausschalten
* set zfs:zfs_vdev_cache_max = 0×1

* Device I/O Queue Size (I/O Concurrency)
* I/O queue depth pro LUN, default=35
* bei lokalen SATA-disks auf 10 setzen
* ansonsten gleich ssd_max_throttle setzen
set zfs:zfs_vdev_max_pending = 32

* EMC

* Queue-Laenge (empfohlen 20, bei Metadevices ggf. 32)
set ssd:ssd_max_throttle=32

* Timeout in HEX, recommended 0×3c = 60s bei multipathing, sonst 0×78
set ssd:ssd_io_time=0×3c

* Verzoegerung bis device als offline betrachtet wird
set fcp:fcp_offline_delay=20

* SAP / Oracle

* max. file descriptors pro Prozess
set rlim_fd_cur=8192

* security: stack nicht ausfuehrbar
set noexec_user_stack=1

Emulex-Treiber für Anschluß an SAN-Switch konfigurieren
# cat emlxs.conf

# +++ Variables relating to IP networking support. +++
#
# network-on: Enable/Disable IP networking support in the driver.
#
# 0 = Disables IP networking suppport in the driver.
# 1 = Enables IP networking suppport in the driver.
#
# Range: Min:0 Max:1 Default:1
#
#network-on=1;
network-on=0;
#
# +++ Fibre Channel specific parameters +++
#
# topology: link topology for initializing the Fibre Channel connection.
#
# 0 = attempt loop mode, if it fails attempt point-to-point mode
# 2 = attempt point-to-point mode only
# 4 = attempt loop mode only
# 6 = attempt point-to-point mode, if it fails attempt loop mode
#
# Set point-to-point mode if you want to run as an N_Port.
# Set loop mode if you want to run as an NL_Port.
#
# Range: Min:0 Max:6 Default:0
#
#topology=0;
topology=2;
# link-speed: Sets the link speed setting for initializing the Fibre Channel
# connection.
#
# 0 = auto select
# 1 = 1 Gigabaud
# 2 = 2 Gigabaud
# 4 = 4 Gigabaud
# 8 = 8 Gigabaud
#
# Range: Min:0 Max:8 Default:0
#
link-speed=0;

Multipathing konfigurieren
# cat fp.conf

#
# I/O multipathing feature (MPxIO) can be enabled or disabled using
# mpxio-disable property. Setting mpxio-disable=”no” will activate
# I/O multipathing; setting mpxio-disable=”yes” disables the feature.
#
# Global mpxio-disable property:
#
# To globally enable MPxIO on all fp ports set:
# mpxio-disable=”no”;
#
# To globally disable MPxIO on all fp ports set:
# mpxio-disable=”yes”;
#
# Per port mpxio-disable property:
#
# You can also enable or disable MPxIO on a per port basis.
# Per port settings override the global setting for the specified ports.
# To disable MPxIO on port 0 whose parent is /pci@8,600000/SUNW,qlc@4 set:
# name=”fp” parent=”/pci@8,600000/SUNW,qlc@4″ port=0 mpxio-disable=”yes”;
#
# NOTE: If you just want to enable or disable MPxIO on all fp ports, it is
# better to use stmsboot(1M) as it also updates /etc/vfstab.
#
#
# You can describe a list of target port WWNs and LUN numbers which will
# not be configured. LUN numbers will be interpreted as decimal. White
# spaces and ‘,’ can be used in the list of LUN numbers.
#
# pwwn-lun-blacklist=
# “target-port-wwn,lun-list”
#
# To prevent LUNs 1 and 2 from being configured for target
# port 510000f010fd92a1 and target port 510000e012079df1, set:
#
# pwwn-lun-blacklist=
# “510000f010fd92a1,1,2″,
# “510000e012079df1,1,2″;
#
# mpxio einschalten
mpxio-disable=”no”;
# mpxio fuer interne FC disks ausschalten
name=”fp” parent=”/pci@9,600000/SUNW,qlc@2″ port=0 mpxio-disable=”yes”;

Multipathing für Zusammenarbeit mit EMC DMX konfigurieren
# cat /kernel/drv/scsi_vhci.conf

# Load balancing global configuration: setting load-balance=”none” will cause
# all I/O to a given device (which supports multipath I/O) to occur via one
# path. Setting load-balance=”round-robin” will cause each path to the device
# to be used in turn.
#
load-balance=”round-robin”;
#
# Automatic failback configuration
# possible values are auto-failback=”enable” or auto-failback=”disable”
auto-failback=”enable”;
#
# For enabling MPxIO support for 3rd party symmetric device need an
# entry similar to following in this file. Just replace the “SUN SENA”
# part with the Vendor ID/Product ID for the device, exactly as reported by
# Inquiry cmd.
#
# device-type-scsi-options-list =
# “SUN SENA”, “symmetric-option”;
#
# symmetric-option = 0×1000000;
# Konfiguration fuer EMC Symmetrix
# zwischen EMC und SYMMETRIX 5 Leerzeichen!!!
device-type-scsi-options-list = “EMC SYMMETRIX”, “symmetric-option”;
symmetric-option = 0×1000000;

Zum Aktivieren der Konfiguration:
# reboot — -r

Dies stellt nur eine kurze Übersicht der relevanten Parameter für ein Testsystem dar. Kommentare und konstruktive Kritik sind willkommen ;)

Comments Kommentare deaktiviert

Vorlesen mit webReader

“Wo liegt der Reiz an Solaris?” werde ich immer wieder gefragt. Eines der Sahnestücke von Solaris ist meiner Meinung nach der Einsatz als universelle Storageplattform auf LowCost-Hardware, z.B. als günstiger Ersatz für einen Netapp-Filer. Wer die Opensolaris-Entwicklung etwas mitverfolgt erlebt hier beinahe monatlich neue Features im Storageumfeld. Hier ist bei weitem noch kein Ende der Entwicklung in Sicht.

http://www.opensolaris.org/os/community/storage/

SVM, UFS, ZFS – Volumemanager, Filesysteme, Volumes, Snapshots, uvm.

Traditionell wird unter Solaris der SVM als Volumemanager benutzt, UFS ist das Standard-Filesystem. Mit Multiterabyte-Support und Journaling per SVM wurde UFS im Nachhinein aufgebohrt. UFS-Snapshots funktionieren, wirken aber irgendwie wie ein angestückelter Fremdkörper. Das Handling von SVM ist sehr gewöhnungsbedürftig, Freunde gewinnt man so sicherlich nicht. SVM/UFS ist heute nach wie vor für die Spiegelung von lokalen Bootdevices üblich.

Der große Wurf gelang Sun mit ZFS. ZFS ist Volumemanager und Filesystem zugleich. Damit ist die Liste der Features aber noch lange nicht erschöpft. Prinzipiell werden Platten oder Slices (Partitionen) einem Pool zugewiesen, ein entsprechender RAID-Level gesetzt (Striping, Mirroring, RAID-Z) und diverse Parameter wie z.B. Blocksize gesetzt. In einem Pool können dann ZFS-Filesysteme oder Volumes (ähnlich RAW-devices) angelegt und mit Parametern, wie z.B. Quota und Reservierung, versehen werden. Auf Volumes können beliebige Filesysteme aufgebracht werden.

Auf ZFS-Pools, -Filesysteme und -Volumes können Snapshots angewendet werden. Diese können auch geclont und damit beschreibbar wiederverwendet werden.

Mit zfs send/receive können ZFS-Daten über IP repliziert werden.

ZFS Pools können exportiert und auf einem anderen Rechner wieder importiert werden. Geänderte Hardwarepfade, etc. spielen keine Rolle – so lange alle Platten eines Pools zur Verfügung stehen klappt der Import.

ZFS ist (noch?) nicht als Shared Filesystem geeignet. D.h. im Cluster kann es nur für Failoverszenarien eingesetzt werden.

Die Performance von ZFS ist abhängig vom Szenario, wo es zum Einsatz kommen soll. Mittlerweile in den meisten Bereichen UFS ebenbürtig gibt es noch Potential zu VxFS. Tuning ist oft sinnvoll. Je höher das Solaris-Release, desto mehr Möglichkeiten zur Optimierung gibt es.

ZFS bietet neben der eingängen Shell-Kommandos auch ein Webgui.

ZFS hat eingebaute Mechanismen wie “Self Healing” und Schutz gegen “silent data corruption”.

http://blogs.sun.com/chrisg/entry/latency_bubble_in_your_io

http://przemol.blogspot.com/2008/02/zfs-vs-vxfs-vs-ufs-on-x4500-thumper.html

http://blogs.sun.com/SC/entry/why_sunw_nfs_is_required

http://www.solarisinternals.com//wiki/index.php?title=Category:ZFS

http://www.opensolaris.org/os/community/zfs/docs/

http://wiki.edv-widhalm.com/index.php/Solaris_Volume_Manager_%28HowTo%29

http://wiki.edv-widhalm.com/index.php/Zfs_%28HowTo%29

http://www.learning-solaris.com/index.php/category/unix-solaris-storage-volume-management/

http://www.osnews.com/story/19665/Solaris_Filesystem_Choices

http://blogs.digitar.com/jjww/?itemid=52

NAS – iSCSI

Solaris beherrscht iSCSI Initiator (Zugriff auf iSCSI-Volume) und iSCSI Target (Bereitstellen
eines iSCSI Volumes). Dabei kann z.B. ein ZFS Volume als iSCSI Target genutzt werden. Das kann man z.B. nutzen um einem Windows- oder VMware-ESX-Server Diskspace zur Verfügung zu stellen. Von den ZFS Volumes können dann Snapshots erstellt werden.

http://blogs.sun.com/mhuff/entry/introduction_to_iscsi_in_solaris

http://www.opensolaris.org/os/project/iscsitgt/

http://www.opensolaris.org/os/project/isns/

http://blogs.sun.com/lokibear/entry/download_isns_web_based_management

NAS Freigaben – NFS und CIFS

ZFS-Filesysteme beherrschen UNIX- und Windows-ACLs (W2K kompatibel) – damit entfallen viele Hürden als Netzwerkspeicher. Darüber hinaus können in ZFS-Filesystemen NFS- und CIFS-Freigaben als Eigenschaften eingerichtet werden. Eine ADS-Integration ist auch möglich. Der brandneue CIFS-Server mit ZFS-Integration dürfte unter Solaris eine ernsthafte Konkurrenz zu Samba werden.

http://blogs.sun.com/timthomas/entry/opensolaris_as_a_storageos_the

http://blogs.sun.com/dougm/

http://blogs.sun.com/amw/entry/cifs_in_solaris

SAN – Fibrechannel, FCoE

Im Bereich Fibrechannel wurde zuletzt in erster Linie in leichtere Administration auf der Shell investiert. Interessant sind die OpenSolaris-Projekte Comstar und FC over Ethernet. Hier bewegt sich einiges, gerade auch im Bereich Virtualisierung mit NPIV (virtuelle FC-HBAs).

http://www.opensolaris.org/os/project/comstar/

http://www.opensolaris.org/os/project/fcoe/

http://www.opensolaris.org/os/project/npiv/

mpxio – Multipathing

Solaris unterstützt mit mpxio Multipathing für SCSI-, FC-, SAS- und iSCSI-Disks. Speichersysteme mit SCSI SPC-2/3 werrden automatisch erkannt, eine manuelle Zuordnung in der Konfigurationsdatei durch Vendor und Product ist auch möglich, z.B. “EMC SYMMETRIX”. Es wird Failover und Roundrobin als Verfahren unterstützt. Mit dem mpathadm-Kommando ist die Administration sehr eingängig. Durch mpxio wird aus den verschiedenen Hardwarepfaden (verschiedene Controller/Targets, gleiche LUN) ein virtueller Pfad erstellt, der dann für die Konfiguration im Volumemanager benutzt wird.

http://www.opensolaris.org/os/project/mpxio/

last but not least: ZFS in der Praxis … (Achtung! US-Propaganda)

Comments 7 Kommentare »