近期與一家匿名供應(yīng)商討論,在共享的存儲陣列里我們是否真的需要服務(wù)質(zhì)量(QoS)。他的想法是,如果我的存儲陣列和網(wǎng)絡(luò)有足夠的帶寬/IOPS,那何苦還要實現(xiàn)服務(wù)質(zhì)量。乍一看這似乎是一個合理的假設(shè),假如我擁有比所需更多的資源,那么滿足所有需求自然不成問題。單就其是否有意義而論,我們先退一步,看看在過去的15-20年,人們是如何提供持續(xù)存儲的。
問題
持續(xù)存儲在計算中一向是瓶頸,因為磁盤和磁帶I/O比處理器和內(nèi)存運算發(fā)生要慢得多。而存儲比數(shù)據(jù)在處理器往返的速度要慢3到4倍(納秒&微秒對比毫秒),相互之間差異巨大。因就有了著名計算機架構(gòu)師Gene Amdahl曾說的一個好理由,“最好的I/O就是你什么都不必做”。外部I/O拖后腿。因此,存儲一直力圖盡可能快地傳遞I/O請求。正如“麥當(dāng)勞”式配送相對飯館訂餐的區(qū)別在于時間間隙被提前分配到了哪里。
具體來說,對于麥當(dāng)勞店,顧客按順序享受服務(wù),即便他們一時半會吃不到。選錯隊你還可能會排在猶豫不決,團(tuán)購訂餐的人后面又或者還有一個動作遲緩的服務(wù)員。沒有優(yōu)先權(quán)和特殊待遇——用餐時間未知。很多帶寬是通過增加更多服務(wù)器(可擴展性受限)提供。相對而言,飯店有預(yù)訂時間間隙,確保了大廚能及時奉上美食。食物利用晚上的時間均勻分配(希望如此)以期顧客有更一致的體驗。間隙受限,還要進(jìn)行策劃和管理。如果沒有預(yù)約,你可能會被拒之門外。飯店的“向外擴展”是通過增加更多覆蓋面(桌位)再加上更多人手。
存儲陣列是由HDD構(gòu)建,I/O響應(yīng)能力具有不可預(yù)測性和多變性,取決于I/O請求的工作負(fù)載概要。供應(yīng)商采用如高速緩存,預(yù)取,隊列重組和降級來緩解峰值并簡化I/O。一些供應(yīng)商實施無服務(wù)質(zhì)量的優(yōu)先級技術(shù),旨在實現(xiàn)盡可能多的后端I/O。而對于閃存,這些問題就不大明顯了,因為SSD提供比HDD更高吞吐量和更低的延遲, 甚至隨機工作負(fù)載(受制于管理問題如垃圾回收)。主機I/O更具可預(yù)測性和一致性,但在共享組件如前端端口,內(nèi)部軟件隊列,后端控制器和共享SSD上仍會出現(xiàn)情況。
添堵的鄰居
由于這個共享性質(zhì),可能會有“添堵的鄰居”問題,一臺主機阻斷I/O“交通”造成他人損失。即便有后端SSD,硬件前端隊列(比如FC HBA)和軟件隊列(比如那些更新的元數(shù)據(jù))依然會看到爭奪和一些潛在地延遲。服務(wù)質(zhì)量能使?fàn)帄Z得到控制,SSD允許這些主機之間I/O進(jìn)行持續(xù)交付。
因此服務(wù)質(zhì)量確實占一席之地,即便這個系統(tǒng)似乎已經(jīng)有了很多I/O容量,無非是為了確保I/O能力在所有服務(wù)器間公平共享。此外服務(wù)質(zhì)量開始用于更多如SSD,處理器或系統(tǒng)內(nèi)存上其他資源有爭搶的地方。優(yōu)先級能用于決定哪些工作負(fù)載率先節(jié)流,以便保護(hù)關(guān)鍵任務(wù)系統(tǒng)。最后我們應(yīng)該記得服務(wù)質(zhì)量QoS也允許基于云的部署,確保用戶(內(nèi)部或外部)僅獲得它們支付的資源(委婉稱之為“一致體驗”)。
最后一點相當(dāng)重要,我們正在轉(zhuǎn)向一種為所有組件交付IT即服務(wù)的模式,不單單是存儲。現(xiàn)今業(yè)內(nèi)普遍的選擇是最快介質(zhì)SSD。未來可能是NVDIMM或3D Xpoint。沒有一些基于服務(wù)的控件,IT企業(yè)會發(fā)現(xiàn)很難引進(jìn)新技術(shù)還不影響用戶體驗。因此要分離二者以盡可能的最佳方式實現(xiàn)技術(shù)交付。