From: Jean-François M. <je...@ra...> - 2013-08-20 16:12:22
|
Hello, On 20 Aug 2013, at 17:39, Romain Beauxis <to...@ra...> wrote: > Hi all,2013/8/20 Ashworth Payne <ema...@gm...> > > Stream to one server and have the other server relay it? > > This is indeed the best solution I can think of right now. icecast relays are designed to be backup streams, I believe, so they seem like the appropriate approach to me. > > Romain We are in a particular case. Today we have several thousands of LS pushing streams in a single master. This master is connected to 8 slave servers on which listeners are connected to. We are using the icecast master-slave system to do that. When a station doesn't have listener we stop it to avoid CPU time waste. We are starting and stopping thousands of stations thousands times a day. So we add and remove mountpoints frequently. We have developed a process that could allow a slave to find a station not present on the main master to grab it from a secondary "master" server. If the main master doesn't run the station it is because it is in troubles (ie it is crashing) so relaying this server to the secondary master is useless as the server is in trouble an unable to serve slaves (so it's unable to server a relay server). So summarise : - 10,000 liquidsoap instances are pushing stream in an icecast server (called the main master) - 8 front-end icecast are connected on this main master delivering the 10,000 of stations to up to 160,000 listeners What happens if the main master is in trouble (memory leaks, stats link down, motherboard failure, ….) ? The 160,000 listeners are deconnected from the slaves as the main master is a SPOF. The idea is to allow the slaves to connect to another master having the same streams available (the automatic switch over is done and working), but in this case, we need the stream to be present on that server (that could not pick it up from the dying master). Using real mountpoint+fallback on the slaves instead of the master-slave system is not usable as we should set up to 120,000 mountpoints on it (all the stations - playing and not playing one) and icecast doesn't like that. We are adding more than 100 stations every single day. So we should add them and -HUP icecast a lot of times during the day. So you would say, use more master and split your stations on it. But as a single slave could only have a single master my bandwidth sharing between servers will not be as efficient as today. As I know every slave as the whole mountpoint list, I could loadbalance very well the listeners on my slaves. The easiest way for us is pushing twice the stream in 2 different masters directly from LS of via a local service on the liquidsoap server (it will be a SPOF at liquidsoap server level, but it will not impact whole the stations at the same time). Today, a single server (0,5U) is able to use 260 liquidsoap instances. TIA, Jef > |