《云數據中心網絡與SDN:技術架構與實現》——2.5.4 數據庫
2.5.4 數據庫
網絡實際上是一個巨大的數據庫。傳統的設備通過交互路由協議來維護鄰居表、拓撲表以及路由表等。轉發設備中磁盤/硬盤這類資源極少,閃存一般也只用來存儲設備的操作系統,像鄰居表、拓撲表、路由表以及一些配置參數通常都是存在RAM里面的。RAM的好處是比磁盤/硬盤的讀寫性能要高很多,對路由協議的性能起到了很好的幫助。RAM的壞處就是設備掉電后這些表就都沒有了,路由還要重新開始收斂,只有一些關鍵的配置才會被存到硬盤里做持久化。另外,轉發設備中的RAM本身也不多,這要求做路由協議的開發人員對相關的數據結構要進行非常巧妙的設計。
SDN出現之后,控制器需要維護全局的視圖,控制器中數據的存儲與維護對于網絡的穩定運行至關重要,因此數據庫的設計對于控制器可以說是最為關鍵的。控制器相比于傳統的網絡設備,在數據庫方面的考慮有如下不同。
首先,SDN控制器通常都部署在服務器中,各種存儲資源非常豐富,可以擺脫開在設備上進行嵌入式開發的約束。存儲資源的豐富,意味著數據庫的選擇就變多了。如果特別在乎速度,那么還是需要使用內存數據庫,另外再進行持久化的設計。如果更在意容量和持久化,控制器則可以選擇磁盤式數據庫。如果要面對海量數據,甚至還可以考慮使用NAS、SAN等專用的數據存儲解決方案。
其次,SDN控制器的實現機制是自己決定的,數據類型可以做得更靈活,數據操作的邏輯也可以做得更加自由了。傳統網絡設備里面,一條表項都會包含有很多的屬性字段,為了完成轉發可能需要多張表進行迭代查找,因此數據庫的設計多為關系型的。對于SDN控制器來說,要存的數據增加了很多種類,數據格式會變得五花八門,而且在有了全局的視圖后,一些傳統的協議必須用到的參數很可能在控制器上就被簡化掉了。大多數的數據關系按照鍵–值對(Key-Value)來存可能就足夠了,因此非關系型數據庫更適合SDN控制器。不過,具體的選型還是要看控制器上數據層面的具體實現,對于數據關系比較固定的,或者對于事務性要求較高的,那么關系型數據庫可能仍然是首選。
再次,考慮到不同的應用場景,有可能需要為控制器集成特定的功能型數據庫,因此一個控制器中可能會同時存在多種類型的數據庫。比如,如果要求在控制器上做Telemetry數據的趨勢分析或者實時反饋,可能就會需要將相關的數據存入時間序列數據庫。如果要求在控制器上做網絡資源的深度關聯,可能就會需要將相關的數據存入圖數據庫中,等等。
控制器上的數據體量變大后,數據庫的性能優化也是一個重大的問題。這個問題對于數據庫領域而言可以說是老生常談了,分區、分表、讀庫寫庫分離等思路都是SDN控制器可以在工程中借鑒的。
SDN 數據庫 網絡
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。