2008-03-05

Sun Cluster & Scalable Service test in VMWARE test environment..

熊熊發現一個多月沒UPDATE了..
其實這段期間也是有寫些東西,不過寫完後都壓住不發,過了幾天再看就覺得寫的不好就此作罷..
畢竟文字表述並非所長,沒必要瞎寫來硬湊篇幅..
不過荒廢一個多月下來,香菇都長滿了,就挖點過去的東西來灌溉一下好了..

2006年初因為工作需要測試 Sun Cluster,
(那時候是幫老闆搶標一個中華電WIFI PHONE/MOD PHONE計畫使用的DHCP/RADIUS Service所準備的,不過最後該案子也是無疾而終.)

當時開發測試調校階段沒那麼多本錢弄SPARC的機器來測試 .
只有在最後上機評審前兩天才真有SPARC機器可以調校.
若要用一堆x86的機器來搞也嫌麻煩..
所以就嘗試用 VMWARE來建置一組 Sun Cluster的環境來測試
把整個建置的過程簡單記錄如下.當作一個筆記吧.
主要是quorum device& global device的部份..花了不少try & error 的時間

1.首先先到 http://www.sun.com/ 下載 Solaris 9 x86 & Sun Cluster 3.1 x86 0904

2.在VMWARE中創建一個新的Virtual Machine.
Guset OS就選 Solaris 9
VMWARE會用IDE DISK來裝Solaris 9 ,
SCSI的部份得選LSI SCSI 才能被Soaris內建的Driver認出,
不過現在先不管SCSI的部份
等最後要作 Quorum device的時候在來處裡
給VM 三張網卡. 一張作為公用網路介面..另外兩張是叢及互連用

3.開始安裝Solaris 9 x86 ,
這台機器就當Node1 , 安裝時在做硬碟分區時多弄一個分區
作 /globaldevices (Node1我是設為 c0d0s3)
這個分區之後sun cluster會用到

4.當Node1裝完以後,
利用VMWARE的clone功能複製一份做為Node2.(省掉安裝的時間)

5.把Node2的hostname & ip改過
以避免跟Node1衝突
/etc/nodename /etc/hosts /etc/hostsname.pcn0

6.Node2的/globaldevices分區調整一下,不要跟Node1相同.
否則在裝完cluster以後兩台的globaldevice會相衝
(我是把 /globaldevices 調整到 c0d0s4)
這點很奇怪,docs.sun.com裡面沒提,試了好多次才找到解法
可能他們沒想到有人會白目到用IDE硬碟來裝cluster吧. 哈..=_=””

7.兩台都把彼此的 IP/HOSTNAME 加進 /etc/hosts中

8.新增Quorum device:
關掉兩個NODE的VM.. 先再其中一個VM裡面創建一顆SCSI DISK..
創完以後到另一個NODE去新增DISK,選擇已存在的virtual disk,
把他指到剛剛建的那個DISK檔案上
再來就是編輯這兩個VM的 .vmx 檔案.. 加上
scsi0:0.mode = "independent-persistent"
scsi0:0.deviceType = "disk"
disk.locking=FALSE <=取消DISK LOCK 才能讓兩台把這個DEVICE當作Quorum device 2 Nodes cluster 必須要有quorum device才能正常運作.. 3 Nodes以上的非必需..但是沒有的話在錯誤轉移過程上還是會有點問題

9.Node1& Node2開機以後用 drvconfig , devlinks, disks, 來新增這顆SCSI硬碟.. 接下來 format, newfs 只要再其中一台做就好了

10.開始安裝Sun Cluster 3.1 x86 0904.. 安裝過程在 docs.sun.com 裡面有詳細的說明..在此不作贅述
看是直接用scsinstall or install 來裝都行..
差別只在一個是設定安裝同時進行..另一個是先安裝..之後再設定
設定過程照sun的文件來做就好

11.在任一個cluster安裝完成Node上執行 /usr/cluster/bin/scsetup
首先會要指定quorum device..
可以用 /usr/cluster/bin/scdidadm –L
來看剛剛新建的那個SCSI DISK 被放到哪一個did上
像是我這邊是被認為/dev/did/rdsk/d3
所以scsetup 中就把 quorum device設為 d3

12.接下來就可以用scsetup來進一步設定cluster了..然後開始測試吧… ^^

接下來是用SSHD當作標的來簡單測試Scalable Service

This is a test for SunCluster Scalable Service use SSHD
stop sshd first stop rc script

SHARE ADDRESS USE VMS9 (192.168.1.110)
NODE1 VMS9A (192.168.1.111)
NODE2 VMS9B (192.168.1.112)

scrgadm -a -t SUNW.gdsscrgadm -a -g sa_rgscrgadm -a -S -g sa_rg \
-l VMS9scrgadm -a -g SSH -y Maximum_primaries=2 \
-y Desired_primaries=2 -y RG_dependencies=sa_rgscrgadm -a -j SSHD \
-g SSH -t SUNW.gds -y Scalable=TRUE -y Start_timeout=120 \
-y Stop_timeout=120 -y Port_list="22/tcp" \
-x Start_command="/etc/init.d/sshd start" \
-x Stop_command="/etc/init.d/sshd stop" \
-y Network_resources_used=VMS9 \
-x Failover_enabled=TRUE -x Stop_signal=9scswitch \
-Z -g sa_rgscswitch -Z -g SSH

test
and VMS9(192.168.1.110) is bind on VMS9A(192.168.1.111)
ssh to VMS9 => go to VMS9A & VMS9B....