@@ -31,13 +31,13 @@ GSLBについて
31
31
32
32
Sakura-DBCは、以下のコンポーネントを利用します。
33
33
34
- | 利用するコンポーネント | 動作確認バージョン |
34
+ | 利用するコンポーネント | 動作確認バージョン |
35
35
| --------------------------------------- | ------------------ |
36
36
| [ go] ( https://go.dev/ ) | 1.24.1 |
37
- | [ gobgp] ( https://github.com/osrg/gobgp ) | v3 .35.0 |
37
+ | [ gobgp] ( https://github.com/osrg/gobgp ) | 3 .35.0 |
38
38
| [ MariaDB] ( https://mariadb.org/ ) | 10.11.4 |
39
39
| [ FRRouting] ( https://frrouting.org/ ) | 8.5.2 |
40
- | nftables | 0.9.3 |
40
+ | nftables | 1.0.4 |
41
41
42
42
注: nftablesは、Primaryとなるデータベースサーバのみが3306番ポートへの接続を受け付けるようにパケットフィルタルールを設定するために使用されます
43
43
@@ -49,12 +49,12 @@ Sakura-DBCは、以下のコンポーネントを利用します。
49
49
50
50
- firewalldを停止し、nftableを有効化します
51
51
```
52
- systemctl stop firewalld
53
- systemctl disable firewalld
52
+ # systemctl stop firewalld
53
+ # systemctl disable firewalld
54
54
55
- nft add table ip filter
56
- nft list ruleset > /etc/sysconfig/nftables.conf
57
- systemctl enable nftables
55
+ # nft add table ip filter
56
+ # nft list ruleset > /etc/sysconfig/nftables.conf
57
+ # systemctl enable nftables
58
58
```
59
59
60
60
### 2. FRRoutingのセットアップ
@@ -63,11 +63,13 @@ Sakura-DBCは、以下のコンポーネントを利用します。
63
63
64
64
- FRRをインストールします
65
65
```
66
- yum -y install https://rpm.frrouting.org/repo/frr-8-repo-1-0.el8.noarch.rpm
67
- yum -y install frr
66
+ # yum -y install https://rpm.frrouting.org/repo/frr-8-repo-1-0.el8.noarch.rpm
67
+ # yum -y install frr
68
68
```
69
69
- /etc/frr/daemons ファイルを作成します
70
70
```
71
+ # vi /etc/frr/daemons
72
+ ----
71
73
bgpd=yes
72
74
vtysh_enable=yes
73
75
zebra_options=" -A 127.0.0.1 -s 90000000"
@@ -76,6 +78,8 @@ Sakura-DBCは、以下のコンポーネントを利用します。
76
78
```
77
79
- /etc/frr/frr.conf ファイルを作成します
78
80
```
81
+ # vi /etc/frr/frr.conf
82
+ ----
79
83
hostname test-server 【自身のホスト名を記入】
80
84
log syslog informational
81
85
no ip forwarding
@@ -106,13 +110,12 @@ Sakura-DBCは、以下のコンポーネントを利用します。
106
110
```
107
111
- FRRを起動します
108
112
```
109
- systemctl enable frr
110
- systemctl start frr
113
+ # systemctl enable frr
114
+ # systemctl start frr
111
115
```
112
116
- (DBサーバセットアップ後) BGPピアが上がり、経路情報が交換できていることを確認します
113
117
```
114
- vtysh
115
-
118
+ # vtysh
116
119
show ip bgp sum
117
120
show ip bgp
118
121
```
@@ -123,6 +126,8 @@ Sakura-DBCは、以下のコンポーネントを利用します。
123
126
124
127
- /etc/yum.repos.d/MariaDB.repo ファイルを作成します
125
128
```
129
+ # vi /etc/yum.repos.d/MariaDB.repo
130
+ ----
126
131
[mariadb]
127
132
name = MariaDB
128
133
baseurl = https://rpm.mariadb.org/10.11/rhel/$releasever/$basearch
@@ -132,10 +137,12 @@ Sakura-DBCは、以下のコンポーネントを利用します。
132
137
```
133
138
- MariaDBをインストールします
134
139
```
135
- yum -y install MariaDB-client MariaDB-common MariaDB-compat MariaDB-server MariaDB-shared
140
+ # yum -y install MariaDB-client MariaDB-common MariaDB-compat MariaDB-server MariaDB-shared
136
141
```
137
142
- /etc/my.cnf ファイルを作成します
138
143
```
144
+ # vi /etc/my.cnf
145
+ ----
139
146
[mariadb]
140
147
141
148
character_set_server = utf8mb4
@@ -162,49 +169,49 @@ Sakura-DBCは、以下のコンポーネントを利用します。
162
169
```
163
170
- 1号機でレプリケーション用ユーザのパスワードを生成します
164
171
```
165
- openssl rand 1000 | tr -dc '0-9A-Za-z' | fold -w 31 | head -1 > /root/.db-replica-password
172
+ # openssl rand 1000 | tr -dc '0-9A-Za-z' | fold -w 31 | head -1 > /root/.db-replica-password
166
173
```
167
174
- 生成したファイルを2号機にコピーします
168
175
```
169
- scp /root/.db-replica-password [email protected] :
176
+ # scp /root/.db-replica-password [email protected] :
170
177
```
171
178
- 1号機にてDBの初期設定をします
172
179
```
173
- systemctl start mariadb
180
+ # systemctl start mariadb
174
181
175
- mysql -e "drop database if exists test"
176
- mysql -e "delete from mysql.global_priv where User=''"
177
- mysql -e "delete from mysql.global_priv where User='PUBLIC'"
178
- mysql -e "delete from mysql.db where Db='test' or Db='test\\_%'"
179
- mysql -e "delete from mysql.proxies_priv"
182
+ # mysql -e "drop database if exists test"
183
+ # mysql -e "delete from mysql.global_priv where User=''"
184
+ # mysql -e "delete from mysql.global_priv where User='PUBLIC'"
185
+ # mysql -e "delete from mysql.db where Db='test' or Db='test\\_%'"
186
+ # mysql -e "delete from mysql.proxies_priv"
180
187
181
- mysql -e "flush privileges"
188
+ # mysql -e "flush privileges"
182
189
183
- REPL_PW=$(cat ~/.db-replica-password)
184
- mysql -e "grant all on *.* to repl identified by '$REPL_PW'"
190
+ # REPL_PW=$(cat ~/.db-replica-password)
191
+ # mysql -e "grant all on *.* to repl identified by '$REPL_PW'"
185
192
```
186
193
- 2号機にて、レプリケーション設定をします
187
194
```
188
- systemctl start mariadb
195
+ # systemctl start mariadb
189
196
190
- mysql -e "drop database if exists test"
197
+ # mysql -e "drop database if exists test"
191
198
192
- REMOTE_HOST=xx.xx.xx.xx 【1号機のIPアドレスを記入】
193
- PASSWORD=$(cat /root/.db-replica-password)
199
+ # REMOTE_HOST=xx.xx.xx.xx 【1号機のIPアドレスを記入】
200
+ # PASSWORD=$(cat /root/.db-replica-password)
194
201
195
- mysqldump --all-databases --master-data=1 --gtid --single-transaction -h $REMOTE_HOST -p$PASSWORD -u repl | mysql
202
+ # mysqldump --all-databases --master-data=1 --gtid --single-transaction -h $REMOTE_HOST -p$PASSWORD -u repl | mysql
196
203
197
- mysql -e 'flush privileges'
204
+ # mysql -e 'flush privileges'
198
205
199
- mysql -e "change master to master_host = '$REMOTE_HOST', master_user = 'repl', master_password = '$PASSWORD', master_use_gtid = slave_pos"
206
+ # mysql -e "change master to master_host = '$REMOTE_HOST', master_user = 'repl', master_password = '$PASSWORD', master_use_gtid = slave_pos"
200
207
201
- mysql -e 'reset master'
202
- mysql -e 'set global gtid_slave_pos=@@gtid_slave_pos'
208
+ # mysql -e 'reset master'
209
+ # mysql -e 'set global gtid_slave_pos=@@gtid_slave_pos'
203
210
204
- mysql -e 'start replica'
211
+ # mysql -e 'start replica'
205
212
206
- # レプリケーションが確立したか確認
207
- mysql -e 'show replica status\G'
213
+ ! レプリケーションが確立したか確認
214
+ # mysql -e 'show replica status\G'
208
215
```
209
216
210
217
### 4. Sakura-DBCのセットアップ
@@ -213,20 +220,22 @@ Sakura-DBCは、以下のコンポーネントを利用します。
213
220
214
221
- golangをインストールします
215
222
```
216
- wget https://go.dev/dl/go1.24.1.linux-amd64.tar.gz
217
- tar -C /usr/local -xzf go1.24.1.linux-amd64.tar.gz
218
- export PATH="$PATH:/usr/local/go/bin"
223
+ # wget https://go.dev/dl/go1.24.1.linux-amd64.tar.gz
224
+ # tar -C /usr/local -xzf go1.24.1.linux-amd64.tar.gz
225
+ # export PATH="$PATH:/usr/local/go/bin"
219
226
```
220
227
- Sakura-DBCレポジトリをクローンし、コンパイルします
221
228
```
222
- cd /root
223
- git clone https://github.com/sakura-internet/distributed-mariadb-controller.git
224
- cd distributed-mariadb-controller
225
- make all
229
+ # cd /root
230
+ # git clone https://github.com/sakura-internet/distributed-mariadb-controller.git
231
+ # cd distributed-mariadb-controller
232
+ # make all
226
233
```
227
234
注: コンパイルが成功すると、実行バイナリが ` /root/distributed-mariadb-controller/bin/db-controller ` に生成されます
228
235
- /etc/systemd/system/db-controller.service ファイルを作成します
229
236
```
237
+ # vi /etc/systemd/system/db-controller.service
238
+ ----
230
239
[Unit]
231
240
Description=Database Controller
232
241
After=network-online.target
@@ -241,12 +250,18 @@ Sakura-DBCは、以下のコンポーネントを利用します。
241
250
```
242
251
- systemdに反映させます
243
252
```
244
- systemctl daemon-reload
253
+ # systemctl daemon-reload
245
254
```
246
255
- db-controllerを始めに1号機、続いて2号機の順で起動します
247
256
```
248
- systemctl enable db-controller
249
- systemctl start db-controller
257
+ # systemctl enable db-controller
258
+ # systemctl start db-controller
259
+ ```
260
+ - gobgpをインストールします
261
+ (db-controllerの動作上必要になるものではありませんが、CLIによりBGPの状態確認ができるためインストールを推奨します)
262
+ ```
263
+ # wget https://github.com/osrg/gobgp/releases/download/v3.35.0/gobgp_3.35.0_linux_amd64.tar.gz
264
+ # tar -C /usr/local/bin -xzf gobgp_3.35.0_linux_amd64.tar.gz
250
265
```
251
266
252
267
### 5. GSLBのセットアップ
0 commit comments