不知不覺,從我接任成功大學醫學系學會 資訊部長 已經經過一年半了。上任以後,我推動了不少行政作業,其中一項我認為最重要,也是對整個成大醫學系學生影響最深遠的,就是將原本在一台已經使用接近十年的老主機,採用FreeBSD 搭配proFTPD套件運行FTP服務,儲存十幾屆累積的課堂共筆、Powercam錄影檔案的系上共同檔案空間,轉移到Synology 群暉公司的NAS 系統上面。各種考量,前因後果,且聽我娓娓道來。

為何要更換為新機器?

1. 舊機器硬碟經多次跳電,可靠性堪慮

在我接任時,上屆學長曾經提到過,FreeBSD 本質上是一個很穩的作業系統,不容易當機。但是不知道為什麼,在Systemlog 裡每過一個多月,就會有重新開機的紀錄。

後來,在安裝新NAS以後,一次NAS 突然斷電導致無法連上,我們才完整推測出來龍去脈。原來是伺服器所在的機房電源不穩定,平均一點多個月就會有短暫幾分鐘的跳電(很莫名,醫院的配電不是要很穩定嗎?= =),而主機板的BIOS電源設定內有斷電後恢復電源自動重開,所以每次跳電後我們都只會看到一台已經重開的的伺服器。

這台已經跑了快十年了,雖然不知道從什麼時候開始會密集跳電,但是一定至少有三四年歷史了,這樣的跳電對硬碟以及機器是很傷的。

2. FreeBSD Unix指令行介面,非相關科系入手不易

我們畢竟是醫學系的學生,不能保證每屆皆有人會具備Unix系網管能力,舉例來說,未接觸過Linux的學弟妹如果要接資訊部,要了解以下內容:

  • 設定ssh 登入,用以遠端管理伺服器
  • Unix系的使用者管理,群組權限概念,每年新增一年級學弟妹帳號以及校正資料夾權限
  • 基本Unix指令如cd, ls, rm, top, ping, traceroute
  • FreeBSD 作業系統檔案配置
  • proftpd服務套件的使用與設定
  • FreeBSD 的port 以及 package 安裝機制

如果系會還要用這台跑網站的話,就得另外了解Apache or nginx, PHP, mysql 的安裝了......

你覺得一個從未接觸過這方面領域的醫學生,有辦法在兩個月內搞懂這些嗎?XD

因此,伺服器的維護、除臭蟲皆是大問題。系會資訊部傳承交接是否順利,有很大的運氣成分在。重要的課業檔案,不應該倚靠如此脆弱的管理。

Command-line

3. 各種平台相容性不佳

在系上,我觀察年輕的學弟妹,使用Mac 的比例有增加的人數,再加上成大醫學系有僑生、交換生,邁向國際化的腳步,而傳統FTP為了順應大部分人使用的Windows 檔案總管中文編碼,必須設置編碼為Big5,導致以上情境的使用者無法順利存取。

4. 未組建Raid 或是設置備份

簡單來說檔案就只有一份,哪天出問題的話,沒有任何備援方案。

Synology NAS有哪些優勢?

我自己有私人的入門型Synology NAS, 再檢視這些問題後,我發現,其公司推出的軟硬體,是一個很好的解決方案。

1. 簡化且合理的Web版 UI,方便管理及多平台通用

Synology 用於NAS 的Diskstation Manager(DSM) 系統,基本上是修改自Linux 系統再搭配自行開發的軟體及介面,其中最為人所稱道的是網頁版的管理介面十分好入手。

同樣的功能,原本在FreeBSD 需要反覆打指令一再確認的設定檔、資訊,在DSM 中只要透過簡單的圖形化介面調整選項即可,管理門檻低,十分適合像非資訊相關科系如我們醫學系。

另外,DSM 網頁介面裡的檔案總管堪用,支援各大主流瀏覽器包括Mac OS X 上的Safari,所以也順帶解決了前述提到FTP平台通用性的問題。

UI

在文後,會更詳細的描述對成功大學系學會檔案伺服器管理需求,DSM的解決方案。

2. 套件中心提供多種套件,適合多種入門需求。

由於DSM 修改自Linux, 套件中心提供多種原生Linux就有的套件以及自行開發的軟體如mariadb(MySQL), phpmyadmin, DNS server, LDAP, VPN, python, JAVA, Node.js 等公司群組常用的軟體,方便部署。以成功大學醫學系學會的需求來說,因為想經營系會的網站,搭配DSM本來就有的網頁伺服器以及PHP, 以及mariadb, phpmyadmin, 採用wordpress 即可快速架站。

Package

3. 檔案索引、檔案分享、檔案請求功能

醫學系為大量知識密集,隨著每屆的成長,課業共筆、報告,以及醫院的筆記,累積大量的資料在我們的檔案伺服器內,然而檔案分層架構越積越多,許多前人智慧的結晶也被埋藏在深處不易尋找。在2016年的DSM 6.0 更新裡,提供了檔案內文索引的功能,設定並運行以後,網頁端的檔案總管即可針對指定範圍內搜尋內文包含關鍵字的檔案。這用來搜尋共筆PDF時尢為有用。

檔案分享及檔案請求在班級間分享檔案及共同協作時,很方便。

SearchFiles
並非只有Synology 的NAS才有提供以上這些功能,與其競爭的公司QNAP的機器也有不錯的品質。但是作者經詢問打聽Synology的UI較為平易近人,故採用之。

採用Synology的NAS後,成大醫學系的管理配置

1. 硬體配置

我們購置了DS 716+ 2 bay,以及兩顆WD 紅標 4TB 的硬碟,原因有:

  • DS 716+ 架構為x86, 所以有Synology 提供的Docker 虛擬套件, 未來有能力者可自行擴充,不會受限於原生套件
  • WD 紅標適用環境為全天候開機,儲存應用
  • 兩顆硬碟以組建 SHR (兩顆硬碟等同於Raid 1), 因機器有支援熱抽換,只要有其中一顆硬碟發生問題,可以隨時以新硬碟更換,並Rebuild Raid 1 環境,期間對外伺服器服務不受影響。

除此之外,之前資訊部有跟系學會請款購買UPS不斷電系統,除了電源外另以USB跟NAS連接,跳電時UPS可以暫時提供電力給NAS並通知其在一定時間內安全關機。截至目前為止,系上的NAS已經成功撐過數百次短暫的跳電(DSM的事件提醒信件塞爆了電子信箱囧)

DS716+ 的官方規格頁面

2. 使用者權限以及資料夾政策

成大醫學系以每年級為一單位,創建系級帳號以及資料夾。每個資料夾只有該系級使用者帳號可任意讀寫,對其他系級僅能讀取下載。這是從FreeBSD時代便傳承下來的政策。

針對相同性質的帳號,可以先創建使用者群組,針對群組制定統一的權限政策後,在新增帳號歸屬到該群組,這樣每個新增的帳號就會自動套用該權限,再針對其帳號添加特殊權限。

Groups

然而,在我大四期間,發生了一件慘案,令人開始質疑,班級共同的帳號權限政策。有一堂必修六學分的課,在期末考前夕,其資料夾被人整個刪掉,幸虧同學還有備份,上傳回去,否則後果不堪設想。

原先的帳號權限政策是公與私方便管理的平衡,但是並不能杜絕錯誤操作或有心人士惡意行為,也難追溯責任。

後來,我決定啟用DSM 作業系統提供的檔案管理功能:資源回收桶。其要點如下:

  • 網頁版、FTP、以及其他檔案服務刪除檔案時,第一時間歸檔到資源回收桶資料夾
  • 資源回收桶資料夾設定權限,除管理員帳號外其餘皆只能讀取不能變更
  • 排程每月定期清理當日七天前的舊檔案

這樣做,就可以防止刪除檔案救不回來的情況了。

Recycle

3. 檔案伺服器服務設定

Synology NAS 支援FTP, SFTP, WebDav, smb, afp 等檔案傳輸協定。一開始,其實有想過要以其他預設UTF-8編碼的傳輸協定取代掉FTP, 但是在醫學系學生散佈在各年級層以及醫院的情況來說,實在很難宣傳。再加上我們沒有權限管理醫院網路,許多Port 預設被擋,所以最後只開了FTP跟網頁介面。又順應Windows 中文編碼問題,將FTP調整成適合的設定。

Fileservice

4. 安全設定與自訂網域

檔案伺服器的安全設定有幾個層面:

  • 啟用Let's encrypt 取得憑證
  • 啟用https, HSTS等相關設定
  • 自動封鎖、關閉ssh

啟用Let's encrypt時,因為必須透過網路讓伺服器可以被定時連線驗證,所以記得要正確填寫伺服器網址。如果有虛擬主機不同子網域的網站想要也一起套用https時,記得在主體別名一起填寫。

Letsencrypt1 Letsencrypt2

另外,DSM 6.0 在更新時提供了去掉網址連接埠直接連線到檔案伺服器本身的設定

 

5. 攝影部 Photo Station

成大醫學系學會有許多活動,系學會攝影部拍攝了許多照片,希望能有一個地方展示,而且可以顯示出每張照片的快門、光圈、解析度以及相機資訊,剛好適合玩攝影的人研究。

從架設起來到現在,攝影部已經留下許多美好的回憶。

Photostation

6. 其他管理雜項

  • 啟動檔案索引
  • 虛擬主機設定網域
  • 自訂登入頁面及背景增加識別度

啟動檔案索引後,網頁版的檔案總管便可在右上角搜尋內文包含關鍵字的檔案

Fileindex

虛擬主機設定網域,可以在檔案伺服器上面架設不同網址的網站。

Virtualhost

另外,登入頁面可以更換Logo, 並添加必要管理訊息

NAS-Loginscreen

結語

系上檔案伺服器更換為Synology的NAS以後,維護更加方便,也提供了一些比起傳統FTP更加完善的功能。在此分享經驗。