關於雙控陣列的實現原理的討論

2021-07-14 03:23:10 字數 2030 閱讀 7268



對於乙個支援fc san的雙控儲存陣列,對外號稱active-active,實現記憶體映象

乙個lun通過兩個路徑連線到伺服器,伺服器用多路徑軟體訪問這個lun,如下圖

1、雙控中乙個宕機後,伺服器的多路徑軟體會檢測到有一條路徑不通,會自動把io轉到另外乙個路徑上,保證任務不中斷,請問這個功能和雙控有啥關係?我沒發現雙控制器切換的必要啊,如果發生了切換,那麼切換過程中發生了什麼事情

2、每個控制器是否都能看到陣列的所有磁碟,我認為是可以看到的,不然接管後沒法訪問。這樣的話,每個控制器啟動的時候都要列舉一遍所有磁碟,不會發生衝突嗎?

3、最後乙個問題是關於記憶體mirror的,這裡的記憶體是指用於高速讀寫的快取吧,不是整個記憶體條都mirror吧?這個記憶體mirror模組和作業系統中的快取記憶體模組沒有關係吧

(您的意見是對我的莫大幫助,謝謝)

通常的雙控器 aa 方式工作, 都不是象樓主這圖一樣簡單的直連在一起的, 而是中間經過交換機, 有的可能還有幾層的交換機. 為了保證全路徑的可靠性, 所以, 才會有aa的雙控. 也才會有multipath. 當然, multipath 還有乙個功能是增加頻寬.

2. 必須能看到所有的磁碟. 列舉磁碟這事未必真的會發生. 因為在控制器的後面, 可能還有更低一層的管理, 但只管理, 不跑資料.

3. 記憶體的 mirror 應該是與作業系統無關的. 很可能是更底層的通過 pcie匯流排的 mirror.

以上為自己猜測, 更 準確的資訊, 坐等大神出現.

傳統中端雙控儲存;乙個控制器壞 另乙個控制器接管

雙控a-a   是叫 active-active

目前在中端儲存能夠做到的廠商不多,真正在用的 廠商 更少(具體哪家幾不說了 省的幫他做廣告了,大家都知道)

好處是什麼  是對於同乙個lun,雙控同時參與了lun的工作(工作並非說同時計算乙個lun)

使用了a-a的對稱式雙控儲存;在公升級微碼的時候 無需切換路徑,沒有業務停止、宕機的風險。

當然一般a-a儲存裡也配套了硬體的負載均衡,後台會自動均攤效能;使得儲存使用率均衡

同時帶來了 管理開銷的減少,5個lun 屬於ctl0 ctl1 好管 ;50個人為管管也ok;100個的時候人為就不行了,業務也一直在變化中。。。

a-a的儲存 建立lun的時候是不需要設定屬於ctl0 還是ctl1;完全是後台自動控制,省去了許多的管理開銷,充分提高了儲存的利用率!

現在基本的儲存產品都號稱a-a,如果不能同時訪問乙個lnu,那他們是怎麼實現的?

控制器a收到讀寫命令後再**給控制器b去處理?真是這樣嗎?

轉一些vmware官方 vsphere 對儲存的認知

光纖通道儲存陣列型別

esxi 可支援不同的儲存系統和陣列。

主機支援的儲存型別包括主動-主動、主動-被動和 alua 合規。

主動-主動儲存系統允許通過所有可用的儲存器埠同時訪問多個 lun,而不會明顯降低效能。所有路徑始終保持活動狀態,除非路徑發生故障。

主動-被動儲存系統儲存處理器在其中主動提供對給定 lun 的訪問許可權的系統。其他處理器用作備用 lun,並且可以主動提供對其他 lun i/o 的訪問許可權。只能向給定 lun 的主動埠成功傳送 i/o。如果通過主動儲存器埠訪問失敗,則其中乙個被動儲存處理器可通過伺服器對其進行訪問而啟用。

非對稱儲存系統支援非對稱邏輯單元訪問 (alua)。alua 合規儲存系統對每個埠提供不同級別的訪問。alua 允許主機確定目標埠的狀態,並區分路徑的優先順序。主機會將某些活動路徑用作主路徑,其他用作輔助路徑。

而 主動-主動 的中端雙控儲存 目前沒幾家能做到 關鍵是簡化了管理

總結一下:

主動-主動模式:lun不用指出owner是誰,現在沒有幾家能夠做到

主動-被動模式:a、b控制器都跑業務,假設lun0歸屬a控制器,一旦a控制器故障,b控制器接管lun0,接著執行a的業務,b控制器本身的業務不影響

alua:?

c c 關於陣列名的討論

指標是c c 語言的特色,而陣列名與指標有太多的相似,甚至很多時候,陣列名可以作為指標使用。於是乎,很多程式設計者就被搞糊塗了。而許多的大學老師,他們在c語言的教學過程中也錯誤得給學生講解 陣列名就是指標 很幸運,我的大學老師就是其中之一。時至今日,我日復一日地進行著c c 專案的開發,而身邊還一直...

關於螺旋陣列函式建立的討論

建立螺旋陣列 1.首先我們要寫乙個關於螺旋陣列大小,和生成螺旋陣列的程式。它的 為 int n 0 printf 請輸入陣列長度 scanf d n int arr n n int i 0,j 0 for i 0 i然後我們要使函式變成乙個等差數列可以使我們更好的觀察結果。while num nn ...

關於實現ID池的小討論

在開發的時候遇到一種情況,就是對於一系列的請求,我需要全部加入乙個請求佇列,然後通過統一的處理程式處理完畢後,放入結果佇列。但是發出請求的程式,如果想從結果佇列中取出自己請求的結果,需要乙個全域性唯一的id,用以區分不同請求的結果。對於這個問題,會有一些很直接的想法,比如 1 用個count計數器,...