1. 程式人生 > >openstack cinder-volume 的高可用(HA)

openstack cinder-volume 的高可用(HA)

為了保證雲平臺的穩定性,需要做很多部分的高可用。比如控制節點高可用、計算節點高可用、網路節點高可用、儲存的高可用等;

控制節點的高可用與網路節點的高可用都有官方的文件,有詳細的安裝步驟,實現起來相對來說比較簡單。儲存的高可用在openstack這一塊也不用考慮很多,比如ceph、glusterfs自帶高可靠性。

當做了這些高可用後,我發現cinder-volume是一個瓶頸,如果它掛了的話,現有已經掛載的雲硬碟是可以繼續使用的。但是如果要對雲硬碟進行管理(建立、掛載、解除安裝等操作)就不行了。任憑你後端儲存高可靠性再NB也只能保證資料的可靠性,這時候的解決辦法就只有對cinder-volume做高可用。

對cinder-volume做HA,第一個想到的就是負載均衡+keepalived來實現。經過驗證這樣的配置方式是可行的。不過我在測試過程中發現了一個有趣的問題:如果按照了cinder-volume的主機名一致那麼,服務列表就只會顯示一個cinder-volume服務。也就是說只要這兩臺伺服器儲存後端配置為同一種儲存,如果使用ceph那麼keyring保持一致,那麼就可以實現高可用了,後面我就進行了測試:

1、開啟兩臺伺服器,主機名一致,均為ceph-node1,後端儲存為ceph,控制節點服務列表如下:


上圖顯示只有一個cinder-volume服務

2、這時候我開啟兩臺主機的日誌,建立三塊雲硬碟:


通過上圖可以看出它是隨機選擇了一臺伺服器進行建立的

3、為了驗證高可靠性,現在關閉其中一臺伺服器

服務列表服務狀態依然是up


4、刪除雲硬碟


這是未關閉服務的伺服器的日誌,也就是說,它可以繼續管理雲硬碟

總結:個人覺得這是最乾脆的HA,只需要要主機名與儲存後端一致即可預防單點故障。

更多精彩文章,請搜尋微信公眾號扶艾。我們定期分享OpenStack相關技術文章,在這裡,只有純乾貨。