Mittwoch, 24. Dezember 2008

Sun Cluster 3.2 und iSCSI

So, ich habe jetzt einen SunCluster 3.2 gebaut (low cost, eine Netra20, eine Blade1000 und ein Multipack mit 4 146G Disks), davon 3 Disks in einem RaidZ Diskpool.
Auf dem ZPool gibts 3 Volumes: eines fuer ein Zoneroot, eines fuer Oracle Binaries und eines fuer Datafiles. (Im echten Leben wuerde man natuerlich noch Redo/Arch-Logs, etc in eigene Volumes tun)
Diese drei Volumes sind per iSCSI freigegeben.
Im SunCluster gibts eine normale HAStoragePlus RG für den ZPool sowie einen LogicalHostname "strongbow".


(6645120) bow:/# zfs list
NAME USED AVAIL REFER MOUNTPOINT
sharedpool 28.0G 239G 28.0K /sharedpool
sharedpool/oracle 20.0G 239G 24.0K /sharedpool/oracle
sharedpool/oracle/data1 8G 247G 21.3K -
sharedpool/oracle/orabin 12G 251G 21.3K -
sharedpool/zones 8.00G 239G 24.0K /sharedpool/zones
sharedpool/zones/testzone 8G 243G 4.41G -

(6645144) bow:/# zfs get all sharedpool/zones/testzone
NAME PROPERTY VALUE SOURCE
sharedpool/zones/testzone type volume -
sharedpool/zones/testzone creation Tue Dec 23 17:20 2008 -
sharedpool/zones/testzone used 8G -
sharedpool/zones/testzone available 243G -
sharedpool/zones/testzone referenced 4.41G -
sharedpool/zones/testzone compressratio 1.00x -
sharedpool/zones/testzone reservation none default
sharedpool/zones/testzone volsize 8G -
sharedpool/zones/testzone volblocksize 8K -
sharedpool/zones/testzone checksum on default
sharedpool/zones/testzone compression off default
sharedpool/zones/testzone readonly off default
sharedpool/zones/testzone shareiscsi on local
sharedpool/zones/testzone copies 1 default
sharedpool/zones/testzone refreservation 8G local

Soviel zur ZFS Config.
Hier noch die Konfiguration der Resourcen im Cluster:


(6645145) bow:/# scstat -g

-- Resource Groups and Resources --

Group Name Resources
---------- ---------
Resources: space-rg space-zfs-stor strongbow


-- Resource Groups --

Group Name Node Name State Suspended
---------- --------- ----- ---------
Group: space-rg bow Online No
Group: space-rg saint Offline No


-- Resources --

Resource Name Node Name State Status Message
------------- --------- ----- --------------
Resource: space-zfs-stor bow Online Online
Resource: space-zfs-stor saint Offline Offline

Resource: strongbow bow Online Online - LogicalHostname online.
Resource: strongbow saint Offline Offline - LogicalHostname offline.

(6645147) bow:/# scrgadm -pv

Res Type name: SUNW.LogicalHostname:2
(SUNW.LogicalHostname:2) Res Type description: Logical Hostname Resource Type
(SUNW.LogicalHostname:2) Res Type base directory: /usr/cluster/lib/rgm/rt/hafoip
(SUNW.LogicalHostname:2) Res Type single instance: False
(SUNW.LogicalHostname:2) Res Type init nodes: All potential masters
(SUNW.LogicalHostname:2) Res Type failover: True
(SUNW.LogicalHostname:2) Res Type proxy: False
(SUNW.LogicalHostname:2) Res Type version: 2
(SUNW.LogicalHostname:2) Res Type API version: 2
(SUNW.LogicalHostname:2) Res Type installed on nodes:
(SUNW.LogicalHostname:2) Res Type packages: SUNWscu
(SUNW.LogicalHostname:2) Res Type system: True

Res Type name: SUNW.SharedAddress:2
(SUNW.SharedAddress:2) Res Type description: HA Shared Address Resource Type
(SUNW.SharedAddress:2) Res Type base directory: /usr/cluster/lib/rgm/rt/hascip
(SUNW.SharedAddress:2) Res Type single instance: False
(SUNW.SharedAddress:2) Res Type init nodes: All nodes
(SUNW.SharedAddress:2) Res Type failover: True
(SUNW.SharedAddress:2) Res Type proxy: False
(SUNW.SharedAddress:2) Res Type version: 2
(SUNW.SharedAddress:2) Res Type API version: 2
(SUNW.SharedAddress:2) Res Type installed on nodes:
(SUNW.SharedAddress:2) Res Type packages: SUNWscu
(SUNW.SharedAddress:2) Res Type system: True

Res Type name: SUNW.HAStoragePlus:6
(SUNW.HAStoragePlus:6) Res Type description: HA Storage Plus
(SUNW.HAStoragePlus:6) Res Type base directory: /usr/cluster/lib/rgm/rt/hastorageplus
(SUNW.HAStoragePlus:6) Res Type single instance: False
(SUNW.HAStoragePlus:6) Res Type init nodes: All potential masters
(SUNW.HAStoragePlus:6) Res Type failover: False
(SUNW.HAStoragePlus:6) Res Type proxy: False
(SUNW.HAStoragePlus:6) Res Type version: 6
(SUNW.HAStoragePlus:6) Res Type API version: 2
(SUNW.HAStoragePlus:6) Res Type installed on nodes:
(SUNW.HAStoragePlus:6) Res Type packages: SUNWscu
(SUNW.HAStoragePlus:6) Res Type system: False

Res Group name: space-rg
(space-rg) Res Group RG_description:
(space-rg) Res Group mode: Failover
(space-rg) Res Group management state: Managed
(space-rg) Res Group RG_project_name: default
(space-rg) Res Group RG_SLM_type: manual
(space-rg) Res Group RG_affinities:
(space-rg) Res Group Auto_start_on_new_cluster: True
(space-rg) Res Group Failback: False
(space-rg) Res Group Nodelist: bow saint
(space-rg) Res Group Maximum_primaries: 1
(space-rg) Res Group Desired_primaries: 1
(space-rg) Res Group RG_dependencies:
(space-rg) Res Group network dependencies: True
(space-rg) Res Group Global_resources_used:
(space-rg) Res Group Pingpong_interval: 3600
(space-rg) Res Group Pathprefix:
(space-rg) Res Group system: False
(space-rg) Res Group Suspend_automatic_recovery: False

(space-rg) Res name: space-zfs-stor
(space-rg:space-zfs-stor) Res R_description:
(space-rg:space-zfs-stor) Res resource type: SUNW.HAStoragePlus:6
(space-rg:space-zfs-stor) Res type version: 6
(space-rg:space-zfs-stor) Res resource group name: space-rg
(space-rg:space-zfs-stor) Res resource project name: default
(space-rg:space-zfs-stor{bow}) Res enabled: True
(space-rg:space-zfs-stor{saint}) Res enabled: True
(space-rg:space-zfs-stor{bow}) Res monitor enabled: True
(space-rg:space-zfs-stor{saint}) Res monitor enabled: True

(space-rg) Res name: strongbow
(space-rg:strongbow) Res R_description:
(space-rg:strongbow) Res resource type: SUNW.LogicalHostname:2
(space-rg:strongbow) Res type version: 2
(space-rg:strongbow) Res resource group name: space-rg
(space-rg:strongbow) Res resource project name: default
(space-rg:strongbow{bow}) Res enabled: True
(space-rg:strongbow{saint}) Res enabled: True
(space-rg:strongbow{bow}) Res monitor enabled: True
(space-rg:strongbow{saint}) Res monitor enabled: True

Ein dritter Server "flunder" soll eine Zone bekommen mit dem Namen "scholle", welche sich dann bitte auf dem testzone Volume befinden soll. Zuerst also die iSCSI config auf dem Cluster ansehen. Achtung, das ist eine Failovergroup - daher funktioniert das natuerlich nur auf dem Node der die RG aktiv hat:


(6645163) bow:/# iscsitadm list target
Target: sharedpool/zones/testzone
iSCSI Name: iqn.1986-03.com.sun:02:2abc5e6f-1535-6403-ca9f-d3d2f2e652a4
Connections: 1
Target: sharedpool/oracle/orabin
iSCSI Name: iqn.1986-03.com.sun:02:d5078ccd-ed73-cf83-d77a-df383470df86
Connections: 0
Target: sharedpool/oracle/data1
iSCSI Name: iqn.1986-03.com.sun:02:b63b6a43-31f5-cdac-e62d-918cd4b83851
Connections: 0


Anschliessend muss die Disk auf "flunder" bekannt gemacht werden:


(50) flunder:/# iscsiadm list discovery-address
Discovery Address: 172.20.23.1:3260


(zu setzen mit iscsiadm add discovery-address 172.20.23.1)


(51) flunder:/# getent hosts 172.20.23.1
172.20.23.1 strongbow


"Strongbow" ist wie oben zu sehen der LogicalHostname des Clusters.


(52) flunder:/# iscsiadm modify discovery --static enable
(53) flunder:/# iscsiadm add static-config iqn.1986-03.com.sun:02:2abc5e6f-1535-6403-ca9f-d3d2f2e652a4,172.20.23.1


Dies ist das target gefolgt von der Host-IP. Das target haben wir aus dem Output von iscsitadm des Clusters.
Jetzt muss die Disk OS-Seitig noch bekannt werden:


(54) flunder:/# devfsadm -i iscsi


Legt jetzt die entsprechenden Device-Eintraege an und wir koennen die Disk per format sehen:


(89) flunder:/# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
0. c0t0d0
/pci@1c,600000/scsi@2/sd@0,0
1. c4t0d0
/iscsi/disk@0000iqn.1986-03.com.sun%3A02%3A2abc5e6f-1535-6403-ca9f-d3d2f2e652a4FFFF,0
2. c4t1d0
/iscsi/disk@0000iqn.1986-03.com.sun%3A02%3Ad5078ccd-ed73-cf83-d77a-df383470df86FFFF,0
3. c4t2d0
/iscsi/disk@0000iqn.1986-03.com.sun%3A02%3Ab63b6a43-31f5-cdac-e62d-918cd4b83851FFFF,0
Specify disk (enter its number): 1
selecting c4t0d0
[disk formatted]

FORMAT MENU:
disk - select a disk
type - select (define) a disk type
partition - select (define) a partition table
current - describe the current disk
format - format and analyze the disk
repair - repair a defective sector
label - write label to the disk
analyze - surface analysis
defect - defect list management
backup - search for backup labels
verify - read and display labels
save - save new disk/partition definitions
inquiry - show vendor, product and revision
volname - set 8-character volume name
! - execute , then return
quit
format> p


PARTITION MENU:
0 - change `0' partition
1 - change `1' partition
2 - change `2' partition
3 - change `3' partition
4 - change `4' partition
5 - change `5' partition
6 - change `6' partition
7 - change `7' partition
select - select a predefined table
modify - modify a predefined partition table
name - name the current table
print - display the current table
label - write partition map and label to the disk
! - execute , then return
quit
partition> p
Current partition table (original):
Total disk cylinders available: 32766 + 2 (reserved cylinders)

Part Tag Flag Cylinders Size Blocks
0 root wm 0 - 32765 8.00GB (32766/0/0) 16776192
1 unassigned wu 0 0 (0/0/0) 0
2 backup wu 0 - 32765 8.00GB (32766/0/0) 16776192
3 unassigned wm 0 0 (0/0/0) 0
4 unassigned wm 0 0 (0/0/0) 0
5 unassigned wm 0 0 (0/0/0) 0
6 unassigned wm 0 0 (0/0/0) 0
7 unassigned wm 0 0 (0/0/0) 0

partition> ^D
(90) flunder:/#


Jetzt kann mit newfs ein UFS auf das slice0 gelegt werden. Die Details dazu duerften bekannt sein. Ebenfalls das installieren einer Zone sollte klar sein.

Jetzt haben wir uns eine Zone auf ein redundantes Storage gelegt das Failovered.
Ein Failover wird vom Host System mit messages in Form von SCSI errors/retransmits quittiert, aber die Zone läuft weiter.

Jetzt werde ich die Oracle-DB in die Zone installieren und sehen ob die genauso stressfrei den Failover ueberlebt. Beim Versuch mit NFS als grundliegende Resource ist die DB ziemlich auf die Bretter gegangen...

Montag, 8. Dezember 2008

ES445 Advanced Cluster Chaos


Danke Remote-Labs, danke Sun...ohne weitere Worte:

Mittwoch, 3. Dezember 2008

Spielzeug!


Endlich ist meine Bestellung von Toplicht da! Neue Schoten! Neue Fallen! Neue Festmacher! Neue Flagleinen! Der Winter ist gerettet ,)