Benutzer-Werkzeuge

Webseiten-Werkzeuge


vmware:iscsi_target_for_shared_disks

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 ⇒ 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:

 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 OpenFiler (schon seit längeren nicht mehr gepflegt?) oder aktueller 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(
    # cd /etc/yum.repos.d
    # wget http://public-yum.oracle.com/public-yum-ol7.repo
  • Update mit
    yum update
  • Firewalld unter linux7 deaktivieren :
    systemctl disable firewalld
    systemctl stop firewalld
  • IP V6 ausschalten
    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!
  • SELinux deaktivieren:
    vi /etc/selinux/config
    ..
    SELINUX=disabled
    ..
     
    reboot
     
    getenforce
     
    Disabled
  • 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
  • Falls das „tmp“ Verzeichnis als eigene Disk gemountet ist, darauf achten das „Execute“ gesetzt ist und nicht mit „noexec“ gemounted wurde

Hinweis: 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
    vgcreate racstore01 /dev/sdb
  • LVM logical volume für jede benötigte RAC Lun anlegen
     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

Breitstellen der Cluster Platten über iSCSI - Konfiguration der Targets mit "targetcli"

Ab Linux 7 werden die Targets mit „targetcli“ konfiguriert.

Notwendige Pakete einspielen
yum install targetd
yum install targetcli

Um das folgende spätere Problem beim Starten des „targetd“ zu vermeiden, ein Password in der targetd.yaml hinterlegen:

#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

! Darauf achten das nach dem „:“ immer ein Leerzeichen folgen muss!

Vorhandene Cluster Platten aus dem LVM anzeigen lassen
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

Konfiguration erstellen

Die Konfiguraton wird mit dem „targetcli“ Utility erstellt.

Zuvor evtl. alten targetcli Konfigurationen löschen
targetcli clearconfig confirm=true
All configuration cleared
targetcli aufrufen
targetcli

Um Fehlermeldung beim Anlegen zu vermeiden, folgende Eigenschaft setzen:

targetcli:

cd /
/> set global export_backstore_name_as_model=false
Die vorbereiteten LV's als "backstores" vom Type "block" anlegen/bekanntgeben

targetcli:

/> 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]
IQN / WWN des Server hinterlegen

targetcli:

cd /
cd /iscsi
 
create iqn.2015-03.pipperr.local:server
 
Created target iqn.2015-03.pipperr.local:server.
Created TPG 1.
 
ls
ACL's hinterlegen

targetcli:

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]
LUN's anlegen

targetcli:

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)]
Portal anlegen

targetcli:

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.
Konfiguration überprüfen und speichern

targetcli:

cd /
 
ls 
 
 
saveconfig
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json
 
exit
Den targetd service aktiveren
systemctl enable targetd
systemctl status targetd

Testen auf dem lokalen Client

Mit den iSCSI Client auf der lokalen Maschine überprüfen.

# 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

Testen mit:

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

Quellen:


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:

vi  /etc/hosts
..
10.10.10.180 storage01.pipperr.local storage01
Paket "iSCSI -initiator-utils" installieren
yum install iscsi-initiator-utils
 
systemctl enable iscsid
systemctl enable iscsi
InitiatorName anpassen
cd /etc/iscsi
 
#Namen anpassen!
vi initiatorname.iscsi
 
InitiatorName=iqn.2015-03.pipperr.local:racdb01
Fehler: „SCSI_ERR_TCP_CONN_CLOSE: TCP Connection Closed“ - Darauf achten das in einer geklonten Umgebung der Name des iSCSI - Initiators auch unique ist!
Konfigurieren der Luns über die Datei iscsid.conf
vi /etc/iscsi/iscsid.conf 
..
node.startup = automatic
..
Starten
#scsi service neu starten
systemctl restart iscsid
systemctl restart iscsi
Targets erkennen
# 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
Anmelden
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.

Session anzeigen:

iscsiadm -m session -P 3
Überwachen
iscsiadm -m session -o show
Platten anzeigen lassen
lsblk --scsi

Partition anzeigen lassen:

 cat /proc/partitions
 ...
 8  112 104856223 sdh
Disk wieder abmelden
iscsiadm -m node -T  iqn.2015-03.pipperr.local:server -u
Automatisch anmelden
iscsiadm -m node -T iqn.2015-03.pipperr.local:server -p storage01 --op update -n node.startup -v automatic

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
yum install oracleasm-support
Oracle User anlegen
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
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!

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
ASM starten

Als user root!

oracleasm init
Platten partitionieren
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".
ASM Header auf die Platten schreiben schreiben
#Jede Platten erzeugen
oracleasm createdisk DATA01 /dev/sdb1

Writing disk header: done
Instantiating disk: done


# Platten einlesen

oracleasm listdisks
Reboot Test

Reboot und testen ob die Platten alle wieder da sind

oracleasm listdisks

Werden keine Platten angezeigt neu scannen:

oracleasm scandisks
 
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
Instantiating disk "DATA01"
 
...

Daraus folgt das hier die falsche boot Reihenfolge bzgl. ASM Treiber / Network Manager / iSCSI Service vorliegt.

Der ASM Service/Treiber muss als nach dem iSCSI starten!

Einrichten der Abhängigkeiten über die Service Eigenschaften „equires“ und „after“ mit:

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!

Falls Platte gemounted wurde die Eigenschaften mit blkid anzeigen:

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

Last Test

Orion

Nur noch über die Japanische Oracle Website herunterladbar, wird wohl bald nicht mehr verfügbar sein.

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

siehe auch Oracle Orion Last Test


Problem beim Start von targetd

Nach dem Einrichten ließ sich targetd nicht starten:

[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.

Fehlermeldung ist wohl mehr als nichtssagend…..

Lösung:

In der targetd.yaml ist das Password falsch angegeben, in diesen YAML Dateien muss ein Leerzeichen nach dem „:“ folgen!

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

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:

oracleasm deletedisk VOT01
oracleasm deletedisk VOT02
oracleasm deletedisk VOT03

Auf zweiten Knoten neu alles einlesen

oracleasm scandisks
oracleasm listdisks

Platten neu anlegen auf dem Knoten 1

lsblk
oracleasm createdisk VOT1 /dev/sdh1
oracleasm createdisk VOT2 /dev/sdi1
oracleasm createdisk VOT3 /dev/sdj1
 
oracleasm listdisks

Auf dem Knoten 2 neu einlesen:

oracleasm scandisks
oracleasm listdisks

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, allerdings gehen hierbei evtl. Daten auf der Platte verloren!:

Wieviel Platz hat das Volume noch:

 pvs /dev/sdb
  PV         VG         Fmt  Attr PSize   PFree
  /dev/sdb   racstore01 lvm2 a--  140.00g 34.00g

⇒ 34GB Frei

Was belegt den Platz:

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

Voting Platten auf 6 GB für 12c erweiteren:

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

Akuelle Größe der Partition bestimmen und neu anlegen zum Vergrößern

#anzeigen
fdisk /dev/racstore01/votc01 -l
 
#löschen und neu anlegen
fdisk /dev/sda1

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:

oracleasm createdisk VOT01 /dev/sdh1
oracleasm createdisk VOT02 /dev/sdi1
oracleasm createdisk VOT03 /dev/sdj1

Nicht ganz der gewünschte Effekt, die Daten wären damit ja verloren!


ASM Platten hinzufügen

Wie groß ist unser Volumen:

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
...

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

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
...
Disk partionieren
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:
   p   primary (0 primary, 0 extended, 4 free)
   e   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.
Disk der VG hinzufügen
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]
Neue ASM Disks erzeugen
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
Als Traget zur Verfügung stellen
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
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

targetcli ls
 
...
 iqn.2016-09.pipperr.local:server 
..
o- mapped_lun9 .......................................................................... [lun9 block/rac02-data04 (rw)]
  |     |   o- mapped_lun10 ........................................................................ [lun10 block/rac02-data05 (rw)]
 
...

Auf dem Rac Knoten 1

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   0  20G  0 disk
 
lsblk /dev/sdu
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdu   65:64   0  20G  0 disk

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:

# 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';

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
"Autor: Gunther Pipperr"
vmware/iscsi_target_for_shared_disks.txt · Zuletzt geändert: 2018/06/02 18:21 von Gunther Pippèrr