iT邦幫忙

2021 iThome 鐵人賽

DAY 13
0
Software Development

TiDB學習筆記系列 第 13

Day 13 - 安裝(三)副本調度設定

前面提到region會產生副本分散在每一個tikv store裡,今天如果架設的機器是跨區的,跨機房的,或者雲端上不同的zone,要怎麼控制副本的擴充調度就要透過以下的方式設定。

首先我們利用TiKV可以將特殊的屬性寫在server.labels裡頭,如下圖分別依據zone、dc、rack、host,設定每一台TiKV的位置,我設定每一台TiKV都儲存在分離的zone底下,zone1、zone2、以此類推。
https://ithelp.ithome.com.tw/upload/images/20210908/20113220NckqdBAwD2.png
接著要讓pd能夠知道有哪些位置層級,所以要在pd的replication.location-labels底下設定有這些位置層級標籤。
https://ithelp.ithome.com.tw/upload/images/20210908/201132207WOxCCv9EC.png
以上設定要在第一次deploy之前搞定。如果是要事後補票就要改用pd-ctl工具。
pd-ctl config set location-labels zone,dc,rack,host

接下來設定pd的isolation-level。因為初始化的時候我沒有設定,所以會採預設值不作限制。
此時原本的replication.max-replicas:3,依據我的層級第一層為zone,表示三個副本會平均分配在三個zone底下。
接下來將副本數改成replication.max-replicas:5,這時候原本的zone層級無法保證可以平均分佈5台,就會往下降一層到dc,如果dc有5個可以滿足平均分配的要求,這時候就變成不能保證zone底下平均分配,但是保證在dc層級可以平均分佈5台,如果dc也無法滿足,就在依層級往下。
接下來我用工具指定isolation-level = "zone"
pd-ctl config set isolation-level zone
replication.max-replicas:3的情況下,如果我把zone1的機器關了,那麼即使在剩下兩個副本的情況下,因為isolation-level設定為zone,pd也不會再分散第三個副本出來。


上一篇
Day 12 - 安裝(二)Topology
下一篇
D14 - 轉移資料到TiDB工具介紹(一)
系列文
TiDB學習筆記30

尚未有邦友留言

立即登入留言