Skip to content

Commit a21aef8

Browse files
authored
Merge pull request #9482 from stgraber/master
lxd/storage/ceph: Properly support pre-existing empty pools
2 parents a71c5c6 + 5ff3c71 commit a21aef8

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

lxd/storage/drivers/driver_ceph.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,11 +171,21 @@ func (d *ceph) Create() error {
171171
d.config["volatile.pool.pristine"] = "true"
172172
} else {
173173
ok := d.HasVolume(placeholderVol)
174-
d.config["volatile.pool.pristine"] = "false"
175174
if ok {
176175
if d.config["ceph.osd.force_reuse"] == "" || !shared.IsTrue(d.config["ceph.osd.force_reuse"]) {
177176
return fmt.Errorf("Pool '%s' in cluster '%s' seems to be in use by another LXD instance. Use 'ceph.osd.force_reuse=true' to force", d.config["ceph.osd.pool_name"], d.config["ceph.cluster_name"])
178177
}
178+
179+
d.config["volatile.pool.pristine"] = "false"
180+
} else {
181+
// Create placeholder storage volume. Other LXD instances will use this to detect whether this osd
182+
// pool is already in use by another LXD instance.
183+
err := d.rbdCreateVolume(placeholderVol, "0")
184+
if err != nil {
185+
return err
186+
}
187+
188+
d.config["volatile.pool.pristine"] = "true"
179189
}
180190

181191
// Use existing OSD pool.

0 commit comments

Comments
 (0)