圖片來源/Wpcpey CC BY 4.0

東京證交所在10月19日公布了十一大當機事件的調查報告,每一個看到報告的人,第一時間都會問,為什麼東京證券交易系統的NAS,沒有預設開啟備援自動切換?就算無法自動切換,改成手動就好,為何竟然關閉了一整天的交易?而且這個5年前的錯誤配置,中間經過兩次系統大升級,最近一次是去年底,歷年演練、測試,難道都沒有辦法提前發現嗎?

要回答這些問題,得了解東證在10月1日大當機所面臨的挑戰,不是NAS硬體當機的技術故障問題而已,還要加上因為錯誤資訊而導致的作業設計錯誤,以及如何顧及全日本各券商、交易參與者的交易公平性問題,才造成了這次東證1999年改為電子化交易以來,首度全日中止交易的大災情。這三大困難也是造成東證全日交易中止的三場災難。

 東證第一難:不可預期的記憶體模組硬體故障 

東證事故發生後,在當天下午記者會中,由負責維運交易系統的日本交易所集團資訊長横山隆介親自解釋,故障設備是NAS系統中1號主機的記憶體模組。

這個設備是去年11月,東證證券交易系統升級到第三代Arrowhead系統時所換新的NAS主機,從上線使用至今,還不到一年的新品。東證當天就換掉問題主機上的主機板(內建CPU和損壞的記憶體模組),送到原廠鑑定。

過幾天,東證排除其他系統可能問題後,確定這次當機事件的主因就是用來儲存共用資料,例如用戶資料的NAS系統故障所致。後來,原廠鑑定後更判斷,記憶體模組所發生的是不可預期的物理問題,無法預料也難以事先避免。這是東證第一個無法事先避免的難題。

但是,就算遇到硬體故障,還是可以透過備援架構、冗餘設計,來避免對系統運作造成影響。這正是東證遇到的第二難。

 東證第二難:手冊資訊沒勘誤,導致系統設計錯誤 

東證打造證券交易系統時,為了追求更高頻的交易速度,即時交易資料大多儲存在記憶體中,而儲存在NAS系統上的共用資料,例如用戶資料,則提供給不同用途的伺服器使用,包括股市行情發布系統、交易監控系統都會存取NAS上的共用資料。

但是,後來在10月19日揭露更詳細的故障原因調查結果,東證這套NAS系統原本舊有高可用性的HA架構設計,就算遇到其中一臺主機的硬體故障,也能夠快速切換到備用主機來接手提供存取服務。但是,NAS系統的自動切換功能沒有發揮作用,才導致整座NAS系統無法存取。

但是,自動切換功能無效的原因,不是因為NAS產品功能出錯,而是自動切換的設定出錯。

調查發現,NAS自動切換的參數設定為OFF,這個設定對NAS系統的效果就是,遇到類似記憶體模組故障時,不會自動切換到備用主機。而且原本NAS的預設參數是ON,是東證自己在2015年升級第二代系統時,改成了OFF值。

原來關鍵是,在2010的第一代NAS機種中,自動切換參數的預設值是OFF值設定,而且OFF下仍具有15秒自動切換能力,但是到了2015年所用的第二代NAS機種,已經改變了對OFF值的功能,不再提供自動切換能力。也因此,第二代NAS機種的自動切換參數預設值改為ON值,而不是第一代機種的OFF預設值。

但是,富士通交付給東證的第二代系統NAS手冊中,對於自動切換參數的描述,只提到預設值從OFF變更為ON,但是對於OFF值的功能的描述,仍是舊版的「15秒後可自動切換」,而不是「不會提供自動切換」。這個文件資訊錯誤,導致了東證有錯誤的認知,誤以為就算是採用OFF值,也可以有自動切換的能力。因為東證原本對於自動切換的要求標準是要做到30秒內自動切換,所以,15秒後切換足以符合要求。

雖然東證知道,採用ON值可以做到立即自動切換,但是他們擔心,第一代系統採用的是OFF值設定,若在第二代改成原廠預設的ON值,可能會造成不可預期的影響,例如影響了交易效能。所以,因為手冊上錯誤的OFF值描述,東證而採取了錯誤的決定,將預設ON值,改成了自訂的OFF值。

東證沒有發現OFF值無法提供自動切換,而富士通在出貨時,原本有一套針對產品預設值狀態的驗證測試機制,但因為東證自訂了NAS的這個自動切換參數,出貨驗證人員只有比對文件上的出貨規格是否符要求,而沒有實際測試實機功能是否能提供15秒自動切換的能力。

一個錯誤資訊,造成錯誤決策,再加上出貨驗證的疏漏,才導致了這個系統設計的錯誤。從2015年第二代系統就採取了這個錯誤設計,到了2019年升級第三代系統時,NAS手冊對自動切換參數的描述,仍舊沿用前一版的錯誤內容,沒有勘誤,而東證也繼續根據錯誤資訊,套用錯誤的設定,而富士通出貨時也仍舊沒有發現實機上的問題。

因為不論是東證或富士通都沒有意識到,這些判斷都來自錯誤的產品規格資訊,而且前一代系統的運作都一切如常,也沒有發生過問題,因此在2019年第三代系統升級時,就繼續沿用,直到10月1日真的發生了硬體故障,需要自動切換時,才意識到設定出錯。

也因為誤判NAS系統內的HA架構會自動切換,再加上要實測記憶體故障的自動切換難度頗高,東證坦言,只有測試過網路斷線時的自動切換機制,而沒有測試記憶體故障的自動切換。

東證在調校設計,誤信了手冊上沒同步勘誤的錯誤資訊,而選擇了錯誤的設計,而且不只是自動切換參數的設定錯誤,還有一項錯誤設計,更是導致東證必須中止全日交易的另一個關鍵。

因為誤以為NAS發生故障,可以在15後自動切換到備用主機,來恢復NAS正常運作。東證所設計的交易系統關機程序,必須在交易監控系統上操作,而這個系統必須讀取NAS上的共用資料才能運作。

但在10月1日,雖然東證在9點開市前就發現,NAS自動切換參數錯誤,決定改用人工手動切換來作業,但東證無法確保手動切換NAS的完成時間,導致NAS遲遲無法恢復,也連帶影響了交易系統關機程序無法執行,但是,東證又想要趕在上午9點開市前關閉交易系統,這樣可能有機會,在下午重新開放交易。

這時候,東證做了另一個非正常的替代作法,就是直接斷網,所以,東證在8:56,直接關閉接受委託單的交易參與者閘道器的對外網路,來阻止券商繼續上傳委託單,達到交易中止的效果。這非標準作業的斷網決定,帶來了東證的第三難,也就是市場公平性的考驗。

 東證第三難:券商技術能力不一,系統要當日重開難以確保交易公平性和價格正確性 

因為發生錯誤的系統是股市行情發布系統,而東證核心交易系統一切正常,也從8點開始接收券商的委託單,甚至完成了撮合,執行指令都累積在交易系統中等待9點開盤後實際執行。

即使東證在8:56順利斷網停止收單,但是沒有循正常關機程序作業的證券交易系統,仍舊正常運作,到了9點就自動展開撮合。

若要重新開機作廢這一波委託單,東證表示,問過國內外相關券商和參與者,能否重新補上傳8:56之前的委託單,重新進行撮合。後來,發現只有少數券商有能力重新上傳。有人可以做到,有人不行,為了避免影響公平性,東證才依法決定中止全日交易,全日交易都視為沒有完成而無效。

在這次大當機事件中,讓東證發現,關閉交易後的相關作業流程不夠完善,與市場資訊的溝通也不夠快,導致券商無法更早展開後續作業。

他們在10月19日的檢討報告中坦言,過去為了邁向永不停機的目標,不斷追求更快的交易速度,也只兼顧發展更好的復原程序,但這次當機讓東證體會到,還需要考慮第三件事,就是韌性,在當機後交易重開時也能順利恢復運作的能力,而且不只是自己的韌性,還要考量市場,如券商在交易中止後的恢復能力,這將是他們接下來的新課題。

超完整東京證交所大當機事件(詳細時間表)


Advertisement

更多 iThome相關內容