System time provides a monotonically increasing sequence that addresses (2):
perl -MTime::HiRes=time -lwe "print time"
While someone is resetting the clock ...
Persistence (3) and atomicity of increments (4) seem to require a lock database. Berkeley comes to mind. But you can look for something simpler if you don't use it anyway. Reading without updating (5) would be a problem. A monotonically increasing sequence (2) would also not be.
I'm not sure what you mean by "unique to the host" and "general increment" (1). If for sequence elements from different hosts it is enough to have the same value, you can propagate the approach to all servers. In addition, you can have only one sequence, which should be available to other users through the network.
source share