單位的OA系統基于傳統三層架構開發,即數據訪問層、業務邏輯層和用戶界面層。其中,數據庫為Oracle 11g,由二臺Linux服務器組成RAC;中間件為WebSphere,也是由二臺Linux服務器組成應用集群;存儲采用SAN架構,通過光纖交換機連接存儲陣列和服務器,為數據庫和OA公文提供存儲空間(邏輯拓撲結構見圖1)。OA系統自上線運行以來,為用戶提供協同辦公服務,對提高辦公效率、規范辦公流程和節約辦公成本起到積極作用。
隨著OA系統應用范圍進一步擴大,用戶數量不斷增多,OA系統使用頻率越來越高,成為不可或缺的核心應用系統。由于OA系統運行多年,積累了大量的公文數據;另外,OA系統普及用戶增加,導致公文數據量暴增,存儲空間不足壓力加劇。目前,OA公文的存儲陣列區域,空間使用率已高達80%,接近告警閥值,繼續運行將會出現空間嚴重不足問題。

圖1 OA系統邏輯拓撲結構圖
解決存儲空間不足問題,方案一是存儲陣列擴容升級,增加存儲空間;方案二是遷移過期數據,為存儲陣列挪騰空間。由于SAN存儲擴容升級成本較高,加上年初預算不足,只能選擇方案二,將不常使用的過期數據遷移,降低存儲陣列空間使用率,為系統正常運行創造條件。
通過對OA系統公文數據目錄結構分析得知,SAN存儲掛載在應用服務器/data目錄下,公文數據按月存 儲,如 /data/201801、/data/201802等。恰巧單位有一臺網絡存儲陣列(NAS),存儲空間非常大,可以利用它解決OA系統存儲空間不足問題。由于SAN存儲性能較好,存取響應速度相對較快,可以繼續使用作為OA系統的主要存儲;NAS存儲性能一般,存取響應速度次于SAN存儲,可以作為OA系統的輔助存儲,存儲三年以上不常使用的OA公文數據。
NAS存儲具有NFS功能,可以作為NFS服務器,提供網絡共享服務。但是不常使用的OA公文數據遷移到NAS存儲,遷移后如何掛回應用服務器原目錄,才不影響用戶正常使用?由于公文數據按月存儲,NAS存儲網絡共享后,也得按月進行原目錄掛載,才能正常使用。一年掛載12次,十年就得掛載120次,如果部分目錄遺漏掛載或者掛載不成功,那么OA系統將出現部分公文無法正常打開情況發生。
如果OA系統公文數據存儲目錄,在按月存儲基礎上,增加按年目錄管理層級,如/data/2018/201801,那 么 一年只需掛載一次,十年掛載十次,掛載次數大大減少,發生錯漏可能性也大幅降低。經過與OA系統廠商協商,OA系統廠商表示,所有公文的物理路徑已經固化在數據庫中,無法增加按年目錄管理層級,存儲目錄結構無法改變。看來,按年掛載的思路無法實施,NAS存儲掛載問題陷入困頓。是不是NAS存儲只能逐月掛載?經過無數次琢磨,筆者發現一個更加行之有效的方法,只需一次掛載,軟鏈接加以輔助,OA系統就可以正常使用,非常高效。具體過程如下:
假設NAS存儲的IP地址 為172.16.1.100,提 供給 OA系統使用的共享目錄為 data。首先在/mnt目錄下創建NFS掛載目錄datanfs,然后將NAS存儲掛載到data-nfs 掛載點下。

數據遷移比較簡單,但是OA公文數據量非常龐大,遷移過程比較耗時。數據遷移后,還應對遷移的數據進行校驗,確保遷移后的數據完整可用。如按年遷移:

Linux系統的文件有硬鏈接和軟鏈接之分。硬鏈接是一個數據塊對應一個或多個文件名;如果文件的數據塊存放的是另一個文件的路徑名指向,那它是軟鏈接。軟鏈接也是一個普通文件,只是數據塊內容有點特殊,它可以指向一個文件,也可以指向一個目錄,類似Windows操作系統中的快捷方式。利用軟鏈接這一特性,在/data目錄下,逐月創建軟鏈接,指向NAS存儲相應目錄,確保OA數據正常訪問。

為避免每次服務器重啟都要手工進行掛載,可以使用自動掛載方式,將NAS存儲掛載到/mnt/data-nfs目錄。掛載方式有兩種,可在/etc/rc.local中掛載,也可在文件系統配置表/etc/fstab中掛載:

最后,NAS存儲可以自動掛載到OA系統,并通過軟鏈接調整公文路徑指向,有效緩解SAN存儲空間壓力。