**- 基於keepalived部署milvus高可用問題:
雙寫冷備:兩個寫節點不能同時啟動,否則會導致資料重複,通過增加與閘道器的連通性來解決可能同時啟動的問題,但不能完全保證沒有特殊情況的存在。另外宕機時可能會導致資料丟失。
一寫一讀:可以同時啟動,但是寫節點宕機時,資料不能寫入。
** - 基於minio的共享儲存,寫入速度比本地磁碟慢,如果資料量較大需要適當減小index_file_size,預設1024m,可設定為512m。**
docker pull milvus
新建目錄
/data/milvus/db
/home/milvus/wal
/home/milvus/conf
/home/milvus/logs
/home/milvus/wal
其中db位於minio掛載到本地的目錄,其他為本地磁碟目錄,conf下存放server_config.yaml
啟動:docker run -d --name milvus -p 19530:19530 -p 19121:19121 -p 9091:9091 -v /data/milvus/db:/var/lib/milvus/db -v /home/milvus/conf:/var/lib/milvus/conf -v /home/milvus/logs:/var/lib/milvus/logs -v /home/milvus/wal:/var/lib/milvus/wal milvusdb/milvus:0.9.0-cpu-d051520-cb92b1
若docker啟動報錯cannot set property tasksaccounting
執行:yum update
yum install keepalived
主備節點milvus不能同時啟動。
keepalived監控milvus,vip發生遷移時,首先停掉非vip節點的milvus,然後啟動vip節點的milvus。
主節點恢復正常後,vip不從冷備節點轉移至主節點,只有冷備節點異常後才轉移。
主節點配置:
vim /etc/keepalived/keepalived.conf
! configuration file for keepalived
global_defs
vrrp_script monit_milvus
vrrp_instance vi_server
virtual_ipaddress
track_script
notify_master "/home/start_milvus.sh"
}
冷備節點配置:
vim /etc/keepalived/keepalived.conf
! configuration file for keepalived
global_defs
vrrp_script monit_milvus
vrrp_instance vi_server
virtual_ipaddress
track_script
notify_master "/home/start_milvus.sh"
}
monit_milvus.sh
#!/bin/bash
# 判斷是否獲取vip,並且vip與閘道器是否通
minio=
check_time=3
vip=192.168.16.244
gateway=192.168.16.1
eth=eth0
#另外一台節點的host
host=type1-08
# 判斷與閘道器的連通性
/sbin/arping -i $eth -c 2 -s $vip $gateway >/dev/null 2>&1
#為vip且通,不為vip時返回值為2
if [ $? = 0 ] ; then
echo "是vip且通" >>/home/monit.log
# 判斷minio是否掛載
miniocount=`df | grep /data/milvus | wc -l`
if [[ $miniocount == 0 ]]; then
s3fs -o passwd_file=/etc/passwd-s3fs -o use_path_request_style -o url=$minio -o allow_other -o bucket=milvusdata /data/milvus
fi # 檢測並啟動milvus
running_status=$(docker inspect --format '}' milvus)
if [[ "$" != "true" ]];then
ssh root@$host "docker kill milvus"
docker start milvus
echo starting >>/home/monit.log
fi
echo started >>/home/monit.log
fi
start_milvus.sh
#!/bin/bash
vip=192.168.16.244
gateway=192.168.16.1
eth=eth0
#另外一台節點的host
host=type1-08
echo "-----------" >>/home/start.log
echo "start monit" >>/home/start.log
/sbin/arping -i $eth -c 1 -s $vip $gateway >/dev/null 2>&1
if [ $? = 0 ] ;then
running_status=$(docker inspect --format '}' milvus)
if [[ "$" != "true" ]];then
ssh root@$host "docker kill milvus"
docker start milvus
echo "start milvus" >>/home/start.log
fielse
running_status=$(docker inspect --format '}' milvus)
if [[ "$" == "true" ]];then
docker kill milvus
echo "kill milvus" >>/home/start.log
fi fi
啟動:
systemctl enable keepalived
systemctl start keepalived
mysql keepalived搭建高可用環境
假設已經搭建好了mysql並且存在正常狀態的主主複製 1 安裝keepalived並且根據業務的vip及主機網絡卡,ip配置好 etc keepalived keepalived.conf,具體操作已在 框中實現 1 安裝環境 謹慎,建議先編譯,能通過就不要進行第一步了 yum y install ...
搭建eureka高可用
1.設定伺服器之間的host,測試環境是在window10上搭建的,所以去修改c windows system32 drivers etc檔案,如下 2.建立專案 一組服務需要使用相同的服務名稱,才能被識別為一組!name eureka server eureka client 集群模式需要設定為t...
lvs keepalived DR搭建高可用集群
lvs keepalived dr搭建高可用集群 環境準備 lvsserver1 192.168.1.10 lvsserver2 192.168.1.11 vip 192.168.1.15 rs1 192.168.1.12 rs2 192.168.1.13 lvsserver1和lvsserver2...