一、 Sun Cluster的基本概念:
1. Sun Cluster3.0支持的兩種服務模式:
Failover(失敗切換):當故障發生時,系統自動將應用程序等資源(APP、IP、DATA)一個故障主節點上重新定位到指定的輔助節點,客戶可能會看到一個短暫的服務中斷(一般為10s),並可能需要在失敗切換結束後重新連接,但客戶並不知道哪一個物理服務器向他們提供應用程序和數據。做到了應用程序的冗余。
Scalable(可伸縮):利用集群中的多個節點來同時運行一個應用程序,每個節點都可以提供數據和處理客戶請求,這樣既提供了高可用性,還提供了更高的性能。
Sun Cluster3.0單一集群既可以支持失敗切換應用程序,也可以支持可伸縮應用程序,而2.2只支持失敗切換應用程序。
2.雙節點群集配置樣例:
群集節點:是同時運行Solaris 操作系統和Sun Cluster 軟件的機器,它要麼是群集的當
前成員(cluster member),要麼是潛在成員。Sun Cluster3.0 軟件使您可在一個群集中部署兩到八個節點,而2.2只支持到4個節點。
群集名:群集中的所有節點都會歸組到一個集群名稱下—用於訪問和管理群集。如scmail
公共網絡適配器(nafo):客戶機通過公共網絡接口與群集相連。每個網絡適配器卡可連接一個或多個公共網絡,這取決於卡上是否具有多個硬件接口。可以設置節點,使之包含多個公共網絡接口卡,將一個卡配置為活動卡,其他卡作為備份卡。稱為“公共網絡管理”(PNM) 的Sun Cluster 軟件的子系統監視著活動卡。如果活動適配器出現故障,則調用NetworkAdapter Failover (NAFO) 軟件進行失敗切換,將接口切換至一個備份適配器。
私網(private networks):群集成員通過物理上獨立的一個或多個網絡(private networks)與群集中的其他節點通信,知道另一節點的加入或離開
管理控制台:可以使用專用SPARCstationTM 系統(稱為管理控制台)來管理活動群集。通常在管理控制台上安裝並運行的管理工具軟件有Cluster Control Panel (CCP) 和SunManagement Center 產品的Sun Cluster 模塊。它的使用可以使控制台和管理工具歸組到同一機器上,實現集中化的群集管理。
控制台訪問設備:Sun 只提供一種支持的終端集線器。您可選擇使用支持的Sun 終端集線器。終端集線器通過使用TCP/IP 網絡實現對每一節點上ttya 的訪問。這樣就可從網絡上的任一遠程工作站對每一節點進行控制台級別的訪問。
3.設備標識(DID)
Sun Cluster 通過一種叫做設備標識(DID) 偽驅動程序的結構來管理全局設備。此驅動程序可自動給群集中的每個設備分配唯一的標識,包括多主機磁盤、磁帶驅動器和CD-ROM。設執行對全局設備的訪問時使用的是DID 驅動程序分配的唯一設備標識,而非傳統的Solaris 設備ID(如某一磁盤的標識c0t0d0)。這一措施可保證任何使用磁盤設備的應用程序(如卷管理器或使用原始設備的應用程序)都可使用一致的路徑訪問設備。例如,節點1 可能將一個多主機磁盤看作c1t2d0,而節點2 可能會完全不同, 將同一磁盤看作是c3t2d0。DID 驅動程序則會分配一個全局名稱,如d10,供節點使用,這樣就為每個節點提供了到多主機磁盤的一致映射。
4. Quorum 設備
Sun Cluster 配置使用quorum 設備維護數據和資源的完整性。如果群集暫時丟失與節點的連接,則quorum 設備阻止在群集節點試圖重新連接群集時出現健忘或使人頭疼的問題。通過使用scsetup(1M) 實用程序來指定quorum 設備。
規劃quorum 設備時請考慮以下幾點。
_ 最小值– 兩個節點的群集必須至少有一個分配為quorum 設備的共享磁盤。對於其他拓撲,quorum 設備是可選的。
_ 奇數規則– 如果在直接與quorum 設備連接的兩個節點的群集或一對節點中配置多個quorum 設備,則配置奇數個quorum 設備,以便這些設備有完全獨立的失敗通道。
_ 連接– quorum 設備不能與兩個以上的節點連接。
二、 准備工作:
1.安裝TC(可選)
a. 兩台節點機的串口A分別接到TC的2、3號端口,管理機的串口A連接到TC的1號端口
b. 在管理機上修改文件如下:
#vi /etc/remote
hardware: dv=/dev/term/a:br#9600:el=^C^S^Q^U^D:ie=%$:oe=^D
c.執行#tip hardwire,按下TC面板上的test鍵,直到Power燈閃放開
d.在按一下TC面板上的test鍵(2s)
e.管理機的屏幕上顯示monitor::
用addr修改TC的 IP地址,按“~.退出”,重起TC
f.telnet到 TC,執行
annex: su
passwd:
;
annex# admin
g.配置串口模式:
admin: set port=1-8 type dial_in imask_7bits Y
admin: set port=2-8 mode slave ps_history_buffer 32767
admin: quit
annex#boot
2.配置管理機:(可選)
a. 用root用戶登陸管理機,修改/etc/hosts,將所有節點機的主機名和對應地址寫入
b. 添加cluster console software
#pkgadd –d . SUNWccon
c. 修改/.profile文件
PATH=$PATH:/opt/SUNWcluster/bin
MANPATH=$MANPATH:/opt/SUNWcluster/man
Export PATH MANPATH
d. 使profile生效 # . /.profile
e. 編輯/etc/clusters
cluster-name node1-name node2-name
f. 編輯/etc/serialports
node1-name TC-address 5002(在TC上的端口號)
node2-name TC-address 5003
g. 執行#ccp cluster-name & ,使用clogin或cconsole/ctelnet工具
3.修改SCSI Initiator Id
在獨立服務器中,服務器節點通過將此服務器連接到特定SCSI 總線的SCSI 主機適配器線路,來控制SCSI 總線活動。該SCSI 主機適配器線路稱作SCSI initiator。它啟動此SCSI 總線的全部總線活動。Sun 系統中SCSI 主機適配器的缺省SCSI 地址是7。群集配置共享多個服務器節點間的存儲器。當群集存儲器由單端或差分SCSI 設備組成時,這樣的配置稱作多啟動器SCSI。正如此術語的字面含義那樣,SCSI 總線上存在多個SCSI 啟動器。SCSI 規格需要SCSI 總線上的每個設備都具有唯一的SCSI 地址。(主機適配器也是SCSI 總線上的設備。)因為所有SCSI 主機適配器的缺省SCSI 地址均為7,所以多啟動器環境中的缺省硬件配置會導致沖突。要解決這一沖突,請在每個SCSI 總線上將一個SCSI 主機適配器的SCSI 地址保留為7,在第二個主機適配器的SCSI 地址改為6。
a. ok show-disks 記下控制器的路徑
b. 創建一個nvramrc腳本設置scsi-initiator-id
ok nvedit
0: probe-all install-console banner
1: cd /pci@6,4000/scsi@3
2: 6 " scsi-initiator-id" integer-property
3: device-end
4: cd /pci@6,4000/scsi@2,1
5: 6 " scsi-initiator-id" integer-property
6: device-end
7: banner (Control C)
ok nvstore
ok setenv use-nvramrc? True
ok setenv auto-boot? true
ok reset-all
ok boot
4. 在兩個節點機上安裝操作系統solaris(至少選用最終用戶模式安裝),打上推薦補丁。
/: 最小100M
swap:最小750M,是內存的2倍
/globaldevices:100M
起碼保留一個100M的未用分區供卷管理軟件存儲卷信息使用。
5. 確認local-mac-address值為false
#eeprom |grep mac
三、 Sun Cluster軟件安裝:
1.在每個節點機上編輯/.profile文件
PATH=$PATH:/usr/cluster/bin
MANPATH=$MANPATH:/usr/cluster/man:/usr/share/man
Export PATH MANPATH
2.在每個節點機上編輯.rhosts
+
3.在每個節點機上編輯/etc/default/login文件
#CONSOLE=/dev/console
4.在每個節點機上編輯/etc/hosts文件,將對方節點,邏輯主機名的對應ip寫入
5.建立一個全新的cluster節點
a. 運行SunCluster_3.0/Tools/scinstall
b. Establish a new cluster
c. 輸入集群名字
d. 輸入集群中另一台節點的機器名
e. 不使用DES認證
f. 使用默認的集群傳輸私網地址
g. 接受默認的全局設備文件系統
h. 接受裝完後自動重起
6.向集群中添加另一個節點
a. 運行SunCluster_3.0/Tools/scinstall
b. Add this machine as a node in an established cluster
c. 輸入主節點的機器名
d. 接受默認的全局設備文件系統
e. 接受裝完後自動重起
7. 打上cluster的補丁
8.配置Quorum 設備
a. 運行scdidadm –L選擇准備作為Quorum disk的磁盤號,該磁盤必須在兩個節點都能訪問的共享磁盤
b. 運行scsetup,輸入前面選定的DID設備號
c. 在兩個節點的集群中不需再添加Quorum 設備
d. 接受安裝
9.配置網絡時鐘同步協議
peer clusternode3-priv
peer clusternode4-priv
peer clusternode5-priv
peer clusternode6-priv
peer clusternode7-priv
peer clusternode8-priv
此時,運行scstat –q,可以看到一共有3票;運行scdidadm –L,可以看到所有的DID設備;運行scconf –p,可以看到集群狀態、節點名、網卡配置、quorum設備狀態。運行scshutdown –y –g 15,以後關的機器先啟為原則測試cluster時候能正常啟動。
可以運行scheck檢查cluster安裝是否有錯
四、 卷管理:
1.使用veritas作為卷管理軟件
a.停止veritas volume manager dynamic multipathing功能,防止它和cluster功能沖突
#mkdir /dev/vx
#ln –s /dev/dsk /dev/vx/dmp
#ln –s /dev/rdsk /dev/vx/rdmp
b.安裝veritas volume manager 軟件,並打上veritas的補丁
pkgadd –d . VRTSvmdev VRTSvmman VRTSvxvm
c.修改兩台節點機的vxio號為一致,並不與其他設備沖突。修改時必須把cluster軟件停止
#grep vxio /etc/name_to_major
d.封裝rootdg
#vxconfigd –m disable
#vxdctl init
#vxdg init rootdg
#vxdctl add disk c0t0d0sX(未用分區) type=simple
#vxdisk –f init c0t0d0sX type=simple
#vxdg adddisk c0t0d0sX
#vxdctl enable
#rm /etc/vx/reconfig.d/state.d/install-db(該文件不刪除,系統不會啟動vm軟件)
你也可以使用/usr/sbin/vxinstall對整個系統盤進行封裝,形成rootdg,但你必須事先保留兩個未用分區,一般為slice 3和slice 4。
e. 重起節點1,看vm是否正常啟動
VxVM starting in boot mode…
VxVM general startup…
可以使用vxprint察看已配disk group狀況
f.在另一台節點機上安以上步驟安裝veritas軟件並配置rootdg,重起。
g. 在新建的dg上建立卷
#vxassist –g xxx make volname 200m layout=mirror
e. 注冊disk grups
#scconf –a –D type=vxvm ,name=xxxx,nodelist=node1:node2
如果再已注冊的dg上添加vol,需運行scsetup同步注冊信息。
f. 使用已建vol
#newfs /dev/vx/rdsk/dg-name/volname
#mkdir /global/xxx(兩節點同時做)
#vi /etv/vfstab(兩節點同時做)
/dev/vx/dsk/dgname/volname /dev/vx/rdsk/dgname/bolname /global/xxx ufs 2 yes global,logging
#mount /global/xxx
五、 資源配置:
1. 配置nafo
#pnmset
輸入nafo組號及改組包含的網卡名稱
2.配置資源組
1). Sun Cluster3.0支持兩種資源類型:
a.數據資源類型(Data service resource):
oracle、iplanet、netscape、apache、dns、nfs
b.預注冊資源類型(Preregistered Resource ):
SUNW.HAStorage、SUNW.LogicalHostname(供failover數據資源使用)、
SUNW.SharedAddress(供scalable數據資源使用)
2). 配置failover 數據資源,以Sun Cluster HA for NFS為例:
a. 添加NFS數據資源包(兩個節點機),可用pkgadd命令,也可用scinstall交互界面
b. 建立NFS目錄
#mkdir –p /global/nfs/admin/SUNW.nfs
#mkdir –p /global/nfs/data
#chmod 777 /global/nfs/data
c. 編輯NFS參數文件
# vi /global/nfs/admin/SUNW.nfs
share –F nfs –o –rw –d”Home Dirs” /global/nfs/data
d. 注冊數據資源(資源必須注冊後才能使用)
#scrgadm –a –t SUNW.nfs
#scrgadm –a –t SUNW.HAStorage
e. 建立failover資源組
#scrgadm –a –g nfs-rg –h node1,node2 –y Pathprefix=/global/nfs/admin
f. 往資源組中添加資源
#scrgadm –a –L –g nfs-rg –l clustername-nfs (注:clustername-nfs在兩台節點機的/etc/hosts中有相應記錄)
#scrgadm –a –j has-res –g nfs-rg –t SUNW.Hastorage –x ServicePaths=/global/nfs –x AffinityOn=True (AffinityOn=True: 應用切換,磁盤存貯也跟隨切換)
#scrgadm –a –j nfs-res –g nfs-rg –t SUNW.nfs –y Resource_dependencies=has-res
g. 初始化資源組,是之生效
#scswitch –Z –g nfs-rg
h. 檢測cluster狀態
#scstat –g
#scswitch –z –h dest-node –g nfs-rg
3) 配置scalable數據資源組,以Sun Cluster Scalable Service for Apache為例
a. 添加Apache數據資源包(兩個節點機),可用pkgadd命令,也可用scinstall交互界面
b. 關閉apache自動啟動和關閉功能
#mv /etc/rc0.d/K16apache /etc/rc0.d/k16apache
#mv /etc/rc1.d/K16apache /etc/rc1.d/k16apache
#mv /etc/rc2.d/ K16apache /etc/rc2.d/k16apache
#mv /etc/rc3.d/S16apache /etc/rc3.d/s16apache
#mv /etc/rcS.d/ K16apache /etc/rcs.d/k16apache
c. 在兩個節點機的/etc/hosts種都加入clustername-web的相應內容
clustername-web IP_address
d. 編輯控制文件,建立相應的服務目錄
Server Name clustername-web (去掉原有的注釋)
DocumentRoot “/global/web/htdocs”
;
scriptAlias /cgi-bin/ “/global/web/cgi-bin”
;
e. 建立html和cgi目錄文件
#mkdir /global/web/htdocs
#mkdir /global/web/cgi-bin
#cp –rp /var/apache/htdocs /global/web
#cp –rp /var/apache/cgi-bin /global/web
f. 注冊數據資源(資源必須注冊後才能使用)
#scrgadm –a –t SUNW.apache
g. 建立資源組
#scrgadm –a –g sa-rg –h node1,node2
h. 往資源組裡添加sclable資源
#scrgadm –a –S –g sa-rg –l clustername-web
#scrgadm –a –g web-rg –y Maximum_primaries=2 –y Desired_primaries=2 –y RG_dependencies=sa-rg
#scrgadm –a –j apache-res –g web-rg –t SUNW.apache –x \
Confdir_list=/etc/apache –x Bin_dir=/usr/apache/bin \
–y Scalable=TRUE –y Network_resources_used=clustername-web
i. 初始化資源組,是之生效
#scswitch –Z –g sa-rg
#scswitch –Z –g web-rg
j. 檢測cluster狀態
#scstat –g
k. 調整節點負載,默認為1:1
#scrgadm –c –j web-res –y Load_balance_weights=5@node1,2@node2
六、 Sun Cluster的日常維護和管理:
1. 顯示sun cluster 發行版本
#scinstall –pv
2. 顯示已配置的資源類型、資源組和資源
#scrgadm –p
3. 檢查集群組件狀態及配置
#scstat –p
#scconf –p
#scrgadm –pv(v)
4. 關閉集群
#scshutdown –g 0 –y
此命令將每個節點都關閉到OK狀態,可用boot命令啟動,然後用scstat –n狀態件則節點狀態。
5.關閉單個節點
#scswitch –s –h node2
#shutdown –g 0 –y
6.將某一節點置為維護狀態
#scconf –c –q globaldev=quorumdivice(dx),maintstate
7. 手工修改節點quoroum的投票數
a. ok>; boot –x
b. #cd /etc/cluster/ccr
c. #vi infrastructure
cluster.nodes.1.name torrey
cluster.nodes.1.properties.quorum_vote 3
d. #cd /etc/cluster/ccr
e. #/usr/cluster/lib/sc/ccradm –I /etc/cluster/ccr/infrastructure –o
f. #reboot
8. 刪資源組和disk group
a. 停資源:scswitch –n –j resourcename
b. 刪資源:scrgadm –r –j resourcename
c. 刪資源組:scrgadm –r –g resourcegroup
d. 刪dg:vxdg destroy dgname
9. 刪除 cluster軟件
g. ok>;boot –x
h. #pkgrm clusterpkgname
i. rm –r /var/cluster /usr/cluster /etc/cluster
j. vi /etc/vfstab,將原來所有的dis參數恢復,重建/global/devices
m. rm –r /dev/did
n. rm –f /devices/pseudo/did*
o. rm /etc/path_to_inst
p. reboot -- -ra
七、 Sun cluster 3.0與2.2的比較
Sun cluster 3.0
支持8個節點
支持ufs,hsfs,為實現scalable出現了global概念
cluster networking share address
支持scalable,failover模式
於系統核心綁定很緊,只有network和resource group由相關demond啟動管理
使用boot –x可以只起系統,不起cluster
支持solaris 8
支持千兆網卡,不支持sci card
以資源組為切換單位,資源類型有app,ip,data
sun cluster2.2
支持4個節點
支持ufs,沒有global
logical host address
只支持failover模式
於系統核心綁定不緊,可以先起系統再手工起cluster
支持sci card(100M byte/s)
以邏輯機為切換單位