OPI計劃介紹:開放且可編程的基礎設施
目錄
- 導言
- OPI風險管理和生命週期管理
- 2.1 安全附件補給
- 2.2 冷開機序列
- 2.3 系統生命週期管理
- 2.4 監控和遙測
- OPI API
- 3.1 儲存API
- 3.2 網絡API
- 3.3 安全API
- 3.4 AI和ML API
- OPI概念證明和開發平臺
- 4.1 模擬環境
- 4.2 實驗室定義
- 4.3 開發者平臺
- 使用案例組
- 5.1 安全應用案例
- 5.2 儲存應用案例
- 5.3 路由應用案例
- 5.4 K8s網絡應用案例
- 如何加入OPI計劃
- 結論
- 常見問題解答
OPI風險管理和生命週期管理
OPI(Open Programmable Infrastructure)計劃是一個開放、可編程的架構,旨在將資料處理單元(DPUs)和與之相關的基礎設施整合到一個共同的生態系統中。本文將介紹OPI計劃的風險管理和生命週期管理方面。
2.1 安全附件補給
在OPI計劃中,我們採用了安全附件補給(Secure Zero Touch Provisioning,SZTP)標準,這是一種自動化的方式來為DPUs和IPUs進行補給。這一過程通過引入引導服務器(Bootstrap Server)來保證補給過程的安全性。
SZTP的目的是確保DPUs和IPUs能夠在網絡中自動進行驗證、確定所在的環境以及獲取所需的軟件和配置。這可以防止未經授權的設備進入網絡並確保所有的軟件和配置都是經過驗證的。
2.2 冷開機序列
對於DPU和IPU的冷開機序列,我們需要協調服務器和DPUs/IPOs之間的開機過程,以確保它們可以正確地進行開機。
具體而言,我們需要確保當服務器獲取電源時,DPUs和IPUs立即開始啟動,而服務器本身也是獨立進行啟動的。為了實現這一目的,我們需要協調服務器的開機過程,直到DPUs完成驗證。在DPUs完成驗證後,我們還需要從DPUs向服務器發送通信,以釋放服務器的停擺並繼續開機。
2.3 系統生命週期管理
在OPI計劃中,我們通過以下四個主要操作來管理DPUs和IPU的生命週期:
-
重新啟動:我們需要提供一種方法來重新啟動DPUs和IPUs,包括固件重新啟動、操作系統重新啟動和應用程式重新啟動等。
-
升級:我們需要提供一種方法來升級DPUs和IPUs的固件、操作系統和啟動程序,以及DPU的軟件和應用程式。
-
恢復出廠設置:我們需要提供從網絡和主機進行出廠設置恢復的方法,以便可以從遠程位置對DPUs和IPUs進行出廠設置恢復的操作。
-
調試:我們需要提供一種方法來調試DPUs和IPUs,以便在遇到問題時可以進行故障排除和調試。
2.4 監控和遙測
在OPI計劃中,我們採用了開放遙測(Open Telemetry)標準,該標準由兩個項目合併而成,分別是指標(Metrics)和追蹤(Traces)。
我們的目標是將DPUs和IPUs產生的追蹤、指標和日誌數據以統一的方式流式傳輸到一個集中的位置,然後使用常見的追蹤、指標工具(如Prometheus和Grafana)對數據進行分析和展示。為實現這一目標,我們開發了一個示例的開放遙測收集器,並與SPDK和系統監控進行整合。
OPI API
在OPI計劃中,我們將API分為存儲、網絡、安全和AI和ML四大領域,以支持不同類型的應用。
3.1 儲存API
對於存儲API,我們主要關注前端(Frontend)、後端(Backend)和中端(Midland)三個方面的功能。
-
前端API:這些API是面向主機的,用於配置NVMe設備,包括設置虛擬函數和設備參數,如隊列深度和最大IOPS等。
-
後端API:這些API是面向網絡的,用於配置與存儲設備相連接的後端設備,我們支持多種連接方式,包括NVMe over Fabric的TCP和RDMA。
-
中端API:這些API位於前端和後端之間,用於實現額外的功能,如壓縮和加密。這些API在實現中可以使用不同的插件,以實現特定廠商的硬件加速。
3.2 網絡API
對於網絡API,我們主要關注云服務提供商、電信行業和Kubernetes網絡等方面的功能。
-
云端API:這些API用於配置與云服務提供商相連接的DPUs和IPUs,以實現雲端網絡功能。
-
電信API:這些API用於配置與電信行業相關的DPUs和IPUs,以實現特定的電信網絡功能。
-
Kubernetes API:這些API用於對接Kubernetes網絡,以實現DPUs和IPUs在Kubernetes環境中的部署。
3.3 安全API
對於安全API,我們主要關注IPSec和基於規則的過濾等方面的功能。
3.4 AI和ML API
對於AI和機器學習(AI/ML)API,我們目前還沒有具體的實現,但我們非常歡迎來自終端用戶和合作夥伴的貢獻。
OPI概念證明和開發平臺
OPI概念證明和開發平臺(Proof of Concept and Developer Platform)是OPI計劃的一個重要組成部分。它包括模擬環境、實驗室定義和開發者平臺。
4.1 模擬環境
模擬環境是一個用於測試和試用OPI軟件的環境。它可以在沒有實際硬件的情況下提供一個完整的開發和測試環境。模擬環境是基於Docker和Docker Compose構建的,可以部署各種服務,並進行自動化測試。
4.2 實驗室定義
我們正在努力建立一個實驗室定義,以便在實際硬件上測試我們的軟件。這將成為我們的持續集成(CI)環境的一部分,確保我們能夠支持跨不同硬件平臺的部署環境。
4.3 開發者平臺
我們的開發者平臺提供了一個環境,供開發人員使用OPI軟件開發自己的應用程序。開發者可以在這個平臺上添加自己的服務和測試,並確保它們與OPI軟件相兼容。
使用案例組
使用案例組是OPI計劃中的一個小組,專門負責與客戶和部署合作夥伴的溝通。他們對話,了解他們的痛點,了解他們的需求,並將這些需求傳達給OPI計劃的其他小組。
使用案例組與客戶的對話有助於確定OPI計劃的目標和發展方向,並確保OPI軟件能夠真正為客戶所用。
如何加入OPI計劃
如果你想加入OPI計劃,有多種不同的選擇,無論是作為個人還是組織。你可以通過加入Linux基金會或參加我們的項目會議來正式參與,或者可以通過郵件列表和Slack頻道等方式以非正式方式參與。
我們歡迎各種形式的參與,包括提供貢獻、提出問題或提供意見等。無論你是技術專家還是終端用戶,我們都希望你加入我們的行列,共同推動DPUs和IPUs的開放生態系統的發展。
結論
OPI計劃是一個旨在建立開放和可編程架構的項目,旨在將DPUs和與之相關的基礎設施整合到一個統一的生態系統中。我們的目標是建立一個充滿活力的社區,以共同推動DPUs和IPUs的發展。
我們歡迎任何人加入我們的計劃,無論是技術專家還是終端用戶,我們都希望聽到你的聲音。請加入我們的項目會議,向我們提出你的想法和建議,讓我們一起為開放的DPUs和IPUs生態系統做出貢獻。
常見問題解答
問:OPI計劃是否會考慮支持不常見的用例,如虛擬化、視頻流傳輸、儲存虛擬化和時間同步?
答:是的,我們願意考慮支持這些用例。我們已經討論過其中一些用例,目前的優先級較低,但我們預計將會處理這些用例。
問:是否打算將GraphQL納入OPI計劃中?
答:我們曾考慮過GraphQL,但最終決定採用gRPC。gRPC是我們在雲服務提供商和後端服務間使用的主要協議,因此能更好地支持OPI計劃的目標。
問:OPI計劃是否有API供Hypervisor Offload、應用驗證、視頻流傳輸、儲存虛擬化和時間同步等不常見用例使用?
答:這些用例完全取決於需求和需求的優先級。我們非常歡迎各位參與討論,如果您有任何想法或意見,請加入我們的會議並進行表達。
問:OPI計劃是否會考慮支持Trusted Execution Environment(TEE)相關的API?
答:目前我們還沒有具體考慮TEE相關的API,但我們非常樂意研究這個問題。如果您對此有相關的專業知識或建議,請加入我們的討論。
Highlights
- OPI(Open Programmable Infrastructure)計劃的目標是將資料處理單元(DPUs)和與之相關的基礎設施整合到一個共同的生態系統中。
- OPI計劃通過安全附件補給、冷開機序列、系統生命週期管理和監控遙測等方式實現風險管理和生命週期管理。
- OPI計劃的API涵蓋了存儲、網絡、安全和AI/ML等領域,在不同的應用場景下提供標準化和統一的接口。
- OPI計劃還提供了模擬環境、實驗室定義和開發者平臺,方便開發人員進行測試和開發。
- 使用案例組通過與客戶和部署合作夥伴的對話,理解他們的需求並反饋給OPI計劃,以確保OPI軟件能夠滿足客戶的需求。
- 加入OPI計劃可以通過正式或非正式的方式進行,通過參加會議、提供貢獻或加入郵件列表和Slack頻道等方式參與討論。
- OPI計劃歡迎各種形式的參與和貢獻,旨在共同推動DPUs和IPUs的開放生態系統的發展。
FAQ:
問:OPI計劃是否有考慮支援台灣本土表達?🇹🇼(Emoji:flag-tw)
答:目前尚未有相關的計劃,但歡迎提交建議,我們將考慮在未來的版本中增加台灣本土表達的支持。如果您有任何建議,請加入我們的討論並與我們分享您的想法。
問:OPI計劃是否考慮支援較不常見的用例,例如區塊鏈和物聯網(IoT)?
答:OPI計劃目前專注於資料處理單元(DPUs)和與之相關的基礎設施,我們將考慮支援更多的應用場景。如果您有特定的用例需求,請加入我們的討論,我們將竭力滿足您的需求。
問:OPI計劃的API是否支援不同語言的開發人員?
答:OPI計劃的API使用gRPC和Google Protobuf定義,可支援不同語言的開發人員。您可以使用各種編程語言(如C++、Python、Java等)來編寫與OPI計劃相關的應用程序。
問:OPI計劃是否與其他計劃或組織有合作?
答:OPI計劃是一個獨立的項目,但我們歡迎與其他計劃或組織進行合作。如果您有與OPI計劃相關的合作建議,請聯繫我們,我們將樂意探討合作的可能性。
問:OPI計劃是否已經在實際應用中得到驗證?
答:OPI計劃目前還處於早期階段,我們正在著手開發和測試相關技術。我們歡迎各方參與,將OPI軟件應用於實際場景並提供實際驗證。