|
SageTV Downloads & Instructions This forum is for discussions containing Downloads and Instructions related to the Open Source version of SageTV. Please do not post questions in this forum. |
|
Thread Tools | Search this Thread | Display Modes |
#1
|
|||
|
|||
NAS4Free / FreeBSD / BHyve Guide
Update Dec 15, 2017: I am pleased to state that the problem was actually a very simple one and after several weeks of testing I am confident that this is working 100%. The issue was that I had fairly aggressive power management settings enabled, with that relaxed all is well. When testing I also found a superior way for the TV drives to be accessed. Although the below does work, it seems to cause an abnormal amount of disk activity. I will publish a create a new guide and upload it here probably early next year.
Update Nov 28, 2017: I regret to announce this project has been abandoned for reasons stated in post 5 bellow. The instructions will remain here in case somebody still wants to give this a try. I remain hopeful that it can be made to work 100% so if somebody would like to work on this, by all means feel free! (Part 1 of 2) The goal of this guide is specifically to implement a SageTV server on NAS4Free, a FreeBSD based NAS OS. It's not that I have anything against unRAID, but the fact is I have been running NAS4Free for several years now and I do not wish to start over and nor do I want to loose the ZFS filesystem. The problem is that SageTV is unavailable for FreeBSD at this time. Furthermore, Docker is not currently an option on FreeBSD (Docker is present but listed as "experimental" and development appears to have been stalled for a while), so there is no way to natively run SageTV server on a FreeBSD system. FreeBSD does have BHyve. BHyve is the FreeBSD native hypervisor that comes "baked in" to FreeBSD, which allows FreeBSD to run virtual machines "out of the box". A BHyve extension for NAS4Free is in the very early stages of development, but trials with it revealed a number of issues without a viable work around. None-the-less, BHyve can still be used if one looks "under the hood". The idea here is to use a BHyve virtual machine to run a Docker capable OS, which in turn hosts the SageTV Docker VM. On a kludge scale of 1-10, this is without a doubt an 11, but it does result in a fully functional and stable SageTV server on NAS4Free until better option(s) are available. The following walk through will describe how to implement a BHyve virtual machine using the FreeBSD command line. It creates scripts to initialize, start and stop the BHyve VM and the Docker-ized SageTV Server. While the directions that follow are specific to NAS4Free, there should be enough 'clues' within to run it on other FreeBSD based NASes and FreeBSD itself. Acknowledgement: Many of the direcitons for seting up and running BHyve are based on steps found here: https://users.monkeybrains.net/support/bhyve Basic Steps:
At the completion of these steps, you should have a functional SageTV server that runs on NAS4Free and survives a system reboot. Assumpitons:
Steps: 1. Initialize BHyve Load the virtualization (vmm) kernal module and configure virtual network (note: I tried some of these steps in the NAS4Free GUI without success, so it seems it must be done by command line). Log into the NAS4Free SSH shell (using PuTTy or similar). The following assume the user is a super user (issuing su or loging in as root), thus avoiding having to sudo every line: Code:
# kldload vmm if_tap if_bridge # sysctl net.link.tap.up_on_open=1 # sysctl net.inet.ip.forwarding=1 # echo "net.link.tap.up_on_open=1" >> /etc/sysctl.conf # ifconfig tap1 create # ifconfig bridge0 create # ifconfig bridge0 addm tap1 addm igb0 up ^^^^ (Substitute your network adapter if not igb0) Create BHyve directories: As noted previously, the location of the BHyve files is not critical as a new BHyve directory will be created. For performance reasons, the BHyve directory should be located on an SSD. You may, of course, use an existing directory. Code:
# mkdir /mnt/<pool>/<dataset>/bhyve Code:
# mkdir /mnt/<pool>/<dataset>/bhyve/UbuntuVM # cd /mnt/<pool>/<dataset>/bhyve/UbuntuVM 2. Create an Ubuntu VM under BHyve You can of course choose to install a different OS if you desire. I chose Ubuntu mostly out of familiarity and the Server variant due to it being relatively light weight. An example of how to install and use CoreOS (a Docker only OS) is here: https://forums.plex.tv/discussion/26...eebsd-nas4free Retrieve the Ubuntu install CD ISO: The following assumes Ubuntu Server verison 16.04.2, the most recent LTS release available at this time. Code:
# fetch http://releases.ubuntu.com/16.04.2/ubuntu-16.04.2-server-amd64.iso The HDD size below (24g) is ultimately up to you. The minimum suggested size for an Ubuntu install on Virtualbox is 10GB. Keep in mind that this must also support a swap file, so actual usable space will be less. For a system that only hosts Docker and the SageTV server, not a great deal of space is needed, but 10GB is probably a bit "tight". Code:
# truncate -s 24g UbuntuVM.img Code:
# nano device.map (hd0) /mnt/<pool>/<dataset>/bhyve/UbuntuVM/UbuntuVM.img (cd0) /mnt/<pool>/<dataset>/bhyve/UbuntuVM/ubuntu-16.04.2-server-amd64.iso Still as su, type the following commands. Order here is important, enter them in the order given. NOTE: NAS4Free appears to have included grub2-boot "out of the box". If the grub-hyve command is missing on your system, grub2-boot will also need to be installed. Code:
# pkg update # pkg install grub2-bhyve Code:
# bhyvectl --vm=UbuntuVM --destroy Code:
# grub-bhyve -r cd0 \ -m /mnt/<pool>/<dataset>/bhyve/UbuntuVM/device.map \ -M 3096 UbuntuVM The grub menu will disappear and the NAS4Free command prompt will re-appear. To boot the CD issue the following set of commands. Again, 3G of RAM is used in this example, but also 2 CPU cores (-c 2). If you have a multi-core CPU you probably do not want to assign all cores to the VM simply to prevent SageTV from "dominating" NAS4Free. 2 cores has always proven sufficient for me, so that is why I chose it here. Code:
# bhyve -c 2 -m 3096M -H -P -A \ -l com1,stdio \ -s 0:0,hostbridge \ -s 1:0,lpc -s 2:0,virtio-net,tap1 \ -s 3,ahci-cd,/mnt/<pool>/<dataset>/bhyve/UbuntuVM/ubuntu-16.04.2 server-amd64.iso \ -s 4,virtio-blk,/mnt/<pool>/<dataset>/bhyve/UbuntuVM/UbuntuVM.img UbuntuVM 4. Install Ubuntu onto the Virtual Machine Follow the prompts to install Ubuntu-Server onto the VM. Generally you can accept the defaults except when they are wrong (for example, if English is not your preferred language). Other exceptions are listed below, in the order you will encounter them.
Last edited by texneus; 12-15-2017 at 12:18 PM. Reason: Dec 15 update |
#2
|
|||
|
|||
(Part 2 of 2)
5. Create and test scripts to control the Ubnuntu VM What follows are the text for three sh scripts that will help administer BHyve and UbuntuVM. The first script will be used to re-create BHyve when NAS4Free boots. This is necessary because NAS4Free operates as an embedded OS, meaning BHyve must be re-initialized at each startup. Once BHyve is initialized, this script will chain to a second script to start the Ubuntu VM. Note the first line you type into the NAS4Free command line to open nano, while all remaining lines can be pasted into nano to create the file. This is somewhat confusing, I know, but it's because FreeBSD uses '#' as the root user prompt (which is the same symbol for a comment in a sh script). Please pay particular attention to the lines in highlighted bold! These should be the only edits required to make this script work. Code:
# nano UbuntuVM_Boot.sh #!/bin/sh #This script sets up BHyve then boots the VM. The assumption #here is NAS4Free has just booted and no VM currently exists. #If the VM does exist it will be forcefully terminated and restarted. #Data loss is possible in this scenario. #Edit these lines to define full path to BHyve VM directory and the VM name. VMPATH=/mnt/<pool>/<dataset>/bhyve/UbuntuVM VMNAME=UbuntuVM #Wait for NAS4Free to boot and/or give the the user a chance to abort. echo Reseting BHyve VM $VMNAME in 30 seconds. echo Warning: Loss of data may occur if VM is active. echo Press CTRL-C to abort... sleep 30 #Remove the old pid file. rm "${VMPATH}/bhyve.pid" #Configure BHyve and the virtual network kldload vmm if_tap #If if_bridge is not loaded by default by your OS, uncomment the next line. #kldload if_bridge sysctl net.link.tap.up_on_open=1 sysctl net.inet.ip.forwarding=1 echo "net.link.tap.up_on_open=1" >> /etc/sysctl.conf ifconfig tap1 create ifconfig bridge0 create #Change igb0 to match the name of your network adapter ifconfig bridge0 addm tap1 addm igb0 up #Chain to the VM start script to boot the virtual machine. "${VMPATH}/${VMNAME}_Start.sh" Code:
# nano UbuntuVM_Start.sh #!/bin/sh #This script will boot the specified VM using BHyve. It #will also save the process ID of the VM to stop it later. #Edit these lines to define full path to BHyve VM directory and the VM name. VMPATH=/mnt/<pool>/<dataset>/bhyve/UbuntuVM VMNAME=UbuntuVM #Check for a PID file. This would indicate the VM is already running. if [ -f "${VMPATH}/bhyve.pid" ] then echo "It appears this VM is already operational." echo "Delete the bhyve.pid file if this is incorrect." else #Destroy any previous VM incarnations bhyvectl --vm=$VMNAME --destroy #Load Ubuntu w/Grub (Starts first OS only) grub-bhyve -m ${VMPATH}/device.map \ -r hd0,msdos1 -M 3096 $VMNAME > /dev/null #Start Ubuntu VM. Change core and memory options as needed. bhyve -c 2 -m 3096M -H -P -A \ -s 0:0,hostbridge \ -s 1:0,lpc \ -s 2:0,virtio-net,tap1 \ -s 3,ahci-cd,${VMPATH}/ubuntu-16.04.2-server-amd64.iso \ -s 4,virtio-blk,${VMPATH}/${VMNAME}.img $VMNAME & #Give bhyve time to start, then save the PID for later. sleep 5 pgrep -fx "bhyve: $VMNAME" > ${VMPATH}/bhyve.pid fi Code:
# nano UbuntuVM_Stop.sh #!/bin/sh #This script will kill the BHyve VM using the bhyve.pid file. #Per BHyve docs, this is the same as an ACPI shutdown. #Edit these lines to define full path to BHyve VM directory and the VM name. VMPATH=/mnt/<pool>/<dataset>/bhyve/UbuntuVM VMNAME=UbuntuVM #Check for a PID file. This would indicate the VM is already running. if [ -f "${VMPATH}/bhyve.pid" ] then echo Initiating an ACPI shutdown for the BHyve VM $VMNAME pkill -F ${VMPATH}/bhyve.pid rm ${VMPATH}/bhyve.pid else echo No bhyve.pid file was found. Are you sure it\'s running? echo Try shutting down the VM from it\'s terminal, or check the echo following for a process resembling \'bhyve: $VMNAME\'. echo Type \'kill PID\' to manually shutdown the VM. echo ps -auxww | grep bhyve fi 6. Test and add scripts to NAS4Free startup and shutdown to seemlessly start/stop BHyve Now, test the scripts and the Ubuntu installation. Make all three scripts executable for the user (which should be root). Code:
# chmod u+x UbuntuVM_Boot.sh UbuntuVM_Start.sh UbuntuVM_Stop.sh Code:
# ./UbuntuVM_Start.sh Use an SSH client to log into UbuntuVM and log in to make sure the VM and your account works, then log back out. Use the stop script to shut down the VM. Optionally, you can also shutdown Ubuntu from the Ubuntu shell and manually delete bhyve.pid in the UbuntuVM directory. Code:
# ./UbuntuVM_Stop.sh In the NAS4Free GUI:
Code:
/mnt/<pool>/<dataset>/bhyve/UbuntuVM/UbuntuVM_Boot.sh
Code:
Command: /mnt/<pool>/<dataset>/bhyve/UbuntuVM/UbuntuVM_Stop.sh Type: Shutdown
7. Optional Ubuntu Server Tweeks Once an SSH shell to the VM has been established, the following steps are completely optional and are presented as "ease of use". This allows you to issue a su command to assume root. IMO, this is much easier than repeatedly having to "sudo" everything. Code:
$ sudo passwd (enter your password) This fixes the VM's IP address to a static value. Do this only if you have a range of IP addresses set aside in your router that are not assigned. You would do this to ensure the IP address of the VM doesn't change, ensuring the server will always be available at a specific address on your home network and helps avoid DNS lookup issues. To do this, edit /etc/network/interfaces with a text editor, such as nano. Code:
$ sudo nano /etc/network/interfaces Code:
auto enp0s3 #iface enp0s3 inet dhcp iface enp0s3 inet static address 192.168.1.218 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 192.168.1.1 The VM will need to be restarted for these changes to take effect. When the VM is rebooted, reopen the SSH shell and log in to UbuntuVM prior to continuing. 8. Ubuntu prerequisites for SageTV-Server The first thing we will do is ensure Ubuntu is up to date. Type su to assume a root user. Code:
$ su Update Ubuntu-Server. Ubuntu, being based on Debian, uses the Aptitude package manager. Note in recent versions of Ubuntu apt is intended to replace apt-get. Although apt-get still functions, It is no longer necessary and apt is simpler. After the updates, reboot becuase it is likely an updated Linux kernel was included in the updates. Code:
# apt update # apt upgrade # reboot
Code:
# apt install nfs-common
Code:
# mkdir /mnt/RecordedTV (repeat for each NFS share)
Code:
# nano /etc/fstab ... <NAS4FreeIP>:/mnt/<pool>/<dataset> /mnt/RecordedTV nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0 (repeat for each NFS share)
Finally, install Docker. Follow the directions at Docker to install the CE "Community Edition" version of Docker onto Ubuntu. https://docs.docker.com/engine/insta...ker-ce/ubuntu/ 9. Install SageTV Server for Docker First, find your user, group, and video IDs in Ubuntu. Docker uses the number rather than the name. Docker will then run the SageTV server as the specified user & group rather than as root. To find the number corresponding to each, log into the UbuntuVM, then... User (PUID): When logged into Ubuntu as the normal user (not su) Code:
$ id Group (PGID): Code:
$ getent group | grep <yourgroup> Video Group (GUID): This is a system created group. Repeat the above command substituting "video" as <yourgroup>. Most likely it will be group 44 on an Ubuntu system. Code:
$ getent group | grep video Now create two scripts to start and stop SageTV Server for Docker. Since SageTV Server typically runs in the /opt directory, this is where the scripts will be created. These scrpits are based on the discussion here: https://forums.sagetv.com/forums/showthread.php?t=64652. Please pay particular attention to the lines in highlighted bold! These should be the only edits required to make this script work. Notes:
Code:
# nano /opt/StartSageTV.sh docker run -d --name sagetv-server \ -v <NFS RecordedTV share path>:/var/media \ -v <OPTIONAL media share path>:/var/<name> \ -v <OPTIONAL (etc)>:/var/<name> \ -v /opt/sagetv:/opt/sagetv \ --net host \ --env OPT_GENTUNER=N \ --env OPT_COMMANDIR=N \ --env OPT_COMSKIP=N \ --env PUID=<your PUID> \ --env PGID=<your GUID> \ --env VIDEO_GUID=<your VIDEO_GUID> \ --env JAVA_MEM_MB=1024 \ --privileged \ --restart always \ -t -i "stuckless/sagetv-server-java8" Code:
# nano /opt/StopSageTV.sh docker stop sagetv-server docker rm -f sagetv-server Code:
# chmod u+x /opt/StartSageTV.sh /opt/StopSageTV.sh This step is easy, with the scripts we created (be sure to use sudo if you are not logged in as root) Code:
# ./StartSageTV.sh If it is ever necessary to stop the SageTV server: Code:
# ./StopSageTV.sh Whew! Congratulations, you are done. At this time simply run a SageTV client or placeshifter, and configure your SageTV! |
#3
|
||||
|
||||
Too bad Docker wasn't supported natively... your write up would have been much shorter. Very good write up, lots of details. Thanks for sharing.
__________________
Batch Metadata Tools (User Guides) - SageTV App (Android) - SageTV Plex Channel - My Other Android Apps - sagex-api wrappers - Google+ - Phoenix Renamer Downloads SageTV V9 | Android MiniClient |
#4
|
|||
|
|||
Important update for those who might try this:
After updating NAS4Free, several NAS4Free extensions, and Ubuntu itself, I found the Ubuntu VM was no longer booting at system restart, specifically hanging on the grub loader and hogging one CPU core at 100%. What was especially frustrating is manually starting it worked just fine. After many trials, tribulations, and pure guesswork, I have gotten it working again. The problem seems to occur because as extensions are updated (and presumably new ones when installed) their new init scripts are added at the bottom of the script list. For reasons not entirely clear to me, the "One Button Installer" being run after starting BHyve is an issue. POSSIBLY (although I'm not certain), because I had the preliminary BHyve extension installed, then removed it, it didn't clean up after itself very well. The updated "One Button Installer" now thinks the BHyve extension is installed (even though there is no GUI tab for it), so there seems to be a conflict. I'll have to see why this is later... The good news to get this working again, all that is needed is to move the UbuntuVM Boot postinit script so that it is the last Postinit script run. For good measure, I also made sure the "One Button Installer" is also the first script to run. To reorder the scripts, click the gear icon on the far right in the NAS4Free GUI under System | Advanced | Command scripts.
__________________
Server: Xeon E3-1225, 32GB RAM, Open Media Vault 5, SageTV Docker Tuners: HD Homerun Quatro (OTA) Clients: NVidia SheildTV x3 |
#5
|
|||
|
|||
Project Abandoned
I regret I must announce this effort is abandoned as I have run into a road block that for all intents and purposes appears un-resolvable at this time. The issue specifically is OTA streaming issues from the HDHR. Full story follows with what I've tried if you care to read it. Bottom line is I would like this post to stay as "archival material" in case somebody (including myself) tries to get this working again in the future. It showed great promise, but unfortunately this is pretty critical functionality so I'm off to find another solution. If somebody does manage to get this working properly (and I gather by the tremendous response here that I am the only one doing this ), please post an update! Background: Since migrating to Sage v9 my HDHR never did seem to work right. I wrote it off initially to a bad power supply, and after finally replacing the power supply, decided my old HDHR "classic" is on the way out. Replacing it with the HDHR Quattro resulted in no improvements, unfortunately, so that left me poking around with system setup issues on the FreeBSD/BHyve/Ubuntu/Docker combo. As best as I can figure there is random packet loss or perhaps timing issues of the packet flow. On my Windows SageTV client I see occational (not frequent, but often enough to get your attention), dropped frames, brief freezes, tearing, pixelation, and occasionally, complete but temporary corruption of the video where vast chunks are replaced with grey squares. What is really frustrating is this only happens frequently on two channels, while others seem to be largely immune. There are also no issues with a networked Colossus HDMI capture, just HDHR video streams. I cannot explain why Colossus works and HDHR does not, nor can I say why some channels are impacted more than others, but you can probably now see why I was quick to blame an old HDHR for the issue originally. Things I have tried to get the HDHR working properly: First I confirmed the glitches are recorded in the recordings. Indeed, the same exact glitches are apparent when rewinding and viewing the recordings in SageTV (windows cleint), SageTV mini-client (android) and even MPC-HC. They're definitely real and are not added during playback. This is definitely a recording phenomena. Re-aimed the antenna to ensure optimal reception. It had "drifted" to the east a bit and this did seem to help, but did not eliminate the problem. I later found the HDHR reception *perfect* using the HDHR app in Kodi, then setting up a separate SageTV server on physical (not virtualized hardware). HDHR, Ubuntu-Server, Docker, and SageTV server are confirmed to work just fine together (so relax devs!), and the glitches are not due to reception. Back to the BHyve: I setup SageTV server directly in Ubuntu to remove the Docker virtualization layer. No change. I managed to figure out how to setup BHyve to directly access disk space rather than shuttle it through NFS. Used a different HDD than those already in use for SageTV. No change. I tried to do PCI passthrough to a second NIC to eliminate network virtualization, but NAS4Free simply pukes and won't have anything to do with that (no idea why, no doubt I'm probably doing something wrong). So this is where I throw in the towel. I may revisit sporadically in the future, but I'm crying uncle for now.
__________________
Server: Xeon E3-1225, 32GB RAM, Open Media Vault 5, SageTV Docker Tuners: HD Homerun Quatro (OTA) Clients: NVidia SheildTV x3 |
#6
|
||||
|
||||
Just curious here. Did you attempt to verify that some of the UDP traffic streaming from the HDHomeRun wasn't getting dropped? I know SageTV uses native code to receive the stream from the HDHomeRun and I have seen that code insufficiently buffer packets resulting in data loss.
__________________
SageTV v9 Server: ASRock Z97 Extreme4, Intel i7-4790K @ 4.4Ghz, 32GB RAM, 6x 3TB 7200rpm HD, 2x 5TB 7200rpm HD, 2x 6TB 7200rpm HD, 4x 256GB SSD, 4x 500GB SSD, unRAID Pro 6.7.2 (Dual Parity + SSD Cache). Capture: 1x Ceton InfiniTV 4 (ClearQAM), 2x Ceton InfiniTV 6, 1x BM1000-HDMI, 1x BM3500-HDMI. Clients: 1x HD300 (Living Room), 1x HD200 (Master Bedroom). Software: OpenDCT :: WMC Live TV Tuner :: Schedules Direct EPG |
#7
|
|||
|
|||
Interesting. I went down a similar road, but used FreeNAS 11 instead of NAS4Free. I was able to set up an virtual Ubuntu 16.04 server with the included beehyve VM software, then followed the guide + script in these forums for installing SageTV in Ubuntu and getting it to work with an HDHomeRun network tuner. (That sentence might be glossing over things a bit...)
It's been rock solid for a month. I was able to retire the old-but-still-functional Windows Home Server v1 that had been running the SageTV server up to that point for 7 years. |
#8
|
|||
|
|||
I think I serendipitously found the problem when setting up another machine. I had some older, slower hardware I was going to dedicate to be a SageTV machine. What I instantly noticed when comparing operation of each machine was that NAS4Free had substantially more disk I/O and head "chatter" than a machine running pure Ubuntu when recording. It only occurred to me at that point that ZFS checksums the entire file system, blocks, files, and directories all the way up to the partition so it can detect data loss. It seemed logical that the extra disk I/O was related to having to re-calculate all these checksums as each new section of the recording was written out to disk. It's all just a theory, mind you, but seems logical from what I know about how ZFS works.
So despite what I said before about "throwing in the towel", I installed NAS4Free on said older, slower, machine. In the process I figured out how to pass-through a disk in Bhyve (not the SATA controller, but the actual disk device) and formatted it as EXT4 (like it was under Ubuntu). That put ZFS completely out of the picture, not even as a middle man. Well, what do you know, it all works perfect. Not a single glitch in a full weeks worth of test recordings. Last weekend I duplicated the setup on the production server, but was shocked to find I still ended up with the same exact problem! So the ZFS theory was a red herring, but it did lead me to deep dive into the NAS4Free settings on each machine. In so doing I found, then remembered three major NAS4Free revisions and two motherboards ago, that I set NAS4Free to use pretty aggressive CPU power management. I changed this from "Adaptive" to "Hi Adaptive" and (knock on wood) it looks like it's working well now. So it seems the root cause is due to a fully idled Skylake CPU (at 200MHz) is too slow and SageTV starts dropping data from the stream (this somewhat dove tails into the SageTV buffering theory mentioned). Hi Adaptive seems to keep the system clock high enough that everything continues to flow as required. Testing still in process, but results look very promising so far. I have not returned to using a ZFS filesystem but since CPU throttling seems to be the main contributor and Parsley says it works then I have no reason to believe it wouldn't. Seeing the difference though in ZFS vs. EXT4 has me convinced EXT4 is probably the better option here, so I intend to stick with it at least for now.
__________________
Server: Xeon E3-1225, 32GB RAM, Open Media Vault 5, SageTV Docker Tuners: HD Homerun Quatro (OTA) Clients: NVidia SheildTV x3 |
#9
|
|||
|
|||
Quote:
__________________
Server: Xeon E3-1225, 32GB RAM, Open Media Vault 5, SageTV Docker Tuners: HD Homerun Quatro (OTA) Clients: NVidia SheildTV x3 |
#10
|
||||
|
||||
Quote:
I know you're not using it and there doesn't appear to be a good reason to, but OpenDCT will flag continuity issues with the RTP stream in the log which has been very helpful when people report poor quality recordings. Unfortunately SageTV doesn't log any of these events, so it's a little harder to figure out what's going on without additional tools. I know at least one forum user was able to see the packets dropping for their VM, but that was on ESX. You can also adjust the UDP buffering and see if it makes any difference. I hope some of this rambling is helpful.
__________________
SageTV v9 Server: ASRock Z97 Extreme4, Intel i7-4790K @ 4.4Ghz, 32GB RAM, 6x 3TB 7200rpm HD, 2x 5TB 7200rpm HD, 2x 6TB 7200rpm HD, 4x 256GB SSD, 4x 500GB SSD, unRAID Pro 6.7.2 (Dual Parity + SSD Cache). Capture: 1x Ceton InfiniTV 4 (ClearQAM), 2x Ceton InfiniTV 6, 1x BM1000-HDMI, 1x BM3500-HDMI. Clients: 1x HD300 (Living Room), 1x HD200 (Master Bedroom). Software: OpenDCT :: WMC Live TV Tuner :: Schedules Direct EPG |
#11
|
|||
|
|||
It was one of the first things I did so it's been a while but I believe I ran it while watching the channel so I could try and catch it glitching. I never did catch it doing anything so perhaps SageTV the HDHR utility was just enough load to keep the CPU clock up? Who knows...
Interesting about OpenDCT, I might try that if it starts acting up again.
__________________
Server: Xeon E3-1225, 32GB RAM, Open Media Vault 5, SageTV Docker Tuners: HD Homerun Quatro (OTA) Clients: NVidia SheildTV x3 |
#12
|
|||
|
|||
@Parsley, if you're still out there, would you mind sharing how you shared your recording HDDs through BHYVE to the SageTV server? I tried using UFS instead of ZFS last night but the amount disk activity was still horrendous. It makes me wonder if this is actually something to to with NFS shares, like maybe I/O isn't cached by FreeBSD very effectively (or at all). Giving Ubuntu direct access to a disk works quite well, but then it can't be accessed by NAS4Free for sharing over the network.
__________________
Server: Xeon E3-1225, 32GB RAM, Open Media Vault 5, SageTV Docker Tuners: HD Homerun Quatro (OTA) Clients: NVidia SheildTV x3 |
#13
|
|||
|
|||
I needed Windows access to the storage pool on the FreeNAS server. I pointed the virtual Ubuntu server running SageTV to those Windows (SMB) shares. It might not be the most efficient way to do things, but it was simple. I haven't had any performance issues that I can detect on a human level. Haven't run any tests or diagnostics either though since it all just seemed to work.
This is my server hardware, if it helps calibrate relative performance: Supermicro A1SRi-2758 (Atom Avoton C2758 SOC) with 16GB RAM. |
#14
|
|||
|
|||
Appreciate the input. So it sounds like you do it similar to this guide, but use CIFS/SMB instead of NFS. When watching a live stream how much HDD activity do you see? When I'm only recording or only watching, the HDD seems "normal" (the occasional flicker of the HDD light), but recording and watching seems to result in almost constant HDD activity. UFS and ZFS behave the same in this regard, so it may be something to do with NFS...
__________________
Server: Xeon E3-1225, 32GB RAM, Open Media Vault 5, SageTV Docker Tuners: HD Homerun Quatro (OTA) Clients: NVidia SheildTV x3 |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
FreeBSD Port | ptoal | SageTV Github Development | 10 | 04-06-2016 10:18 AM |
Building for FreeBSD Jail? | ptoal | SageTV Github Development | 0 | 10-22-2015 11:44 AM |
Attempting something different... FreeBSD | madtrader | SageTV Linux | 29 | 11-17-2010 09:42 AM |
STV Import: Alternative Program Guide & Mini Guide for Default STV | wado1971 | SageTV Customizations | 24 | 09-13-2009 01:32 PM |
Any way to make it so if you press Guide button twice it closes open guide? | vorius | SageTV Software | 9 | 09-08-2006 12:27 PM |