I would like to serve videos from a pool of servers and have a minimum of 2 copy of each to prevent server crash and lose data. The goal is to have a kind of cloud where I can add as many server as I want. I checked openstack, glusterfs, moosefs but their solutions seems not to be my needs as some need proxies, other chunks the datas, etc..
Actually I have 5 servers on wich I check at every video upload the space left on disk and then distribute the video on at least 2 servers, then save theses servers names in a db and generate 2 urls that I randomly call for balancing. (ie http://srv1.mystream.com/1234/myvideo.flv, http://srv2.mystream.com/1234/myvideo.flv )
This is working fine except for 2 things:
- delete a video > I have to log to each server and then delete the video, I can make a script to do that anyway
- move content, if I want to move content from one server to another it is a bit pain as I have to change the server url in db and to move the video. I can do a script for that also.
I can continue like this and complete the missing scripts but I'm sure there are existing systems better than mine, more robust that I would ever do.
I do not want to use services like openstack as it need a lot of servers (actually for my configuration it would mean my 5 servers and 5 more servers for proxies) or maybe I'm wrong.
Any help is welcome.