顯示具有 Linux系統管理(CentOS | Fedora) 標籤的文章。 顯示所有文章
顯示具有 Linux系統管理(CentOS | Fedora) 標籤的文章。 顯示所有文章

2008年5月24日 星期六

商業服務的PostgreSQL Database Cluster



(本文圖片皆引用自PGCluster官方網站,http://pgcluster.projects.postgresql.org)

我在商業服務的Ruby on Rails HTTP Cluster觀念及測試中的第一張圖的前面那一段有提到說,DB的情況有點像是如此,不過實際上情況有點不同。因為有網友的疑問,如今我認為該是時候補完一下。

應用系統如果要能夠真正地服務大量的使用者,與常見裝個MySQL然後跑個PHP論壇程式,是完全的兩回事。因此一個良好的資料庫管理員,必須清楚地知道自己的應用程式與資料庫在單台機器上執行的時候,效能的瓶頸在哪裡。如果不清楚應用程式及資料庫各佔的資源比例,那在切割成叢集的時候,並不見得有 顯著的效能提升,因為負載平衡以及複寫管理的程式都會吃CPU。認為1+1就極有可能等於2,這個是一般的管理員錯誤的認知。

舉例來說,許多大型的論壇,擁有上萬使用者,每天流量破10G;這樣的論壇,有些時候一開始因為資金及管理人力的限制,會考慮只買一台效能相當好的伺服器(例如HP ProLiant 380 G5),並且將Apache+PHP(應用程式)與MySQL(DBMS)擺在同一台主機上。管理員會想說反正這台效能高,一方面省下買另一台伺服器的錢,一方面PHP程式不用透過網路與MySQL連線,理論上應該效能很好。卻沒有考慮到,一般的論壇Web應用程式是以CPU及RAM需要量大的應用,而DBMS是一種I/O裝置(RAM+Disk)需要量大的應用。這是由於,大多數的管理員會誤以為DBMS僅吃CPU與RAM。負載低的時候看起來沒什麼,一旦人數增多,表示應用程式的部分記憶體就會越吃越多。系統用來快取的記憶體不足,很快地瓶頸就會出現在記憶體及硬碟之間,造成資料庫效能低落。這個代價比使用兩台機器跨網路線這樣的部署方式要來的大太多。



2007年8月27日 星期一

Heartbeat 2.0



在商業服務的Rails HTTP Cluster觀念及測試中,我提到了failover也是cluster的其中一個觀念。幾年前我用heartbeat,只是單純架設pgcluster的load balancer,那個時候也是簡單的active / standby。在那個時候,有這樣的架構已經減輕大部分人所遇到的問題:有一台掛掉另一台可以馬上取代其服務,讓維護者有時間可以救,使用者不會罵,已經是很偷笑的事情了。不然一般的維護者可能要急得像熱鍋上的螞蟻,拼命地輸入指令試著想要拯救資料或服務,而在數小時的工作後,服務還是救不起來,使用者罵聲四起。但是其實對我而言,這些比起硬體的方案,還是多多少少嫌不方便。

參考這個網頁,可以瞭解有那些failover的方式。
http://www.ukingdom.com.tw/pro/lifekeeper/lifekeeper.htm

先不管後面的階層化或是多方向failover,其中提到的active/active及active/standby,為啥要有這些分別呢?我來一個一個介紹。


2007年4月17日 星期二

CentOS 5 介紹

在最近這幾年來,Fedora Core Linux, Redhat Enterprise, CentOS 似乎已經形成一種穩定的關係。

早在大家所熟知的Redhat 9時代,他似乎就成了Linux的代名詞。而到現在,CentOS帶給我的不僅是因為Opensource所能得到的自由度,更有商業化的Redhat Enterprise的穩定度。

簡單地說,CentOS就是支持開放原碼的社群將RHEL裡非開放的套件自行撰寫換成開放的套件,然後重新取的名字。

對於已經熟悉的系統管理者,就不用介紹那樣多了,還是看看到底增加了什麼吧。

http://www.redhat.com/rhel/features/

這一代最主要的進步就是使用了Xen 3.0,以此達到全虛擬化(Full Virtualization)或半虛擬化(Para Virtualization)的功能。早期我也是使用VMware ESX Server來建立虛擬機器的,不過後來由於Xen大幅度地提高了虛擬化的效能,所以我就跳槽了。在使用及管理上,雖然沒有如ESX 3那樣華麗的操作介面,不過文字介面快速管理的方便性,對系統管理者要在極短時間內完成很多主機的任務才是比較重要。

目前雖然我是使用Fedora 6 Xen作為我們PC Cluster的底層OS,不過也是相當穩定。半虛擬化只是單純利用區隔Process記憶體位置的方式(他叫做Domain)來達到目的,所以在GuestOS裡跑的程式,實際上是和在實體機器上跑一樣。也因此半虛擬化有限制就是必須和實體機器的OS一樣。反之全虛擬化就利用了Intel-VT/AMD-V的虛擬化技術,讓GuestOS可以突破這種限制。但相對的因為也有虛擬層驅動,所以效能當然就一定會稍微慢一點。

可是會有人問說,這樣有啥好處?在大量配置的環境中,如Cluster,除非早期就確定好架構,不然一到要改變配置的時候,可真是會令人叫苦連天!有了虛擬機器,我可以輕易地遠端控制,啟動或關閉。而對我最大的效益,就是如果老闆忽然說要加機器,或是有特殊需求,我可以馬上就生出來而不必擔心實體機器不夠。如果你的機器常壞掉,那只要硬碟讀的到,虛擬機器可以利用其他實體機器快速還原,將硬碟檔拷貝出來然後啟動就好了。針對高效能運算,會有人說幹嘛一定要用虛擬技術。由於半虛擬化的特性,並不會減低系統效能,所以你更可以規劃出比較適合你環境的節點數量。因為節點可以彈性,你就可以隨心所欲地將他們往某個計畫擺,而不用擔心兩個計畫裡使用的軟體會有衝突。

在安裝的時候,有個地方是選擇套件,注意到幾項他和Fedora 6不一樣的地方:

程式開發->相容舊式軟體開發:他將函式庫的部分拿到了 基礎系統->舊式軟體支援

VNC-Server從系統工具拿到 伺服器->網路伺服器

2006年12月22日 星期五

Trac - 與Subversion整合


Trac


Trac是一個Project Management System,他整合了Wiki,並且使用Wiki的方式,以輕量化,快速的角度來建立專案的issue item(他稱做ticket)。你可以管理Milestone(軟體分支或主線),事項(ticket)。而狀態管理項目有priority, severity, ticket type, version。可以從timeline來觀察專案事項的處理時間,也可以從roadmap來觀察專案的進度。並且整合了subversion的web介面。

2006年6月23日 星期五

HeartBeat安裝


介紹


heartbeat為linux high availibility計畫所釋出的套件,目前stable版本為1.2.3。heartbeat包含了幾個元件,ipfail,Stonith,Ldirectord。

ipfail的功能直接包含在heartbeat裡面,是一個能夠在探知服務IP失效了便立即將服務IP抓取來用的功能。

Stonith是為了要在任何server停止時,確保剩下的server不會被正在運作的server所影響,可以選擇性強制停止一些server的解決方案。可能會使用在例如共用資料的情況之下。

Ldirector是一個負載平衡的服務器。

PGCluster安裝及設定

0. 介紹
PGCluster是日本作者修改PostgreSQL,使其達到Auto Replication, Load Balance 的能力。操作方式與原本PostgreSQL沒有太多差異,新增增加的幾個功能也會在下面介紹。

在安裝之前也建議將所有的node使用NIS/NFS管理。

2006年6月12日 星期一

Oracle Installation Guide for RHEL 4


前言


在2005年的時候,因為SRB的關係我開始使用Oracle 10g,他強大的效能真是令人震攝。
SRB使用Oracle的效能差異,也附上了簡短的註記,可以參考:
http://kiwi.csie.chu.edu.tw/blog/srb/srb-with-oracle-memo/

有關快速的安裝,可以參考
http://kiwi.csie.chu.edu.tw/blog/srb/srb-with-oracle-install/

有關完整的安裝請參考
http://www.puschitz.com/InstallingOracle10g.shtm

下載


http://www.oracle.com/technology/software/products/database/oracle10g/index.html

請先註冊OTN的帳號

本文章將介紹Oracle Database 10g Release 2 (10.2.0.1.0) for Linux x86