February 5, 201610 yr My Plex server is pretty heavily used amongst family members and some very close friends. There are times I'd like to take my server offline (or am forced to like the recent data rebuild I did after a failed drive) without my Plex server being unavailable to my family and friends. And for that reason, I've been brainstorming what is the best way to leverage all the hardware I have at my disposal. If you notice in my sig, you'll see that I have a backup UnRAID server (that is housed offsite and connected via a 100Mbps site-to-site VPN) that I do have Plex installed on but the CPU (C2558) is only powerful enough to transcode one 1080p stream at a time and since my server often times has 6+ people streaming at once it's not a viable solution for what my goals are. I will be using this only as a backup Plex server for myself, not for remote users. That leads me to my main PC which features an i5-4690K OC'd to 4.5Ghz. At stock speeds (3.5Ghz) it's about 4000 passmark score points (7,715) lower than my Xeon D-1540 (10,883) but with it being OC'd to 4.5Ghz I'm thinking that gap is closed by quite a bit. I want to leverage the power of my PC as a backup Plex server so that I can bring my main plex server down and this backup plex server up without remote users being the wiser. So on my PC I've installed an Ubuntu VM (inside VMware Workstation 12) with a Plex docker. I've mounted the necessary shares from my BACKUP UnRAID server (yes the one connected via VPN) to the Ubuntu VM and made those directories available to the Plex docker. That all went as expected... However there is one last piece I'm missing. I need to determine the best way to mirror my main Plex docker /config folder over to my Ubuntu VM so that when I bring my backup plex server online it has the same configuration as my main plex server. I was thinking about just doing a mirror job using something like Syncback to mirror the data between my UnRAID server and a folder on my PC and just mount that folder to the Ubuntu VM but I'm open to suggestions.
February 5, 201610 yr Author Hah, I had a feeling this would be a pretty "unique" setup idea that not many if any have attempted. I guess I'll be the guinea pig and report back my results.
February 5, 201610 yr Is this a one-time migration to a new server or do you want to be able to switch between them at will? For a one-time migration, see this: https://support.plex.tv/hc/en-us/articles/201370363-Move-an-Install-to-Another-System If you want to switch between the two servers then I'd try to do as much as possible to make the two servers identical. i.e. run the same Docker container on both servers with the same library and the same config directory. To switch from server A to server B you'd have to stop the Plex docker on server A, rsync the config and library folders from A to B, then start B. Seems like it would work Another option would be to use the Media Optimizer to eliminate the need to transcode on the fly, then your current server might be able to handle the load: https://support.plex.tv/hc/en-us/articles/214079318-Media-Optimizer-Overview Or you could explore remote transcoding: https://github.com/wnielson/Plex-Remote-Transcoder/wiki/Ubuntu-Install more details here: https://forums.plex.tv/discussion/178320/plex-remote-transcoder-a-distributed-transcoding-backend-for-plex/p1
February 5, 201610 yr Don't know if you thought about it, but the 100Mbps VPN may be an issue. If your Core i5 main PC is in your home and will be pulling media across the 100Mbps VPN from the offsite backup server you could max out that connection. If your media is already heavily encoded for minimum size it might not be an issue. But, if you are simultaneously pulling multiple full native BD rips for transcoding to multiple clients you could get into trouble...
February 5, 201610 yr Author Is this a one-time migration to a new server or do you want to be able to switch between them at will? For a one-time migration, see this: https://support.plex.tv/hc/en-us/articles/201370363-Move-an-Install-to-Another-System If you want to switch between the two servers then I'd try to do as much as possible to make the two servers identical. i.e. run the same Docker container on both servers with the same library and the same config directory. To switch from server A to server B you'd have to stop the Plex docker on server A, rsync the config and library folders from A to B, then start B. Seems like it would work Another option would be to use the Media Optimizer to eliminate the need to transcode on the fly, then your current server might be able to handle the load: https://support.plex.tv/hc/en-us/articles/214079318-Media-Optimizer-Overview Or you could explore remote transcoding: https://github.com/wnielson/Plex-Remote-Transcoder/wiki/Ubuntu-Install more details here: https://forums.plex.tv/discussion/178320/plex-remote-transcoder-a-distributed-transcoding-backend-for-plex/p1 I would like to be able to take Server A down at will (few times a month) and bring up Server B with an exact mirrored config as Server A. And yes the process for bringing Server A and B up/down will be manual I have no qualms about that. Is there vital metadata that changes that constantly that I would need to a full rsync between taking Server A down and bringing Server B up? I was hoping a daily rsync would be sufficient. I do use the Media Optimizer for certain files (20 most recent added movies, 20 most recently aired TV shows) but the issue is that my streaming clients vary greatly in both platform (Roku, AFTV, Chrome, Chromecast, etc.) as well as the bitrate (some stream as low as 1.5Mbps while some stream as high as 8-10Mbps) so it's very difficult to find the right settings (bitrate and resolution) to optimize my media to that will result in direct play. I also looked into the Remote Transcoder but seems a little too early in it's development stage. Besides I believe it works best with a single data source for both storage and config. Which is probably the ideal way to go but it's not realistic given my current setup without completely re-configuring my network. Don't know if you thought about it, but the 100Mbps VPN may be an issue. If your Core i5 main PC is in your home and will be pulling media across the 100Mbps VPN from the offsite backup server you could max out that connection. If your media is already heavily encoded for minimum size it might not be an issue. But, if you are simultaneously pulling multiple full native BD rips for transcoding to multiple clients you could get into trouble... Most of my files are bluray remuxes so between 4-8Mbps for 720p and 8-15Mbps for 1080p. However the bitrate at which the majority of my remote clients stream is between 3-8Mbps. I rarely if ever even hit 75Mbps outbound on my main WAN, it's usually in the 20-40Mbps range with 4-8 clients streaming. So I'm not too concerned about my VPN connetion being the bottleneck.
February 5, 201610 yr I would like to be able to take Server A down at will (few times a month) and bring up Server B with an exact mirrored config as Server A. And yes the process for bringing Server A and B up/down will be manual I have no qualms about that. Is there vital metadata that changes that constantly that I would need to a full rsync between taking Server A down and bringing Server B up? I was hoping a daily rsync would be sufficient. The major hurdle IMO is that Plex isn't really set up to combine two servers seamlessly under one frontend.
February 5, 201610 yr Author I would like to be able to take Server A down at will (few times a month) and bring up Server B with an exact mirrored config as Server A. And yes the process for bringing Server A and B up/down will be manual I have no qualms about that. Is there vital metadata that changes that constantly that I would need to a full rsync between taking Server A down and bringing Server B up? I was hoping a daily rsync would be sufficient. The major hurdle IMO is that Plex isn't really set up to combine two servers seamlessly under one frontend. Do you foresee database corruption if done this way? If both Plex servers are running off the exact same docker image and using the exact same config folder (albeit at different times as they'd never be powered on together) I don't see the issue. So basically my main objective is to either : A) Sync the config folder between two server locations B) Centralize the location of my /config folder where both Plex servers can access it While B sounds like the best way, I'm not sure how to swing that given my current hardware. I'm not looking to spend any additional money on my home network at this time.
February 5, 201610 yr I would like to be able to take Server A down at will (few times a month) and bring up Server B with an exact mirrored config as Server A. And yes the process for bringing Server A and B up/down will be manual I have no qualms about that. Is there vital metadata that changes that constantly that I would need to a full rsync between taking Server A down and bringing Server B up? I was hoping a daily rsync would be sufficient. The major hurdle IMO is that Plex isn't really set up to combine two servers seamlessly under one frontend. Do you foresee database corruption if done this way? If both Plex servers are running off the exact same docker image and using the exact same config folder (albeit at different times as they'd never be powered on together) I don't see the issue. So basically my main objective is to either : A) Sync the config folder between two server locations B) Centralize the location of my /config folder where both Plex servers can access it While B sounds like the best way, I'm not sure how to swing that given my current hardware. I'm not looking to spend any additional money on my home network at this time. Ok I'm starting to understand your plans a bit more and your approach. I don't think you'll run into database corruption, but I don't think it'll show up seamlessly in clients. I.E. I'm not sure your users will have seamless User Experience. What I'm not sure about is if you have two identical servers in two locations and they are both on at the same time... what happens... or if they aren't does Plex aggregate them... etc.
February 5, 201610 yr Author I think an important point is that I never intend to have both servers on simultaneously. And since the config folder should be pretty identical (outside of some minor metadata changes) and both advertising to the Internet from the same public IP address, I don't see how anyone outside my network (including Plex.tv) would be the wiser.
February 5, 201610 yr I think an important point is that I never intend to have both servers on simultaneously. And since the config folder should be pretty identical (outside of some minor metadata changes) and both advertising to the Internet from the same public IP address, I don't see how anyone outside my network (including Plex.tv) would be the wiser. In that case I think it's totally worth a shot.
February 5, 201610 yr Author I think an important point is that I never intend to have both servers on simultaneously. And since the config folder should be pretty identical (outside of some minor metadata changes) and both advertising to the Internet from the same public IP address, I don't see how anyone outside my network (including Plex.tv) would be the wiser. In that case I think it's totally worth a shot. I plan to either tonight or tomorrow as soon as I figure out the best way to sync my config folder between my UnRAID server and my Ubuntu VM. I want to somehow store the config folder on my Windows box itself that I will let my Ubuntu VM access. That way I don't need the Ubuntu VM to be powered on at all times to keep the config folders synced and the VM file itself will not need to be very big. I'm just fairly new to Linux VMs so sure what's the best way to give a Linux guest VM access to a folder on a Windows system acting as the host. And furthermore, how most efficiently to sync the the config folder between my UnRAID cache pool and said folder on my Windows box.
February 8, 201610 yr Author And we are up and running . I have successfully brought up my Plex server using the exact config on my UnRAID server in a docker on an Ubuntu VM on my PC. The docker is using volumes mounted via nfs shares on my Backup UnRAID server which are accessed over my VPN connetion. It's working great. Took some time to configure but this should work wonderfully for what I need. Now I can take my main Plex server down at any time and bring up the exact same docker on my PC and let that serve all my remote clients for as long as I deem necessary. EDIT: I have since tested mounting my appdata folder (located on my UnRAID cache pool) to the Ubuntu VM so that I can use the same exact config for the Plex docker on there. It works pretty well from what I see with no major performance issues being that it's being accessed over a 1Gbps connection as opposed to local storage. This of course was just a test as the whole point of me going down this road is to be able to run my Plex server when my array is down. I am, howerver, looking into the possibility of moving my entire appdata share off my UnRAID array to a centralized array that will operate independent of my bulk storage arrays. That way I can run dockers from multiple servers (never at once of course) using the same network mounted appdata share.
Archived
This topic is now archived and is closed to further replies.