[CentOS-de] Centos5 Cluster lvm mit xen

Stephan Mante mante at frs.de
Mit Okt 31 08:07:08 UTC 2007


Harald Rinker schrieb:

Was hältst Du von Oracles Cluster-Filesystem: (siehe ix 8 2007 - Seite 118)


Zu Multipath hier eine kleine Anleitung, die ich für meine Dokumentation
geschrieben habe.


        CentOS 5 als Xen Server installieren.

      Flensburg, 24.04.07

   1.

      Den Arbeitsspeicher der dom0 begrenzen.
      In grub.conf

      ...
      root (hd0,0)

      kernel /xen-gz-2.6.x. /dom0_mem=256M/

      ....
      danach neu booten....

      Speicher der Dom0 überprüfen

      #xm list

   2.

      Überflüssiges entfernen:

      http://www.fedorawiki.de/index.php/CentOS_minimalisieren

   3.

      System updaten

      #export http_proxy=http://user:passwort@10.127.0.2
      <mailto:passwort at 10.127.0.2>:3128

      #yum update


   4.

      CentOS neu booten

      #reboot

   5.

      uDev Setup

      Zu einem von udev erstellten iscsi Devive /dev/etc wird zusätzlich
      ein symbolischer Links in der Form /dev/dm-<targetname>. Somit mit
      wird gewährleistet, dass wir ein Device haben welches passend zu
      einem Target immer den selben Namen erhält.
      Folgende Dateien anlegen:

      /etc/udev/rules.d/55-openiscsi.rules

      KERNEL=="sd*", ACTION=="add", BUS=="scsi",
      PROGRAM="/lib/udev/iscsidev.sh %b %k \ %n", NAME="%k", SYMLINK+="%c"

      /lib/udev/iscsidev.sh

      #!/bin/sh

      BUS=${1}

      NAME=${2}

      HOST=${BUS%%:*}

      LUN=`echo $BUS | cut -d: -f4`

      MAXDEVNUM=255

      if [ $# == 3 ]; then

      MINOR=${3}

      elif [ $# == 2 ]; then

      MINOR=$MAXDEVNUM + 1

      else

      echo "Incorrect number of arguments"

      exit

      fi

      [ -e /sys/class/iscsi_host ] || exit 1

      file="/sys/class/iscsi_host/host${HOST}/device/session*/iscsi_session*/targetname"

      target_name=$(cat ${file})

      # This is not an open-scsi drive

      if [ -z "${target_name}" ]; then

      exit 1

      fi

      # Handle the Kernel assigned device number

      if [ ${MINOR} -ge 0 -a ${MINOR} -le $MAXDEVNUM ]; then

      DEV="LUN${LUN}_${MINOR}"

      else

      DEV="LUN${LUN}"

      #Devicemap Information für map_multipath.dh

      wwid=$(/sbin/scsi_id -g -u -s ${DEVPATH})

      echo ${target_name}_$DEV > /dev/iscsi/$wwid

      fi

      echo "iscsi/${target_name}/SESSIONID-${HOST}/${DEV}
      iscsi/${target_name}/${DEV}"

#chmod 0755 /lib/udev/iscsidev.sh


/lib/udev/map_multipath.sh

   #!/bin/sh

   wwid=$(/sbin/dmsetup ls --target multipath --exec /bin/basename -j $1 -m $2)
   if [ -z "$wwid" ]; then
     exit 1
   fi
  
   target_name=$(cat /dev/iscsi/$wwid)

   echo "mpath/${target_name}" >>/tmp/log

   if [ -z "${target_name}" ]; then
    exit 1
   fi  

   dev=$(echo ${DEVPATH}|/bin/awk -F/ '{ print $3 }')

   /bin/ln -sf /dev/${dev} /dev/dm-${target_name}
   if [ $? -ne 0 ]; then
     rm -f /dev/mpath/${target_name} 
     /bin/ln -sf /dev/${dev} /dev/dm-${target_name}
   fi  

#chmod 0755 /lib/udev/map_multipath.sh

Folgende Zeile in /etc/udev/multipath.rules einfügen:

ACTION=="add", RUN+="/sbin/dmsetup ls --target multipath --exec ....

/#FRS BEGIN /

/ACTION=="add", PROGRAM=="/lib/udev/map_multipath.sh %M %m"/

/#FRS END /

PROGRAM=="/sbin/dmsetup ls --target multipath --exec /bin/basename -j %M
-m %m",

   6.

      ISCSI-initiator-utils installieren

      #yum install iscsi-*

      iscsi Daemon starten:

      #service iscsi start

   7.

      Mit ISCSI-Target verbinden:

      Targets des SAN anzeigen

      #iscsiadm -m discovery -t sendtargets -p <sanIP>


Datensatz/node für neues Target anlegen

      #/root/iscsi.new <target> <sanIP> [chapname] [chappasswort]

      Neuen Datensatz/node anzeigen

      #iscsiadm -m node

      Verbindung zum Target aufnehmen/einloggen

      #iscsiadm -m node -T <target> -p <sanIP> -l { -u logout}

      Session anzeigen

      #iscsiadm -m session [-i]


Devicename ermitteln

#tail -50 /var/log/messages



   8.

      multipath

      http://docs.solstice.nl/index.php/Infrastructure_virtualisation_with_Xen_advisory#iSCSI

      http://lists.centos.org/pipermail/centos/2006-April/063699.html

      #yum install device-mapper-multipath

      Kernelmodul laden

      #insmod /lib/modules/{uname -r}/kernel/drivers/md/dm-multipath.ko

      /etc/multipath.conf editieren:

     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"
	  prio_callout		/bin/true
	  path_checker		readsector0
	  rr_min_io		100
	  rr_weight		priorities
	  failback		immediate
	  no_path_retry		3
	  user_friendly_name	no
     }
     blacklist {
        devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st|sda)[0-9]*"
        devnode "^sda[[0-9]*]"
        devnode "^hd[a-z][[0-9]*]"
        devnode "^cciss!c[0-9]d[0-9]*[p[0-9]*]"
     }
     multipaths {
     }   

#chkconfig multipathd on

#service multipathd restart


Mit beiden Target verbinden (siehe oben)

   #iscsiadm -m node -T target01:san1 -p 192.168.1.1 -l
   #iscsiadm -m node -T target01:san1 -p 192.168.2.1 -l

Das neue Device überprüfen:cd /

multipath -ll


für den Fall, das keine Ausgabe erfolgt

multiptah -v 3




> Hallo Liste,
>
> Ich möchte bzw. muss einen Cluster mit 2 Nodes bauen die an ein
> Fibrechannel Storage angeschlossen sind.
> Ich hab das schon mal mit 2 VM?s und einer shared Disk getestet aber
> irgendwie will?s nicht so richtig.
>
> Der Plan ist das die 2 Server (nodes) ihre Xen VM?s auf einem
> gemeinsamen Volume ablegen so dass per heartbeat ein einfaches
> Failover realisiert werden kann.
> Die Server selbst sollen der einfachheit halber nicht vom SAN booten.
> Das müsste mit der Cluster Suite mit Centos doch zu machen sein.
>
> Multipathing wäre auch nicht schlecht.
>
> Hat jemand so eine Lösung schon gebaut, bzw kennt jemand ein nettes
> howto dafür.
>
> Gruß Harry
>
>
>
>
>
>


-- 
Stephan Mante 
X-GPG-FINGERPRINT: 82A9 D396 52E4 7423 D45B 0FD3 D86F F5A5 4CCB 3152 
Internet: http://portal.frs.info http://www.frs.de

Förde Reederei Seetouristik GmbH & Co.KG
Postfach 26 26 - 24916 Flensburg
Telefon: 0461/864-0

Verwaltungsgesellschaft Förde Reederei Seetouristik mbH - Flensburg
Amtsgericht Flensburg HRB 2141 und HRA 3231
Geschäftsführer: Götz Becker, Johann Friedrichsen, Jan Kruse
Steuernummer: 15 280 39804