Benutzer-Werkzeuge

Webseiten-Werkzeuge


vmware:iscsi_target_for_shared_disks

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
vmware:iscsi_target_for_shared_disks [2018/06/02 18:16]
gpipperr [ASM Platten hinzufügen]
vmware:iscsi_target_for_shared_disks [2018/06/02 18:21] (aktuell)
gpipperr [ASM Platten hinzufügen]
Zeile 1: Zeile 1:
 +====== iSCSI  Target für das Bereitstellen von Cluster Platten in VMWare  unter Linux 7======
 +
 +**01.2015 - Update 09.2016**
 +
 +
 +Siehe für  Linux 6 die älteren Anmerkungen zu diesem Thema => [[vmware:iscsi_target_for_shared_disks_linux6|iSCSI  Target für das Bereitstellen von Cluster Platten in VMWare unter Linux 6]]
 +
 +
 +== Intention==
 +
 +Folgende Problematik hat sich bei mir mit VMWare Workstation 10 ergeben:
 +
 +Shared Disk möglich ABER => Gleichzeitiges Öffnen vom Controlfile im Oracle Rac Cluster führt zum Fehler.
 +
 +Läuft nur einer der beiden Knoten, kann der jeweilige Knoten problemlos das Controlfile auf einer gemeinsame ASM Platte verwenden, laufen beide Knoten kann der Knoten 2 die Platte lesen, auf die Platte schreiben aber NICHT das Controlfile öffnen.
 +
 +=> Wir brauchen ein Shared Storage für eine echte VMWare Oracle Cluster Lösung
 +
 +
 +===Terminologie===
 +
 +
 +  * iSCSI  = Internet Small Computer System Interface
 +  * LUN = Logical Unit Number - virtuelle Festplatte aus Sicht eines Betriebssystems
 +  * iSCSI  Target       => Server der den iSCSI Dienst und damit die Lun’s  zur Verfügung stellt
 +  * iSCSI  Initiatoren  => Clients die diese LUN‘S einbinden können
 +=== Aufgabe== 
 +Folgende Lun’s  sollen für die 12c RAC Umgebung konfiguriert werden:
 +
 +{{ :dba:rac:platten_konfiguration_rac_12c_v01.png | Oracle 12c Rac - Eine minimale Platten Konfiguration}}
 +
 +
 +Die "Luns" werden aus alle aus einem Volumen „racstore01“ auf heraus angelegt und dann über  iSCSI propagiert.
 +
 +
 +----
 +
 +====Das Betriebssystem installieren und vorbereiten====
 +
 +==Grundinstallation==
 +
 +Zum Einsatz kommt ein Oracle Linux 7.0 - minimale Grundinstallation ohne X, allerdings manuell die Platte konfiguriert, das Default Layout verwendet viel Platz für den User Home Pfad mit  RAM =  2GB,  eine virtuelle CPU, 40GB / Root Platte
 +
 +
 +Alternativ könnten auch eine NAS Appliance wie [[http://www.openfiler.com|OpenFiler]] (schon seit längeren nicht mehr gepflegt? oder  aktueller [[http://www.freenas.org/|FreeNAS]] zum Einsatz kommen. 
 +
 +Allerdings benötigt der FreeNAS ~8GB RAM, was die mögliche Anzahl von gleichzeitigen VM’s auf einem Notebook  stark einschränkt.
 +
 +Per Yum Update dann am 22.03.2015 auf Oracle 7.1 upgedated, soweit keine Probleme aufgetaucht.
 +
 +
 +==Weitere Schritte==
 +
 +  * Yum Repository prüfen, Konfiguration bei Bedarf anlegen (normalerweise bereits automatisch erfolgt( <code bash>
 +# cd /etc/yum.repos.d
 +# wget http://public-yum.oracle.com/public-yum-ol7.repo
 +</code> 
 +  * Update mit <code bash>yum update</code>
 +  * Firewalld unter linux7 deaktivieren :<code bash>
 +systemctl disable firewalld
 +systemctl stop firewalld
 +</code>
 +  *  IP V6 ausschalten<code bash>
 +vi /etc/sysctl.conf
 +# disable ipv6
 +net.ipv6.conf.all.disable_ipv6 = 1
 +net.ipv6.conf.default.disable_ipv6 = 1
 +net.ipv6.conf.lo.disable_ipv6 = 1
 +
 +sysctl -p
 +
 +#Testen mit:
 +
 +cat /proc/sys/net/ipv6/conf/all/disable_ipv6
 +
 +1
 +
 +# 1=Ausgeschaltet!
 +</code>
 +  * SELinux deaktivieren:<code bash>
 +vi /etc/selinux/config
 +..
 +SELINUX=disabled
 +..
 +
 +reboot
 +
 +getenforce
 +
 +Disabled
 +
 +</code>
 +  * Netzwerk einrichten und darauf achten das in etc/hosts der Server in der Form "10.10.10.180 storage01.pipperr.local storage01" hinterlegt ist und hostname -a  / -f auch entsprechend den Namen der Maschine zurückgeben
 +  * Zeitdienst einrichten , siehe auch => [[linux:linux_rac_ntp|Die Uhrzeit unter Linux für eine Oracle Cluster Installation überwachen/prüfen und kontrollieren]]
 +  * Interface Name wieder auf eth0 konfigurieren, siehe [[linux:linux7_et_interface_name_anpassen| Unter Linux 7 den Netwerk Interface Namen wieder auf Standard Verhalten umstellen]]
 +  * Falls das „tmp“ Verzeichnis als eigene Disk gemountet ist, darauf achten das  "Execute" gesetzt ist und nicht mit "noexec" gemounted wurde
 +
 +
 +
 +<fc #9acd32>Hinweis:</fc>
 +Ab der Linux 7 Versionen ist der ifconfig Befehlt mit pifconfig ersetzt worden! 
 +
 +
 +----
 +
 +
 +==== Die Lun‘s in einem eigenen Volumen anlegen ====
 +
 +Die per iSCSI dann zur Verfügung gestellten Platten liegen in einem eigenen Volumen.
 +
 +Ablauf:
 +
 +  * Eine neue Platte mit 150GB an die Maschine "konfigurieren"
 +  * LVM „volume group“ anlegen<code bash>
 +vgcreate racstore01 /dev/sdb
 +</code>
 +  * LVM logical volume für jede benötigte RAC Lun anlegen<code bash>
 + lvcreate --size 6G -n vota01 racstore01 
 + lvcreate --size 6G -n votb01 racstore01 
 + lvcreate --size 6G -n votc01 racstore01 
 + lvcreate --size 10G -n redoa01 racstore01 
 + lvcreate --size 10G -n redob01 racstore01 
 + lvcreate --size 20G -n data01 racstore01 
 + lvcreate --size 20G -n data01 racstore01 
 + lvcreate --size 20G -n data02 racstore01 
 + lvcreate --size 20G -n data03 racstore01 
 + lvcreate --size 20G -n acfs01 racstore01 
 +
 +#Devices dazu identifizieren:
 +cd /dev/racstore01
 +ls -l
 +lrwxrwxrwx  1 root root    8 Mar  8 17:24 acfs01 -> ../dm-10
 +lrwxrwxrwx  1 root root    7 Mar  8 17:24 data01 -> ../dm-7
 +lrwxrwxrwx  1 root root    7 Mar  8 17:24 data02 -> ../dm-8
 +lrwxrwxrwx  1 root root    7 Mar  8 17:24 data03 -> ../dm-9
 +lrwxrwxrwx  1 root root    7 Mar  8 17:24 redoa01 -> ../dm-5
 +lrwxrwxrwx  1 root root    7 Mar  8 17:24 redob01 -> ../dm-6
 +lrwxrwxrwx  1 root root    7 Mar  8 17:22 vota01 -> ../dm-2
 +lrwxrwxrwx  1 root root    7 Mar  8 17:24 votb01 -> ../dm-3
 +lrwxrwxrwx  1 root root    7 Mar  8 17:24 votc01 -> ../dm-4
 +
 +</code>
 +
 +
 +----
 +
 +
 +==== Breitstellen der Cluster Platten über iSCSI  - Konfiguration der Targets  mit "targetcli"====
 +
 +Ab Linux 7 werden die Targets mit "targetcli" konfiguriert.
 +
 +
 +==Notwendige Pakete einspielen==
 +<code bash>
 +yum install targetd
 +yum install targetcli
 +</code>
 +
 +Um das folgende spätere Problem beim Starten des „targetd“ zu vermeiden, ein Password in der targetd.yaml hinterlegen:
 +<code>
 +#Probem
 + CRITICAL:root:password not set in /etc/target/targetd.yaml
 +
 +vi /etc/target/targetd.yaml
 +
 +..
 +vi /etc/target/targetd.yaml
 +
 +#Password eintragen
 +password:  abcde1234!
 +
 +#vg eintragen
 +pool_name:  racstore01
 +
 +user:  root
 +ssl:  false
 +
 +#Target Namen dann später in der Konfiguration verwenden!
 +target_name: iqn.2015-03.pipperr.local:server
 +
 +
 +</code>
 +<fc #800000>! Darauf achten das nach dem ":" immer ein Leerzeichen folgen muss!</fc>
 +
 +==Vorhandene Cluster Platten aus dem LVM  anzeigen lassen==
 +<code bash>
 +lvs
 +LV      VG         Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert
 +  ..
 +  acfs01  racstore01 -wi-a----- 20.00g
 +  data01  racstore01 -wi-a----- 20.00g
 +  data02  racstore01 -wi-a----- 20.00g
 +  data03  racstore01 -wi-a----- 20.00g
 +  redoa01 racstore01 -wi-a----- 10.00g
 +  redob01 racstore01 -wi-a----- 10.00g
 +  vota01  racstore01 -wi-a-----  2.00g
 +  votb01  racstore01 -wi-a-----  2.00g
 +  votc01  racstore01 -wi-a-----  2.00g
 +
 +</code>
 +
 +===Konfiguration erstellen===
 +Die Konfiguraton wird mit dem „targetcli“ Utility erstellt. 
 +==Zuvor evtl. alten targetcli Konfigurationen löschen==
 +<code bash>
 +targetcli clearconfig confirm=true
 +All configuration cleared
 +</code>
 +
 +
 +==targetcli aufrufen==
 +<code bash>
 +targetcli
 +</code>
 +
 +Um Fehlermeldung beim Anlegen zu vermeiden, folgende Eigenschaft setzen:
 +
 +targetcli:
 +<code bash>
 +cd /
 +/> set global export_backstore_name_as_model=false
 +</code>
 +
 +
 +==Die vorbereiteten LV's als  "backstores" vom Type "block" anlegen/bekanntgeben==
 +
 +targetcli:
 +<code bash>
 +
 +/> cd backstores/block 
 +
 +create rac01-vota01 /dev/racstore01/vota01
 +create  rac01-acfs01  /dev/racstore01/acfs01  
 +create  rac01-data01  /dev/racstore01/data01 
 +create  rac01-data02  /dev/racstore01/data02 
 +create  rac01-data03  /dev/racstore01/data03 
 +create  rac01-redoa01 /dev/racstore01/redoa01
 +create  rac01-redob01 /dev/racstore01/redob01
 +create  rac01-votb01  /dev/racstore01/votb01 
 +create  rac01-votc01  /dev/racstore01/votc01 
 +
 +
 +/backstores/block> ls
 +
 +o- block ...................................................................................................... [Storage Objects: 9]
 +  o- rac01-acfs01 ........................................................ [/dev/racstore01/acfs01 (20.0GiB) write-back deactivated]
 +  o- rac01-data01 ........................................................ [/dev/racstore01/data01 (20.0GiB) write-back deactivated]
 +  o- rac01-data02 ........................................................ [/dev/racstore01/data02 (20.0GiB) write-back deactivated]
 +  o- rac01-data03 ........................................................ [/dev/racstore01/data03 (20.0GiB) write-back deactivated]
 +  o- rac01-redoa01 ...................................................... [/dev/racstore01/redoa01 (10.0GiB) write-back deactivated]
 +  o- rac01-redob01 ...................................................... [/dev/racstore01/redob01 (10.0GiB) write-back deactivated]
 +  o- rac01-vota01 ......................................................... [/dev/racstore01/vota01 (2.0GiB) write-back deactivated]
 +  o- rac01-votb01 ......................................................... [/dev/racstore01/votb01 (2.0GiB) write-back deactivated]
 +  o- rac01-votc01 ......................................................... [/dev/racstore01/votc01 (2.0GiB) write-back deactivated]
 +
 +
 +</code>
 +
 +==IQN / WWN des Server hinterlegen==
 +
 +targetcli:
 +<code bash>
 +
 +cd /
 +cd /iscsi
 +
 +create iqn.2015-03.pipperr.local:server
 +
 +Created target iqn.2015-03.pipperr.local:server.
 +Created TPG 1.
 +
 +ls
 +
 +</code>
 +
 +==ACL's hinterlegen==
 +
 +targetcli:
 +<code bash>
 +
 +cd /iscsi/iqn.2015-03.pipperr.local:server/tpg1/acls
 +
 +/iscsi/iqn.20...ver/tpg1/acls> 
 +
 +create iqn.2015-03.pipperr.local:client
 +create iqn.2015-03.pipperr.local:racdb01
 +create iqn.2015-03.pipperr.local:racdb02
 +
 +
 +ls
 +
 +o- acls .................................................................................................................. [ACLs: 3]
 +  o- iqn.2015-03.pipperr.local:client ............................................................................. [Mapped LUNs: 0]
 +  o- iqn.2015-03.pipperr.local:racdb01 ............................................................................ [Mapped LUNs: 0]
 +  o- iqn.2015-03.pipperr.local:racdb02 ............................................................................ [Mapped LUNs: 0]
 +
 +
 +</code>
 +
 +
 +
 +==LUN's anlegen==
 +
 +targetcli:
 +<code bash>
 +
 +cd /iscsi/iqn.2015-03.pipperr.local:server/tpg1/luns
 +
 +create /backstores/block/rac01-acfs01 
 +create /backstores/block/rac01-data01 
 +create /backstores/block/rac01-data02 
 +create /backstores/block/rac01-data03 
 +create /backstores/block/rac01-redoa01
 +create /backstores/block/rac01-redob01
 +create /backstores/block/rac01-vota01 
 +create /backstores/block/rac01-votb01 
 +create /backstores/block/rac01-votc01 
 +
 +
 +ls
 +
 +o- luns .................................................................................................................. [LUNs: 9]
 +  o- lun0 ............................................................................ [block/rac01-acfs01 (/dev/racstore01/acfs01)]
 +  o- lun1 ............................................................................ [block/rac01-data01 (/dev/racstore01/data01)]
 +  o- lun2 ............................................................................ [block/rac01-data02 (/dev/racstore01/data02)]
 +  o- lun3 ............................................................................ [block/rac01-data03 (/dev/racstore01/data03)]
 +  o- lun4 .......................................................................... [block/rac01-redoa01 (/dev/racstore01/redoa01)]
 +  o- lun5 .......................................................................... [block/rac01-redob01 (/dev/racstore01/redob01)]
 +  o- lun6 ............................................................................ [block/rac01-vota01 (/dev/racstore01/vota01)]
 +  o- lun7 ............................................................................ [block/rac01-votb01 (/dev/racstore01/votb01)]
 +  o- lun8 ............................................................................ [block/rac01-votc01 (/dev/racstore01/votc01)]
 +
 +
 +</code>
 +
 +
 +
 +==Portal anlegen==
 +
 +targetcli:
 +<code bash>
 +cd /iscsi/iqn.2015-03.pipperr.local:server/tpg1/portals
 +
 +/iscsi/iqn.20.../tpg1/portals> create
 +
 +Using default IP port 3260
 +Binding to INADDR_ANY (0.0.0.0)
 +Created network portal 0.0.0.0:3260.
 +
 +
 +</code>
 +
 +
 +==Konfiguration überprüfen und speichern==
 +
 +targetcli:
 +<code bash>
 +
 +cd /
 +
 +ls 
 +
 +
 +saveconfig
 +Last 10 configs saved in /etc/target/backup.
 +Configuration saved to /etc/target/saveconfig.json
 +
 +exit
 +
 +</code>
 +
 +
 +==Den  targetd service aktiveren==
 +
 +<code bash>
 +systemctl enable targetd
 +systemctl status targetd
 +</code>
 +
 +
 +=== Testen auf dem lokalen Client===
 +
 +Mit den iSCSI  Client auf der lokalen Maschine überprüfen.
 +
 +
 +<code bash>
 +# Client installieren
 +yum install iscsi-initiator-utils
 +# Client configurieren
 +cd /etc/iscsi/
 +vi initiatorname.iscsi
 +InitiatorName=iqn.2015-03.pipperr.local:client
 +
 +#scsi service neu starten
 +systemctl restart iscsid
 +systemctl restart iscsi
 +
 +</code>
 +
 +
 +Testen mit:
 +<code bash>
 +
 +iscsiadm -m discovery -t sendtargets -p storage01
 +10.10.10.180:3260,1 iqn.2015-03.pipperr.local:server
 +
 +iscsiadm --mode node --targetname iqn.2015-03.pipperr.local:server --portal storage01 --login
 +
 +#alle Block Devices anzeigen lassen, die neuen Platten sollten am Ende angezeigt werden
 +lsblk --scsi
 +
 +#prüfen das die Platte nicht auf Readonly (RM=1) steht!
 +lsblk | egrep "NAME|sdk"
 +NAME                 MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
 +sdk                    8:160  0    2G  0 disk
 +
 +
 +
 +#Meldung ausgeben lassen das neue Platten gebunden wurden
 +dmesg
 +
 +
 +#Neue Devices anzeigen lassen
 +fdisk -l | grep Disk
 +
 +</code>
 +
 +
 +
 +
 +
 +Quellen:
 +  * http://linux-iscsi.org/wiki/Targetcli
 +  * http://www.certdepot.net/rhel7-configure-iscsi-target-initiator-persistently/
 +  * https://wiki.rvijay.in/index.php/Configuring_iSCSI_target_using_%27targetcli%27
 +  * https://www.youtube.com/watch?v=P21EAIeQf4g
 +
 +
 +----
 +
 +
 +==== Bereitstellen der iSCSI  Lun auf dem Zielsystem ====
 +
 +Zielsystem : Oracle Linux 7.0 64bit
 +
 +
 +== Namensauflösung für iSCSI Server prüfen oder statisch einrichten ==
 +
 +In Host Datei eintragen:
 +<code bash>
 +vi  /etc/hosts
 +..
 +10.10.10.180 storage01.pipperr.local storage01
 +</code>
 +
 +==Paket "iSCSI -initiator-utils" installieren==
 +<code bash>
 +yum install iscsi-initiator-utils
 +
 +systemctl enable iscsid
 +systemctl enable iscsi
 +
 +</code>
 +
 +== InitiatorName anpassen ==
 +
 +<code bash>
 +cd /etc/iscsi
 +
 +#Namen anpassen!
 +vi initiatorname.iscsi
 +
 +InitiatorName=iqn.2015-03.pipperr.local:racdb01
 +
 +</code>
 +
 +<note>Fehler: "SCSI_ERR_TCP_CONN_CLOSE: TCP Connection Closed" - Darauf achten das in einer geklonten Umgebung der Name des iSCSI - Initiators auch unique ist!</note>
 +
 +
 +
 +==Konfigurieren der Luns  über die Datei iscsid.conf==
 +<code bash>
 +vi /etc/iscsi/iscsid.conf 
 +..
 +node.startup = automatic
 +..
 +</code>
 +
 +
 +==Starten==
 +<code bash>
 +
 +#scsi service neu starten
 +systemctl restart iscsid
 +systemctl restart iscsi
 +
 +</code>
 +
 +==Targets erkennen==
 +<code bash>
 +# netz testen 
 +ping storage01
 +
 +# Was stellt der Server zur Verfügung
 +iscsiadm -m discovery -t sendtargets -p storage01
 +
 +10.10.10.180:3260,1 iqn.2015-03.pipperr.local:server
 +
 +#Eigenschaften des Servers
 +
 +iscsiadm -m node -o show
 +
 +</code>
 +
 +==Anmelden==
 +<code bash>
 +iscsiadm -m node --login
 +
 +Logging in to [iface: default, target: iqn.2015-03.pipperr.local:server, portal: 10.10.10.180,3260] (multiple)
 +Login to [iface: default, target: iqn.2015-03.pipperr.local:server, portal: 10.10.10.180,3260] successful.
 +
 +</code>
 +
 +Session anzeigen:
 +<code bash>
 +iscsiadm -m session -P 3
 +</code>
 +
 +==Überwachen==
 +<code bash>
 +iscsiadm -m session -o show
 +</code>
 +
 +
 +== Platten anzeigen lassen ==
 +
 +<code  bash>
 +lsblk --scsi
 +
 +</code>
 +
 +
 +
 +Partition anzeigen lassen:
 +
 +<code bash>
 + cat /proc/partitions
 + ...
 +  112 104856223 sdh
 +</code>
 +
 +
 +==Disk wieder abmelden==
 +
 +<code bash>
 +iscsiadm -m node -T  iqn.2015-03.pipperr.local:server -u
 +</code>
 +
 +
 +==Automatisch anmelden==
 +<code bash>
 +iscsiadm -m node -T iqn.2015-03.pipperr.local:server -p storage01 --op update -n node.startup -v automatic
 +</code>
 +
 +
 +bzw: mit "iscsiadm -m node -T iqn.2015-03.pipperr.local:server -p storage01 --op update -n node.startup -v manual wieder ausschalten"
 +
 +
 +
 +Booten und testen ob die Platten erneut im System angezeigt werden.
 +
 +
 +----
 +
 +
 +
 +----
 +
 +====Auf dem RAC Knoten ASM Platte einrichten====
 +
 +== ASM Library installieren ==
 +<code bash>
 +yum install oracleasm-support
 +</code>
 +
 +==Oracle User anlegen==
 +
 +<code bash>
 +
 +groupadd -g 1000 oinstall
 +groupadd -g 1001 dba
 +groupadd -g 1002 asmadmin
 + 
 +useradd -u 1100 -g oinstall -G dba  oracle
 +usermod -a -G asmadmin oracle
 +passwd oracle
 + 
 + 
 +useradd -u 1101 -g oinstall -G dba  grid
 +usermod -a -G asmadmin grid
 +passwd grid
 +
 +</code>
 +
 +
 +== ASM konfigurieren auf allen Knoten ==
 +
 +**Als user root!**
 +
 +Damit der Grid User UND der Oracle User auf die Platten zugreifen, die Gruppe asmadmin  gewählt!
 +
 +<code bash>
 +
 +oracleasm configure -i
 +
 +Default user to own the driver interface []: grid
 +Default group to own the driver interface []: asmadmin  
 +Scan for Oracle ASM disks on boot (y/n) [y]: y
 +Writing Oracle ASM library driver configuration: done
 +
 +</code>
 +
 +== ASM starten ==
 +
 +**Als user root!**
 +<code bash>
 +oracleasm init
 +</code>
 +
 +== Platten partitionieren ==
 +
 +<code>
 +
 +lsblk
 +
 +
 +# neue primäre Partition über die ganze Platte anlegen
 +fdisk /dev/sdb
 +
 +#In each case, the sequence of answers is 
 +
 +"n", "p", "1", "Return", "Return", "p" and "w".
 +
 +</code>
 +
 +==ASM Header auf die Platten schreiben schreiben==
 +
 +<code>
 +
 +#Jede Platten erzeugen
 +oracleasm createdisk DATA01 /dev/sdb1
 +
 +Writing disk header: done
 +Instantiating disk: done
 +
 +
 +# Platten einlesen
 +
 +oracleasm listdisks
 +
 +</code>
 +
 +== Reboot Test ==
 +
 +Reboot und testen ob die Platten alle wieder da sind
 +
 +<code bash>
 +oracleasm listdisks
 +</code>
 +
 +Werden keine Platten angezeigt neu scannen:
 +
 +<code bash>
 +oracleasm scandisks
 +
 +Reloading disk partitions: done
 +Cleaning any stale ASM disks...
 +Scanning system for ASM disks...
 +Instantiating disk "DATA01"
 +
 +...
 +</code>
 +
 +
 +=> <fc #800000>Daraus folgt das hier die falsche boot Reihenfolge bzgl. ASM Treiber / Network Manager / iSCSI Service vorliegt.</fc>
 +
 +Der ASM Service/Treiber muss als nach dem iSCSI starten!
 +
 +Einrichten der Abhängigkeiten über die Service Eigenschaften "equires" und "after" mit:
 +<code bash>
 +
 +vi /usr/lib/systemd/system/oracleasm.service
 +
 +[Unit]
 +Description=Load oracleasm Modules
 +
 +#Abhängigkeit hinzufügen
 +
 +equires=iscsi.service
 +After=iscsi.service
 +...
 +
 +#neu starten
 +
 +reboot
 +
 +
 +#testen 
 +
 +oracleasm listdisks
 +
 +DATA01
 +...
 +VOT03
 +
 +#Funktioniert!
 +
 +</code>
 +
 +
 +Falls Platte gemounted wurde die Eigenschaften mit blkid anzeigen:
 +<code bash>
 +blkid
 +
 +...
 +/dev/sdb1: LABEL="DATA01" TYPE="oracleasm"
 +...
 +/dev/sdj1: LABEL="VOT03" TYPE="oracleasm"
 +
 +#Eigenschaften anzeigen
 +
 +blkid -i /dev/sdj1
 +
 +DEVNAME=/dev/sdj1
 +MINIMUM_IO_SIZE=512
 +OPTIMAL_IO_SIZE=4194304
 +PHYSICAL_SECTOR_SIZE=512
 +LOGICAL_SECTOR_SIZE=512
 +
 +
 +</code>
 +
 +----
 +
 +==== Last Test ====
 +
 +  * Orion 
 +    * => http://oraclue.com/2009/10/27/orion-oracle-io-calibration-tool-included-in-11g-r2/
 +    * => http://www.oracle.com/technetwork/jp/topics/index-096484-ja.html
 +
 +  * slob => http://kevinclosson.net/slob/
 +
 +
 +=== Orion ===
 +
 +Nur noch über die Japanische Oracle Website herunterladbar, wird wohl bald nicht mehr verfügbar sein.
 +
 +<code bash>
 +
 +yum install libaio
 +
 +gzip -d orion_linux_x86-64.gz
 +
 +chmod 764 orion_linux_x86-64
 +
 +./orion_linux_x86-64 help=yes
 +ORION: ORacle IO Numbers -- Version 11.1.0.7.0
 +
 +
 +#erste Test
 +
 +#Platte angeben über eine Steuerdatei mit dem Name des Testes
 +
 +vi iSCSI.lun
 +/dev/oracleasm/disks/DATA01
 +
 +
 +#starten
 +./orion_linux_x86-64 -run simple -testname iSCSI -num_disks 1
 +
 +#Ergebnis
 +# ein meiner VMware Testumgebung kann ich ~56MB/s erreichen
 +
 +#Ergebnis anzeigen:
 +
 +cat iSCSI_20150309_2350_summary.txt
 +
 +Maximum Large MBPS=55.99   @ Small=0 and Large=1
 +Maximum Small IOPS=3290    @ Small=5 and Large=0
 +Minimum Small Latency=0.56 @ Small=1 and Large=0
 +
 +
 +
 +</code>
 +
 +
 +
 +siehe auch [[dba:oracle_io_last_werkzeug_orion|Oracle Orion Last Test]]
 +----
 +
 +
 + 
 +==== Problem beim Start von targetd ====
 +
 +<fc #ff0000>Nach dem Einrichten ließ sich targetd nicht starten:</fc>
 +
 +<code bash>
 +
 +[root@storage01 target]# systemctl stop targetd
 +[root@storage01 target]# systemctl start targetd
 +[root@storage01 target]# systemctl status targetd -l
 +targetd.service - targetd storage array API daemon
 +   Loaded: loaded (/usr/lib/systemd/system/targetd.service; enabled)
 +   Active: failed (Result: exit-code) since Sun 2015-03-08 23:24:30 CET; 2s ago
 +  Process: 2231 ExecStart=/usr/bin/targetd (code=exited, status=1/FAILURE)
 + Main PID: 2231 (code=exited, status=1/FAILURE)
 +
 +Mar 08 23:24:30 storage01.pipperr.local targetd[2231]: Traceback (most recent call last):
 +Mar 08 23:24:30 storage01.pipperr.local targetd[2231]: File "/usr/bin/targetd", line 24, in <module>
 +Mar 08 23:24:30 storage01.pipperr.local targetd[2231]: sys.exit(main())
 +Mar 08 23:24:30 storage01.pipperr.local targetd[2231]: File "/usr/lib/python2.7/site-packages/targetd/main.py", line 212, in main
 +Mar 08 23:24:30 storage01.pipperr.local targetd[2231]: load_config(default_config_path)
 +Mar 08 23:24:30 storage01.pipperr.local targetd[2231]: File "/usr/lib/python2.7/site-packages/targetd/main.py", line 173, in load_config
 +Mar 08 23:24:30 storage01.pipperr.local targetd[2231]: config[key] = value
 +Mar 08 23:24:30 storage01.pipperr.local targetd[2231]: TypeError: 'str' object does not support item assignment
 +Mar 08 23:24:30 storage01.pipperr.local systemd[1]: targetd.service: main process exited, code=exited, status=1/FAILURE
 +Mar 08 23:24:30 storage01.pipperr.local systemd[1]: Unit targetd.service entered failed state.
 +
 +</code>
 +
 +Fehlermeldung ist wohl mehr als nichtssagend.....
 +
 +<fc #008080>Lösung</fc>:
 +
 +In der targetd.yaml ist das Password falsch angegeben, in diesen YAML Dateien muss ein Leerzeichen nach dem ":" folgen!
 +
 +<code>
 +vi /etc/target/targetd.yaml
 +
 +
 +password: abcde1234!
 +# defaults below; uncomment and edit
 +pool_name: racstore01
 +user: root
 +ssl: false
 +target_name: iqn.2015-03.pipperr.local:server
 +
 +</code>
 +
 +Auch müssen die anderen Werte gesetzt werden, sonst folgen weiter Fehlermeldungen dieser Art!
 +
 +
 +----
 +
 +=== ASM Platten löschen und neu anlegen ===
 +
 +Muss eine ASM Platte neu initialisiert werden:, zum Beispiel nach einer fehlgeschlagenen Installation:
 +
 +Auf ersten Knoten:
 +<code bash>
 +oracleasm deletedisk VOT01
 +oracleasm deletedisk VOT02
 +oracleasm deletedisk VOT03
 +
 +</code>
 +
 +Auf zweiten Knoten neu alles einlesen
 +<code bash>
 +oracleasm scandisks
 +oracleasm listdisks
 +</code>
 +
 +Platten neu anlegen auf dem Knoten 1
 +<code bash>
 +lsblk
 +oracleasm createdisk VOT1 /dev/sdh1
 +oracleasm createdisk VOT2 /dev/sdi1
 +oracleasm createdisk VOT3 /dev/sdj1
 +
 +oracleasm listdisks
 +
 +</code>
 +
 +Auf dem Knoten 2 neu einlesen:
 +<code bash>
 +oracleasm scandisks
 +oracleasm listdisks
 +</code>
 +
 +
 +----
 +
 +=== ASM Platten Größen verändern ===
 +
 +Bei der Installation hat sich herausgestellt,das der Wert von 2GB für die OCR/Voting Platten aus der 11g Umgebung für die 12c zu klein ist, hier sind min. 5.2 GB vorgeschlagen.
 +
 +RAC Umgebung daher gestoppt und Plattengröße angepasst, <fc #800000>allerdings gehen hierbei evtl. Daten auf der Platte verloren!</fc>:
 +
 +
 +Wieviel Platz hat das Volume noch:
 +<code bash>
 + pvs /dev/sdb
 +  PV         VG         Fmt  Attr PSize   PFree
 +  /dev/sdb   racstore01 lvm2 a--  140.00g 34.00g
 +
 +</code>
 +=> 34GB Frei
 +
 +Was belegt den Platz:
 +<code bash>
 +lvs racstore01
 +  LV      VG         Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert
 +  acfs01  racstore01 -wi-ao---- 20.00g
 +  data01  racstore01 -wi-ao---- 20.00g
 +  data02  racstore01 -wi-ao---- 20.00g
 +  data03  racstore01 -wi-ao---- 20.00g
 +  redoa01 racstore01 -wi-ao---- 10.00g
 +  redob01 racstore01 -wi-ao---- 10.00g
 +  vota01  racstore01 -wi-ao----  2.00g
 +  votb01  racstore01 -wi-ao----  2.00g
 +  votc01  racstore01 -wi-ao----  2.00g
 +
 +</code>
 +
 +
 +Voting Platten auf 6 GB für 12c erweiteren:
 +<code bash>
 +lvextend -L6G /dev/racstore01/vota01
 +lvextend -L6G /dev/racstore01/votb01
 +lvextend -L6G /dev/racstore01/votc01
 +
 +#prüfen
 +
 +lvs | grep vot
 +  vota01  racstore01 -wi-ao----  6.00g
 +  votb01  racstore01 -wi-ao----  6.00g
 +  votc01  racstore01 -wi-ao----  6.00g
 +
 +</code>
 +
 +Akuelle Größe der Partition bestimmen und neu anlegen zum Vergrößern
 +
 +<code bash>
 +
 +#anzeigen
 +fdisk /dev/racstore01/votc01 -l
 +
 +#löschen und neu anlegen
 +fdisk /dev/sda1
 +
 +</code>
 +Anzeigen lassen mit p, löschen mit d , Anzeige mit p, mit n neu anlegen (als wie zuvor als Primary) mit p testen und mit w zum Schluss schreiben.
 +
 +Reboot, damit die Platten neu eingelesen werden.
 +
 +== Rac knoten 1 ==
 +Rac Knoten starten und dort die ASM Platte neu anlegen:
 +<code bash>
 +oracleasm createdisk VOT01 /dev/sdh1
 +oracleasm createdisk VOT02 /dev/sdi1
 +oracleasm createdisk VOT03 /dev/sdj1
 +</code>
 +
 +<fc #800000>Nicht ganz der gewünschte Effekt, die Daten wären damit ja verloren!</fc>
 +
 +
 +----
 +
 +==== ASM Platten hinzufügen ====
 +
 +
 +Wie groß ist unser Volumen:
 +
 +<code bash>
 +
 +vgdisplay racstore01
 +
 +..
 + VG Size               140.00 GiB
 +..
 +Free  PE / Size       2507 / 9.79 GiB
 +..
 +
 +#Oder
 +pvs /dev/sdb
 +PV         VG         Fmt  Attr PSize   PFree
 +/dev/sdb   racstore01 lvm2 a--  140.00g 9.79g
 +
 +
 +#Wieviel Platz hat die Physik darunter noch
 +
 +fdisk   /dev/sdb
 +p
 +..
 +Disk /dev/sdb: 150.3 GB, 150323855360 bytes, 293601280 sectors
 +...
 +
 +</code>
 +
 +Wir möchten eine weitere 20GB Lun anlegen, d.h. wir benötigen min. 12GB.
 +
 +Das klappt nicht, wir brauchen daher eine neue Platte
 +
 +== Disk hinzufügen==
 +
 +Disk pyhsikalisch hinzufügen ( VMWare Neue Platte einbinden)
 +
 +== Disk im OS erkennen==
 +
 +rescan initialiseren
 +<code bash>
 +grep mpt /sys/class/scsi_host/host?/proc_name
 +sys/class/scsi_host/host2/proc_name:mptspi
 +
 +echo "- - -" > /sys/class/scsi_host/host2/scan
 +
 +tail /var/log/messages
 +
 +Jun  2 14:39:13 storage01 kernel: sdn: unknown partition table
 +Jun  2 14:39:13 storage01 kernel: sd 2:0:2:0: [sdn] Cache data unavailable
 +Jun  2 14:39:13 storage01 kernel: sd 2:0:2:0: [sdn] Assuming drive cache: write through
 +Jun  2 14:39:13 storage01 kernel: sd 2:0:2:0: [sdn] Attached SCSI disk
 +
 +
 +fdisk -l
 +
 +...
 +Disk /dev/sdn: 150.3 GB, 150323855360 bytes, 293601280 sectors
 +...
 +</code>
 +
 +== Disk partionieren==
 +
 +<code bash>
 +Command (m for help): p
 +
 +Disk /dev/sdn: 150.3 GB, 150323855360 bytes, 293601280 sectors
 +Units = sectors of 1 * 512 = 512 bytes
 +Sector size (logical/physical): 512 bytes / 512 bytes
 +I/O size (minimum/optimal): 512 bytes / 512 bytes
 +Disk label type: dos
 +Disk identifier: 0x6e96c8e8
 +
 +   Device Boot      Start         End      Blocks   Id  System
 +
 +Command (m for help): n
 +Partition type:
 +     primary (0 primary, 0 extended, 4 free)
 +     extended
 +Select (default p): p
 +Partition number (1-4, default 1): 1
 +First sector (2048-293601279, default 2048):
 +Using default value 2048
 +Last sector, +sectors or +size{K,M,G} (2048-293601279, default 293601279):
 +Using default value 293601279
 +Partition 1 of type Linux and of size 140 GiB is set
 +
 +Command (m for help): t
 +Selected partition 1
 +Hex code (type L to list all codes): 8e
 +Changed type of partition 'Linux' to 'Linux LVM'
 +
 +Command (m for help): w
 +The partition table has been altered!
 +
 +Calling ioctl() to re-read partition table.
 +Syncing disks.
 +
 +</code>
 +
 +
 +== Disk der VG hinzufügen==
 +<code bash>
 +
 +pvcreate /dev/sdn1
 +  Physical volume "/dev/sdn1" successfully created
 +
 +
 +vgextend racstore01 /dev/sdn1
 +  Volume group "racstore01" successfully extended
 +
 +pvscan
 +  PV /dev/sdb    VG racstore01   lvm2 [140.00 GiB / 9.79 GiB free]
 +  PV /dev/sdn1   VG racstore01   lvm2 [140.00 GiB / 140.00 GiB free]
 +
 +
 +</code>
 +
 +
 +== Neue ASM Disks erzeugen ==
 +
 +<code bash>
 +
 +lvcreate --size 20G -n data04 racstore01
 +  Logical volume "data04" created.
 +
 +lvcreate --size 20G -n data05 racstore01
 +  Logical volume "data05" created.
 +
 +cd /dev/racstore01
 +
 +ls -l data*
 +lrwxrwxrwx 1 root root 7 Mar 13 15:01 data01 -> ../dm-7
 +lrwxrwxrwx 1 root root 7 Mar 13 15:01 data02 -> ../dm-8
 +lrwxrwxrwx 1 root root 7 Mar 13 15:01 data03 -> ../dm-9
 +lrwxrwxrwx 1 root root 8 Jun  2 14:50 data04 -> ../dm-13
 +lrwxrwxrwx 1 root root 8 Jun  2 14:50 data05 -> ../dm-14
 +
 +</code>
 +
 +== Als Traget zur Verfügung stellen==
 +
 +<code bash>
 +
 +targetcli
 +targetcli shell version 2.1.fb41
 +Copyright 2011-2013 by Datera, Inc and others.
 +For help on commands, type 'help'.
 +
 +/iscsi/iqn.20...ver/tpg1/luns> cd /
 +/> set global export_backstore_name_as_model=false
 +Parameter export_backstore_name_as_model is now 'false'.
 +/> cd backstores/block
 +/backstores/block>
 +
 +/backstores/block> create  rac01-data04  /dev/racstore01/data04
 +Created block storage object rac01-data04 using /dev/racstore01/data04.
 +/backstores/block> create  rac01-data05  /dev/racstore01/data05
 +Created block storage object rac01-data05 using /dev/racstore01/data05.
 +/backstores/block> ls
 +...
 + o- rac01-data04 ........................................................ [/dev/racstore01/data04 (20.0GiB) write-thru deactivated]
 +  o- rac01-data05 ........................................................ [/dev/racstore01/data05 (20.0GiB) write-thru deactivated]
 +  
 +/backstores/block> cd /iscsi/iqn.2015-03.pipperr.local:server/tpg1/luns
 +
 +/iscsi/iqn.20...ver/tpg1/luns> create /backstores/block/rac01-data04
 +Created LUN 11.
 +Created LUN 11->11 mapping in node ACL iqn.2015-03.pipperr.local:client
 +Created LUN 11->11 mapping in node ACL iqn.2015-03.pipperr.local:racdb01
 +Created LUN 11->11 mapping in node ACL iqn.2015-03.pipperr.local:racdb02
 +/iscsi/iqn.20...ver/tpg1/luns> create /backstores/block/rac01-data05
 +Created LUN 12.
 +Created LUN 12->12 mapping in node ACL iqn.2015-03.pipperr.local:client
 +Created LUN 12->12 mapping in node ACL iqn.2015-03.pipperr.local:racdb01
 +Created LUN 12->12 mapping in node ACL iqn.2015-03.pipperr.local:racdb02
 +/iscsi/iqn.20...ver/tpg1/luns> cd /
 +/> 
 +/> saveconfig
 +Last 10 configs saved in /etc/target/backup.
 +Configuration saved to /etc/target/saveconfig.json
 +/> exit
 +Global pref auto_save_on_exit=true
 +Last 10 configs saved in /etc/target/backup.
 +Configuration saved to /etc/target/saveconfig.json
 +
 +</code>
 +
 +== Platten auf dem RAC Knoten neu erkennen==
 +
 +Am einfachsten beide Knoten neu starten, falls möglich, ansonsten online neu erkennen lassen
 +
 +
 +Das schwierige wird nun über die ganze device Nummer die richtigen Platten auf dem Server zu erkennen ....
 +
 +Auf dem ISCI Server das mapping abfragen
 +
 +<code bash>
 +targetcli ls
 +
 +...
 + iqn.2016-09.pipperr.local:server 
 +..
 +o- mapped_lun9 .......................................................................... [lun9 block/rac02-data04 (rw)]
 +  |       o- mapped_lun10 ........................................................................ [lun10 block/rac02-data05 (rw)]
 +
 +...
 +
 +</code>
 +
 +Auf dem Rac Knoten 1
 +<code bash>
 +cd /dev/disk/by-path
 +
 +ls -la | grep iqn.2016-09.pipperr.local | grep lun-9
 +lrwxrwxrwx 1 root root   9 Jun  2 15:16 ip-10.10.10.182:3260-iscsi-iqn.2016-09.pipperr.local:server-lun-9 -> ../../sdu
 +
 +ls -la | grep iqn.2016-09.pipperr.local | grep lun-10
 +lrwxrwxrwx 1 root root   9 Jun  2 15:16 ip-10.10.10.182:3260-iscsi-iqn.2016-09.pipperr.local:server-lun-10 -> ../../sdw
 +
 +lsblk /dev/sdw
 +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
 +sdw   65:96    20G  0 disk
 +
 +lsblk /dev/sdu
 +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
 +sdu   65:64    20G  0 disk
 +
 +
 +</code>
 +
 +so können wir erkennen das wir für die ASM Platte DATA04_02 das Device /dev/sdu verwenden müssen und für DATA05_02 das Device /dev/sdw
 +
 +Auf beiden mit fdisk eine Partition anlegen, mit oracleasm stemplen und auf Knoten 2 mit oracleasm scandisk einbinden.
 +
 +Das gleiche für das zweite ISCSI Storage, verwende hier eine mirror über zwei RZ Umgebungen mit Oracle ASM.
 +
 +
 +ASM Platten dann einbinden mit:
 +<code sql>
 +# als grid mit sqlplus /  as sysasm
 +
 +alter diskgroup data add 
 +  failgroup STORAGE1 disk  '/dev/oracleasm/disks/DATA04'
 +  failgroup STORAGE2 disk  '/dev/oracleasm/disks/DATA04_02'; 
 +
 +
 +</code>
 +
 +
 +----
 +
  
"Autor: Gunther Pipperr"
vmware/iscsi_target_for_shared_disks.txt · Zuletzt geändert: 2018/06/02 18:21 von gpipperr