Well, things were looking pretty bad for a while there. On a newly provisioned KVM based virtual private server running Ubuntu 18.04 I wasn't able to use the lxd command in any way without it hanging forever. The lxd and lxc commands would never actually complete.
I found that if I uninstalled the .deb package version of LXD that comes shipped with Ubuntu 18.04 and installed the Snap version of LXD, things would run perfectly without hanging. But I don't like the Snap way of doing things and I'd rather stick with .deb packages like I'm used to.
I didn't give up though and I found out how to easily get LXD working on this Ubuntu 18.04 system without having to use snap.
I reinstalled Ubuntu 18.04 on the server, and then I logged in and ran the following commands:
apt update && apt upgrade apt remove --purge lxd lxd-client apt install lxd lxd-client lxd-tools criu apt install zfsutils-linux lxd waitready lxd init
Everything ran beautifully with no hanging whatsoever. I can now use LXD on my system to create containers without having to use the new Snap package system.
Some of the above instructions are derived from:
Tom Van Brienen. "Installing and configuring LXD 3 on Ubuntu 18.04 - TomvanBrienen.nl." TomvanBrienen.nl. 8 May 2018. Web. 19 Nov. 2019. <https://www.tomvanbrienen.nl/installing-and-configuring-lxd-3-on-ubuntu-18-04/>