1.ラック(rack)の説明
・データセンタ内でノードを論理的にグループ化したもの
・NetworkTopologyStrategyの場合
・Cassandraは、レプリカを異なるラックのノードに配置しようとする。
・耐障害性の向上に役立つ
2.例1
RAC1:2ノード、RAC2:2ノード、RAC3:2ノード の構成の場合
※環境は、ディストリビューション、バージョン = DSE 5.0.15をベースに記載
※GossipingPropertyFileSnitch利用
# nodetool status
Datacenter: DC1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
UN 10.0.2.121 217.08 KB 256 ? c83d76b9-65af-4207-b18d-42eaf829067a RAC1
UN 10.0.2.122 52.05 KB 256 ? 1d5729d3-43ea-4a1d-9af5-edba4e9542dd RAC1
UN 10.0.2.123 148.42 KB 256 ? ad542a12-a585-4821-80f9-f80c9e77922d RAC2
UN 10.0.2.124 192.33 KB 256 ? d875644a-46f4-4c3e-a597-0f9291e25bcf RAC2
UN 10.0.2.125 184.16 KB 256 ? 48dc9ff3-5af7-47b2-ae2a-a4eeae9783a3 RAC3
UN 10.0.2.126 117.46 KB 256 ? bc853588-c7e1-4d61-b02c-020e83034d50 RAC3
Note: Non-system keyspaces don't have the same replication settings, effective ownership information is meaningless
#
NetworkTopologyStrategy で replication factor=3 の場合
・NetworkTopologyStrategyのキースペースでは、レプリカを異なるラックのノードに配置しようとする。
・このラック構成でreplication factor=3の場合、レプリカの各ノードへの配置は以下の8パターン
RAC1 (10.0.2.121) | RAC1 (10.0.2.122) | RAC2 (10.0.2.123) | RAC2 (10.0.2.124) | RAC3 (10.0.2.125) | RAC3 (10.0.2.126) |
---|---|---|---|---|---|
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ |
・例えば、Quorum(Local Quorum)なら、1つのラックが全滅してもアクセス可能
SimpleStrategy で replication factor=3 の構成の場合
・SimpleStrategyのキースペースでは、ラック構成に関係なくレプリカを配置する。
・このラック構成でreplication factor=3の場合、レプリカの各ノードへの配置は以下の20パターン
RAC1 (10.0.2.121) | RAC1 (10.0.2.122) | RAC2 (10.0.2.123) | RAC2 (10.0.2.124) | RAC3 (10.0.2.125) | RAC3 (10.0.2.126) |
---|---|---|---|---|---|
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ |
3.例2
RAC1:2ノード、RAC2:1ノード、RAC3:3ノード の場合
※環境は、ディストリビューション、バージョン = DSE 5.0.15をベースに記載
※GossipingPropertyFileSnitch利用
# nodetool status
Datacenter: DC1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
UN 10.0.2.121 143.41 KB 256 ? 7f3c4750-b62f-4316-aee0-40a76df65a1c RAC1
UN 10.0.2.122 191.33 KB 256 ? a3253a3a-02b4-4690-8354-f1abebf44224 RAC1
UN 10.0.2.123 99.46 KB 256 ? bbe6a270-0b12-4513-a8a2-10403854204c RAC2
UN 10.0.2.124 92.72 KB 256 ? 92293582-5d34-4002-bddc-94c1a9ac57c0 RAC3
UN 10.0.2.125 200.07 KB 256 ? 5960b61e-66c7-43a5-b15e-51e896a5085b RAC3
UN 10.0.2.126 151.53 KB 256 ? 3e92cde4-9a59-4642-89a8-ef2e12a62d64 RAC3
Note: Non-system keyspaces don't have the same replication settings, effective ownership information is meaningless
#
NetworkTopologyStrategy で replication factor=3 の場合
・このラック構成でreplication factor=3の場合、レプリカの各ノードへの配置は以下の6パターン
・RAC2所属のノードは10.0.2.123のみなので、10.0.2.123には必ずレプリカを配置することになる。
RAC1 (10.0.2.121) | RAC1 (10.0.2.122) | RAC2 (10.0.2.123) | RAC3 (10.0.2.124) | RAC3 (10.0.2.125) | RAC3 (10.0.2.126) |
---|---|---|---|---|---|
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ | |||
○ | ○ | ○ |