Change README to README.md in build files.

Necessary for "make dist-*" to work.

Signed-off-by: Jeff Darcy <jeff@pl.atyp.us>
afr: add volume-specific quorum calculation

Volume quorum is mostly the same as the current cluster quorum - same
triggers, same calculations, same actions - except that it only counts
servers which have an interest in a volume.  Interest comes from either
having a brick for that volume or from being named as an arbiter via the
cluster.arbiter option on the volume.  An arbiter has no data for the
volume it arbitrates, but can break quorum ties when there are only two
servers with bricks for the volume.

One can enable volume quorum by setting the cluster.server-quorum-type
option to be "volume-server" (instead of just "server" which enables
cluster-wide quorum).  Note that cluster.server-quorum-ratio works for
volume quorum the same as for cluster quorum, including the fact that
it's set on the "all" pseudo-volume and is thus applicable for all
volumes instead of having per-volume values.

As an example, consider a cluster with three volumes on five servers, as
follows:

	volume X has bricks on servers A and B
	volume Y is like X, but with C as an arbiter
	volume Z has bricks on servers A, D, and E

Now server A fails.  Volume X no longer has quorum, so its remaining
bricks (on B) are shut down.  Volume Y *does* have quorum, thanks to the
arbiter, so it continues to function.  Volume Z has quorum even without
an arbiter, so it also stays up.  If server B or C were to fail at this
point, volume Y would lose quorum with only 1/3 interested servers,
while volume Z would remain up with 2/3.

Change-Id: I6e982dd7e697e6eb20590c07e10cbf0b54473b27
BUG: 914804
Signed-off-by: Jeff Darcy <jeff@pl.atyp.us>
dht: use (possibly heterogeneous) brick sizes to calculate layouts

Bigger bricks will get bigger hash ranges, and thus more files.  This is
almost always preferable to giving every brick equal weight.  The one
exception is when multiple bricks reside on the same local file system.
In that case, those bricks will each be given the full weight based on
the size of the underlying local file system, effectively double
counting.  Detecting and correcting for this would be pretty onerous,
and there would still be ways to fool the code, so we don't try.
Instead, there's an option to turn weighting off and go back to the
equal-weight method we used previously.  Some day, there might be more
ways to tweak this for the odd cases.

Change-Id: I519fcaf0d51178f093ae5671d495335d22a41716
Signed-off-by: Jeff Darcy <jeff@pl.atyp.us>