Dienstag, 17. März 2009

Citrix Client Solaris x86

Seit der Citrix Client 8.50 fuer Solaris x86 released wurde habe ich immer wieder versucht den zu benutzen, aber er ist immer auf die Bretter gegangen mit einem Segmentation fault. Heute habe ich durch Zufall auf den Citrix Foren die Loesung gefunden: der Citrix Client (namentlich der wfica) kommt mit der libXm.so.4 nicht klar. Daher hilft es in /usr/lib/ICAClient das binary wfica umzubenennen und einen shell-wrapper zu erzeugen:

(142) oldn9621-e:/usr/lib/ICAClient# cat wfica
#!/bin/ksh
# small hack for preventing segfaulting wfica in libXm.so.4
# olbohlen, 2009-03-17
LD_PRELOAD=/usr/dt/lib/libXm.so.3 /usr/lib/ICAClient/wfica.bin $@

(143) oldn9621-e:/usr/lib/ICAClient# ls -l wfica.bin
-r-xr-xr-x 1 root sys 1309280 Sep 14 2007 wfica.bin

Jetzt klappts auch mit dem Citrix :)

Donnerstag, 5. März 2009

Neue Fock...

Heute erreichte mich also der seit Montag ersehnte Brief von Beilken mit der Auftragsbestätigung für meine neue Fock - welche streng genommen ja eine Genua ist:

Standard Genua 10,9 qm, Cross Cut, Dacron 270 g/qm Tan MT.

Schoen braun wird sie werden - Mitte April wird sie wohl fertig sein, ich kanns kaum erwarten :)

Samstag, 3. Januar 2009

Silvester-Schmaus

Leckere kalte Platte mit diversen Kaese- und Fisch-Sorten!



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 ,)

Samstag, 22. November 2008

00000000 00000000 00100001 00011110

und wieder ein Jahr älter - diesmal die "Grenze" 30 überschritten. Manchmal hängt man seinen Gedanken nach.
Als Kind dachte ich immer, wenn man "erwachsen" ist dann hat man spätestens mit 30 ein Haus, zwei Kinder und eine gute Ehefrau.
Wie sich die Vorstellungen ändern: man will garnicht unbedingt so erwachsen sein und heiraten und Kinder sind auch weit weg in der Vorstellung. Ein Haus habe ich auch nicht, sondern bin froh mir ein kleines Boot leisten zu können.
Nein, ich bin nicht traurig oder enttäuscht - das Leben ist wie es ist. Man hängt nur ab und an den Gedanken nach und reflektiert über früher und jetzt.