Posts Tagged ‘OSS’

SAMS Router的"十二年"

今天接到一個消息,本校其中一個最忠誠的僕人 — 「自建的SAMS Router」已因為硬碟故障而撒手塵寰。

它為我們服務了差不多十二年的光境,每天負責讓SAMS網絡內各教職員電腦上網,任勞任怨。只曾換了一次火牛及網卡,之後就連小病也沒有。估不到它還等不到十二歲生日,於今早在睡夢中離世。原本根據我們的慣例,會將辭世電腦的「器官」捐出來給有需要的後來者;但今次有點例外,可能是它的硬件太舊,我們居然找不到「受眾」,只好整部丟棄。

當然,它的空缺我們已早早定下替身。這只是一部1U的伺服器,運行FreeBSD。希望它亦能會我們服務一段長時間。

下面是我在數年前寫給它的文章,距今又已差不多五年,它也可說不枉此生。它永遠也會存在我的心中!

———————————————————————————————————————————

這個標題起得有些特別,原先是應用在二人相處的「神奇數字」;怎麼會用在電腦上?

話說兩星期前學校的其中一部重要設備–SAMS router出了問題,技術員黎生早上致電給我,說火牛壞了;我便請他更換。他說他已換了,但網卡又好像不通;我又請他換另一張網卡及用指令check 個網絡是否開通等......

就是這樣搞了半小時,他不來電話了,即是代表SAMS router又再投入服務了。

回到辦公室,看看可否遙控那個Router。成功,又再見回老朋友了!反正都登入了,便順手check一check部機。一看,就見到這部老朋友是在二零零二年四月三十日安裝,已運作了整整七年。記憶中,沒有任何損壞報告,只是搬過一次家而己。

home目錄資料如下:

drwxr-xr-x   3 root  wheel      512 Apr 30  2002 home

本來這不是甚麼的big deal,一般的網絡設備可能也有此壽命。但其實這是一部運行OpenBSD 3.0的舊電腦,資料如下:

OpenBSD 3.0 (GENERIC) #94: Thu Oct 18 14:48:27 MDT 2001
deraadt@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
cpu0: AMD K6-2 (“AuthenticAMD" 586-class) 401 MHz
cpu0: FPU,V86,DE,PSE,TSC,MSR,MCE,CX8,PGE,MMX
real mem  = 196718592 (192108K)
avail mem = 176828416 (172684K)
using 2426 buffers containing 9936896 bytes (9704K) of memory
mainbus0 (root)
bios0 at mainbus0: AT/286+(aa) BIOS, date 01/28/00, BIOS32 rev. 0 @ 0xfb400

它未做這份差事時,已被用上一段時間了。即是說,這部電腦己是一個古董。

整件事的重點,是反映開放源碼軟體對資訊科技教育的影響是深遠的:

回想那年要換WebSAMS,教育當局為了公平原則,所有學校都派相若的錢去換機。採購物品包括:伺服器、路由器、HTTP伺服器及工作站等。但是我們想添置多些工作站給老師用,於是在徵得當局同意後,只將錢用來買伺服器及更多工作站。其餘的路由器及HTTP伺服器就用校內的舊機吧!這是一個困難而正確的決定,但需有無比的勇氣--因為本校相信是唯一一間用自建路由器的。

經過一輪苦幹後(其實過程已開始淡忘),自製路由器的設定終於成功了。那次之後,本校可以有十部WebSAMS工作站,而且全都配上LCD(那時是CRT的年代)。一般學校只可買三至四部吧!這些只是看得到的好處,看不到還包括零管理及擴展性方面。當然,一般學校是不會或不懂去管理路由器,但我們可以自行開放或停止一些網絡服務到SAMS網絡;最重要還可在需要時,可升級路由器的軟件及硬件。例如:操作系統及網絡卡等。這些都是硬件路由器不能做的!

還有一件有趣事就是教育當局知悉我們沒有購買路由器後,便以為我們不顧安全,將WebSAMS與ITEd網絡放在一起。及後,要我們寫信解釋我們是自建,不是不用,他們才放心!

現在已有三間學校用這個方案,遲些還有另一間。因為早前有位舊同事告訴我,他的學校的路由器壞了,供應商要收三千多元。他也要自建呢!

———————————————————————————————————————————

李一諤高可用性網站(七):本校的Moodle2

這網站是我們的學習管理系統(learning management system, LMS),從前是1.9的版本,不過已經不再更新,轉而發展2.0的版本。所以我們亦要與時並進,投入2.x版本的懷抱。

從前已有一些課程放了在它上面,於是一個重要升級的考量–能否既保留舊資料,亦可成功升級至新版本。不過,「上屋搬下屋,唔見一籮穀」也在這次升級中出現了。不能升級的就是那個可以錄音的nanogong,所以升級也要顧及這樣的風險。最好先在其他機先試,成功才可在production伺服器去做。

在升級了moodle2版本後,之後的升級也沒甚問題了。亦因為將它放在HA內,我們就可以利用這系統作為全校的學習平台,讓全部學生及老師長期使用。這就是我們說電子學習的最高境界——全校師生,甚至校友,每星期七日,每日廿四小時都可以用上。這樣,全面的推行才有意義;總不成要每堂安排,只准部份班別使用吧!

除此之外,它還有流動應用程式的版本,可以讓同學在平板電腦使用。而更重要的是,它是一個免費的Apps。還有IOS及Andriod版本呢!

李一諤高可用性網站(六):本校新的學生作品網

本校的學生作品網又是一個很受歡迎的網站,當然說的是本校的使用者;再準確些講,是受家長歡迎!它放置學生貼堂的作品,老師交來IT組,再經技術員放上網。家長就可以看到學生的上佳作品,又可以電子賀卡寄給親朋,與他們分享這份喜悅。

最初我們是用Coppermine這網上相簿,放了幾年作品,又經歷了幾次版本升級,在某次就不能成功了!因為舊版本用Big5 中文編碼,升級utf8後就變成亂碼!

所以就用上新的版本,並一直用至現在,甚至將它放在HA內。這樣我們就可以將這些作品永久保存下來,正式成為我們學校的寶貴資產之一!

 

 

李一諤高可用性網站(五):本校的新相片網

2001學年起,我們就已經將相片放上網,讓學生、教師、家長及校友等,由自欣賞及下載。當時可供選擇的系統不多,但居然給我們找到一個南韓出品的系統。我們首先引入韓個的IT產物,那時SAMSUNG可能還未出產電話吧!

不過舊系統從未更新過那些編碼,這讓我們有點不安,因為始終會有被入侵的可能,所以2006年就改用Gallery這系統。最初的版本是用2.0。用了三年後,它出了3.0版本,於是就將它升級,並保留原先的相片,一路使用直至現在。

現在它已放了七年半的相片,內有約十三萬張相片,空間大約佔百多GB。我們非常著緊這些資源,每晚都會將它們備份至其他ZFS儲存伺服器中。同時亦做了一個HA版本放在本校的系統內。

為何這樣著緊?除了這些是我們寶貴的資產外,亦可在課堂中作演示。另外,它亦可用Embed Code的型式在其他系統中引用,非常方便,亦非常Web 2.0!

上面這張相就是從Gallery3系統上Embed Code而來的。

李一諤高可用性網站(四):本校的電子書包網站

這個是專門放置電子學習資源的地方,用了一個開源的Joomla的程式來做。開始時是將這些資源與學校主頁放在一起,但由於資源越來越多,不能放在同一個版面上,所以要將它們與主網頁獨立出來——「分拆上巿」。

它是將資源用學科的形式來歸類,這些是來自老師提供,亦有些是本校自行建立的系統,如早前提及的作品網,相簿等。

當然,這網站是從單一伺服器轉至高可性系統內。希望它能提供穩定的服務。

李一諤高可用性網站(三):本校的益智遊戲網

益智遊戲網是一個本校十分受歡迎的網站,歷史亦很悠久了。內裡收藏了千多個運行Flash的遊戲,全部已被玩了接近二千多萬次了。建立這網站是希望同學可以在它裡面找一些有益的遊戲,避免接觸那些不良的遊戲。

和其他網站一樣,它原本也是放在一部伺服器,亦用上了Apache + PHP + MySQL的架構。從前,亦曾發生被過度使用而有不能進入的情況。

由於它用了一個南韓出品的開源系統,此產品亦沒有再更新了。我們只好放它在一些較舊的機中,內裡亦只好運行舊的PHP版本,以免用了新版本會引起不兼容的問題。例如PHP5.4已有部份的function已不支援或更改了名稱,要將那些用這function的程式改為新的function,這是其中一個升級的風險。

希望用這方式可以讓它繼續運行,不會浪費我們的心機。

李一諤高可用性網站(二):本校的舊相簿及作品網

除了舊網頁,我們亦在早年已建立了電子相簿學生作品網。他們紀錄了很多相片及學生們的作品,它們既是我們的重要資產,亦是我們的集體回憶。

除了作為活動紀錄,它們亦方便老師在課堂上使用。電子相簿紀錄了學校的活動紀錄,而作品網則是放置學生貼堂的功課。兩者都對本校非常重要,希望能長久保留下來。但由於從前使用的是舊系統,要維護和升級也不是易事,所以之後就用了新的系統來放置。至於舊系統就繼續保留,當然亦不會更新及升級了。

最終它們被放在HA系統內,希望能永久保存下來。

李一諤高可用性網站(一):本校的舊網頁

早前說了一連串HA系統的組件及配置,現在可以講講它的實際應用。我們向來都是以網頁為主,於是在HA之上都希望放置幾十個主要旳網站,期望能減省日常的管理工作。

儲存如早前所說,是放置在MFS或ZFS內,只需存放一份資料在它們上面,就可以不需做備份,讓系統自動運行。其中一台網頁伺服器掛掉了,由它吧!管理員有空才看看它有甚麼問題。這在從前是很難想像的事。

這個網頁是在我到校前已存在,之後就由我來更新。它是用Dreamweaver寫成的HTML版本,內裡加入了一些互動的元素。作為本校主要資料的交匯點,它曾是我們每天必到的網站,亦是所有校內瀏覽器設定的首頁。

這可算本校資訊科技的集體回憶,所以縱然它已退役,亦不會再更新了,我們當然亦會保留它。不過www就不能給它繼續用,只好叫它old。但我們亦給它放了在HA,網頁檔案就放在MFS,好讓它不會掛掉。同時它已亦改在Nginx下運行,開啟速度亦很快啊!自從改放在HA內,我們沒有理會過它,它又乖乖的工作。

李一諤高可用性系統(十三):Raspberry Pi(FreeBSD/arm)伺服器

這HA主題已寫了多篇,應該都要完結了。但早前還有一些新元素加至它當中,所以要插入一份新文章。幸好WordPress會跟發佈日期排序,所以都沒有搞亂次序。

還有甚麼可以加入?就是這個叫Raspberry Pi的「玩具」。為甚麼叫它「玩具」?除了所有伺服器在我眼中都是玩具外,它的價錢及本質都是一個「玩具」。因為它的設計者是希望由兒童入手,讓他們玩熟這東西,再學其他編程的技巧。所以它的原生操作平台上已有很多編程的工具,當然行的就是Linux了,該Linux是由Debian改過來的。說回它的價錢,更能反應它的玩具本質,它只值港幣二百七十多元。買回來後,只需插上電源(不包micro USB),加一張記憶卡及其他周邊就可以操作,總計約三百元就有得玩了。

不過,我們不是這樣看待它。因為我們從前亦有教學生及家長應用USB手指,而手指上安裝Ubuntu Linux。效果亦算不錯,亦有部份家長從此變成發燒友,不斷去試驗Linux。所以,有此前ubuntu手指的經驗,我們覺得工作站未必是我們的方向,所以就走回自己的老路--伺服器。

作為伺服器又如何呢?它的硬件是便宜的,不過規格就差了些。但它有一個很好的優點,就是無風扇的設計,這樣對於伺服器而言,起碼有省電的好處,很綠色啊。同時,要長時間開啟,亦可以減少過熱當機的情況。但它的硬件畢竟較弱,單獨用就未必合適,所以在HA內就好像有空間給它發揮了。我們就是給它裝個FreeBSD 10(arm)版本,跟著它就可以取用ZFS內的檔案,再行Nginx。現在它已運行了十多天,亦已為一些網站(ptmesvgeditor)提供服務。

下一步我們希望它在將來會提升規格及記憶體等,可讓我們快些存取儲存池內的檔案,更可運行PHP的程式。始終100M的網卡及512M的記憶體未免也太「入門級」了。當規格變好了,就可引入多些這樣的卡片來建構我們的超級電腦,相信一個普通電腦機箱的空間可以放下很多塊吧。外國有大學就用了六十四塊卡片來建立了一台玩具一樣的堡壘,周圍還用樂高積木來分隔的。

最後,這篇文是一定要寫旳。因為這塊玩具是陳博士及鍾博士兩位借給我們試玩的,當然要寫份「報告」來交代交代呀!

李一諤高可用性系統(十二):Zabbix監察系統

我們學校現在可以用到的伺服器已有三十多部,寬頻公司給我們的二十四個真實IP也已用完了。不過幸好我們做好了HA環境,用四個真實IP就可以存放很多網站系統,不需再申請更多的IP了。但時常也有外校的老師問我們怎樣管理這批伺服器,我們也很自豪地告訴他們,就是用這個免費的Zabbix監察系統了。

除了每天要看各伺服器寄來的電郵(即log)外,我們亦為每部伺服器加入一個zabbix agent,它會向zabbix server提供資料,包括一些運行的狀態、負載的情況、硬碟的空間等。管理員是可以用網頁的型式看那些收集到的資料,如下圖所示:

不過,這不是最方便的法子,因為管理人要進入到網頁才可查詢相關資料。所以系統有一個更好的安排,就是主動通報一些critical的狀況,如:電腦是否仍然正常運行、重啟或超高負載等問題。遇上上述的情況,zabbix伺服器都會即時通知管理人,他們就可以去看看伺服器的情況。至於通知的方法就可以用電郵、Jabber或SMS等。以我們的情況為例,如伺服器出了事,就會同時以電郵及Jabber通知我和技術員,我們其中一個就可以去看看當中的問題。

當然,架設這個的成本也不能算少,我們要為每部伺服器加入zabbix agent,同時亦要準備一台zabbix server。不過,這台server不過是一部二千元的舊機,同時zabbix agent亦不會為各個伺服器帶來很大的額外負荷。另最重要的一點,就是它的agent可以在不同的平台上運行,我們亦在一部Windows伺服器中加入了zabbix agent,讓它定期向zabbix server報到及接受監察。

這樣的管理安排,才可讓我們有更多時間去研發及試驗其他系統吧!