高可用與存儲的結合

高可用與存儲的結合

之前我們做好了fence,今天將高可用和存儲結合起來。

試驗主機:172.25.0.2   172.25.0.3   172.25.0.251(做數據輸出端)

第一部分:

##在做實驗之前,需要將luci打開,並且查看集羣狀態:

wps961A.tmp

##將集羣的apach關閉:

wps961B.tmp

##查看ip發現沒有vip:

wps961C.tmp

##檢測server2的apache(也就是看他開啓再關閉是否正常):

wps961D.tmp

wps962E.tmp

##確定集羣的apache是關閉的:

wps962F.tmp

##以上做法也不知道意義何在,且往下看

##增加存儲,存貯在哪都可以,這裏是將instructor這臺主機的/dev/vol0/demo邏輯卷作爲存貯空間,因爲之前做實驗這裏邊有數據,所以我們將它清空:

wps9630.tmp

##這裏是用scsi做爲存貯類型用到iscsi協議,所以先查詢需要的軟件,可以用rpm  -qa |grep ##也可以用yum  list  ##

wps9631.tmp

##在數據輸出端(也就是做存儲的機子)安裝scsi,對應服務爲tgtd,在集羣節點中安裝iscsi協議,服務名稱是iscsi:

wps9632.tmp

##編輯配置文件:

wps9633.tmp

wps9643.tmp

##開啓服務:

wps9644.tmp

##查看進程,只能有兩個tgtd,這是正確的,這就需要每次在編輯配置文件時需要將tgtd關閉,這也是經常出的問題。

wps9645.tmp

##查看配置信息:

wps9646.tmp

wps9647.tmp

##在兩個節點上安裝iscsi:

wps9648.tmp

wps9659.tmp

##默認iscsi是開機自啓的:

wps965A.tmp

##發現目標(target),後面的ip就是做存儲的主機ip。

wps965B.tmp

##登入節點:

wps965C.tmp

#這個時候用fdisk  -l查看會發現多了一塊磁盤:

wps965D.tmp

##從節點上卸載iscsi:

wps965E.tmp

#再用fdisk   -l就找不到那塊共享的磁盤

#卸載後就可以將這個節點上的緩存刪除,否則每次開啓iscsi都會自動登陸這個磁盤:

wps965F.tmp

#再次發現和登陸:

wps9660.tmp

#創建分區,類型爲8e邏輯卷:

wps9661.tmp

#查詢,sda1的類型是8e:

wps9662.tmp

#查看clvmd服務,這是對集羣中邏輯卷管理的服務,確定開啓:

wps9663.tmp

##在節點2創建邏輯卷,

wps9673.tmp

##會發現現在節點3同步過來了,說明clvmd起作用了,他就是來管理邏輯卷的:

wps9674.tmp

##當然了,節點2也會同步過來的:

wps9675.tmp

wps9676.tmp

##查看怎麼創建集羣vg:

wps9677.tmp

##將剛剛創建的pv用作集羣vg:

wps9678.tmp

##查看我們剛剛創建的vg:

wps9679.tmp

##用clustervg創建lv,名字叫demo:

wps967A.tmp

##當然所做的一切都會在節點3中有相應體現。

##然後就是將集羣邏輯卷格式化:

wps967B.tmp

##然後就是在節點3中進行掛載到/mnt,在/mnt中寫下首頁,內容爲www.westos.org。再卸載,當然首頁將保存到磁盤中,如果換到http發佈目錄中將可以通過web訪問。

wps967C.tmp

##然後將邏輯卷(存儲)添加到資源中:

wps967D.tmp

wps968E.tmp

##有時會因爲超時的原因在你保存之後會退出lusi,這時只需要重新登錄,再次填寫相關內容就好。

##有了資源我們需要將它和http聯繫起來,這就要在服務選項中的http下面增加資源,選擇webdata:

wps968F.tmp

##這時候會多一個文件系統:

wps9690.tmp

##我們這裏是將http服務於存儲整合,所以需要http服務,如果沒有的話,當然需要自己先增加一個資源,然後再添加到papache中。

##查看現在的集羣狀態,並將集羣的apache打開:

wps9691.tmp

##當然也可以在圖形中打開:

wps9692.tmp

##現在是apache打開了,Apache下面包括資源vip,存儲,http服務,當然這三者的打開順序也應該是這樣,顯示vip,然後指存儲,最後纔是http服務,這也是爲啥在我們往Apache中添加資源時先將之前的http服務停掉,在添加完存儲之後再將http服務加上:

wps9693.tmp

##查看集羣是否管理了資源:

wps9694.tmp

#vip添加上了。

##http也打開了,磁盤也實現了掛載:

wps9695.tmp

##網頁也能夠訪問了:

wps9696.tmp

##現在將Apache手動交給連一個節點,當參數忘了,可以用clusvcadm  --help查看相關參數:

wps9697.tmp

##使用-r -m 可以實現節點的轉換:

wps9698.tmp

##轉換完成後節點二就會將vip添加,實現自動掛載,並且開啓http服務,相反的節點3上會將相同的服務關閉,也就是說高可用集羣同時只有一個在工作,解決的是單點故障。

wps9699.tmp

第二部分:

##displayvg   clustervg:

wps969A.tmp

##給集羣邏輯卷擴展分區這裏加的511就相當於加入2G這樣更精確,現在邏輯卷就會有4G大小:

wps969B.tmp

##擴展完成後,發現掛載的磁盤實際並沒有刷新,這就需要刷新一下:

wps969C.tmp

##df 默認顯示的是塊的大小,df  -h顯示的是真實大小:

wps96AD.tmp

##從集羣中刪除Apache:

wps96AE.tmp

##將節點2邏輯卷掛載在/mnt,並複製passwd目錄進去:

wps96AF.tmp

##在節點3上掛載,並且追加westos進去,但是,在節點3中只能看到自己的追加,並不能看到之前的文件:

wps96B0.tmp

##然後將兩邊都卸載。再掛載,在節點2中卻只能看到在節點3中追加的westos,並不能看到之前的文件:

wps96B1.tmp

##這說明集羣同一時間只能有一個節點接管存儲,這是文件呢系統的原因,所以我們就用到了gfs2文件系統,也叫做可擴展的分佈式文件系統(也叫做全局文件系統),可以實現多個節點同時掛載在同一文件系統,保證數據的同步性,說到同步我們需要知道,在RHCS套件中是css在處理文件系統的同步:

wps96B2.tmp

##檢查邏輯卷的文件系統的正確性。

fsck(file system check)用來檢查和維護不一致的文件系統。若系統掉電或磁盤發生問題,可利用fsck命令對文件系統進行檢查。

wps96B3.tmp

##將邏輯捲縮小,當然也可以不做這一步:

resize2fs命令被用來增大或者收縮未加載的“ext2/ext3”文件系統的大小。如果文件系統是處於mount狀態下,那麼它只能做到擴容,前提條件是內核支持在線resize。,linux kernel 2.6支持在mount狀態下擴容但僅限於ext3文件系統。

wps96B4.tmp

##在查看大小,確實縮小了:

wps96B5.tmp

##當然這樣並沒有縮小邏輯卷還是用另一種方法來縮小吧:

wps96B6.tmp

##再刪除邏輯卷,再創建邏輯卷:

wps96B7.tmp

##當然這些都是說明集羣中邏輯卷的擴展,縮小,新建,這一步可以不做的。

##現在我們就擁有了一個2G的新的邏輯卷:

wps96B8.tmp

##補充一下裸設備與文件系統的區別:

裸設備到文件系統,格式化的才叫文件系統。

自己對裸設備的理解,。沒有經過格式化的磁盤分區,操作系統不對其進行管理,而是應用程序直接管理,所以I/O效率更高,正因爲這樣對於讀寫頻繁的數據庫等應用程序可以用裸設備,這樣可以極大的提高性能。

文件系統是對一個存儲設備上的數據和元數據進行組織的機制。文件系統的工作就是維護文件在磁盤上的存放,記錄文件佔用了哪幾個扇區。另外扇區的使用情況也要記錄在磁盤上。文件系統在讀寫文件時,首先找到文件使用的扇區號,然後從中讀出文件內容。如果要寫文件,文件系統首先找到可用扇區,進行數據追加。同時更新文件扇區使用信息。在掛載後就可以將掛載點當做一個新的文件系統。

fsck是如何工作的:通常情況下,當 Linux 系統啓動時,首先運行fsck,由它掃描/etc/fstab 文件中列出的所有本地文件系統。fsck 的工作就是確保要裝載的文件系統的元數據是處於可使用的狀態。當系統關閉時,fsck又把所有的緩衝區數據轉送到磁盤,並確保文件系統被徹底卸載,以保證系統下次啓動時能夠正常使用。

##得到最恰當的塊大小:

wps96B9.tmp

##查看幫助:

wps96BA.tmp

##然後就是對邏輯卷的再次格式化:

wps96BB.tmp

##然後就是兩個節點都掛載:

wps96BC.tmp

wps96CC.tmp

##然後在節點2的中寫一個首頁:

wps96CD.tmp

wps96CE.tmp

##這會同步到節點三中:

wps96CF.tmp

##當然在節點3的首頁中增加一行,也會在節點2中同步:

wps96D0.tmp

##要想實現文件系統的永久掛載,查看UUID,然後將掛載信息添加到/etc/fstable:

wps96D1.tmp

wps96D2.tmp

wps96D3.tmp

##當然在節點3中也要做相同的掛載

wps96D4.tmp

##把service group中之前的那個ext3文件系統刪除,再在資源中增加一個新的文件系統:

wps96D5.tmp

##上面這一步是不是可以改爲只是把service  group中的文件系統刪除,而不增加另一個文件系統,這樣在重新開啓Apache是否會自動添加???

##查看iscsi狀態,是開啓的.

##查看系統中的可掛載設備和pv:

wps96D6.tmp

##當然,做完,最好能先卸載掉,查看是否 能夠自動掛載:

wps96D7.tmp

##現在開啓Apache:

wps96D8.tmp

wps96D9.tmp

##就可以訪問了:

wps96DA.tmp

第三部分 將Apache換成數據庫:

##首先將apache刪除:

wps96DB.tmp

##當然也可以用命令刪除,然後安裝MySQL:

wps96DC.tmp

##進入MySQl目錄,將MySQL打開:

wps96DD.tmp

##當然節點3上也要安裝:

wps96EE.tmp

##檢查存儲,因爲我們要將資源交給集羣管理,所以我們要將存儲資源關閉:

wps96EF.tmp

wps96F0.tmp

##並且將邏輯卷掛載到MySQL的發佈目錄中:

wps96F1.tmp

##然後將邏輯卷掛載到/mnt上,並且將MySQL發佈目錄中的所有數據移動到/mnt下,然後從/mnt下面卸載:

wps96F2.tmp

##這樣MySQL中就沒有文件,文件被保存到邏輯卷中,然後再用mount   -a,就實現邏輯捲到數據庫默認目錄的掛載:

wps96F3.tmp

##這樣數據庫的配置文件就有回來了。

##將數據庫的apache的首頁文件刪除,並打開數據庫:

wps96F4.tmp

##當然最後還是要關閉的將它交給集羣,我們在這裏的一番折騰只是檢測存儲與MySQL都沒有錯誤,可以正常使用:

wps96F5.tmp

##節點3中也要做相同的工作:

wps96F6.tmp

wps96F7.tmp

wps96F8.tmp

wps96F9.tmp

##爲數據庫增加資源,還是添加一個腳本,這裏腳本是只需要輸入名字,和啓動的路徑這樣就可以讓集羣來管理開關了:

wps96FA.tmp

##查看集羣,發現並沒有將數據庫加進來:

wps96FB.tmp

##這就需要將資源加進服務:

wps96FC.tmp

##Run exclusive:意思是這個服務獨佔集羣,當然不能這樣了。然後就是將我們的資源vip和數據庫加進來:

wps96FD.tmp

##在查看集羣,發現就將數據庫服務加進來了:

wps96FE.tmp

##現在就可以登錄數據庫了:

wps970E.tmp

##將數據庫服務轉交給節點3:

wps970F.tmp

##現在邏輯卷掛載到了節點3,vip也轉移到了節點3:

wps9710.tmp

wps9711.tmp

##在節點三登錄數據庫:

wps9712.tmp

##刪除集羣數據庫:

wps9713.tmp

##在兩個節點中都將存儲卸載:

wps9714.tmp

##之前所做沒有將存儲加進去:

邏輯卷的掛載是我們手動掛載的,現在將gfs資源加進MySQL服務就可以實現自動掛載了:

wps9715.tmp

##然後在DB服務中將之前增加的數據庫先刪了,再添加存儲和數據庫,因爲集羣在啓動服務中的資源時,是按照資源的順序的,而在數據庫之前必須要有存儲。

##現在DB服務是關閉的,我們將只需將DB服務打開,就可以自動調配其他的資源,包括資源的開啓,當一個存儲有問題會自動跳到另一臺機子上等:

wps9716.tmp

wps9717.tmp

##已經實現了存儲的自動掛載:

wps9718.tmp

##將DB服務轉交給節點2:

wps9719.tmp

##存儲和vip都轉移到了節點2:

wps971A.tmp

wps971B.tmp

##至此,我們就完成了數據庫的服務的高可用,就解決了數據庫的單點故障。

第四部分:圖形修改對應進程:

##將DB服務關閉並且刪除,將gfs2資源刪除:

wps971C.tmp

第五部分:不用圖形的高可用集羣(不用luci的高可用集羣)pacemake。

##在rhcl7之後就沒有了luci,就不能借助圖形來管理集羣了,下面就來介紹費圖形界面的高可用集羣管理。

##首先將之前在rhcl6中做的都給刪除,包括將節點從集羣中脫離並刪除:

wps971D.tmp

##還有cman,rgmanager

wps971E.tmp

##還有modclusterd

wps972F.tmp

##還有iscsi,關閉,啓動項也關閉:

wps9730.tmp

##在安裝scsi的機子上,檢查iscsi的情況:

wps9731.tmp

##將scsi關閉:

wps9732.tmp

##兩個節點安裝pacemake:

wps9733.tmp

wps9734.tmp

##若用新的虛擬機,需要安裝heartbeat、drbd、mysql-server、httpd

##安裝完pacemake後將會有一個控制心跳的配置文件目錄:

wps9735.tmp

##編輯配置文件:

#原始的例子內容:

wps9736.tmp

##修改後的配置文件其實就修改了兩處,一個是將綁定的網絡地址改爲集羣的網絡地址,在最後一行增加服務:

wps9737.tmp

............................................

wps9738.tmp

##上述修改的目的:

wps9739.tmp

wps973A.tmp

#當最後的ver設置爲1的時候,插件打不開pacemake的守護進程,這裏我們還是設置爲0,表示可以打開pacemaker的守護進程,通過組件調動而不是腳本。

Plugin:插件

Daemons:是守護進程的意思,代表在後臺運行而沒有終端或者運行的shell與其結合的進程。

##可以到官網下載關於pacmake的官方文檔:

wps973B.tmp

##將修改後的配置文件複製到節點3.

wps973C.tmp

##開啓心跳服務:

wps973D.tmp

wps973E.tmp

##這裏的報錯是因爲stonish的原因,默認stonish是開啓的這樣verify時會報錯,並且也不能commit,所以在配置之前需要將stonish關閉:

wps973F.tmp

##然後需要安裝連個包,最好先安裝pssh在安裝crm,,因爲第二個是第一個的依賴性,當然也可以一起安裝,但是需要安裝兩遍:

wps9750.tmp

wps9751.tmp

##然後將兩個包拷貝給節點3,安裝:

wps9752.tmp

##然後就可以用crm服務了:

因爲之前coroysnc的原因這裏節點指直接加進去的,如果沒有加進去可以用edit加進去,也可以重啓coroysnc,這樣就加進去了。

wps9753.tmp

##然後切換到資源管理模塊:

wps9754.tmp

##將stonish關閉:

wps9755.tmp

##這樣檢測語法就不會有錯了:

wps9756.tmp

##不管在哪邊增加策略,兩邊都會同步的:

wps9757.tmp

##定義資源:

例子:

crm(live)configure# primitive webvip ocf:heartbeat:IPaddr params ip=172.16.12.100 op monitor interval=30s timeout=20s on-fail=restart

//定義一個主資源名稱爲webvip,資源代理類別爲ocf:heartbeat,資源代理爲IPaddr。params:指定定義的參數 ,op代表動作,monitor設置一個監控,每30s檢測一次,超時時間爲20s,一旦故障就重啓

#增加一個vip資源:

wps9758.tmp

##也可以用edit編輯配置文件:

wps9759.tmp

wps975A.tmp

##在0.251這臺機子上是可以ping通增加的資源的:

wps975B.tmp

##對參數的解釋:

crm_verify -LV  檢測配置信息    
crm_mon  監控主機狀態

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章