entropy inside a virtual machine
Posted on Thu 30 June 2016 in Linux • 1 min read
Sometimes my ceph-(test!)deployments inside a VM failed.
The Problem is that the kernel/cpu can not provide enough entropy (random numbers) for the ceph-create-keys
command - so it stuck/hang. It is not a ceph problem! This can also happen with ssl commands.
But first things first - we need to check the available entropy on a system:
cat /proc/sys/kernel/random/entropy_avail
The read-only file entropy_avail
gives the available entropy.
Normally, this will be 4096 (bits), a full entropy pool (see man 4 random)
Values less than 100-200, means you have a problem!
For a virtual machine we can create a new device - virtio-rng. Here is a xml example for libvirt.
<rng model='virtio'>
<backend model='random'>/dev/random</backend>
</rng>
That is ok for ONE virtual machine on the hypervisor. Usually we find more than one virtual machine. Therefore we need to install the rng-tools
package on the virtual machines.
$pkgmgr install rng-tools
systemctl enable rngd
systemctl start rngd
That's it! That solved a lot of my problems ;)