在上一篇咱們介紹瞭如何在 QCloud 標準化的搭建一套域環境,並介紹瞭如何在生產過程當中如何避免一些坑,今天,咱們來介紹這次 demo 中真正須要注意的一些細節及實現技術手段,主要爲了讓你們理解羣集環境的隔離如何在 QCloud 上實現,先來看看如下兩個 FQA :sql
Q1: QCloud 提供了虛擬機多個網卡的技術,可是如何確保它們在物理上是隔離的呢?
api
A1:不可能徹底隔離,由於不僅僅是 QCloud ,大部分的公有云(包括國際)底層都是採用多個網卡作 team 來進行多卡容災,若是要多個 vNet 拆分對 應多個物理網卡無非是增長服務器硬件成本,不過目前爲止貌似也沒有哪一個公有云廠商敢宣稱作了徹底的 SDN ( SDN 意味着屏蔽了硬件, vNet 可隨機落在某個宿主機的某個網卡上,這一點至少咱們已經在日程上了),若是有兄弟知道這方面的資源歡迎糾偏指正:)服務器
Q2:既然沒法徹底物理隔離難道沒辦法解決線路分離問題嗎?
網絡
A2:徹底物理分離的完美方案几乎不可能,對國內公有云來講也的確有點爲難,因此儘量的去避免單點故障仍是有可能的,有這麼一種方案,如今 QCloud 的虛擬機投放策略是儘量打散在不一樣宿主機,那就意味着同一臺宿主機多個虛擬機同一個物理網卡的可能性是微乎其微的,爲了確保這個信息,能夠提交工單來確保這個問題:架構
Okay ,回答了上述問題後,咱們開始進入正題,如下是今天須要的服務器信息(本例中會開通外網流量主要爲了方便 Demo ,可是生產環境中不建議使用外網帶寬):app
編號 | 服務器名稱 | 生產IP | 存儲IP | 心跳IP | 對外VIP |
---|---|---|---|---|---|
1 | Q-DC01 | 192.168.108.188 | 無 | 無 | |
2 | Q-SG01 | 192.168.108.206 | 10.11.11.231 | 無 | |
3 | Q-SQL01 | 192.168.108.254 | 10.11.11. 10.10.10.2 | ||
4 | Q-SQL02 | 192.168.108.114 | 10.11.11. 10.10.10.234 |
關於 SG ,是用來做爲 SQL Cluster 共享存儲,存儲做用一共分爲三塊,一塊做爲仲裁盤,一塊做爲生產數據,一塊做爲備用(未啓用預留空間)。運維
涉及架構以下:ide
Okay,開始動手:優化
建立多個網卡做爲輔助網卡添加到對應的 CVM 中,這裏暫時不支持從控制檯直接新建(已經快上線的功能)因此我們經過 API 來進行添加便可 能夠參考這兩篇文章:建立私有網絡和 VPC 內經過keepalived搭建高可用主備集羣(記得先申請 API 受權喲)spa
建立完成後得使用 DescribenetworkInterfaces 遍歷網卡(使用 api 建立的網卡不會在界面顯示)
進行網卡改綁定(目前也僅能經過 API ):
PS:注意是 networkinterfaceid 不是 name ,且成功後也不會在控制檯上體現,可是在系統內部能夠看到
使用一樣的方式建立網卡,確認兩個 sql 子機均可以得到網卡後(分別有三塊,1塊生產、1塊心跳、1塊存儲),這裏偷了下懶用內部系統看了下對應關係是正確的:
(存儲網絡,兩個 SQL 節點,一個存儲節點)
(心跳網絡,兩個 SQL 節點)
確保心跳網絡、存儲網絡兩兩之間是通的。
一. 建立彈性網卡到綁定主機這個流程太考驗運維實力了,運維童鞋的代碼能力直接決定了這個架構是否搭建成功,由於建立彈性網卡須要 API 調用,查看彈性網卡須要 API 調用,綁定彈性網卡也須要 API 調用。(這一點博主已經直接懟了研發童鞋跟產品童鞋進行雙向整改)
二. 這裏其實有更加優化的方案去作網絡隔離,那就是私有網絡也用不一樣的,可是這是博主以後想到,建立網卡也須要指定子網 ID ,就意味着要修改網卡重,根據槽點 A 這是致命的,因此博主按照規範及架構考慮,強烈建議分離,操做以下:
建立 VPC 私有網絡
(以一樣的方式建立存儲心跳) 效果以下:
接下來將 SQL0一、SQL02 根據正文中的步驟從新建立網卡並作綁定(沒法直接進行修改,見槽點三)
三.修改彈性網卡的 API ModifyNetworkInterface 居然只能修改網卡名稱跟網卡描述,若是要更改網卡,要通過 解綁主機網卡 —— 刪除彈性網卡 —— 建立新彈性網卡 —— 綁定主機。而這一切,是的仍是得經過 API 來作(見槽點二)。