Skip to content

Commit dcb0db6

Browse files
author
Sheng Yang
committed
CLOUDSTACK-6434: Make RvR advert_int configurable
In some network environment, 1*3 seconds by default make RvR setup too sensitive. A configurable parameter would be better for fitting different network environments.
1 parent 94a146a commit dcb0db6

4 files changed

Lines changed: 23 additions & 0 deletions

File tree

server/src/com/cloud/configuration/Config.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1915,6 +1915,15 @@ public enum Config {
19151915
"the interval cloudstack sync with UCS manager for available blades in case user remove blades from chassis without notifying CloudStack",
19161916
null),
19171917

1918+
RedundantRouterVrrpInterval(
1919+
"Advanced",
1920+
NetworkOrchestrationService.class,
1921+
Integer.class,
1922+
"router.redundant.vrrp.interval",
1923+
"1",
1924+
"seconds between VRRP broadcast. It would 3 times broadcast fail to trigger fail-over mechanism of redundant router",
1925+
null),
1926+
19181927
ManagementServerVendor("Advanced", ManagementServer.class, String.class, "mgt.server.vendor", "ACS", "the vendor of management server", null);
19191928

19201929
private final String _category;

server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2339,6 +2339,9 @@ protected StringBuilder createGuestBootLoadArgs(final NicProfile guestNic, final
23392339
buf.append(" guestbrd=").append(brd);
23402340
buf.append(" guestcidrsize=").append(NetUtils.getCidrSize(guestNic.getNetmask()));
23412341
buf.append(" router_pr=").append(router.getPriority());
2342+
2343+
int advertInt = NumbersUtil.parseInt(_configDao.getValue(Config.RedundantRouterVrrpInterval.key()), 1);
2344+
buf.append(" advert_int=").append(advertInt);
23422345
}
23432346

23442347
//setup network domain

setup/db/db/schema-430to440.sql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -770,3 +770,5 @@ ALTER TABLE `cloud`.`networks` ADD COLUMN streched_l2 boolean default false;
770770
ALTER TABLE `cloud`.`vpc` ADD COLUMN region_level_vpc boolean default false;
771771
ALTER TABLE `cloud`.`load_balancer_vm_map` ADD COLUMN instance_ip VARCHAR(40);
772772
ALTER TABLE `cloud`.`load_balancer_vm_map` DROP KEY `load_balancer_id`, ADD UNIQUE KEY load_balancer_id (`load_balancer_id`, `instance_id`, `instance_ip`);
773+
774+
INSERT INTO `cloud`.`configuration`(category, instance, component, name, value, description, default_value) VALUES ('Advanced', 'DEFAULT', 'NetworkOrchestrationService', 'router.redundant.vrrp.interval', '1', 'seconds between VRRP broadcast. It would 3 times broadcast fail to trigger fail-over mechanism of redundant router', '1') ON DUPLICATE KEY UPDATE category='Advanced';

systemvm/patches/debian/config/etc/init.d/cloud-early-config

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -865,6 +865,12 @@ setup_redundant_router() {
865865
sed -i "s/\[RROUTER_LOG\]/$rrouter_log_str/g" $rrouter_bin_path/check_heartbeat.sh
866866
sed -i "s/\[RROUTER_LOG\]/$rrouter_log_str/g" $rrouter_bin_path/arping_gateways.sh
867867
sed -i "s/\[RROUTER_LOG\]/$rrouter_log_str/g" /opt/cloud/bin/checkrouter.sh
868+
869+
if [ $ADVERT_INT ]
870+
then
871+
sed -i "s/advert_int 1/advert_int $ADVERT_INT/g" /etc/keepalived/keepalived.conf
872+
fi
873+
868874
chmod a+x $rrouter_bin_path/*.sh
869875

870876
sed -i "s/--exec\ \$DAEMON;/--exec\ \$DAEMON\ --\ --vrrp;/g" /etc/init.d/keepalived
@@ -1431,6 +1437,9 @@ for i in $CMDLINE
14311437
cidrsize)
14321438
CIDR_SIZE=$VALUE
14331439
;;
1440+
advert_int)
1441+
ADVERT_INT=$VALUE
1442+
;;
14341443
esac
14351444
done
14361445

0 commit comments

Comments
 (0)