日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

VMware vSphere 5.1 群集深入解析(二十一)- 存储I/O控制(SIOC)

發布時間:2025/7/14 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VMware vSphere 5.1 群集深入解析(二十一)- 存储I/O控制(SIOC) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

VMware?vSphere

5.1

Clustering?Deepdive

?

HA.DRS.Storage?DRS.Stretched?Clusters

?

?

Duncan?Epping?&Frank?Denneman

Translate?By?Tim2009?/?翻譯:Tim2009

?

?

?

目錄

版權

關于作者

知識點

前言

第一部分?vSphere高可用性

第一章?介紹vSphere高可用性

第二章?高可用組件

第三章?基本概念

第四章?重新啟動虛擬機

第五章?增加高可用靈活性(網絡冗余)

第六章?訪問控制

第七章?虛擬機和應用監控

第八章?集成

第九章?匯總

第二部分?vSphere?DRS(分布式資源調度)

第一章?vSphere?DRS介紹

第二章?vMotion和EVC

第三章?DRS動態配額

第四章?資源池與控制

第五章?DRS計算推薦

第六章?DRS推薦向導

第七章?DPM介紹

第八章?DPM計算推薦

第九章?DPM推薦向導

第十章?匯總

第三部分?vSphere存儲DRS

第一章?vSphere存儲DRS介紹

第二章?存儲DRS算法

第三章?存儲I/O控制(SIOC)

第四章?數據存儲配置

第五章?數據存儲架構與設計

第六章?對存儲vMotion的影響

第七章?關聯性

第八章?數據存儲維護模式

第九章?總結匯總

第四部分?群集架構的擴展

第一章?群集架構的擴展

第二章?vSphere配置

第三章?故障排錯

第四章?總結匯總

第五章?附錄

?

?

?

第三部分?vSphere存儲DRS

第三章?存儲I/O控制(SIOC)

當數據存儲群集被建立,I/O度量值開啟,通過存儲DRS,存儲I/O控制也同時開啟。我們覺得用一章來說明存儲I/O控制非常合適,最重要的是,存儲DRS利用存儲I/O控制的某些功能來決定數據存儲的能力,在我們了解這些之前,讓我們先討論些基礎知識。

介紹

存儲I/O控制(SIOC)在資源爭用期間,提供一個方法來公平的分配存儲I/O資源,它啟用后,管理員在高度整合的環境中來運行重要的工作流時,虛擬存儲環境沒有自己造成拒絕服務的風險,另外,它幫助阻止其它的情況下的干擾(同一個數據存儲上的一臺虛擬機能對另一臺虛擬機造成負面的影響),SIOC利用虛擬機份額來達到公平分配存儲資源,在SIOC發布之前,虛擬磁盤的份額被介紹的比較長,但是,SIOC介紹Datastore-Wide計劃,主要的不同是在每個主機級別沒有SIOC計劃,盡管為SIOC計算相當復雜,開啟和配置SIOC是不行的(圖109),SIOC只需要幾步就可以啟用,當存儲DRS使用I/O度量值選項,它將自動啟用,在我們舉例子之前,我們想確認每個人理解了一些關于此塊的基本概念,以及沒有SIOC會造成的影響。

圖109:開啟存儲I/O控制

?

內部排隊

當和許多我們的客戶討論SIOC,我們注意到有一些基本的概念混淆,關于怎樣實際確認資源在所以的虛擬機和主機間被公平的分配,這個例子就包括它,但是原理可能沒有那么明顯,所以我們叫它一個特別的稱呼:排隊節流

在我們解釋怎么排隊節流工作之前,我們想簡單的解釋下不同的隊列,當客戶端系統初始化I/O,這是為了工作流和隊列能相遇:

  • 客戶設備驅動隊列深度(LSI=32,PVSCSI=64)

  • VHBA(hard?code?限制LSI=128,PVSVSI=255)

  • Vmkernel設備驅動(FC=32,ISCSI=128,NFS=256,本地磁盤=256)

  • 多路徑SAN/陣列隊列(包括端口緩沖區,端口隊列,磁盤隊列等)

這些值得注意的Disk.SchedNumReqOutstanding?(DSNRO)沒有提到,正常來說它在Vmkernel設備驅動后直接提到,但是,當SIOC開啟,DSNRO就不再經常使用,自從SIOC保證了一定程度的公平。

考慮到你設置你為你的HBA設置了64的隊列深度,虛擬機在數據存儲上產生I/O,如果它只是數據存儲上的單個虛擬機,增加到64的?I/O將立即結束設備驅動,但是,在大多數的環境中,LUNs被很多虛擬機共享,在大多數的場景中,這些虛擬機應該被平等對待,當同一數據存儲上兩個或者更多的虛擬機產生I/O,DSNRO將踢出它,但是,當Vmkernel檢測到只有一個節流隊列,計數器的閾值就達到了,計數器的名字叫做Disk.SchedQControlVMSwitched,默認設置為6,這意味著當手工I/O節流隊列低于Disk.SchedNumReqOutstanding的值(默認是32)之前,Vmkernel需要檢測6個虛擬機的交換機,(虛擬機交換機意味著需要檢測6次,當前I/O不能來自之前虛擬機的同樣I/O)

節流發生的原因是因為驅動已經產生I/O,Vmkernel不能控制順序,只能想象你有VM-A產生了一些I/O,另一個VM-B剛剛也產生了I/O,VM-A將結束全天運行的大多數全深度隊列,每次VM-B產生I/O,它將通過Vmkernel?調度器快速撿起(這是個不同的知識點),并盡快發送另外一個完成的給驅動,但是它不必要在VM-A?64的I/O的隊列之后,因為它已經在隊列中,這些通過VM-B將明顯的添加到I/O延遲經歷中,這是不可取的,通過限制未完成的請求,我們允許Vmkernel快速安排VM-B的I/O到VM-A的I/O流中,盡管為VM-B減少了延遲。

現在,帶來第二部分的聲明:我們是否應該設置Disk.SchedNumReqOutstanding的值和你們的隊列深度一樣么?OK,在這種情況中,你想你們的I/O過程盡可能快速,沒有任何公平。但是,如果你在單個數據存儲上有最小的工作負載,不想僅僅因為單個的虛擬機產生了過多的I/O,而招致你不想要的虛擬機過多延遲。

真的是這樣嗎?不,不完全是,有一些問題依然不能解答:

  • Disk.SchedNumReqOutstanding的場景中連續I/O會怎樣?

  • VMkernel如何知道什么時候停止使用Disk.SchedNumReqOutstanding?

讓我們先處理連續I/O的問題,默認情況下,VMkernel在隊列中的虛擬機上產生8個連續的命令(由Disk.SchedQuantum控制),當它正常的從其它虛擬機上調用I/O看起來很公平,這樣做是為了保護虛擬機工作負載的連續狀態,I/O發生的扇區鄰近之前被調用的I/O,它的順序比I/O扇區快,—10X是不經常的,當包括緩存影響或者當緩存對比磁盤尺寸太小。但是,連續需要考慮哪些呢?如果下一次I/O比當前少于2000扇區,I/O考慮連續,這個距離在高級參數Disk.SectorMaxDiff中進行控制。

現在,如果其中一臺虛擬機變成空閑狀態,你將非常期望你的活動虛擬機去再次使用全隊列深度,這是Disk.SchedQControlSeqReqs的作用。默認情況下,Disk.SchedQControlSeqReqs被設置為128,意味著當一臺虛擬機已經產生了128條命令且沒有任何交換,Disk.SchedQControlVMSwitches將再次將它重置為0,活動虛擬機能再次使用64的全隊列深度。通過之前的例子,想法是這樣的,如果VM-B產生了非常少的I/O(每128從其它虛擬機中少于1),此時我們將讓VM-B付出高處罰的延遲,推測起來,它不是任何形式的磁盤綁定。

在我們繼續之前,讓我們確信清楚了這些混淆的概念,當SIOC開啟,DSNRO將不適用,SIOC適用公平,它基于發生延遲而不是VM交換數量,換句話說,如果延遲閾值沒有被超過,SIOC不會節流隊列。

當SIOC啟用,它將請求每設備最大的設備隊列深度,并設置它們為最大,SIOC試圖設置隊列深度到256。在大多數的場景中,盡管它是設置成32,原因是大多數的維護人員使用了該默認值。這給我們帶來一些設計原則。

基本設計原則

一旦SIOC在爭用期間負責公平申請,確保你的陣列的可用性和咨詢你的存儲供應商,并在合適的事情請他們支持,設置隊列深度最小為64

如果延遲閾值超過了(這個狀態每4秒計算一次),SIOC基于他們的在陣列級別上I/O?slot配額,動態節流主機的隊列,注意當我們談到延遲(等待時間),SIOC考慮設備延遲,設備延遲是從所有主機連接的數據存儲上觀測的平均延遲。

SIOC怎樣確定每個虛擬機和最終每個主機的配額,PAPDA白皮書(討論SIOC研發的學術文章)描述如下:

引用

資源分配通過份額值被指定,它是標記虛擬機消耗的I/O資源,一個虛擬機有權去消耗分配的存儲陣列資源,它指定關聯I/O請求對比其他虛擬機的重要性,I/O共享與主機的是一種簡單的關系,每個虛擬機共享的全部數量統計為所有的虛擬機,合適的份額公平的被定義,提供存儲陣列服務給適合他們份額的主機。

問題是,怎樣讓每個主機知道延遲被其它主機觀察到?

通信原理

SIOC是用的原理類似于HA:數據存儲上的一個共享文件夾,這個共享文件,iormstats.sf(圖?110),通過多個主機同步能夠進入,每個主機定期的為數據存儲上的文件,寫入它的平均延遲和I/O數量,這些開啟了所有主機讀取該文件,計算數據存儲的平均延遲,它改變為每個主機基于I/O?slot配額,而是允許計算隊列深度。

圖110:通信原理

我們意識到這聽起來十分復雜,所有我們嘗試邏輯化,SIOC怎樣工作在下面的部分中我們分場景進行描述。

本地磁盤調度

本地磁盤調度,一些時候被當做SFQ(start-time?fair?queuing),它是負責一些事情,但是,正如它的名字所透露的,所有關聯的主機的調度,除此之外標記每個虛擬機在資源爭用時間公平的共享I/O資源,當IOPS限制被定義,本地磁盤調度還負責限制虛擬機。

本地磁盤調度影響主機級別的優先級,針對同一個ESXi主機所有運行的虛擬機,通過本身,當一定數量的虛擬機需要比其它虛擬機高一些優先級,它有比較大的價值,但它同時也威脅到虛擬機的平等,當3個虛擬機擁有平等的份額,接下來的圖表描述了這個場景,但VM1和VM2收到較少的帶寬,因為它們運行不同的主機上。

圖111:本地磁盤調度

Datastore-Wide磁盤調度

Datastore-wide磁盤調度有點類似于本地磁盤調度,它將虛擬機的調度優先于其它依靠自身磁盤的調度,它通過計算I/O?slot?權限,但只當配置的延遲閾值被超過時。

一個例子將可能描述它是怎樣工作的,接下來的圖片(圖112)描述了延遲閾值被超過,主機被節流的場景。

圖112:Datastore-wide?磁盤調度

Datastore-Wide磁盤調度為數據存儲上虛擬機的每個VMDK文件統計磁盤份額,在ESXi-01的情況中,它是2000,在ESXi-02的情況中是1000,接下來,datastore-wide磁盤調度將基于主機級別的共享計算I/O?slot配置,它將節流隊列。在這個例子中,每一個虛擬機被分配了33%的存儲資源,如果你同圖111的場景進行比較,你能理解為什么建議在所有的數據存儲上開啟SIOC,即使不需要提高優先級。

基本設計原則

即使虛擬機不需要比其它虛擬機更高的優先級,開啟存儲I/O控制是有利的,它能幫助阻止自身造成的拒絕服務***。

另外一個例子

所有的虛擬機有平等的份額,這個例子比較公平,但是,不同份額的場景,將使其變得復雜,我們像提供額外的例子來確保每個人理解這個基本的概念,在這個場景中,有3個虛擬機(圖113),2個虛擬機(VM2和VM3)被授予了500份額,VM1有1500份額,VM1被分配了60%的可用I/O?slot,VM2和VM3每個被分配了20%,通過加上所有的份額這個計算比較簡單,通過結果可以區分每虛擬機的份額,在VM1的情況下,計算公式如下:

VM1?/?(VM1+VM2+VM3)

或者

1500/(1500+500+500)=60%

如展示的,VM1被分配了60%的I/O?slot?,VM2和VM3被分配了20%

圖113:SIOC?場景2

自動延遲閾值計算

在vSphere?5.0中延遲閾值是指定用戶設置的,默認是30毫秒,但是這個時間不適合所有的數據存儲類型,因為SIOC支持多種類型的設備,一個中間的閾值被設置,某些設備如SSD命中自然爭用點早于其它,它請求用戶在指定的數據存儲上配置較低的閾值。但是,手工決定正確的閾值非常困難,為了阻止錯誤的延遲閾值設置,SIOC在vSphere?5.1中自動為每個設備決定了延遲閾值。

自動延遲閾值計算模擬設備的吞吐量,設置延遲記錄,允許虛擬架構調用有利于設備的全部性能,用戶接口提供控制依據峰值的IOPS的百分比來影響自動計算;用戶接口還提供手動設置延遲的機會。

圖114:配置存儲I/O控制

手工延遲閾值建議

在vSphere?5.1中提供新的自動閾值設置,如果有可能的場合,必須要手工設置閾值,它產生的建議為不同類型的磁盤來設置不同的閾值(見表25)

它應該指出,但是,當SIOC用來配合存儲DRS,存儲DRS?I/O延遲閾值應該設置得比SIOC延遲閾值低,通過節流隊列深度,SIOC被定位用來阻止短暫的延遲高峰,存儲DRS被定位用來解決失衡和通過遷移工作負載降低數據存儲的平均延遲。SIOC觀察設備延遲,存儲DRS觀察全部的延遲,包括設備延遲和kernel延遲。這意味著,當SIOC延遲閾值低于存儲DRS?I/O延遲,它將不會對存儲DRS的建議產生影響,因為存儲DRS考慮設備延遲和kernel延遲,通過本章節解釋的Datastore-wide?磁盤調度,延遲不會被消失,它移動到一個不同的層,我們做到了,但是,建議設置存儲DRS?I/O延遲值為SIOC的一半,這樣SIOC將遷移延遲峰值和存儲DRS將阻止熱點。

表25:建議延遲閾值

注入

另一個我們沒有接觸的組件是注入,它是做什么的?它為誰提供服務?注入在vSphere?5.0中被介紹過,它是SIOC的一部分來決定數據存儲的性能特性,我們已經在第22章節簡明的接觸了性能特性,基于可用性和類似性能來對數據存儲群集上聚合的數據存儲生成建議,在大多數的環境中,管理員小心的定義它們的存儲的層次,但大多數不能意識到,每個數據存儲上的備份磁盤的數量不同,會造成性能行為上的不同,即使磁盤數量(7?VS?9)有一點點不同,可能引起性能上非常大的不同。總而言之,一些陣列使用大磁盤池和條帶LUN通過這些池,在那些場景中,本地磁盤可能產生不同的性能特性,盡管VASA曝光了類似于RAID的一些存儲特性,但它當前還是不能×××能特性。

為了確保存儲DRS?I/O平衡放置,不僅僅是基于閾值和延遲觀察,SIOC還通過注入隨機I/O描繪數據存儲的特性,在大家擔心注入會干涉他們的工作負載之前,我們想強調的是注入只有當數據存儲處于空閑狀態時才變成活動的,如果I/O被檢測到來自于其它資源,注入將停止描述特性,并稍后重試,總之,注入I/O只是讀I/O,為了描述設備的特性,不同數量的I/O被使用,延遲被監控,換句話說,隨機讀I/O被注入,每次I/O的數量也不同。圖115中結果可以簡單的描繪,圖的斜坡表明了數據存儲的性能。

引用

“在數學中,斜坡或者梯度線描述陡峭,傾斜和等級,較高的斜坡值表面更陡峭的斜坡。

圖115:使用不同數量的磁盤進行設備建模

通過這個例子的示范,當I/O的數量增長,每個設備的延遲也會增長,它們增長的速率是不同的,這恰好幫助存儲DRS未負載平衡和初始化位置生成建議,我們喜歡參考BASIL學院文件上寫的概念。

SIOC日志

你的環境中一些時候它是必須要進行排錯的,重新查看日志可以幫助你判定發生了什么事。默認SIOC日志是禁用的,但它應該在搜集日志之前開啟,開啟日志的操作如下:

1.?點擊主機高級配置

2.?在Misc菜單,選擇Misc.SIOControlLogLevel?參數,設置值為7(最小值:0(沒有日志),最大值:7)

3.?SIOC必須重啟來改變日志級別,手工停止和開啟SIOC,使用?/etc/init.d/storageRM{start|stop|status|restart|}

4.?改變了日志級別之后,你在/var/log/vmkernel目錄下看到日志級別被改變。

請注意SIOC日志文件被保存在the/var/log/vmkernel文件中

從存儲DRS中排除I/O信息統計

當在數據存儲級別配置SIOC,vSphere?5.1提供了“從存儲DRS中排除?I/O信息統計“選項

圖116:從存儲DRS中排除I/O信息統計

當功能開啟,存儲DRS停止使用數據存儲的統計報告,直到該選項再次被禁用,這些允許管理員手工介紹周期內存儲維護模式的窗口,當報告I/O統計異常時,應該不考慮對存儲DRS的負載平衡的責任,工作負載介紹了異常狀態是為了非典型的備份操作和遷移大量的虛擬機到數據存儲群集。

?

?

轉載于:https://blog.51cto.com/virtualbox/1213279

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的VMware vSphere 5.1 群集深入解析(二十一)- 存储I/O控制(SIOC)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。