Inhaltsverzeichnis
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:
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
- Zeitdienst einrichten , siehe auch ⇒ Die Uhrzeit unter Linux für eine Oracle Cluster Installation überwachen/prüfen und kontrollieren
- Interface Name wieder auf eth0 konfigurieren, siehe 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
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
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
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';