iT邦幫忙

0

[新手發問] Google GCE代管執行個體群組 設置問題

代管執行個體群組 Managed Instance Group (MIG) 有辦法強制保留一個vm 不被取代跟重新建立嗎?

目前在一個VM執行個體內搭ispconfig 來管理網站
但又需要負載平衡來因應突發流量
如果用代管執行個體群組 雖然設定最低保留一個
但只要該VM負載過高無回應的話就會重新建立一個並取代
有試過新增一個磁碟掛載在VM上把MySQL還有網站檔案存在內
透過範本讓代管執行個體群組自動建立
但是Google範本連接線有磁碟只能唯讀無法寫入

有沒有其他更好的做法?

1 個回答

0
raytracy
iT邦大神 1 級 ‧ 2019-12-15 22:30:55

每個 VM Instance 的 Local Disk 都只能給自己讀寫用, 不能有多個 Instace 共用同一個 Local Disk 同時讀寫.....這在所有 VM 環境內都是同樣的限制....(AWS,GCP,Azure,VMware,Hyper-V,KVM....全都一樣), 所以不要花腦筋去解這種天生就被限制的問題.....

要達到共同讀寫的目的, 必須透過 Shared Storage (共享儲存) 的機制來完成, 例如: NFS 或 SMB Server, 但是, 如果其中一個 Instace 下了 Exclusive Write 的指令, 在那當下, 其他的 VM Instace 也是無法寫入的...

Load Balance 並不是單純靠共用儲存磁碟就可以完成, 尤其你外層還套一個 ISPConfig 這樣的控制管理面板 (Management Panel), 做 LB 的難度更高.

通常管理面板大多不支援負載平衡, 但幸運的, ISPConfig 有一些變通方法: ISPConfig 要達到 Load Balance 功能, 必須將他設置成 Cluster Mode, 請詳閱此篇官方範例:
Installing a Web, Email & MySQL Database Cluster on Debian 8.4 Jessie with ISPConfig 3.1 - Page 4

從範例中可以看到, 她的每一台 Load Balance Server 都有自己的磁碟機, 不會去共用別人的; MySQL 的資料是透過 Mysql 自己的 Master-Master Cluster 機制來完成兩機之間的 DB 複寫; 檔案的部分則是由 ISPConfig 內建的 rsync 機制來完成兩機之間的檔案複寫...

感謝雷神解答 不過那個解決方案尷尬點在於限Debian 8才能
然後GCP已經不提供的Debian 8/images/emoticon/emoticon02.gif

目前實在不知道還有方案解決

raytracy iT邦大神 1 級 ‧ 2019-12-17 12:39:55 檢舉

其實並沒有侷限在 Debian 8, Linux 都是互通的, 只是指令/組態不太相同, 找個通曉各 Linux 的高手, 應該可以從這個範例, 發展出屬於你所需平台的正確做法.....

Ubuntu 也是從 Debian 發展出來的, 通常 Debian 可以用的指令, 在 Ubuntu 上面也會通用...

我要發表回答

立即登入回答