|
本帖最后由 per1-q1222 于 2012-2-12 10:58 编辑
Copyback(回拷), 這不是甚麼很創新的設計. 事實上它存在了非常久, 是一種Hot Spare(HSP)的其他使用方式. 姑且可以看看他的粗粗淺說明, 以便了解他是做甚麼用的:
The procedure used to copy data from a source drive of a virtual drive to a destination drive that is not a part of the virtual drive. The copyback operation is often used to create or restore a specific physical configuration for a drive group (for example, a specific arrangement of drive group members on the device I/O buses). The copyback operation can be run automatically or manually.
Typically, a drive fails or is expected to fail, and the data is rebuilt on a hot spare. The failed drive is replaced with a new drive. Then the data is copied from the hot spare to the new drive, and the hot spare reverts from a rebuild drive to its original hot spare status. The copyback operation runs as a background activity, and the virtual drive is still available online to the host.
簡單來說, copyback可以重建原來的DG設定. 當然, 他需要依賴HSP的使用, 不管是Dedicated(DHSP)或著Global(GHSP). Copyback預設是自動啟用的, LSI的SSD Guard也是基於copyback去實現的.
在一個大型的storage pool建置VD應用parity RAID mode, 通常可能會搭配HSP, DHSP, PHSP(Pool HSP)或著GHSP. HSP實現在VD處於degraded的時候進行auto-rebuild, RAID controller利用parity計算, 復原當初的數據, 然後填入到HSP裡, 當這個操作完成過後, HSP便會轉成VD的一部分, 並且是online. 但是這個DG不會是與之前一樣的配置了, 而copyback啟用會允許你在bad slot上插入新盤後, 將之前被rebuild的PD上的數據copy到bad slot上的新盤, 最終這個操作完成之後, 被rebuild的PD便會重新再標記為HSP, 可以說這個標記的HSP是revertible, RHSP. 這個時候, DG的配置便會與當初的完全一模一樣, 除了HSP的重複再利用, 也方便做管理.
在這邊將會實習LSI的copyback是如何操作的, 首先要確認copyback是否啟用, 可以從tty log得知:
可以看到copyBackDisabled表示是否為關閉的狀態, 預設是開啟的, 所以參數為0. 另外, 在使用megacli的adpallinfo查看相關配置.
這邊也可以查看copyback的啟用狀態, 除此之外還可以看到兩個參數設定: Copyback on SMART與Copyback to SSD on SMART Error. 其中Copyback to SSD on SMART Error便是LSI所謂的SSD Guard技術, 其實就是應用Copyback增強SSD的容錯機制, 這個操作相當類似parity RAID mode, 不過它可以允許stripping RAID mode(RAID 0)發生出錯的情況, 根據SSD上的SMART table. 一旦某顆SSD發生問題, 如果你有新的SSD存在, 並且做為HSP. 這時Copyback便會自動操作, 將SMART error SSD上的數據自動回拷到新的SSD上.
因此, 以往針對SSD的RAID mode, 我都是建議直接做RAID 0就好, 因為透過SSD Guard可以達成類似parity RAID mode的使用. LSI MegaRAID上的SSD Guard預設都是自動啟用.
你可以手動把SSD Guard給關掉, 但是一般我並不建議這樣做. 當您將新的SSD設為GHSP, 便可以用在copyback操作上.
又或著如果SSD VD上的其中一顆發生問題, 而您沒有SSD HSP的存在, 這時插入新的SSD, 也會提示您相關的copyback操作, 以完成後續處理. 但是對於傳統HDD又該怎麼使用? 首先我配置4顆SAS 6G WD PD做為RAID 5 VD.
可以看到狀態是Optimal, 一般情況下, 某顆PD發生掉盤(drop)的情況, 如果確認該PD是完整的, 並沒有任何錯誤(SMART error), 只要手動強制online即可將VD復原.
不過假設有問題的PD情況, 針對VD建立建立一顆DHSP來使用:
我故意讓VD上的其中一顆PD掉盤, 手動強制offline, DHSP會便自動開始rebuild, 狀況如下:
這時VD的狀態是degraded, 為退化狀態, :
由於rebuild需要時間, 從下圖得知大概需要多久的時間來完成rebuild操作:
這個時間還是我透過ARTP調整將RAID IOP大部分資源都消耗在rebuild上, 以便加速時間縮短:
不過這個調整的操作對I/O敏感, 尤其我這邊調成80%是大幅影響, 所以視情況而定, 我個人習慣一律80%. 當rebuild完成操作後, 我在將bad slot上的PD更換成新的, Copyback便會自動開始操作, 如下圖所示:
從上圖得知, Slot 16的PD原本是HSP, 當我在Slot 18插入新盤後, Slot 16的PD會便自動開始回拷數據到Slot 18的新盤上. 當然這個操作是需要時間的:
恩..., 有點久! 不過比rebuild時間短就是了. 當copyback完成後, DG的設定便會與最初的一樣了. 下面可以看到相關的觸發事件:
大致上, 就是LSI的copyback相關操作使用, 不過有一種情況, 注意一下. 我舉個例, 有一個VD被建立, 有關他的PD資訊如下:
VD 1:
PD 1=>951.759
PD 2=>951.759
PD 3=>951.759
PD 4=>951.759
假如有一顆PD發生故障了, 需要進行更換, 當使用HSP更換時, 發現HSP PD的資訊如下:
HSP PD=> 948.128
可以發現HSP PD的容量小於VD上的PD, 雖然誤差沒有很大, 但是有可能沒辦法使用這顆HSP進行rebuild來復原VD. 請注意! 請事前開啟coercion mode以允許PD上的容量容錯. 透過megacli指令如下:
megacli -adpsetprop coercionmode 2 -a0
使用MSM可以直接視覽Coercion Mode的設定:
透過這樣的設定便可允許PD上的容量異差以增強容錯性. 還有一個部分, 就是Copyback允許手動操作, 不過一般機會比較少. 透過以下的手段可以達成:
不管SSD或著HDD, 皆適用這種方式. 當然如果使用全自動方式會是比較好的. 以上大概就這樣!...
謝謝惠顧... |
|