六月婷婷AV,国产偷窥猎奇福利二区,日韩三级片。,好吊色网站,日韩成人中文在线视频,国产亚洲午夜啪啪,亚洲欧美另类国产精品,国产成人av1,任你艹在线观看

TDengine 集群安裝、管理

多個TDengine服務(wù)器,也就是多個taosd的運(yùn)行實例可以組成一個集群,以保證TDengine的高可靠運(yùn)行,并提供水平擴(kuò)展能力。要了解TDengine 2.0的集群管理,需要對集群的基本概念有所了解,請看《TDengine整體架構(gòu)》一章。而且在安裝集群之前,建議先按照《立即開始》一章安裝并體驗單節(jié)點(diǎn)功能。

集群的每個數(shù)據(jù)節(jié)點(diǎn)是由End Point來唯一標(biāo)識的,End Point是由FQDN(Fully Qualified Domain Name)外加Port組成,比如 h1.taosdata.com:6030。一般FQDN就是服務(wù)器的hostname,可通過Linux命令hostname -f獲取(如何配置FQDN,請參考:一篇文章說清楚TDengine的FQDN)。端口是這個數(shù)據(jù)節(jié)點(diǎn)對外服務(wù)的端口號,缺省是6030,但可以通過taos.cfg里配置參數(shù)serverPort進(jìn)行修改。一個物理節(jié)點(diǎn)可能配置了多個hostname, TDengine會自動獲取第一個,但也可以通過taos.cfg里配置參數(shù)fqdn進(jìn)行指定。如果習(xí)慣IP地址直接訪問,可以將參數(shù)fqdn設(shè)置為本節(jié)點(diǎn)的IP地址。

TDengine的集群管理極其簡單,除添加和刪除節(jié)點(diǎn)需要人工干預(yù)之外,其他全部是自動完成,最大程度的降低了運(yùn)維的工作量。本章對集群管理的操作做詳細(xì)的描述。

關(guān)于集群搭建請參考視頻教程

準(zhǔn)備工作

第零步:規(guī)劃集群所有物理節(jié)點(diǎn)的FQDN,將規(guī)劃好的FQDN分別添加到每個物理節(jié)點(diǎn)的/etc/hostname;修改每個物理節(jié)點(diǎn)的/etc/hosts,將所有集群物理節(jié)點(diǎn)的IP與FQDN的對應(yīng)添加好?!救绮渴鹆薉NS,請聯(lián)系網(wǎng)絡(luò)管理員在DNS上做好相關(guān)配置】

第一步:如果搭建集群的物理節(jié)點(diǎn)中,存有之前的測試數(shù)據(jù)、裝過1.X的版本,或者裝過其他版本的TDengine,請先將其刪除,并清空所有數(shù)據(jù)(如果需要保留原有數(shù)據(jù),請聯(lián)系濤思交付團(tuán)隊進(jìn)行舊版本升級、數(shù)據(jù)遷移),具體步驟請參考博客《TDengine多種安裝包的安裝和卸載》。
注意1:因為FQDN的信息會寫進(jìn)文件,如果之前沒有配置或者更改FQDN,且啟動了TDengine。請一定在確保數(shù)據(jù)無用或者備份的前提下,清理一下之前的數(shù)據(jù)(rm -rf /var/lib/taos/*);
注意2:客戶端也需要配置,確保它可以正確解析每個節(jié)點(diǎn)的FQDN配置,不管是通過DNS服務(wù),還是修改 hosts 文件。

第二步:建議關(guān)閉所有物理節(jié)點(diǎn)的防火墻,至少保證端口:6030 - 6042的TCP和UDP端口都是開放的。強(qiáng)烈建議先關(guān)閉防火墻,集群搭建完畢之后,再來配置端口;

第三步:在所有物理節(jié)點(diǎn)安裝TDengine,且版本必須是一致的,但不要啟動taosd。安裝時,提示輸入是否要加入一個已經(jīng)存在的TDengine集群時,第一個物理節(jié)點(diǎn)直接回車創(chuàng)建新集群,后續(xù)物理節(jié)點(diǎn)則輸入該集群任何一個在線的物理節(jié)點(diǎn)的FQDN:端口號(默認(rèn)6030);

第四步:檢查所有數(shù)據(jù)節(jié)點(diǎn),以及應(yīng)用程序所在物理節(jié)點(diǎn)的網(wǎng)絡(luò)設(shè)置:

  1. 每個物理節(jié)點(diǎn)上執(zhí)行命令hostname -f,查看和確認(rèn)所有節(jié)點(diǎn)的hostname是不相同的(應(yīng)用驅(qū)動所在節(jié)點(diǎn)無需做此項檢查);
  2. 每個物理節(jié)點(diǎn)上執(zhí)行ping host,其中host是其他物理節(jié)點(diǎn)的hostname,看能否ping通其它物理節(jié)點(diǎn);如果不能ping通,需要檢查網(wǎng)絡(luò)設(shè)置,或/etc/hosts文件(Windows系統(tǒng)默認(rèn)路徑為C:\Windows\system32\drivers\etc\hosts),或DNS的配置。如果無法ping通,是無法組成集群的;
  3. 從應(yīng)用運(yùn)行的物理節(jié)點(diǎn),ping taosd運(yùn)行的數(shù)據(jù)節(jié)點(diǎn),如果無法ping通,應(yīng)用是無法連接taosd的,請檢查應(yīng)用所在物理節(jié)點(diǎn)的DNS設(shè)置或hosts文件;
  4. 每個數(shù)據(jù)節(jié)點(diǎn)的End Point就是輸出的hostname外加端口號,比如h1.taosdata.com:6030。

第五步:修改TDengine的配置文件(所有節(jié)點(diǎn)的文件/etc/taos/taos.cfg都需要修改)。假設(shè)準(zhǔn)備啟動的第一個數(shù)據(jù)節(jié)點(diǎn)End Point為 h1.taosdata.com:6030,其與集群配置相關(guān)參數(shù)如下:

// firstEp 是每個數(shù)據(jù)節(jié)點(diǎn)首次啟動后連接的第一個數(shù)據(jù)節(jié)點(diǎn)
firstEp               h1.taosdata.com:6030

// 必須配置為本數(shù)據(jù)節(jié)點(diǎn)的FQDN,如果本機(jī)只有一個hostname, 可注釋掉本項
fqdn                  h1.taosdata.com  

// 配置本數(shù)據(jù)節(jié)點(diǎn)的端口號,缺省是6030
serverPort            6030

// 副本數(shù)為偶數(shù)的時候,需要配置,請參考《Arbitrator的使用》的部分
arbitrator            ha.taosdata.com:6042

一定要修改的參數(shù)是firstEp和fqdn。在每個數(shù)據(jù)節(jié)點(diǎn),firstEp需全部配置成一樣,但fqdn一定要配置成其所在數(shù)據(jù)節(jié)點(diǎn)的值。其他參數(shù)可不做任何修改,除非你很清楚為什么要修改。

加入到集群中的數(shù)據(jù)節(jié)點(diǎn)dnode,涉及集群相關(guān)的下表9項參數(shù)必須完全相同,否則不能成功加入到集群中。

# 配置參數(shù)名稱 含義
1 numOfMnodes 系統(tǒng)中管理節(jié)點(diǎn)個數(shù)
2 mnodeEqualVnodeNum 一個mnode等同于vnode消耗的個數(shù)
3 offlineThreshold dnode離線閾值,超過該時間將導(dǎo)致Dnode離線
4 statusInterval dnode向mnode報告狀態(tài)時長
5 arbitrator 系統(tǒng)中裁決器的End Point
6 timezone 時區(qū)
7 balance 是否啟動負(fù)載均衡
8 maxTablesPerVnode 每個vnode中能夠創(chuàng)建的最大表個數(shù)
9 maxVgroupsPerDb 每個DB中能夠使用的最大vgroup個數(shù)

備注:在 2.0.19.0 及更早的版本中,除以上 9 項參數(shù)外,dnode 加入集群時,還會要求 locale 和 charset 參數(shù)的取值也一致。

啟動第一個數(shù)據(jù)節(jié)點(diǎn)

按照《立即開始》里的指示,啟動第一個數(shù)據(jù)節(jié)點(diǎn),例如h1.taosdata.com,然后執(zhí)行taos, 啟動taos shell,從shell里執(zhí)行命令"show dnodes;",如下所示:

Welcome to the TDengine shell from Linux, Client Version:2.0.0.0

Copyright (c) 2017 by TAOS Data, Inc. All rights reserved.

taos> show dnodes;
 id |       end_point    | vnodes | cores | status | role |      create_time        |
=====================================================================================
  1 |  h1.taos.com:6030  |      0 |     2 |  ready |  any | 2020-07-31 03:49:29.202 |
Query OK, 1 row(s) in set (0.006385s)

taos>

上述命令里,可以看到這個剛啟動的這個數(shù)據(jù)節(jié)點(diǎn)的End Point是:h1.taos.com:6030,就是這個新集群的firstEp。

啟動后續(xù)數(shù)據(jù)節(jié)點(diǎn)

將后續(xù)的數(shù)據(jù)節(jié)點(diǎn)添加到現(xiàn)有集群,具體有以下幾步:

  1. 按照《立即開始》一章的方法在每個物理節(jié)點(diǎn)啟動taosd;(注意:每個物理節(jié)點(diǎn)都需要在 taos.cfg 文件中將 firstEp參數(shù)配置為新集群首個節(jié)點(diǎn)的 End Point——在本例中是 h1.taos.com:6030)

  2. 在第一個數(shù)據(jù)節(jié)點(diǎn),使用CLI程序taos,登錄進(jìn)TDengine系統(tǒng),執(zhí)行命令:

    CREATE DNODE "h2.taos.com:6030"; 

    將新數(shù)據(jù)節(jié)點(diǎn)的End Point (準(zhǔn)備工作中第四步獲知的) 添加進(jìn)集群的EP列表。"fqdn:port"需要用雙引號引起來,否則出錯。請注意將示例的“h2.taos.com:6030" 替換為這個新數(shù)據(jù)節(jié)點(diǎn)的End Point。

  3. 然后執(zhí)行命令

    SHOW DNODES;

    查看新節(jié)點(diǎn)是否被成功加入。如果該被加入的數(shù)據(jù)節(jié)點(diǎn)處于離線狀態(tài),請做兩個檢查:

    • 查看該數(shù)據(jù)節(jié)點(diǎn)的taosd是否正常工作,如果沒有正常運(yùn)行,需要先檢查為什么
    • 查看該數(shù)據(jù)節(jié)點(diǎn)taosd日志文件taosdlog.0里前面幾行日志(一般在/var/log/taos目錄),看日志里輸出的該數(shù)據(jù)節(jié)點(diǎn)fqdn以及端口號是否為剛添加的End Point。如果不一致,需要將正確的End Point添加進(jìn)去。

按照上述步驟可以源源不斷的將新的數(shù)據(jù)節(jié)點(diǎn)加入到集群。

提示:

  • 任何已經(jīng)加入集群在線的數(shù)據(jù)節(jié)點(diǎn),都可以作為后續(xù)待加入節(jié)點(diǎn)的 firstEp。
  • firstEp 這個參數(shù)僅僅在該數(shù)據(jù)節(jié)點(diǎn)首次加入集群時有作用,加入集群后,該數(shù)據(jù)節(jié)點(diǎn)會保存最新的 mnode 的 End Point 列表,不再依賴這個參數(shù)。
    • 接下來,配置文件中的 firstEp 參數(shù)就主要在客戶端連接的時候使用了,例如 taos shell 如果不加參數(shù),會默認(rèn)連接由 firstEp 指定的節(jié)點(diǎn)。
  • 兩個沒有配置 firstEp 參數(shù)的數(shù)據(jù)節(jié)點(diǎn) dnode 啟動后,會獨(dú)立運(yùn)行起來。這個時候,無法將其中一個數(shù)據(jù)節(jié)點(diǎn)加入到另外一個數(shù)據(jù)節(jié)點(diǎn),形成集群。無法將兩個獨(dú)立的集群合并成為新的集群。

數(shù)據(jù)節(jié)點(diǎn)管理

上面已經(jīng)介紹如何從零開始搭建集群。集群組建完后,還可以隨時添加新的數(shù)據(jù)節(jié)點(diǎn)進(jìn)行擴(kuò)容,或刪除數(shù)據(jù)節(jié)點(diǎn),并檢查集群當(dāng)前狀態(tài)。

提示:

  • 以下所有執(zhí)行命令的操作需要先登陸進(jìn)TDengine系統(tǒng),必要時請使用root權(quán)限。

添加數(shù)據(jù)節(jié)點(diǎn)

執(zhí)行CLI程序taos,執(zhí)行:

CREATE DNODE "fqdn:port"; 

將新數(shù)據(jù)節(jié)點(diǎn)的End Point添加進(jìn)集群的EP列表。"fqdn:port"需要用雙引號引起來,否則出錯。一個數(shù)據(jù)節(jié)點(diǎn)對外服務(wù)的fqdn和port可以通過配置文件taos.cfg進(jìn)行配置,缺省是自動獲取?!緩?qiáng)烈不建議用自動獲取方式來配置FQDN,可能導(dǎo)致生成的數(shù)據(jù)節(jié)點(diǎn)的End Point不是所期望的】

刪除數(shù)據(jù)節(jié)點(diǎn)

執(zhí)行CLI程序taos,執(zhí)行:

DROP DNODE "fqdn:port | dnodeID";

通過"fqdn:port"或"dnodeID"來指定一個具體的節(jié)點(diǎn)都是可以的。其中fqdn是被刪除的節(jié)點(diǎn)的FQDN,port是其對外服務(wù)器的端口號;dnodeID可以通過SHOW DNODES獲得。

【注意】

  • 一個數(shù)據(jù)節(jié)點(diǎn)一旦被drop之后,不能重新加入集群。需要將此節(jié)點(diǎn)重新部署(清空數(shù)據(jù)文件夾)。集群在完成drop dnode操作之前,會將該dnode的數(shù)據(jù)遷移走。

  • 請注意 drop dnode 和 停止taosd進(jìn)程是兩個不同的概念,不要混淆:因為刪除dnode之前要執(zhí)行遷移數(shù)據(jù)的操作,因此被刪除的dnode必須保持在線狀態(tài)。待刪除操作結(jié)束之后,才能停止taosd進(jìn)程。

  • 一個數(shù)據(jù)節(jié)點(diǎn)被drop之后,其他節(jié)點(diǎn)都會感知到這個dnodeID的刪除操作,任何集群中的節(jié)點(diǎn)都不會再接收此dnodeID的請求。

  • dnodeID是集群自動分配的,不得人工指定。它在生成時是遞增的,不會重復(fù)。

手動遷移數(shù)據(jù)節(jié)點(diǎn)

手動將某個vnode遷移到指定的dnode。

執(zhí)行CLI程序taos,執(zhí)行:

ALTER DNODE <source-dnodeId> BALANCE "VNODE:<vgId>-DNODE:<dest-dnodeId>";

其中:source-dnodeId是源dnodeId,也就是待遷移的vnode所在的dnodeID;vgId可以通過SHOW VGROUPS獲得,列表的第一列;dest-dnodeId是目標(biāo)dnodeId。

【注意】

  • 只有在集群的自動負(fù)載均衡選項關(guān)閉時(balance設(shè)置為0),才允許手動遷移。
  • 只有處于正常工作狀態(tài)的vnode才能被遷移:master/slave,當(dāng)處于offline/unsynced/syncing狀態(tài)時,是不能遷移的。
  • 遷移前,務(wù)必核實目標(biāo)dnode的資源足夠:CPU、內(nèi)存、硬盤。

查看數(shù)據(jù)節(jié)點(diǎn)

執(zhí)行CLI程序taos,執(zhí)行:

SHOW DNODES;

它將列出集群中所有的dnode,每個dnode的ID,end_point(fqdn:port),狀態(tài)(ready, offline等),vnode數(shù)目,還未使用的vnode數(shù)目等信息。在添加或刪除一個數(shù)據(jù)節(jié)點(diǎn)后,可以使用該命令查看。

查看虛擬節(jié)點(diǎn)組

為充分利用多核技術(shù),并提供scalability,數(shù)據(jù)需要分片處理。因此TDengine會將一個DB的數(shù)據(jù)切分成多份,存放在多個vnode里。這些vnode可能分布在多個數(shù)據(jù)節(jié)點(diǎn)dnode里,這樣就實現(xiàn)了水平擴(kuò)展。一個vnode僅僅屬于一個DB,但一個DB可以有多個vnode。vnode的是mnode根據(jù)當(dāng)前系統(tǒng)資源的情況,自動進(jìn)行分配的,無需任何人工干預(yù)。

執(zhí)行CLI程序taos,執(zhí)行:

USE SOME_DATABASE;
SHOW VGROUPS;

vnode的高可用性

TDengine通過多副本的機(jī)制來提供系統(tǒng)的高可用性,包括vnode和mnode的高可用性。

vnode的副本數(shù)是與DB關(guān)聯(lián)的,一個集群里可以有多個DB,根據(jù)運(yùn)營的需求,每個DB可以配置不同的副本數(shù)。創(chuàng)建數(shù)據(jù)庫時,通過參數(shù)replica 指定副本數(shù)(缺省為1)。如果副本數(shù)為1,系統(tǒng)的可靠性無法保證,只要數(shù)據(jù)所在的節(jié)點(diǎn)宕機(jī),就將無法提供服務(wù)。集群的節(jié)點(diǎn)數(shù)必須大于等于副本數(shù),否則創(chuàng)建表時將返回錯誤"more dnodes are needed"。比如下面的命令將創(chuàng)建副本數(shù)為3的數(shù)據(jù)庫demo:

CREATE DATABASE demo replica 3;

一個DB里的數(shù)據(jù)會被切片分到多個vnode group,vnode group里的vnode數(shù)目就是DB的副本數(shù),同一個vnode group里各vnode的數(shù)據(jù)是完全一致的。為保證高可用性,vnode group里的vnode一定要分布在不同的數(shù)據(jù)節(jié)點(diǎn)dnode里(實際部署時,需要在不同的物理機(jī)上),只要一個vgroup里超過半數(shù)的vnode處于工作狀態(tài),這個vgroup就能正常的對外服務(wù)。

一個數(shù)據(jù)節(jié)點(diǎn)dnode里可能有多個DB的數(shù)據(jù),因此一個dnode離線時,可能會影響到多個DB。如果一個vnode group里的一半或一半以上的vnode不工作,那么該vnode group就無法對外服務(wù),無法插入或讀取數(shù)據(jù),這樣會影響到它所屬的DB的一部分表的讀寫操作。

因為vnode的引入,無法簡單地給出結(jié)論:“集群中過半數(shù)據(jù)節(jié)點(diǎn)dnode工作,集群就應(yīng)該工作”。但是對于簡單的情形,很好下結(jié)論。比如副本數(shù)為3,只有三個dnode,那如果僅有一個節(jié)點(diǎn)不工作,整個集群還是可以正常工作的,但如果有兩個數(shù)據(jù)節(jié)點(diǎn)不工作,那整個集群就無法正常工作了。

Mnode的高可用性

TDengine集群是由mnode (taosd的一個模塊,管理節(jié)點(diǎn)) 負(fù)責(zé)管理的,為保證mnode的高可用,可以配置多個mnode副本,副本數(shù)由系統(tǒng)配置參數(shù)numOfMnodes決定,有效范圍為1-3。為保證元數(shù)據(jù)的強(qiáng)一致性,mnode副本之間是通過同步的方式進(jìn)行數(shù)據(jù)復(fù)制的。

一個集群有多個數(shù)據(jù)節(jié)點(diǎn)dnode,但一個dnode至多運(yùn)行一個mnode實例。多個dnode情況下,哪個dnode可以作為mnode呢?這是完全由系統(tǒng)根據(jù)整個系統(tǒng)資源情況,自動指定的。用戶可通過CLI程序taos,在TDengine的console里,執(zhí)行如下命令:

SHOW MNODES;

來查看mnode列表,該列表將列出mnode所處的dnode的End Point和角色(master, slave, unsynced 或offline)。當(dāng)集群中第一個數(shù)據(jù)節(jié)點(diǎn)啟動時,該數(shù)據(jù)節(jié)點(diǎn)一定會運(yùn)行一個mnode實例,否則該數(shù)據(jù)節(jié)點(diǎn)dnode無法正常工作,因為一個系統(tǒng)是必須有至少一個mnode的。如果numOfMnodes配置為2,啟動第二個dnode時,該dnode也將運(yùn)行一個mnode實例。

為保證mnode服務(wù)的高可用性,numOfMnodes必須設(shè)置為2或更大。因為mnode保存的元數(shù)據(jù)必須是強(qiáng)一致的,如果numOfMnodes大于2,復(fù)制參數(shù)quorum自動設(shè)為2,也就是說,至少要保證有兩個副本寫入數(shù)據(jù)成功,才通知客戶端應(yīng)用寫入成功。

注意:一個TDengine高可用系統(tǒng),無論是vnode還是mnode, 都必須配置多個副本。

負(fù)載均衡

有三種情況,將觸發(fā)負(fù)載均衡,而且都無需人工干預(yù)。

  • 當(dāng)一個新數(shù)據(jù)節(jié)點(diǎn)添加進(jìn)集群時,系統(tǒng)將自動觸發(fā)負(fù)載均衡,一些節(jié)點(diǎn)上的數(shù)據(jù)將被自動轉(zhuǎn)移到新數(shù)據(jù)節(jié)點(diǎn)上,無需任何人工干預(yù)。
  • 當(dāng)一個數(shù)據(jù)節(jié)點(diǎn)從集群中移除時,系統(tǒng)將自動把該數(shù)據(jù)節(jié)點(diǎn)上的數(shù)據(jù)轉(zhuǎn)移到其他數(shù)據(jù)節(jié)點(diǎn),無需任何人工干預(yù)。
  • 如果一個數(shù)據(jù)節(jié)點(diǎn)過熱(數(shù)據(jù)量過大),系統(tǒng)將自動進(jìn)行負(fù)載均衡,將該數(shù)據(jù)節(jié)點(diǎn)的一些vnode自動挪到其他節(jié)點(diǎn)。

當(dāng)上述三種情況發(fā)生時,系統(tǒng)將啟動各個數(shù)據(jù)節(jié)點(diǎn)的負(fù)載計算,從而決定如何挪動。

【提示】負(fù)載均衡由參數(shù)balance控制,它決定是否啟動自動負(fù)載均衡, 0 表示禁用, 1 表示啟用自動負(fù)載均衡。

數(shù)據(jù)節(jié)點(diǎn)離線處理

如果一個數(shù)據(jù)節(jié)點(diǎn)離線,TDengine集群將自動檢測到。有如下兩種情況:

  • 該數(shù)據(jù)節(jié)點(diǎn)離線超過一定時間(taos.cfg里配置參數(shù)offlineThreshold控制時長),系統(tǒng)將自動把該數(shù)據(jù)節(jié)點(diǎn)刪除,產(chǎn)生系統(tǒng)報警信息,觸發(fā)負(fù)載均衡流程。如果該被刪除的數(shù)據(jù)節(jié)點(diǎn)重新上線時,它將無法加入集群,需要系統(tǒng)管理員重新將其添加進(jìn)集群才會開始工作。
  • 離線后,在offlineThreshold的時長內(nèi)重新上線,系統(tǒng)將自動啟動數(shù)據(jù)恢復(fù)流程,等數(shù)據(jù)完全恢復(fù)后,該節(jié)點(diǎn)將開始正常工作。

注意:如果一個虛擬節(jié)點(diǎn)組(包括mnode組)里所歸屬的每個數(shù)據(jù)節(jié)點(diǎn)都處于離線或unsynced狀態(tài),必須等該虛擬節(jié)點(diǎn)組里的所有數(shù)據(jù)節(jié)點(diǎn)都上線、都能交換狀態(tài)信息后,才能選出Master,該虛擬節(jié)點(diǎn)組才能對外提供服務(wù)。比如整個集群有3個數(shù)據(jù)節(jié)點(diǎn),副本數(shù)為3,如果3個數(shù)據(jù)節(jié)點(diǎn)都宕機(jī),然后2個數(shù)據(jù)節(jié)點(diǎn)重啟,是無法工作的,只有等3個數(shù)據(jù)節(jié)點(diǎn)都重啟成功,才能對外服務(wù)。

Arbitrator的使用

如果副本數(shù)為偶數(shù),當(dāng)一個 vnode group 里一半或超過一半的 vnode 不工作時,是無法從中選出 master 的。同理,一半或超過一半的 mnode 不工作時,是無法選出 mnode 的 master 的,因為存在“split brain”問題。為解決這個問題,TDengine 引入了 Arbitrator 的概念。Arbitrator 模擬一個 vnode 或 mnode 在工作,但只簡單的負(fù)責(zé)網(wǎng)絡(luò)連接,不處理任何數(shù)據(jù)插入或訪問。只要包含 Arbitrator 在內(nèi),超過半數(shù)的 vnode 或 mnode 工作,那么該 vnode group 或 mnode 組就可以正常的提供數(shù)據(jù)插入或查詢服務(wù)。比如對于副本數(shù)為 2 的情形,如果一個節(jié)點(diǎn) A 離線,但另外一個節(jié)點(diǎn) B 正常,而且能連接到 Arbitrator,那么節(jié)點(diǎn) B 就能正常工作。

總之,在目前版本下,TDengine 建議在雙副本環(huán)境要配置 Arbitrator,以提升系統(tǒng)的可用性。

Arbitrator 的執(zhí)行程序名為 tarbitrator。該程序?qū)ο到y(tǒng)資源幾乎沒有要求,只需要保證有網(wǎng)絡(luò)連接,找任何一臺 Linux 服務(wù)器運(yùn)行它即可。以下簡要描述安裝配置的步驟:

  1. 請點(diǎn)擊 安裝包下載,在 TDengine Arbitrator Linux 一節(jié)中,選擇合適的版本下載并安裝。
  2. 該應(yīng)用的命令行參數(shù) -p 可以指定其對外服務(wù)的端口號,缺省是 6042。
  3. 修改每個 taosd 實例的配置文件,在 taos.cfg 里將參數(shù) arbitrator 設(shè)置為 tarbitrator 程序所對應(yīng)的 End Point。(如果該參數(shù)配置了,當(dāng)副本數(shù)為偶數(shù)時,系統(tǒng)將自動連接配置的 Arbitrator。如果副本數(shù)為奇數(shù),即使配置了 Arbitrator,系統(tǒng)也不會去建立連接。)
  4. 在配置文件中配置了的 Arbitrator,會出現(xiàn)在 SHOW DNODES; 指令的返回結(jié)果中,對應(yīng)的 role 列的值會是“arb”。

查看集群 Arbitrator 的狀態(tài)【2.0.14.0 以后支持】

SHOW DNODES;