个人补充:配置Mongodb的replica set时,设置三个节点,一个主节点,一个从节点(用于备份数据),还有一个节点(仅用于投票)。使用keepalived来进行迁移,主节点机器down了,从节点自然会接手vip;若仅是主节点的mongodb down了,则主节点的keepavlied自己杀死自己,从节点也会接手vip。
  1.    MongoDB高可用配置
  此种方式通过数据库的双向复制完成数据库的高可用性。
  1.1.    服务器1启动参数配置
  /usr/local/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath=/var/mongodb/logs/log.log --master --slave --source 192.168.1.19   --logappend  --port=27017 --fork
  1.2.    服务器2 启动参数配置
  /usr/local/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath=/var/mongodb/logs/log.log --master --slave --source 192.168.1.17   --logappend  --port=27017 --fork
  1.3.    数据同步测试
  此测试目的是双方均写入数据,查看数据库是否均进行了双向同步。
  进入mongodb:/usr/local/mongodb/bin/mongo
  显示数据库:show dbs;
  在主服务器中向test库中添加数据:
  db.test.save({"name":"zhouxiaofei","position":"Web tester"});
  在从服务器中显示test库中存在的数据,当双方服务器数据显示一直时表示同步成功:
  db.test.find();
  1.4.    Keepalived配置
  1.4.1.   服务器1keepalived配置
! Configuration File for keepalived
global_defs {
notification_email {
master@extmail.org
}
notification_email_from yunlei_ma@extmail.org
smtp_server mail.extmail.org
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_mongodb {
script "/etc/keepalived/mongodb_check.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 150
nopreempt
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_mongodb
}
virtual_ipaddress {
192.168.1.18
}
}