上海交通大學個人云存儲這些年走過的那些“坑”
從 2003 年上線的第一代個人文件存儲系統 Portal,到 2012 年的 jCube,再到最近上線的jBox,校園云存儲在用戶需求變化中不斷進化……

金耀輝上海交通大學信息網絡中心副主任
個人云存儲是受師生歡迎的服務,然而,高校個人數據文件的管理存在許多痛點,例如,文件安全性低、誤操作、硬件故障等引起文件丟失;文件共享麻煩,仍然依賴于傳統的 FTP、Windows等方式;隨著移動技術發展,教師及學生對移動辦公、學習的需求越來越強烈,卻無法基于文件展開討論和任務安排;日常辦公文件無法自動備份與同步;版本控制缺失導致教學文件版本的不可追溯;學校、教師、學生個人之間缺乏快速高效的交互平臺;教學資源難以得到有效的利用,資源共享和查找資料起來十分費力。
學校、教師、學生之間如何建立一個高效的平臺,使得教學資源能夠得到更好的利用,查找起來更容易呢?看起來是一個很簡單的個人云存儲的需求。然而,仔細一分析,并不簡單。
它需要考慮多方面的需求。首先,它具有互聯網屬性,所以體驗是很重要的,例如訪問速度快、有多客戶端、多移動終端的支持,版本能快速迭代,一般一個學期可能發布一個版本。此外,還包括外鏈分享。
從用戶要求來看,需求是文件預覽、全文檢索、版本管理、容量超大、應用集成。但是從管理角度來講,安全性的要求可能更加值得關注。在部署云盤的時候,希望在內部做部署,統一身份綁定,然后進行權限管理,不同的人有不同的權限,傳輸過程中加密。當然最重要的還是內容監管。
從運維建設來講,更希望不依賴開放性的要求。第一,不要依賴于底層存儲技術。第二,有更多的開放 API接口。現在所謂的云和以前不太一樣,更多是在營造一個生態。所以我把它定位成既不是一個企業應用,也不是一個互聯網應用,它是一個總互聯網的應用。
上海交大使用的個人云存儲發展歷程,如圖1所示。下文將按照不同使用階段的存儲系統進行詳細的介紹。

圖1
Portal是 第 一 代個人文件存儲系統,從 2003 年上線運行至今。當時的用戶容量是教師 20G、學生 2G, 不過,20G 也是逐步擴展的。體驗其實非常差,只支持FTP、FTPS 和 SFTP 等等,需要 FTP 客戶端,用戶使用體驗不佳,權限設置和文件分享功能極弱。近三年來使用容量增長緩慢,然而,仍然還是有一些忠實的用戶一直在用,為什么呢?因為老師們的課件,一直存這里十多年,即用戶習慣的原因。

圖2
Portal演進的三個階段,如圖2 所示。Portal現在的系統架構,通過 Proftpd 提供 FTP、FTPS 和 SFTP ,安裝 GlusterFS Client 加載 GlusterFS 集群文件系統,基于用戶名的 hash 將 Homedir均勻分配到1 萬個子目錄下。集群存儲使用了 Gluster Server 3.7,4 個節點都符合,并支持多副本。可用容量 40Tb,可按需要動態擴容,實際只使用了 9.6Tb。雖然使用不多,但是確實還在不斷地使用。

圖3

圖4
jCube 系 統 于 2011 年 10 月 部 署,2012 年 3 月正式上線。當時的用戶容量為教師 20GB、學生 10GB。但是實際是可以有一些超出的容量。提供的 Web、Windows 、Android 客戶端,后臺有 8 臺存 儲 服 務 器, 裸 容 量 154 TB, 已 使 用43.6%,物理文件數 1259 萬,現在上海交大 1/3 的師生在用這一服務。如圖3。但是,活躍用戶數的確也在下降,如圖4。
關于 jCube 系統架構,它的前端是Web ,加上一個調度系統, 以及存儲服務器。它的前后端緊密耦合,用戶直接訪問存儲節點。用 Token 驗證身份,能和統一身份打通。同時,它是 100% PHP 實現。
我們為什么要做新一代的個人云存儲?因為 jCube存儲存在兩個問題。第一,副本檢查效率低。循環掃描所有 Hash、檢查副本完整性,每個循環耗時很長,造成新上傳文件需很長時間才能復制滿 3 個副本。怎么去優化呢?需要新增獨立的任務,直接從數據庫中找到副本數少于 3 個的 Hash, 生成拷貝命令,從副本循環檢查中剝離。第二,存儲空間使用不均衡。文件不分片以后,故障磁盤替換(清空)等因素造成長期的一些累積,造成幾臺服務器空間使用率嚴重不均衡。優化的過程中,我們上傳、副本拷貝時優先選擇空間使用率最低的節點,以此取代之前完全隨機的策略。其中,會有人工介入的算法,從空間較滿的服務器上強制刪除一部分副本數為 3 的文件。
校園云的關鍵問題是存儲,用分布式的存儲,尤其是開源分布式存儲。但是,企業級分布式存儲的新需求,或者,校園的需求在哪里?目前存儲的三個需求如下:
第一,存結構化數據,面臨的是對大幅度容量增長的需求,包括對載體標準化的需求,對計算與存儲融合的需求。
第二,存非結構化數據,面臨的是對海量級容量增長的需求,包括對接口自適應的需求和對新業務的存儲需求。
第三,對高性能的需求,即 IOPS 和Bandwidth 的需求。
存儲的選擇,需要考慮所謂分布式存儲的基本思想。1.是大文件被切割成多個小數據塊,分布在多臺存儲節點上,使得存儲和服務的負載均衡和可擴展。2.使用多副本提高數據持久性,需要注意定期檢查數據完整性。3.元數據管理方面,是選擇集中管理,還是分布式管理,還是無服務器管理,例如 GlusterFS。
后來,我們從存儲服務與訪問接口、基本功能、高級功能、部署監控及擴展等多方面綜合比較,選擇 Ceph 作為后端存儲。
對于應用層的選擇主要考慮 7 類 、87 項技術指標。從系統指標來看,得考慮廠商實力、部署運維能力、數據的安全性;從管理功能來看,得考慮后臺管理和監控、賬戶權限、用戶操作審計;從 Web端來看,得考慮 Web 用戶界面的功能、用戶使用體驗;從協作和分享來看,得考慮協作、外鏈及權限控制;從桌面客戶端來看,得考慮 Windows / Mac 端的功能、同步技術和體驗;從移動客戶端來看,得考慮 Android / iOS 端的功能、文檔分享和體驗 ;從定制開發來看,得考慮廠商定制開發能力及承諾,包括界面、單點登錄、Ceph 集成等等。
基于以上的考慮,上海交大云盤主要體現為安全、協作的特點。作為新一代校園云存儲,jBox 正在測試中,歡迎兄弟院校測試使用。云盤能為教師提供 100GB、為學生提供 20GB 的免費空間,6 月初正式上線。
(責編:陶春)
(本文根據金耀輝在“2017 年高等教育信息化創新論壇”上的演講內容整理,作者為黃保青、章思宇、羅萱、金耀輝)