天天看點

V 5 RHCS

一、相關概念:

RHCS(redhat cluster suite,redhat叢集套件,根本上主要是高可用叢集,但内部包含負載均衡叢集,如LVS的解決方案,并為LVS前端提供基于GUI的配置工具(piranha),這個工具可讓LVS工作在高可用環境中;RHCS包括有:LVS、HA、CFS(cluster file system,如gfs2、OCFS2)、cLVM(cluster logical volume manager)

高可用叢集工作特性:

共多少個node,node間通信狀況(傳遞心跳資訊);成員關系(完成成員關系配置);目前是否具備法寶票數(檢查法定票數);以上這些依賴叢集基礎架構層(cluster infrastructure,或message layer)

CRM(cluster resource manger,資源配置(添加、删除、遷移等),并通過RA(有LSB,legacy,OCF,stonith)完成啟停服務;heartbeatV1(haresources)、heartbeatV2(haresources,crm)、heartbeatV3(pacemaker)、RHCS(rgmanager))

注:OCF(open cluster framework)

注:pacemaker(rhel6.4提供了pcs(叢集資源管理工具,支援全CLI和GUI界面,非常強大)

,CLI有crm和pcs,GUI有pygui、hawk、lcmc、pcs)

注:rgmanager(resource group manager,資源組管理器);RHCS實作高可用的層次、元件等這些概念與corosync、heartbeat基本一樣

早期redhat4中RHCS的基礎架構層叫cman(cluster manger)

RHCS的RA(resource agent,資源代理):internal;script(類似LSB)

redhat4:cman是獨立的元件,它是完整意義的基礎架構層;rgmanager是完整意義的CRM,有RA的機制

redhat5:cman借鑒了openais的功能(cman借助openais完成心跳資訊傳遞、成員關系管理、cman作為插件僅保留了投票系統),cman已不是完整意義的基礎架構層,而是作為openais的插件存在(将cman作為openais的子產品使用,僅使用cman的投票系統quorum),本質上cman的工作機制已是openais的功能了,但主導者(核心控制者,控制着整個openais的工作機制)依然是cman(/etc/cluster/cluster.conf),資料總管仍然是rgmanager

注:cman的配置檔案/etc/cluster/cluster.conf;corosync的配置檔案/etc/corosync/corosync.conf;openais的配置檔案/etc/openais/openais.conf

redhat6:cman插件依然存在,但使用的是corosync作為基礎架構層,corosync本身自帶投票系統,但投票系統沒cman優秀;如果使用cman,同redhat5一樣,主導者仍是cman,配置檔案/etc/cluster/cluster.conf,資料總管rgmanager;若不用cman,則使用的是corosync配置檔案是/etc/corosync/corosync.conf,資料總管pacemaker

corosync2.3.0版本号needle,其中votequorum這一專門子系統實作了投票功能,在cman的基礎上發展起來,比cman優秀,自此cman退出江湖,不再有主導地位,配置檔案由corosync主導

gfs(global file system,全局檔案系統,依賴高可用叢集,可讓多個node使用同一個FS,一個node持有的鎖會通知其它node,這要借助高可用叢集的基礎架構層實作DLM及成員關系管理,而ext{2,3,4}、vfat等這些FS同一時刻僅能讓一個node使用;gfs(redhat4)、gfs和gfs2(redhat5)、gfs2(redhat6))

注:要讓幾個node同時挂載一個FS,就要建立幾個日志區域(ext2和ext3的最大差別在日志功能上,通過FS的日志可快速修複資料)

注:另一gfs(google file system,應用在海量資料進行中的分布式FS,與這裡的叢集檔案系統是兩個概念)

注:分布式檔案系統(hdFS,hadoop,分兩部分(namenode,前面的一個server放源資料,要做高可用,存放有檔案大小、存儲路徑等;datanode,後端的一堆server存放真正的資料),當使用者存儲資料時,先聯系namenode請求存儲,namenode将請求分割(例如以塊為機關,每512M為一塊),再讓使用者去聯系datanode,依次往後端的node存512M的檔案,将資料分散地存在各個node上,之後要讀取資料時聯系namenode,namenode告訴使用者在哪幾個後端node上)

注:DLM(distributed lock manager,運作在各node上的守護程序(克隆類型的資源,運作在每個node),各node的DLM通過tcp/ip通信,一旦發現某個node故障,借助高可用叢集功能fence掉這個node)

注:drbd的雙主模型(dual master)借助CFS的DLM實作

OCFS2(oracle cluster filesystem,在IO量很大時性能非常差,沒gfs2流行,甚至oracle自身都建議使用gfs2)

cLVM(cluster LVM,可友善擴充空間,隻不過是借助高可用的功能,将某node對LVM的操作通知給其它node,LVM上的指令都可用,在LVM基礎上啟用叢集的功能可将cLVM做成高可用叢集中分布式LVM)

/etc/lvm/lvm.conf中locking_type= 3(3表示内建的叢集鎖;1表示本地基于檔案鎖,預設此項;2表示外部共享庫鎖庫)

RHCS中ccs服務(cluster configuration system叢集配置系統,專門用于實作叢集配置檔案管理,在每個node開啟了cman服務(要在cluster.conf配置檔案中說明有幾個node)ccsd會自動運作,之後僅在一個node修改配置檔案,ccsd監控到有變化,會自動借助message layer同步到其它node,不用像corosync中使用scp複制)

redhat4中RHCS,cman運作于核心,這種工作機制複雜且難于管理

<a href="http://s5.51cto.com/wyfs02/M00/77/AC/wKiom1ZrX-yTpNw7AAB2SXdunQs287.jpg" target="_blank"></a>

redhat5中RHCS:

cman借助 于openais,openais是在使用者空間工作, openais的核心程序aisexec(corosync也在配置檔案中定義啟動它,它完成心跳資訊傳遞、成員關系管理等,cman用于完成投票系統)

groupd(rgmanager,資料總管的守護程序)

dlm_controld(控制器,對于鎖本身的管理,持有鎖,釋放鎖)

lock_dlmd(管理器,将某node持有鎖的資訊告知其它node)

app&lt;--&gt;libdlm(應用程式借助庫通過DLM機制對FS施加鎖)

核心空間中gfs和dlm,大多數功能都在user space完成

<a href="http://s5.51cto.com/wyfs02/M01/77/AC/wKiom1ZrYAeTYCW9AACD17ig3jE978.jpg" target="_blank"></a>

redhat6中RHCS:

cman借助corosync,資料總管rgmanager

dlm_controld(OCFS借助dlm_controld,将lock_dlmd的工作移到dlm_controld完成)

gfs_controld(專為gfs提供的專用的優化的控制工具)

注:dlm_controld與gfs-_controld看上去是兩個獨立的子系統,實際上沒有gfs_controld也可,隻不過gsf_controld是為gfs專門提供的,若用不到CFS,這兩個程序不用啟動,有cman和rgmanager就可工作

<a href="http://s3.51cto.com/wyfs02/M01/77/AB/wKioL1ZrYBuQRYLSAABylD6bNFs036.jpg" target="_blank"></a>

RHCS中failover domain(故障轉移域,限定了node的轉移範圍,轉移到限定的目标node):

failover domain與服務相關,可設定node在failover domain中的次序,用以設定轉移的優先級

定義一個服務就要定義故障時采取什麼動作(若重新開機不成功就要轉移出去relocate);若某node故障,沒有可轉移的node或不想讓它轉移,則可将服務stopped

注:heartbeat、corosync元件中有左對稱、右對稱(見叢集第2篇《heartbeatV2》)

<a href="http://s1.51cto.com/wyfs02/M01/77/AC/wKiom1ZrYDCQTvWLAAB0CPQNSFc597.jpg" target="_blank"></a>

叢集管理方面:

軟體安裝(application software或operation system software的安裝,cobbler(補鞋匠,fedora項目,網絡大批量部署系統,自動化運維重要工具,早期使用PXE+dhcp+tftp配合kickstart)、openQRM、spacewalk)

執行指令(for通過ssh解決(for是按shell的機制,順序執行,不是并行執行,是以效率不高);fabric(基于ssh,python程式,http://www.fabfile.org/)

配置檔案管理:puppet(重量級工具,軟體分發,配置檔案管理等)

RHCS中luci/ricci(luci(server-side,統一管理分發的web界面),ricci(client-side,代理接收server-side發來的指令,并在client執行),redhat5和6界面相差很大,但概念一樣,用于實作軟體安裝,啟停服務,擷取叢集狀态,修改配置檔案等功能)

RHCS中command line administrator tools:clustat、clusvcadm、ccs_tool、cman_tool、fence_tool

redhat5系列使用工具system-config-cluster(此工具隻需安裝在一個node,在該node配置好後,點send to cluster将配置同步到其它node)

web架構:

N-m(N個node運作m個服務,m&lt;=N)

director易成為單點故障應做高可用,而後端的realserver不應做高可用(僅在director做health check即可)

統一使用一個資料庫mysql

對于上傳的檔案(附件):

方案一:指定一個RS,檔案隻能上傳到指定的RS上,這要在前端director上實作這種功能(使用七層轉發工具haproxy或nginx,LVS不具備這種能力),再使用rsync+inotify同步至其它RS(這對于指定的那個RS來說将會非常繁忙)

方案二:使用共享存儲(NAS,檔案級别)

方案三:使用共享存儲(DAS,iscsi,塊級别,要将後端RS做成高可用叢集,僅對FS做高可用,并不是把httpd 做成高可用叢集,關鍵要使用CFS(cluster FS,如gfs最佳支援16個node,再多性能會很差,對于讀寫操作非常頻繁的場景,CFS并不理想,而要使用分布式FS)

注:LB+HA,根據業務需要,組合軟體來實作

二、操作:

環境:redhat5.8 32bit 2.6.18

準備:時間同步;名稱解析,要與#uname  -n或#hostname保持一緻;配置好各node的yum源(參考叢集第二篇《heartbeatV2》設定)

安排:共四個node,node{1,2,3}為高可用node,node4幹兩件事(跳闆機、nfs共享存儲)

注:ha場景中,node數最少3個,&gt;=3且是奇數個,若是兩個要使用仲裁磁盤

注:cman中沒有DC概念

RHCS中:

每個叢集都要有惟一叢集ID(叢集名稱),有叢集名稱cman才能啟動越來;

至少要有一個fence裝置,對于特定場景執行關機、重新開機等操作(#fence_manual  -n  NODE_NAME,#fence_vmware  -h(Fence agent for VMWare));

至少應該有3個node,兩node場景中要使用qdisk(仲裁磁盤),3個以上node若是偶數個,兩兩分裂的機率很小,最好配置,但不配置qdisk也可

軟體包:

cman-2.0.115-96.el5.i386.rpm(/mnt/cdrom/Server下)

rgmanager-2.0.52-28.el5.i386.rpm(/mnt/cdrom/Cluster下)

system-config-cluster-1.0.57-12.noarch.rpm(/mnt/cdrom/Cluster下)

node4-side:

[root@node4 ~]# alias ha='for I in{1..3};do ssh node$I'

[root@node4 ~]# ha 'yum -y install cman httpd';done

[root@node1 ~]# sed -i 's@Server@Cluster@g' /etc/yum.repos.d/rhel-debuginfo.repo(node1,2,3都要改,或者改一個使用scp傳到其它node)

注:baseurl=file:///mnt/cdrom/Cluster

[root@node4 ~]# ha 'yum clean all';done

[root@node4 ~]# ha 'yum -y install rgmanager system-config-cluster';done

分别在node{1,2,3}準備不同的網頁頁面#vim /var/www/html/index.html,并分别測試是否能正常通路,注意測試完要關閉服務并設定開機不能自啟動

node1-side:

[root@node1 ~]# rpm -ql cman

/etc/cluster

/etc/rc.d/init.d/{cman,qdiskd, scsi_reserve}(qdiskd仲裁磁盤相關程序)

/sbin/ccs_tool

/sbin/dlm_controld

/sbin/dlm_tool

/sbin/fence_manual(模拟手動fence,meatware)

[root@node1 ~]# man ccs_tool(The toolused to make online updates of CCS config files)

[root@node1 ~]# man cman_tool(ClusterManagement Tool)

[root@node1 ~]# rpm -ql rgmanager

/usr/sbin/clustat(ClusterStatus Utility)

/usr/sbin/clusvcadm(Cluster UserService Administration Utility)

(1)GUI圖形化界面下,添加叢集名稱、節點、fence裝置,并自動建立配置檔案

[root@node1 ~]# system-config-cluster &amp;(執行此指令,打開圖形界面配置,類似hb_gui的界面,確定在win下安裝并打開xmanager,若打不開圖形界面,在Xshell中确認,檔案--&gt;屬性--&gt;隧道--&gt;轉發X11連接配接至xmanager)

如圖:提示沒有配置檔案,要先手動指定配置檔案,這個工具是在目前本機操作node1,點儲存後會借助ccs同步至各node,點create new configuration--&gt;choose a name for the cluster(叢集名稱:tcluster)--&gt;custom configure multicast和use a quorum disk這兩項留白--&gt;OK

注:多點傳播位址不指預設會随機生成的;此例中已有三個node不需仲裁磁盤

<a href="http://s2.51cto.com/wyfs02/M02/77/AB/wKioL1ZrYEigqnRxAACcJFFydhg729.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/77/AC/wKiom1ZrYFiiyBIRAABdmso5BGg990.jpg" target="_blank"></a>

點cluster nodes--&gt;點右下角add a cluster node--&gt;分别添加三個node,分别為node{1,2,3}.magedu.com,quorum votes填1票--&gt;OK

<a href="http://s5.51cto.com/wyfs02/M00/77/AB/wKioL1ZrYH2CwMNIAACJT7PlAPc265.jpg" target="_blank"></a>

點fence devices--&gt;點右下角add a fence device--&gt;選manual fencing--&gt;name:meatware--&gt;OK

<a href="http://s1.51cto.com/wyfs02/M02/77/AC/wKiom1ZrYJWCU-ZDAACB_sSuQ20420.jpg" target="_blank"></a>

點file--&gt;save--&gt;OK

<a href="http://s4.51cto.com/wyfs02/M00/77/AC/wKiom1ZrYLfAmiXdAACirPSNhmQ608.jpg" target="_blank"></a>

[root@node1 ~]# ls /etc/cluster(其它node在沒有啟動cman時是沒有此配置檔案的)

cluster.conf

[root@node1 ~]# service cman start(cman啟動時會自動同步配置檔案,第一個node啟動時會到starting fencing處就卡住不動了,等其它node都啟動了cman服務,第一個node才啟動完畢,cman服務不可以用for來啟動,而要一個node一個node的啟動)

Starting cluster:

  Loading modules... done

  Mounting configfs... done

  Starting ccsd... done

  Starting cman... done

  Starting daemons... done

  Starting fencing...

node2-side:

[root@node2 ~]# service cman start

node3-side:

[root@node3 ~]# service cman start

[root@node3 ~]# ls /etc/cluster/(成功啟動cman服務後,在node2和node3上檢視是否有配置檔案)

[root@node3 ~]# vim /etc/cluster/cluster.conf

[root@node3 ~]# cman_tool status(檢視叢集狀态資訊)

Version: 6.2.0

Config Version: 2

Cluster Name: tcluster

……

Nodes: 3

Expected votes: 3

Total votes: 3

Node votes: 1

Quorum: 2 

Active subsystems: 8

Flags: Dirty

Ports Bound: 0 177 

Node name: node3.magedu.com

Node ID: 3

Multicast addresses: 239.192.110.162

Node addresses: 192.168.41.133

[root@node2 ~]# clustat(檢視叢集狀态資訊)

Cluster Status for tcluster @ Thu Dec 1017:58:33 2015

Member Status: Quorate

 Member Name                                                    ID   Status

 ------ ----                                                    ---- ------

 node1.magedu.com                                                    1Online

 node2.magedu.com                                                   2 Online, Local

 node3.magedu.com                                                   3 Online

[root@node4 ~]# ha 'service rgmanagerstart';done

啟動 Cluster Service Manager:[确定]

[root@node1 ~]# netstat -tunlp | grep aisexec(多點傳播位址239.192.110.162,端口5405)

udp       0      0 192.168.41.131:5405         0.0.0.0:*                              1165/aisexec       

udp       0      0 192.168.41.131:5149         0.0.0.0:*                               1165/aisexec       

udp       0      0 239.192.110.162:5405        0.0.0.0:*                               1165/aisexec  

(2)添加資源(RHCS中添加資源要麼在GUI圖形化界面操作,要麼直接修改配置檔案)

[root@node1 ~]# system-config-cluster &amp;

點resources--&gt;create a resource--&gt;resource type選IP Address--&gt;内容如圖顯示192.168.41.222/24--&gt;OK

<a href="http://s4.51cto.com/wyfs02/M02/77/AB/wKioL1ZrYNChMhjqAAB-7TBc9Ss801.jpg" target="_blank"></a>

點resources--&gt;create a resource--&gt;resource type選script--&gt;如圖所示,name:webserver,file:/etc/rc.d/init.d/httpd--&gt;OK

注:此工具添加某服務是選script

<a href="http://s3.51cto.com/wyfs02/M01/77/AB/wKioL1ZrYYWyB2nnAAB8ECFd9Fw320.jpg" target="_blank"></a>

點services--&gt;create a service--&gt;如圖name:webservice--&gt;OK--&gt;如圖按預設即可autostart this service,recovery policy:restart--&gt;點add a shared resource to this service--&gt;如圖分别選擇IP addr和script兩項加入到services中--&gt;close--&gt;點右側send to cluster(将配置通告到整個叢集)--&gt;Yes--OK

注:此處services,類似資源組的概念

<a href="http://s2.51cto.com/wyfs02/M00/77/AC/wKiom1ZrYZqRF8oyAACg7zYm1wM652.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M01/77/AC/wKiom1ZrYdTz67smAADAntqZzMg651.jpg" target="_blank"></a>

<a href="http://s1.51cto.com/wyfs02/M02/77/AB/wKioL1ZrYezg4gdcAACbNoMDO0o317.jpg" target="_blank"></a>

[root@node2 ~]# clustat

 ------ ----                                                     ---- ------

 node1.magedu.com                                                   1 Online, rgmanager

 node2.magedu.com                                                   2 Online, Local, rgmanager

 node3.magedu.com                                                    3 Online,rgmanager

Service Name                                             Owner (Last)                                             State        

 ------- ----                                             ----- ------                                              -----        

 service:webservice                                       node3.magedu.com                                         started   

[root@node4 ~]# elinks -dump http://192.168.41.222

  node3 server

[root@node3 ~]# ip addr show(注意此處使用#ifconfig是看不出來的,添加别名是用指令#ip addr添加的)

2: eth0:&lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast qlen 1000

   link/ether 00:0c:29:89:2d:74 brd ff:ff:ff:ff:ff:ff

   inet 192.168.41.133/24 brd 192.168.41.255 scope global eth0

   inet 192.168.41.222/24 scope global secondary eth0

inet6fe80::20c:29ff:fe89:2d74/64 scope link

[root@node3 ~]# clusvcadm -h

[root@node3 ~]# clusvcadm -r webservice -m node1.magedu.com(将資源重新定位relocate至指定node,若不指具體node則會随機選擇)

Trying to relocate service:webservice to node1.magedu.com...Success

service:webservice is now running on node1.magedu.com

[root@node3 ~]# clustat

Cluster Status for tcluster @ Thu Dec 1018:42:25 2015

 service:webservice                                        node1.magedu.com                                         started   

[root@node3 ~]# clusvcadm -r webservice

Trying to relocateservice:webservice...Success

service:webservice is now running on node3.magedu.com

[root@node3 ~]# clusvcadm -l(Lock localresource group manager,鎖定後将不能重新定位至其它node)

Resource groups locked

[root@node3 ~]# clusvcadm -r webservice -m node1.magedu.com

Trying to relocate service:webservice to node1.magedu.com...Failure

[root@node3 ~]# clusvcadm -r webservice -m node2.magedu.com

Trying to relocate service:webservice to node2.magedu.com...Failure

[root@node3 ~]# clusvcadm –u(解鎖)

Resource groups unlocked

Trying to relocate service:webservice to node2.magedu.com...Success

service:webservice is now running on node2.magedu.com

注:

#clusvcadm -r  GROUP  [-m NODE](relocate,member)

#clusvcadm -l|-u(lock|unlock)

#clusvcadm -d|-e|-s|-R  GROUP(disable|enable|stop|restart)

#clusvcadm  -M  GROUP  -m  NODE(migrate,實時遷移虛拟機資源)

#cman_tools nodes(顯示叢集中各node)

#clustat(不僅顯示各node,還有各node的狀态,還顯示資源在哪個node運作)

#ccs_tool lsnode|lsfence

#ccs_tool addnode|delnode  NODE

#ccs_tool addfence|delfence  FENCE_NAME FENCE_DEV

#ccs_tool create(Create a skeleton config file,自動建立配置檔案)

#ccs_tool update  XML_FILE(Tells ccsdto upgrade to new config file)

node4-side(在node4準備共享目錄檔案):

[root@node4 ~]# mkidr -pv /web/htdocs

[root@node4 ~]# echo "nfs server"&gt;&gt; /web/htdocs/index.html

[root@node4 ~]# vim /etc/exports

/web/htdocs 192.168.41.131(ro) 192.168.41.132(ro) 192.168.41.133(ro)

[root@node4 ~]# service nfs start

[root@node4 ~]# showmount -e 192.168.41.134

Export list for 192.168.41.134:

/web/htdocs192.168.41.133,192.168.41.132,192.168.41.131

[root@node4 ~]# chkconfig nfs on

[root@node4 ~]# chkconfig --list nfs

nfs                0:關閉      1:關閉      2:啟用      3:啟用      4:啟用      5:啟用      6:關閉

node1-side(在node{1,2,3}上測試是否可以正常挂載,記得要解除安裝;并将共享目錄自動挂載加入資源中):

[root@node1 ~]# mount -t nfs 192.168.41.134:/web/htdocs /var/www/html

[root@node1 ~]# cat /var/www/html/index.html

nfs server

[root@node1 ~]# umount /var/www/html

點service webservice--&gt;edit service properties--&gt;create new reource for this service--&gt;選NFS Mount--&gt;name:webstore,mountpoint:/var/www/html,host:192.168.41.134,export path:/web/htdocs--&gt;OK--&gt;close--&gt;send to cluster

<a href="http://s3.51cto.com/wyfs02/M00/77/AB/wKioL1ZrYhiRSFsuAACSCOKzzsk130.jpg" target="_blank"></a>

<a href="http://s5.51cto.com/wyfs02/M02/77/AC/wKiom1ZrYkDwgjYZAAC1l_21EJg529.jpg" target="_blank"></a>

[root@node1 ~]# clustat

Cluster Status for tcluster @ Thu Dec 1020:05:08 2015

 Service Name                                             Owner (Last)                                              State        

 ------- ----                                             ----- ------                                             -----        

 service:webservice                                       node2.magedu.com                                          started 

node2-side(在目前活動節點檢視,已自動挂載共享;并重新定位至node3,檢視狀态):

[root@node2 ~]# mount | grep /web/htdocs

192.168.41.134:/web/htdocs on /var/www/htmltype nfs (rw,sync,soft,noac,addr=192.168.41.134)

[root@node2 ~]# clusvcadm -r webservice -m node3.magedu.com

Trying to relocate service:webservice tonode3.magedu.com...Success

service:webservice is now running onnode3.magedu.com

[root@node2 ~]# elinks -dump http://192.168.41.222

  nfs server

(3)補充(全CLI指令行下生成配置檔案、添加node、添加fence device;若要添加資源要麼在GUI下操作,要麼直接修改配置檔案):

[root@node4 ~]# ha 'service rgmanager stop';done

[root@node3 ~]# service cman stop

[root@node2 ~]# service cman stop

[root@node1 ~]# service cman stop

[root@node1 ~]# ls /etc/cluster/(每send acluster向其它node同步一次,會将舊版本自動備份)

cluster.conf  cluster.conf.bak.1  cluster.conf.bak.2  cluster.conf.bak.3  cluster.conf.old

[root@node1 ~]# ls /etc/cluster

[root@node1 ~]# ccs_tool create tcluster(生成配置檔案,Create a new, skeleton, configuration file)

[root@node1 ~]# cat/etc/cluster/cluster.conf

&lt;?xml version="1.0"?&gt;

&lt;cluster name="tcluster"config_version="1"&gt;

 &lt;clusternodes/&gt;

 &lt;fencedevices/&gt;

 &lt;rm&gt;

   &lt;failoverdomains/&gt;

   &lt;resources/&gt;

 &lt;/rm&gt;

&lt;/cluster&gt;

#ccs_tool addfence  NAME  AGENT

[root@node1 ~]# ccs_tool addfence meatware fence_manual(添加fencedevice,delfenc删除fence device)

running ccs_tool update...

&lt;cluster name="tcluster"config_version="2"&gt;

 &lt;fencedevices&gt;&lt;fencedevice name="meatware" agent="fence_manual"/&gt;&lt;/fencedevices&gt;

[root@node1 ~]# ccs_tool lsfence

Name             Agent

meatware         fence_manual

#ccs_tool addnode  -v  VOTES [-n  NODEID]  -f FENCE_NAME  NODE_NAME(-v指定該node法定票數,-n指定節點ID号必須唯一可選項,-f讓該節點使用這個fence裝置)

[root@node1 ~]# man ccs_tool

[root@node1 ~]# ccs_tool addnode -v 1 -n 1 -f meatware node1.magedu.com

Segmentation fault

[root@node1 ~]# ccs_tool addnode -v 1 -n 2 -f meatware node2.magedu.com

[root@node1 ~]# ccs_tool addnode -v 1 -n 3 -f meatware node3.magedu.com

[root@node1 ~]# ccs_tool lsnode

Cluster name: tcluster, config_version: 5

Nodename                        Votes Nodeid Fencetype

node1.magedu.com                   1    1   meatware

node2.magedu.com                   1    2   meatware

node3.magedu.com                   1    3   meatware

(4)擴充(虛拟機):

N台實體機(N個node)上分散地運作多個虛拟機,服務在虛拟機上運作,虛拟機作為高可用資源,若目前運作虛拟機的這台實體機故障時,虛拟機不停,正常運作并轉移至其它實體機node上;資料要在共享存儲上(虛拟機運作要依賴很多資料)

web叢集,http是stateless,如電商站點中購物車,後端某一RS挂掉,VIP和httpd要遷移至其它node,為使session資訊繼續可用,将session儲存在memcache中,不論哪一台RS挂掉使用者都能通路到session,若目前與使用者建立連接配接的RS挂掉,使用者這時繼續通路時服務會中斷(如提示404),接着再次通路則會正常;若是ssh連接配接在某一個RS上(ssh是始終線上的服務),若這個RS故障,則連接配接會斷開,需要再次發起請求;若ssh連接配接在RS中的虛拟機上,則當RS故障,虛拟機會遷移至其它RS,則連接配接不會中斷(這是虛拟機的好處)

虛拟化的好處(虛拟機在高可用的實體node上,任何一個node故障,虛拟機隻要實時遷移,遷移時是不需要停止服務的)

雲(提供成千上萬個node,多個虛拟機平均地運作在多個node上,iaas雲提供虛拟機的高可用環境,是以我們使用虛拟機不會掉線)

在虛拟磁盤中建立的檔案,不管在哪個node上運作的虛拟機都要能通路到,要用到共享存儲,用以存放多個虛拟機的鏡像檔案(虛拟磁盤檔案),将虛拟機程序關聯至鏡像檔案,虛拟機提供商提供的虛拟機中有系統(是在鏡像檔案中灌裝好的系統,存放有linux的根檔案系統,這裡面可能沒有核心,可依賴外部的核心啟動)

本文轉自 chaijowin 51CTO部落格,原文連結:http://blog.51cto.com/jowin/1722241,如需轉載請自行聯系原作者

繼續閱讀