Stuart,<div>This is a bit nuts but (considering the hardware random number generator issue, the user's application needs, and carrying an entropy pool across boots, as out of bound) there's something that you might try. I don't know enough about how this (to me, new-fangled) entropy pool works, but I noted that the file "random" is world writable, so:</div>
<div><br></div><div><div>peter@hattie:/dev$ ls -l random</div><div>crw-rw-rw- 1 root root 1, 8 2011-02-25 19:31 random</div><div>peter@hattie:/dev$ cat /proc/sys/kernel/random/entropy_avail </div><div>228</div><div>peter@hattie:/dev$ date --rfc-3339=ns | sed 's/.*\.//' | sed 's/-.*//' >> random</div>
<div>peter@hattie:/dev$ cat /proc/sys/kernel/random/entropy_avail </div><div>173</div><div>peter@hattie:/dev$ date --rfc-3339=ns | sed 's/.*\.//' | sed 's/-.*//'</div><div>483200591</div><div><br></div><div>
The date gives the time to nanosecond precision; the sed strips out the leading stuff before the decimal point (hours, minutes) and the trailing stuff (offset for timezone) leaving the number of nanoseconds since the last second of time.</div>
<div>I do not know flushing this onto "random" does anything at all; in my environment, the available pool size jiggles no matter what I do, as it's probably using the milliseconds (or smaller) between keystrokes, so I can't cat it without jiggling it. However, it seems harmless to try if nobody has a better suggestion, to see if it un-nulls your flatlined entropy pool at boot time (from a script).</div>
<div><br></div><div>Nutty huh? </div><div><br></div><div>Peter</div><br><div class="gmail_quote">On Fri, Feb 25, 2011 at 6:08 PM, Stuart Barkley <span dir="ltr"><<a href="mailto:stuartb@4gh.net">stuartb@4gh.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">We have a couple of clusters with headless, diskless and stateless<br>
nodes using CentOS 5.  One of our users just ran onto a problem with<br>
/dev/random blocking due to the lack of entropy.<br>
<br>
I had the user change the program to use /dev/urandom and this has<br>
handled the immediate problem.<br>
<br>
/proc/sys/kernel/random/entropy_avail shows 0 across the compute<br>
nodes even just after boot.<br>
<br>
It appears that our Ethernet and Infiniband drivers don't add any<br>
entropy to the random pool.<br>
<br>
hw_random/intel-rng doesn't seem to work on our systems.<br>
<br>
Some questions:<br>
<br>
Do others have this problem?  What do you do?<br>
<br>
Do you just refer users to /dev/urandom?<br>
<br>
Do you modify network drivers to introduce entropy?<br>
<br>
Are there other suggested methods of adding entropy to /dev/random?<br>
<br>
Are there ways to introduce entropy from the random number generator<br>
on some Intel systems?  Did Intel remove this from more recent chips?<br>
<br>
How reliable is /dev/urandom without initial entropy?  We boot from<br>
stateless disk images and don't carry any entropy over from previous<br>
boots.  /dev/urandom appears to be different across several servers<br>
just after boot, but I have not found any other initialization of the<br>
entropy pool.  I haven't checked that single systems get different<br>
results on different boots.  I'm concerned about users getting poor<br>
random numbers from what should be good sources.<br>
<br>
Thanks for any suggestions,<br>
Stuart Barkley<br>
<font color="#888888">--<br>
I've never been lost; I was once bewildered for three days, but never lost!<br>
                                        --  Daniel Boone<br>
_______________________________________________<br>
Beowulf mailing list, <a href="mailto:Beowulf@beowulf.org">Beowulf@beowulf.org</a> sponsored by Penguin Computing<br>
To change your subscription (digest mode or unsubscribe) visit <a href="http://www.beowulf.org/mailman/listinfo/beowulf" target="_blank">http://www.beowulf.org/mailman/listinfo/beowulf</a><br>
</font></blockquote></div><br></div>