Abstract
- Opera是一個動態調整的網路
- 使用跟expander-graph-based一樣的multi-hop forwarding,能夠使latency-sensitive traffic快速被送達
- 同時為bulk flows提供time-varying的direct forwarding的線路以及接近最佳化的頻寬
- 由一層packet-switched ToR (leaf)以及一層reconfigurable circuit-switched (spine)組成
- 不同於以往做法,Opera不需額外的separate electrical network、active circuit scheduling(?)
1 Introduction
- datacenter供應商長期以來喜歡採用over-subscribed network架構,雖然有提供all-to-all connectivity,但是實際上佔用了network capacity與bandwidth
- 雖然目前已經有一些方法可以動態調整link capacity試圖達成更好的performance,但有些方法會造成大量的delay
- 可調整的網路(reconfigurable network)通常都試圖為end points提供direct link來減少”bandwidth tax”
- bandwidth tax:原本透過direct link就能送達的封包多走了k個link (多跳k個hop),k乘以封包大小即為bandwidth tax
- 尤其是”bulk flow” (大型flow),這類的flow通常completion time取決於整個傳輸路徑中的available capacity而不是propagation delay (小型flow則剛好相反)
- Opera保證每對end point之間每隔一段時間就會被分配到一條direct link
- Opera能夠自行決定
- 馬上把封包傳出去(適用於能接受一定程度bandwidth tax的小型flow)
- 將封包暫存,等到有direct link被建立時再傳封包出去(適用於不能接受bandwidth tax的大型flow)
2 Network Efficiency
2.1 Workload Properties
- 使用priority queuing,以確保小型flow不受阻礙,同時允許大型flow使用剩下的network capacity
- 挑戰在於同時提供high capacity path但也要維持short path length
2.2 The “Big Switch” Abstraction
- 使用folded-Clos topologies
- 會有多層switch,每層都要提供足夠多的packet switch以及他們之間的link確保有足夠的capacity可以支持server之間任何mixture communication
- 可把達成上述條件的network視為一個大型switch
2.3 Reduced Capacity Networks
- 雖然上述的”big switch”設計非常理想,也擁有足夠彈性來支援各種服務,但在network scale很大時並不容易建立
- 事實上,根據報告,目前現有的一些大型datacenter也沒有配置完整的folded-Clos topologies。另外,有研究顯示隨著link rate超過400Gb/s,現有的packet-switching技術可能無法跟上
- Over-subscribed Fat Trees
- routing仍然可保留direct,雖不會增加bandwidth tax,但會降低不同機櫃間end host的network capacity
- Expander topologies
- 沒有in-network switch,封包必須在多個ToR之間hop才能抵達目的地,會增加bandwidth tax
- Reconfigurable topologies
- 動態建立end-to-end的路徑
3 Design
3.1 Overview
- Opera由一層packet-switched ToR (leaf)以及一層reconfigurable circuit-switched (spine)組成
- Expansion for short path
- Expander topology非常適合用在latency-sensitive的flow (小型flow)
- 有良好的fault-tolerance
- Reconfigurability to avoid bandwidth tax
- reconfigurabe circuit switch能夠為任兩個機櫃提供direct one-hop path,適合用在bulk flow (大型flow)
- 每經過一個cycle time,每個ToR都會被連到其他的ToR
3.1.1 Eliminating Reconfiguration Disruptions
- 如果每個switch都是同時做reconfigure的話那所有flow都必須re-routed
- 解法是分段進行reconfigure,這能讓那些要經過即將被reconfigure的switch的flow改走那些不會被reconfigure的switch
3.1.2 Ensuring Good Expansion
- 雖然分段進行reconfigure能保證continuous connectivity但不保證complete connectivity
- Opera必須同時保證
- multi-hop path在任何時候都存在於各機櫃之間(即在任何時候都能透過multi-hop連到任一機櫃)
- direct path每隔一段時間都必須存在於任兩機櫃之間(即每隔一段時間A機櫃都有條direct path可連到B機櫃)
3.2 Example
3.3 Topology Generation
- 要產生$N$-rack的topo先將整個完整的graph隨機分成$N$個不相交的matching(如上面的Example,共有8個matching,同樣的in-port在每個matching中連到的out-port各不相同)
- 然後將這$N$個matching隨機分配給$u$個circuit switch,使每個circuit switch分配到$N/u$個matching
- 最後隨機分配每個cycle中switch改變matching的順序
- 這些動作都是在設計網路時(網路還沒上線運作)就已經做好,所以不會在網路上線後佔用時間去計算這些東西
3.4 Forwarding
- 因為有時要等direct path出現的時間可能是整個cycle的time,所以只讓特大的flow(大到可以平攤delay時間)走direct path,其餘走indirect path
3.5 Synchronization
- 須達成下列條件
- ToR們必須知道circuit switch何時reconfigure
- ToR們必須在circuit switch reconfigure時同時更新自己的forwarding table
- end host只能在知道ToR有direct connect到destination時送出bulk traffic(避免traffic把ToR的queue擠爆)
- 由於每個ToR的uplink都直接連到其中一台circuit switch,所以ToR可以透過偵測連在某個link上的transceiver的signal strength做到re-synchronize(?)
- ToR也可利用IEEE 1588 (PTP),該技術(或方法?)可以在1µs間synchronize switch
- low-latency traffic可以直接送出流量,bulk traffic必須等相連的ToR進行輪詢(poll)才送出
3.6 Practical Consideration
3.6.1 Cabling and Switch Complexity
- Opera的連線複雜度取決於circuit switch本身,switch跟switch之間的連線是perfect shuffle
- Opera使用的是optical switching
3.6.2 Fault Tolerance
- 每次新的circuit被configure後,ToR們都會互傳”hello” messages (包含他所知道的link錯誤訊息),如果在一定時間內沒收到對方傳來的message就判定該條link有問題
- 最慢在2次cycle後所有ToR就能知道誰與誰之間的link有問題
4 Implementation
4.1 Defining Bulk and Low-latency Traffic
- 在Opera中那些無法忍受”等待direct path出現”所需時間的traffic通通歸類為low-latency
- 所以low-latency與bulk traffic的分界線會取決於Opera的circuit switch多久會改變一次matching (cycle speed)
- 下列2個因素很大程度影響了cycle speed
- Circuit amortization
- 可以將delay平攤增加成1-3ms的flow可視為bulk flow
- End-to-end delay
- 如果有封包在傳輸途中遭遇到circuit topology剛好改變很可能導致封包進到loop或被傳到更遠的地方,但丟掉重傳又會造成極大delay
- 設計一time period由end-to-end delay under worst-case queuing $\epsilon$加上reconfiguration delay $r$所組成,並稱其為”topology slice”,任何在slice期間發送的封包都不會經由circuit route
- Circuit amortization
4.2 Transport Protocols
4.2.1 Low-latency Transport
- 使用最近出現的NDP protocol
4.2.2 Bulk Transport
- 使用RotorNet (另一篇論文)中出現的RotorLB protocol
4.3 Packet Forwarding
- ToR switch的routing functionality由P4寫成