I have migrated back to using unRAID for my HA and thought i would share how i use it and some of my challenges so far.
I started with HA in a docker and then moved to a Raspberry Pi with Hassio so i could spin up a backup pi very quickly.
I have now gone to Hassio under VM to get the performance with keeping snapshots available to restore on my Pi should unRAID be unavailable. That process is periodic and manual at the moment but aim to automate it.
I keep three VM’s for hassio.
Previous - Which is a copy of the production VM with the same mac for IP Binding etc. This is used for if the live machine breaks, like the UEFI issue below.
Production - I leave this one alone mostly now.
Next - This is my updating machine where i make the changes and roll it over the the new machine.
So when making changes i do the following:
Shutdown production VM
Copy disk image to hassio-previous folder. same ssd so it is quick.
Start production VM
copy previous VM to Next.
Start next VM and turn of all automations.
Make changes to next VM.
When complete i shutdown next and production VM and overwrite the production with the next VM image.
start production VM and hope all is ok.
if it fails shut down and start previous.
This currently a manual process but will write a bash script to do it soon.
Some of the challenges i haven’t found solutions too or undertaken yet are:
When restoring a hassio image from a different platform all the dockers are the wrong architecture so they need to uninstalled an reinstalled. it would be nice if the snapshot didn’t store the container image (space saving as well) and pulled it when restoring.
I need to find a way to handover automatically to the backup Pi and keep things like port forwarding live etc.
If i make changes to the VM disk images, such as expanding the size, the VM sees the disk image as 3GB and will only boot into the UEFI screen. If i recreate the VM it will boot into hassio, so it is the VM not the image that is breaking.
My main issue (in bold above) is due to unraid and it is annoying. I have never has this issue with other VMs before.
Has anybody has the UEFI issue like this?
Ok got this running, but where would i be able to add and edit the config files and such? I was using the docker version previously, so I want to take all i have done from the appdata folder and put it into HassIO.
The home assistant configuration is within /config. You can set up ssh or samba addons to reach the default shared directories or use configurator, IDE, or VSCode addons, etc.
Doh, i figured this out. The issue was that my Unraid networking settings did not have Bridging enabled. I disabled Docker and VM, changed bridging to yes, then was able to edit my VM to choose br0 for the network bridge. voila! it now has an ip i can connect to!
Did anyone try to get this installed without using a VM recently? I saw a YouTube video that walked through it and seemed to have good luck, although I didn’t watch the whole thing.
I tried the hassio on unraid docker install. I went back to a vm for one main reason, that is you can not assign a fixed ip when using it this way in a docker container.
The reason for this is that you install hass supervisor through unraid and it installs the home assistant and addon containers. All the containers it installs are on the host network or bridged to the host. You cannot edit the containers that the supervisor installed using unraid.
I have other containers that I want to keep on fixed ip and communicate with hassio.
If you are not familiar with docker and fixed ip, you cannot communicate between the host and a fixed ip container. This is a hard inbuilt security feature.
I did resurrect an old unraid container called pipework that I used before fixed ip was added to docker. With pipework the host can see the fixed up containers. I got it working but then thought I was spending too much time trying to fix something that was already working stable in a vm so I went back.
Happy to let someone else continue that journey.
FYI, the way I run my setup is the following.
hassio with addons for essential services only. E.g. nodered, Zigbee2mqtt, google drive backup, duckdns.
essential is defined by use of home equipment. E.g. will the lights turn on when I press the switch, or automations trigger when I open my door.
ip is assigned by my router.
non essentials such as music control, databases (I can live with out my history if needed). These are all have a fixed ip on unraid docker containers.
I have a hassio install on a raspberry pi that has nothing running. If I need to I can restore my hassio backup image from local or google drive sources and restore to an essential services only state. I swap the ip’s on my router and everything works again. It is a little slower as my setup is large.
I did give that setup a try after watching @digiblur’s video . It became a bit messy as I installed more hassio addons and I prefer the segregation of the HassOS VM, really. It’s probably better to just run the standalone Home Assistant container for unRAID and make use of unraid’s other apps as “add-ons” if you’re avoiding VMs.
When I set up the hassio in vm, I changed clock from utc to local time in xml file before running the VM. However. It can boot sucessfully and login into the web ui. But after running 20mins or 30mins, WebUI cannot loggin in. (Hass.io 3.2 beat version) I didn’t test 2.12version, but I think it will be the same result as 3.2