顯示文章

這裡允許您檢視這個會員的所有文章。請注意, 您只能看見您有權限閱讀的文章。


主題 - roach978

頁: [1]
1
http://rsbl.net/blog/?p=107

RHEL4 Update4(CentOS 4.4) & Red Hat Cluster Suite 安裝實錄

1. 硬體
伺服主機: DELL PowerEdge 1950 x 2
儲存裝置: DELL PowerVault x 1
電源管理: Dell Remote Access Card V5 (DRAC5) (Fence Device)


2. 軟體、服務、套件
作業系統:Red Hat Enterprise 4 Update4 / CentOS 4.4
HA軟體:Red Hat Cluster Suite 4
使用服務:Apache2(httpd 2.0.5.2-28)、MySQL4(mysql-4.1.20-1)


3.Cluster Suite 取得方法

1.RHCS4 的安裝光碟,透過 autorun 進行選擇套件(可經由註冊至 RHN 取得)
2.或是 ftp://ftp.redhat.com/pub/redhat/linux/updates/enterprise/4AS/en/ 取得 srpm
自行編譯套件
3.也可以使用 CentOS 編譯好的套件 http://isoredirect.centos.org/centos/4/csgfs/


4.所需套件

ccs
gulm
iddev
fence
magma
magma-plugins
rgmanager
system-config-cluster
dlm
dlm-kernel
(如果使用的核心是 smp 或是 largesmp 雙 CPU 以上的架構, 請再加裝 dlm-kernel-smp or dlm-kernel-largesmp。
注意! dlm-kernel 必須使用在相對應的 kernel 版本才能啟動)
cman-kernheaders
dlm-kernheaders
cman
cman-kernel
(如果使用的核心是 smp 或是 largesmp 雙 CPU 以上的架構, 請再加裝 cman-kernel-smp or cman-kernel-largesmp。
注意! cman-kernel 必須使用在相對應的 kernel 版本才能啟動)
cman-kernheaders

5.設定配置

先取消開機自動啟動服務,便於除錯設定配置。
代碼: [選擇]
# chkconfig ccsd off
# chkconfig cman off
# chkconfig fenced off
# chkconfig lock_gulmd off
# chkconfig rgmanager off


在本機端的 /etc/hosts
內加入兩筆 DNS 反查資料
代碼: [選擇]
192.168.1.101 node1
192.168.1.102 node2

將 /etc/hosts 傳至另一台主機

進入圖形視窗介面執行 system-config-cluster。(除非您想用vi來配置cluster.conf撰寫xml語法) @@
新增一組設定,請使用 Distributed Lock Manager 並選定 Multicast (227.0.0.1) or (227.0.0.x)。
新增兩組 cluster node, 分別為 node1、node2 (這裡的名稱必須與 /etc/hosts 內所新增的 DNS 反查資料一致)

新增 Fence Device 如果沒有 Fence 設備(電源控制) 請新增 menual fenceing
如果有 Fence 設備請依照廠牌選擇進行配置。

(個人使用的是 DRAC5 本應理所當然的選擇 DRAC 但是截至 RHEL Update4 為止, DRAC 僅支援至 DRAC4,
個人初期一直無法成功完成,最後找到 /sbin/fence_drac 這個 script 才發現不支援 DRAC5,最後與
RedHat技術服務取得預定在 update5 會加入的 fence_drac sctipt 需要的人可以透過附件下載。
此一 script 版本專為 Dell PowerEdge 1950 撰寫。其他設備就不保證一定能用。
另外您如果要使用 DRAC 的話,必須 將 DRAC 上的 Telnet 開啟。
個人最後選用的是 ipmilan 這應該是一個標準協定、剛好 DRAC 有支援這項協定,)

如果是 menual 只需要新增一組,如果使用 DRAC or ipmilan 必須為有獨立 IP 的設備各自新增。
鍵入名稱、IP位置、控制帳號、密碼即可。
(可以的話最好在 DRAC 的 WebUI 內新增一組專門給 ipmi 使用的帳號密碼,對於安全性比較有所幫助)

再回到上面的 Cluster Node 配置裡, 點選右下角的 manage fencing for this node 個別新增一組 Level
點選 Level 將剛才配置好的 fence device 個別配置到各別的 cluster node 裡。

建立 failover domains 新增一組 failover domain(個人直接取名為 failover),點右下角進入編輯剛剛所新增的
failover 點選選單中央上方的 available cluster node 將 node1、node2 新增進來。
右邊的兩個打勾選向分別是 "Restrict Failover Domains members" 以及 "Priotitzed List"
如果妳只有兩台, 打勾第一項 "Restrict Failover Domains members" 就可以了,這項是只允許這兩台做輪替
另外一項則是你可能有兩台以上的服務器,您可以分別設定輪替的優先權。
(其實真的只有兩台其實根本不用勾選....)

建立 Resource,依照妳所需要提供的服務新增資源設備。
由於個人使用的是 web、database、share storage
所以新增了以下資源:

IP Address:192.168.1.100 (Monitor Link 打勾)
File System: /dev/sda1 (mysql) /dev/sda2 (web root)
Script: /etc/init.d/httpd、/etc/init.d/mysqld

建立 Service 名稱, (個人取名為 http_server)
add Shared Resoure 先加入 IP Address 再選擇 attach a shared resource to the selecetion
將 File System 加在 IP 底下,再選擇 File System 將 Script 加在底下
這個具個人瞭解應該是先後執行的順序、所以個人的順序是 IP Address -> File System -> Script
再把右上角的 failover domain 選入 failover (個人定義的名稱)
請將 Autostart this service 勾選。
在 Recovery Policy 有三個選項分別是 Restart、Relcate、Disable
據個人的測試結果 Restart 當服務發生錯誤會嘗試重新啟動服務,除非超過太多次重新啟動系統認為不穩定
才會進行換手更換主機服務。
Relcate 則是一旦服務發生問題馬上換手交付其他主機負責服務。
Disable 你不會無聊的想去試吧? -_-
在這裡建議是選擇 Relcate。
設定完成,存檔。

將/etc/cluster/cluster.conf 傳至另外一台,由於其他台並沒有執行 config-system-cluster
所以你必須手動建立 /etc/cluster 這個目錄。

啟動服務,對所有的 cluster node 啟動
代碼: [選擇]
# service ccsd restart
# service cman start
# service fenced start
# service rgmanager start


使用瀏覽器測試, 當然您的 web 必須事先已經配置好了。
如果都順利執行成功,再次使用 system-config-cluster 會多出一個分頁 Cluster Management
可以觀察目前 Cluster Node 的狀態以及下達幾個簡單的控制命令。

注意:目前這一版的 system-config-cluster 再次進入會有錯誤訊息、大概是判斷 xml 有些問題,
但是不影響配置及設定點選 OK 跳過即可。

可以使用
代碼: [選擇]
#clusvcadm -r http_server (定義的 service 名稱)
做 Cluster Node 切換的測試。

這樣做當然不能滿足個人,所以採用更激烈的手段做測試,首先選定目前服務的 onwer
下達 service httpd stop 或 killall httpd ,理論上應該有類似 watch dog 的功能來對 httpd 重啟,但是並沒有,服務就停在那邊了。
又撥了一通電話給 redhat 得到的答案是,請修改 /etc/init.d/functinos 將 219 行的
RC=1 修改為 RC=0 , 這個應該是 httpd 的 return 值錯誤,造成無法判斷而卡住。
改好後 httpd 就可以順利的重新啟動、換手。
測試將 mysql 服務中斷,一樣無法重新啟動,服務又停在那邊了。求助得到的結果一樣是
return 值的問題。

修改 /etc/init.d/mysqld


代碼: [選擇]
stop(){
新增
代碼: [選擇]
status mysqld >/dev/null >&1
if [ $? -eq 3 ]; then
return 0
fi

也是幫助 return 值的修改。
以上也是 redhat 的技術支援提供的。
由於知道問題,個人也嘗試將(不照上述新增)
124 行左右的ret=1 改為 ret=0 也有一樣的效果,但不知會不會其他影響,
測試完之後 rh 才回覆,所以我採用 rh 提供的方法。
不過以上這兩個方法似乎只能夠套用在 Relcate 的模式下,就算妳換成 Restert 好像也是會做
Relcate 反正解決了,後來就沒有繼續去測了。

最後使用最暴力的手段進行測試,拔除網路線,如果有 fence 設備,另外一台會對網路線斷掉的
cluster node 下達 reboot 命令,並接手服務。

由於個人的 fence 設備是內部 fence 設備,電源是來自於主機所以無法進行電源斷電的 fence
測試,如果是類似 APC Power Switch 這類的外部 fence 設備就可以進行這類的測試。

如果都沒有問題,那就列入自動啟動的程序吧。
代碼: [選擇]
# chkconfig ccsd on
# chkconfig cman on
# chkconfig fenced on
# chkconfig rgmanager on


6.除錯

提供幾個可能發生的錯誤檢查,不過最好還是留意 log 內的訊息
由於設定都在圖形介面, 個人習慣會多開一個終端機
# tail -f /var/log/messages
進行測試命令後可觀察服務狀態是否卡在那個部分。

1. hosts 是否加入了對方的 domain ,是否可以順利解析名稱?
2. muticast 是否有設定? cluster node Ethernet heartbeat 的介面是否正確?
3. fence device 的帳號是否正確? 可以在shell下執行 fence_drac or fence_ipmilan
(依照你的fence device設備來選擇合適的 script)
進行測試,ex:
代碼: [選擇]
# fence_ipmilan -a 192.168.1.201 -l username -p password -o status
如果手動都無法下達,那妳可能要檢查 fence 設備的配置了。
4.Kernel 的版本是否跟 cman 與 dlm 相符呢?
5.log 檔內的 return 值是否正確呢?

後記:

這次剛好公司有專案進行,買了rh更新服務跟電話技術服務,不然像 httpd 跟 mysqld
的 bug 還真的死不瞑目,因此特別把它打成筆記,由於沒有做更大的服務所以沒有加入
GFS 的設定,不過為了加強後來也把 eth0 & eth1 做成 bonding ,在這邊提供給各位參考。
希望對各位能有所幫助。
如果其他服務也有問題這類問題不妨試著看看 log 檔修改 script 看看。


fence_drac for Dell PowerEdge 1950
http://rsbl.net/linux/rhcs/fence_drac
修改後的 mysql srcipt
http://rsbl.net/linux/rhcs/mysqld

2
 據美聯社上週二報導,美國科學家發現了目前已知「最大的質數」,這個數字有910萬位數。

  質數指的是只能被1和自身整除的正整數,例如2、3、5、7等。中央密蘇里州立大學(Central Missouri State University)的兩位教授Steven Boone和Curtis Cooper利用七百台電腦,花了數年時間運算出這個成果。

  這個數字太大,恐怕沒有人有辦法有辦法耐心看完九百萬位數的數字。幸好,科學家提供了一個簡單的表達法,這個最大質數可以表達為2的30,402,457次方減1。

3
之前做過, 有人pm我這個問題, 我順便整理了一下, 如果有錯勿煩請指正!  :oops:

1. get "FastTrak S150 SX4-M Linux driver package" use "FastTrak SX
Partial Source"
2. 確認是否有 gcc / make 等套件, 簡單點就
yum -y install gcc make automake conf kernel kernel-source
(如果你有把 yum 的 server 位置換成 DAG / CentOS ...)

2. get Kernel Source , 解開放在 /usr/src (抓下來的預設名稱partial)
(如果 yum 有抓就不用了)
3. cd /usr/src
4. ln -s kernels/`uname -r` linux   or  ln -s `uname -r` linux
5. cd partial
6. make DRIVER_SRC_DIR=`/usr/src/linux`
(如果執行有錯誤的話就是代表你的 gcc 等套件不齊全, 簡單點也是 yum -y update 不過要花一段時間, 因為很久之前做的, 我不能確認缺的套件,
基本上是編譯套件, 另外在執行編譯指令前要確認 Kernel 的 Makefile 的
Kernel Verison 做出來的 module 是要跟 kernel source version 相符)
7. 會產生 FastTrak.ko 等數個檔案 ...
cp FastTrak.ko /lib/modules/`uname -r`/updates

ok, 做這段之前請先了解重新編譯核心, 如果要做這段通常也只有當核心必須重新編譯時才需要...

4
工作機會 / 徵 MIS / VOIP 客服人員各一名
« 於: 2005-11-15 17:25 »
第一次在這邊徵人... (拜)


關於 MIS

1.公司名稱:通航國際電信股份有限公司

2.職務及工作內容: Windows 2003 Server (ERP 主機維護),
Linux Server (Samba, NFS, Apache) , 網站資料更新.

3.所需專長及資格: 管理 Windows 2000 以上 Server 經驗,
具 ERP 主機, Linux Server 維護經驗尤佳!

4.工作地點: 三重湯城園區

5.薪資: 32000~36000 (可議)

6.福利: 14 個月, 滿一年後年假七天... 教育訓練全額補助... etc

7.聯絡人: 吳國禎

8.聯絡電話: 02-29993377 ext:680

9.應徵方式: mail 至 roach@tonnet.com.tw


關於 VOIP 客服人員

1.公司名稱:通航國際電信股份有限公司

2.職務及工作內容: 協助技術人員及經銷商設置 VOIP, 以及用戶端的故障排除.

3.所需專長及資格: 因用戶環境可能會很複雜, 所以最好具備網路基礎知識,
具 PBX , VOIP 經驗尤佳!

4.工作地點: 三重湯城園區

5.薪資: 28000~33000 (可議)

6.福利: 14 個月, 滿一年後年假七天... 教育訓練全額補助... etc

7.聯絡人: 吳國禎

8.聯絡電話: 02-29993377 ext:680

9.應徵方式: mail 至 roach@tonnet.com.tw

5
Linux 討論版 / 關於 HTTP-Tunnel 的阻擋
« 於: 2005-06-27 10:50 »
目前已經安裝 l7-Filter , 小弟不才英文不好, 我在
http://l7-filter.sourceforge.net/protocols
找不到對應 HTTP-Tunnel 的 pet 檔, 不知道除了
l7-filter 之外或是其他方法, 可以擋掉
HTTP-Tunnel 嗎?
集思廣益討論看看 orz~!

6
Linux 討論版 / 關於 R-Proxy 的一些問題...
« 於: 2005-01-22 15:28 »
請問各位學長, 關於 R-Proxy 的教學...

代碼: [選擇]

第四單元: apache 2.0.43 reverse proxy的安裝方式
          (本單元由 kefore 網友熱情提供分享)

                                                                               
tall ball的位置:
http://apache.oregonstate.edu/httpd/httpd-2.0.43.tar.gz

                                                                               
主要功能:
替 Internet 的使用者代理存取內部受限制的網站

                                                                               
安裝步驟:
                                                                           
Step 1.
wget  http://apache.oregonstate.edu/httpd/httpd-2.0.43.tar.gz


Step 2.
tar -zvxf httpd-2.0.43.tar.gz


Step 3.
cd httpd-2.0.43


Step 4.
##啟動proxy模組及安裝於/usr/local/apache2
./configure --prefix="/usr/local/apache2" --enable-proxy=shared


Step 5.
make;make install


Step 6.
##修改httpd.conf檔
vi /usr/local/apache2/httpd/httpd.conf
在裡面�[W或把某幾行的#拿掉
 
##別忘了這一行,不然您的網頁default charset將會是ISO-8859-1
AddDefaultCharset Big5
 
LoadModule proxy_module /usr/local/apache2/modules/mod_proxy.so
LoadModule proxy_connect_module /usr/local/apache2/modules/mod_proxy_connect.so
LoadModule proxy_http_module /usr/local/apache2/modules/mod_proxy_http.so
 
ProxyPass        / http://192.168.2.5/
ProxyPassReverse / http://192.168.2.5/

 
Step 7.
#啟動apache
/usr/local/apache2/httpd -f ./conf/httpd.conf -k start


我在這個部分找到使用 apache  做 R-Proxy 的方法, 是不是假設我有三個
WAN IP ,  我只要安裝三台 Apacehe 依照上面的方法, 這三台同時配備兩張網卡
就可以將所有三個 wan ip 的 80 port 指到內部ip 的 web server, 接著只要在
dns 做 Round-Robin 就可以有 inboand load blance 的效果呢?
至於, 文中有提到使用 squid-proxy 來做 r-poxy , 目前小弟翻了很多文章,
並沒有具體的說明如何做? 是因為不好做還是? (我只有翻中文的... 英文能力實在差...)
 :oops:  :oops:  :oops:  :oops:  :oops:  :oops:  :oops:  :oops:  :oops:

7
Linux 討論版 / 嵌入式 os 新增 sed
« 於: 2004-12-02 18:07 »
是這樣的的, 我也有挖文, 不過這個問題我找了很久, 但是就是找不到答案...
希望問了不要捱罵... :oops:  :oops:  :oops:  :oops:

我有一個嵌入式的設備, 裡面只有 32mb 由於很多東西都簡化了, 我除了
使用 uname -r 之外, 真的不知道怎麼看核心版本@.@
裡面的指令是使用 BusyBox v0.60.4 虛擬的, 只有 gerp ,沒有sed @@
我想在上面 執行sed 這個命令, 但是礙於空間裡面沒有 make 此類的編譯程式
我要如何將 sed 這個命令新增上去...

謝謝各位學長 orz

頁: [1]