Greg Farnum [Tue, 28 Aug 2012 22:41:54 +0000 (15:41 -0700)]
osd: be more generous about accepting monitors.
The solr database doesn't update quickly enough for our search to
work well on initial bringup.
Instead, fail if we actually have no monitors, but otherwise loop
until our search for a mon with the osd bootstrap key succeeds.
Tommi Virtanen [Mon, 6 Aug 2012 20:24:11 +0000 (13:24 -0700)]
Crowbar: Don't try to play nice with Swift.
We tried to avoid using data disks that swift-storage has taken over,
but nothing guarded us against Swift stepping on our toes. Similarly,
we never protected nova-multi-volume's toes. Current Crowbar just
doesn't solve this problem; don't try.
Do NOT install ceph-osd on the same machine as swift-storage or
nova-multi-volume.
Tommi Virtanen [Wed, 25 Jul 2012 21:55:53 +0000 (14:55 -0700)]
Crowbar: Make bootstrap_osd find mons.
Crowbar has switched to per-node special-purpose roles, a direct
search for role: won't find the actual roles (and roles: is updated
too late to be generally useful, though it might work here --
preferring this way so the search logic is implemented only once).
Rewrite .length < 1 using the more ruby-like .empty?
Tommi Virtanen [Fri, 20 Jul 2012 21:32:18 +0000 (14:32 -0700)]
Add current node to mon_hosts, if it has role ceph-mon.
This shortcircuits the search logic, so ceph-mon --mkfs will always
see itself in ceph-mon, and thus won't end up with an empty monmap.
Empty monmap would prevent it from initializing properly, and the
peer hints aren't enough to help.
Search is not reliable for this, as the search index updates lazily,
and e.g. the "roles:" field, holding the expanded run_list, is only
set at the end of a successful chef-client run.
Crowbar creates a special-purpose role, one per node, and assigns the
actual roles to that role. We work around this by doing the search in
two phases, when running under Crowbar.
Tommi Virtanen [Fri, 13 Jul 2012 17:44:16 +0000 (10:44 -0700)]
Revert last three commits.
The roles are named ceph-mon etc. The recipes are named ceph::mon etc.
The cookbook is named "ceph". The git repository is named
"ceph-cookbooks.git". The string "ceph-cookbooks" should not be
anywhere in the code anywhere inside of the cookbook.
Tommi Virtanen [Mon, 9 Jul 2012 22:46:52 +0000 (15:46 -0700)]
Move ceph/* to top-level.
This repository used to be a collection of several cookbooks, but this
hasn't been true for a month, since a77b418b95df8f2b6f56d9a90e47dc62100cdf4d. Simplifies the file layout
and makes this look more like your usual cookbook.
Tommi Virtanen [Fri, 8 Jun 2012 21:55:07 +0000 (14:55 -0700)]
Give ceph-mon hints about its peers.
This handles the case where ceph-mon already started, already read a
mon_host from ceph.conf, but more nodes (needed for initial quorum)
had the ceph-mon role added to them after the fact, and thus weren't
in mon_host at startup time.