在裸機伺服器上託管 OpenSearch 叢集
OpenSearch 叢集結合分散式索引、搜尋、儲存及協調功能。裸機伺服器讓營運人員可以直接控制 CPU、記憶體、NVMe 儲存、網絡介面及作業系統,但這種控制權並不代表可以省略周全的叢集設計。
合適的部署不只是選擇核心數最多或磁碟容量最大的伺服器。團隊應先由資料寫入量、查詢模式、保留時間、分片增長、復原目標,以及叢集管理、資料、寫入及協調工作的分工開始規劃。當需要可預測的 I/O 及資源擁有權時,裸機很有價值,但叢集仍然必須以分散式系統的方式規劃及營運。
OpenSearch 叢集的設計定位
OpenSearch 會把索引分佈到不同節點及分片。具備叢集管理資格的節點負責維持叢集狀態,資料節點儲存及搜尋分片,而寫入或協調節點則可以處理文件管道及請求路由。在較小的部署中可以合併角色,但當索引、搜尋及叢集協調工作互相爭用資源時,分開角色會更有用。
如要了解大量日誌工作負載,Dataplugs 的先進日誌彙總及 SIEM 整合於主機託管服務文章說明集中收集、標準化、索引及保留資料時,為何需要同時按資料寫入及搜尋需求規劃基礎設施。
- 先從文件寫入量、查詢並發量、保留時間及復原要求開始規劃
- 當叢集規模足以需要時,讓具備叢集管理資格的節點遠離不必要的資料壓力
- 以符合工作負載的節點角色處理分片儲存及搜尋,不要只套用通用設定
- 把主分片、複本及索引範本視為容量及故障範圍的設計決定
- 按工作集、刷新活動及復原流量規劃 NVMe、記憶體及網絡容量
裸機較適合的情況
當叢集需要持續接收日誌或事件、執行低延遲搜尋、保留大型索引,或需要可預測地使用記憶體及本地 NVMe 時,裸機通常較合適。單租戶資源也較容易解釋效能變化,因為 CPU 節流、鄰居干擾及不透明的儲存爭用較少機會影響結果。
OpenSearch 對記憶體存取及堆積壓力較敏感。Dataplugs 的為什麼在資料庫與應用程式伺服器架構中,NUMA 意識如此重要?文章說明 CPU 及記憶體本地性如何影響記憶體密集型服務,包括具有類似資源要求的 Elasticsearch 類工作負載。
- 當持續索引及搜尋需要共用可預測的資源池時,使用專屬硬件
- 當分段讀取、刷新、合併、快照或復原令儲存延遲影響使用者時,使用本地 NVMe
- 當服務需要備援、分片移動,或需要獨立擴充搜尋及索引時,使用多節點
- 為作業系統頁面快取、OpenSearch JVM 及原生程序預留記憶體
- 記錄哪些索引可以重新建立、哪些索引必須還原,以及復原需要多長時間
較小或混合式部署已足夠的情況
並非每一種工作負載都需要大型 OpenSearch 裸機叢集。開發環境、低流量的內部搜尋及短期保留資料,可以先採用較簡單的節點配置,但團隊必須清楚了解單一主機沒有高可用性,以及這種架構的限制。正式環境設計應以實際資料量及查詢行為為基礎,而不是假設一個叢集規模。
如果 OpenSearch 是更廣泛的可觀測性或安全管道一部分,Dataplugs 的使用 eBPF 進行深度封包分析與安全檢測文章說明核心層遙測如何為大量監控及偵測工作流程提供額外情境。
- 當資料量、查詢並發量及復原要求確實有限時,使用較簡單的架構
- 當索引可以在節點或磁碟故障後重新建立時,保留來源資料或快照
- 在不同環境之間保持索引範本、分析器、映射及生命週期政策一致
- 為重啟、分片重新分配及完整快取重建後的冷啟動作好準備
- 不要在沒有獨立來源及備份策略的情況下,只把不可重新取得的業務記錄放在 OpenSearch 索引內
提示:應把 OpenSearch 同時視為搜尋引擎及分散式儲存系統。如果文件可以重新產生,復原工作可以集中於資料寫入速度;如果索引是記錄的唯一副本,快照、複本及還原測試就必須納入設計。
節點角色及叢集拓撲
專屬伺服器可以為每個節點提供可預測的運算、記憶體、儲存及網絡資源,但叢集仍需要配合流量路徑的拓撲。當每個節點都承擔所有角色時,索引壓力、搜尋扇出、分片復原及叢集狀態更新可能互相干擾。
- 應使用實際的資料寫入率、查詢延遲、分片數量、分片大小、分段合併、JVM 壓力及磁碟水位規劃叢集。單看文件數量不足以作出決定;相同的資料量在不同欄位映射、刷新間隔、聚合及查詢並發量下,會產生完全不同的資源需求。
- 按索引、分析、合併及並發搜尋執行規劃 CPU
- 為 JVM 堆積設定明確上限,並為作業系統及檔案系統快取保留 RAM
- 使用高吞吐量 NVMe,並為合併、複本、快照及復原預留足夠空間
- 量度用戶端流量、節點間傳輸、複寫及分片移動所需的網絡容量
以正式環境預計使用的映射、分析器、文件大小及查詢組合測試叢集
儲存、分片、複本及故障規劃
OpenSearch 會先把文件寫入主分片,再把相應變更傳送到複本。搜尋請求可以由主分片或複本處理,因此分片數量及複本位置會影響容量及韌性。過多小分片會造成協調及元資料開支;過少的大分片則可能令復原及平衡工作變慢。
應按預期索引增長、資料節點數量、查詢並行度及可用復原時間規劃分片數量。當主分片及複本必須分散到不同機架、機房或地點時,可以使用分配感知或相應的放置規則。複本可以提升可用性,但同時會消耗儲存、索引工作及復原頻寬。
- 先定義叢集是加速層、營運搜尋儲存,還是資料來源系統
- 在選擇複本數量及快照頻率前,先訂立復原點及復原時間目標
- 測試節點遺失、磁碟耗盡、分片移動、叢集管理故障切換及快照還原
- 使用平衡路由、按時間分段的索引及配合工作負載的範本,避免熱點分片
- 把快照及復原副本放在故障叢集以外,並定期確認可以成功還原
安全、監察及部署
OpenSearch 不應直接暴露到公開互聯網。應把用戶端及傳輸服務綁定到私有介面、限制防火牆規則、使用 TLS 及以角色為本的存取控制,並把管理存取與應用程式流量分開。裸機可以讓營運人員控制這些邊界,但每個開放的連接埠及插件仍需要指定負責人及維護計劃。
監察應把叢集健康與使用者及資料寫入的影響連結起來。應追蹤叢集管理穩定性、分片分配、JVM 壓力、垃圾回收、磁碟水位、索引延遲、搜尋延遲、被拒絕的執行緒池工作、分段合併及復原進度。叢集健康狀態看似正常時,部分分片或查詢仍可能已經變慢。
- 追蹤索引率、搜尋延遲、被拒絕工作、分片數量、儲存增長、JVM 壓力及快取行為
- 監察來源系統及資料寫入代理,避免日誌突然中斷被誤判為 OpenSearch 叢集健康
- 為不同應用程式或環境使用獨立租戶、角色、索引模式及保留政策
- 以分階段部署及回復路徑推出映射、插件更新及設定變更
- 記錄叢集修補、憑證輪換、快照擁有權、告警負責人及事故處理流程
總結
在裸機上託管 OpenSearch,最適合以資料流動、分片行為及故障復原作為設計核心,而不是只看伺服器規格。可預測的 CPU、記憶體、NVMe 及網絡資源可以支援持續資料寫入及搜尋,但叢集仍需要清晰的節點角色、JVM 上限、分片分配、安全控制及監察。
如要為 OpenSearch 節點規劃可預測的單租戶資源,Dataplugs 的專屬伺服器方案提供可配置的 CPU、記憶體、儲存及網絡選項,適合正式環境部署;如需了解更多,請聯絡 sales@dataplugs.com。
