精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

明明是全閃存陣列,為何存儲性能仍然不夠快

責任編輯:editor004

2016-11-11 12:38:52

摘自:51CTO

 一是硬件訪問要繞過操作系統(tǒng)(stack-bypass);以上,是某廠商針對全閃存時代在軟件定義過程中出現的影響硬件性能的解決方案,筆者分享給大家,希望提供一些參考。

軟件定義的超融合雖然有著諸多的優(yōu)勢,但對軟件開發(fā)商提出了非常高的要求,他們非但要精通各種語言、系統(tǒng)和架構,還必須要熟悉硬件本身的性能,這樣才能夠保證開發(fā)出來的軟件能夠全部發(fā)揮硬件的性能。

軟件定義基礎架構,軟件定義存儲,軟件定義存儲。目前,用軟件定義超融合的方式替代專用服務器、專用網絡、專用存儲設備等傳統(tǒng)基礎架構的方法,已經成為了行業(yè)的熱點。英特爾系統(tǒng)架構師朱海峰先生曾在某超融合大會上公開表示,未來的大型數據中心的建設,將采用標準X86硬件構建作為整個數據中心的基礎架構,通過軟件廠商比較強的軟件定義能力來實現存儲、網絡和計算等功能,并通過各種軟件定義的解決方案來實現超融合。這也就意味著,軟件定義已經成為行業(yè)的重點技術。

軟件定義的主要目的是減化部署流程,提高易用性,降低運維成本。當然,最重要的是能夠發(fā)揮硬件的全部性能,合理分配利用硬件資源,節(jié)省硬件開支。

不過,軟件定義的超融合雖然有著諸多的優(yōu)勢,但對軟件開發(fā)商提出了非常高的要求,他們非但要精通各種語言、系統(tǒng)和架構,還必須要熟悉硬件本身的性能,這樣才能夠保證開發(fā)出來的軟件能夠全部發(fā)揮硬件的性能。

關于軟件定義帶來的硬件性能的損失,比較典型的例子就是軟件定義存儲導致的磁盤性能的下降,這主要是在全閃存時代背景下,磁盤性能有了非常大的提升,如果在軟件定義的過程中還是按照傳統(tǒng)機械硬盤的性能還編寫系統(tǒng),那就完全無法發(fā)揮閃存的性能。筆者在某超融合的大會上,就曾遇到過一家專門作軟件定義存儲解決方案的廠商,它們針對Flash時代開發(fā)出了裸金屬軟件定義存儲技術,非常好的解決了軟件定義存儲無法充分發(fā)揮全閃存硬件性能的問題。

這里,筆者與大家共同分享一下他們的解決方案和研發(fā)思路,希望對大家有所啟發(fā)。

我們知道,在Flash之前,存儲性能的發(fā)展是嚴重滯后于其它硬件性能的發(fā)展的,雖然大家通過各種方法來提高磁盤的存儲性能,但相較于其它硬件的發(fā)展,存儲的性能提升并不理想。在Flash時代,存儲硬件性能的問題迎刃而解。不過,很多廠商在替換全閃存陣列后,發(fā)現存儲的性能并沒有提高多少,這主要是軟件和系統(tǒng)出現了問題。

由于Linux標準的API并沒有提供高性能的場景設計,因此操作系統(tǒng)成為了影響系統(tǒng)整體性能的瓶頸,無論你在一個設備上插入多少硬件,調用多少資源,都會發(fā)現一個節(jié)點一二十萬iops就到了這些軟件定義存儲的上限了,這是因為Linux系統(tǒng)的任務調度,內存管理,以及系統(tǒng)調用,都是非常緩慢,完全不適合Flash時代的需求。

如何解決這一問題呢,裸金屬軟件定義存儲技術是通過以下兩種方法解決的:

一是硬件訪問要繞過操作系統(tǒng)(stack-bypass);

二是軟件運行要繞過操作系統(tǒng)(os-bypass)。

對于硬件的訪問要繞過操作系統(tǒng)(stack-bypass)這種技術業(yè)內已經有相對比較成熟了,也比較容易實現。比如英特爾提供的DPDK/SPDK,Mellanox的RDMA,都不需要經過操作系統(tǒng)就可以直接訪問硬件。但是,軟件運行繞過操作系統(tǒng)(os-bypass)的難度卻比較大。首先,要繞過操作系統(tǒng)的內存管理,直接訪問物理內存,自己來實現內存管理,這中間要考慮NUMA,染色等問題,工程量非常大。其次,任務調度也要考慮的非常清楚,過去解決高并發(fā)問題的時候大家就會采用多線程的機制,但是多線程一般在數百并發(fā)的時候會變得比較困難,通過引入了協(xié)程技術,把任務之間的協(xié)作來分配時間片,每個任務處理完之后自動放棄時間片,而不是操作系統(tǒng)讓他強制放棄時間片。另外,在事件處理上過去通過操作系統(tǒng)標準來實現,每個事件都跟時間有關,包括硬件系統(tǒng)的時鐘中斷。但是這個技術并不是非常的高效,在這方面可以采用polling技術,沒有時間延期的。

在多核同步上,目前 CPU的核數越來越多,過去編程的時候大家會采用生產者、消費者模型,用線程用來處理任務,但是到現在多核同步并不是一個非常高效的方案,這主要是因為NUMA和cachemiss問題,雖然說NUMA問題CPU解決的還可以,但是仍然不夠理想,這時可以采用run-complete模型,每個CPU的核從他接受到任務,到完成任務中間不再任何跳轉,避免隱性的CPU開銷。

通過以上的方案,能夠拿掉盡可能多的環(huán)節(jié),包括進出Linux的網絡堆棧、Linux的存儲堆棧,這樣就能夠讓剩下的流程全是在硬件上運行的。最后,通過這些技術的運用,能夠讓存儲的性能與硬件性能幾乎完全一致,不帶來硬件性能的任何衰減。

以上,是某廠商針對全閃存時代在軟件定義過程中出現的影響硬件性能的解決方案,筆者分享給大家,希望提供一些參考。

鏈接已復制,快去分享吧

企業(yè)網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 陇西县| 迁安市| 中西区| 丰镇市| 宜章县| 玛曲县| 乡宁县| 和龙市| 田东县| 从江县| 宿松县| 民丰县| 葵青区| 南充市| 织金县| 汶上县| 宜兰市| 兴山县| 鹿泉市| 昌图县| 岳西县| 庆元县| 桓台县| 罗山县| 武平县| 江源县| 西乌珠穆沁旗| 台安县| 额济纳旗| 黑河市| 仙居县| 察哈| 乌兰县| 申扎县| 广水市| 苏尼特右旗| 旬邑县| 克山县| 肥城市| 从化市| 巫溪县|