我正在开发一些Web服务,在Debian上使用FreeRADIUS + MySQL实现AAA。
我现在正在工作的问题是HA和RADIUS的可扩展性。 如果FreeRADIUS机器或MySQL机器停机,则会导致整个服务中断。
我检查了以下白皮书:
http://www.mysql.com/why-mysql/white-papers/mysql_wp_ha_auth_account.php
http://www.mysql.com/why-mysql/white-papers/mysql_wp_scaling_web_databases.php
现在我有以下一系列的问题:
- 据我所知,两台FreeRADIUS服务器可以使用相同的MySQL数据库,而不会“破坏”它的完整性,是吗? 如果是这样的话,这样的设置的性能缺点是什么?
- 对于归档HA应该是多余的? 它是FreeRADIUS服务器本身还是只是其MySQL数据存储或两者兼而有之? 归档可扩展性应该是多余的?
- 如果RADIUS服务器倍增,那么对于通过互联网分发的Web服务器如何实现负载均衡?
- 我如何通过互联网分配MySQL集群? (我应该使用复制和离开两个集群成员在同一个本地networking?
- 将多个FreeRadius服务器连接到一个MySQL簇确实是可能的,这将在两侧给你HA(Radius和SQL)
- 至于nr2的问题。 您将需要创build一个至less2台机器的MySQL集群,您还需要安装至less2台装有FreeRadius的机器。 显然你可以在每台机器上安装两台同时具有MySQL和FreeRadius的机器,这取决于你安装的大小和客户端的数量。
- 这很大程度上取决于您的Radius客户端的实现方式,它是否支持多个服务器? 它是否支持权重或优先级?
- MySQL有许多选项来构build一个集群,为此我build议MySQL集群的白皮书,并select最适合您需求的选项。
- 使用radius服务器不应该破坏数据的完整性。 只有收到请求的radius服务器才会执行相应的authentication/计费查询。 另外,如果需要,可以使用DB的级别locking。
- 为了提供冗余,有必要复制radius服务器和mysql数据库。
- 你需要在radius服务器之前有一些负载平衡器。 这必须是基于UDP的负载均衡器。 你可以考虑的另一个select是从你的服务手动负载平衡请求(例如,你可以随机select多个IP中的一个,并将其用作radius服务器)。 这取决于你的服务实现。