mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-08-10 16:15:38 +00:00
ceph: init: lock ceph config
so that not multiple users can create a ceph cluster at the same time Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
parent
b3d8b5f527
commit
3e4c0f06e7
@ -303,52 +303,54 @@ __PACKAGE__->register_method ({
|
|||||||
}
|
}
|
||||||
|
|
||||||
# simply load old config if it already exists
|
# simply load old config if it already exists
|
||||||
my $cfg = cfs_read_file('ceph.conf');
|
PVE::Cluster::cfs_lock_file('ceph.conf', undef, sub {
|
||||||
|
my $cfg = cfs_read_file('ceph.conf');
|
||||||
|
|
||||||
if (!$cfg->{global}) {
|
if (!$cfg->{global}) {
|
||||||
|
|
||||||
my $fsid;
|
my $fsid;
|
||||||
my $uuid;
|
my $uuid;
|
||||||
|
|
||||||
UUID::generate($uuid);
|
UUID::generate($uuid);
|
||||||
UUID::unparse($uuid, $fsid);
|
UUID::unparse($uuid, $fsid);
|
||||||
|
|
||||||
my $auth = $param->{disable_cephx} ? 'none' : 'cephx';
|
my $auth = $param->{disable_cephx} ? 'none' : 'cephx';
|
||||||
|
|
||||||
$cfg->{global} = {
|
$cfg->{global} = {
|
||||||
'fsid' => $fsid,
|
'fsid' => $fsid,
|
||||||
'auth cluster required' => $auth,
|
'auth cluster required' => $auth,
|
||||||
'auth service required' => $auth,
|
'auth service required' => $auth,
|
||||||
'auth client required' => $auth,
|
'auth client required' => $auth,
|
||||||
'osd pool default size' => $param->{size} // 3,
|
'osd pool default size' => $param->{size} // 3,
|
||||||
'osd pool default min size' => $param->{min_size} // 2,
|
'osd pool default min size' => $param->{min_size} // 2,
|
||||||
'mon allow pool delete' => 'true',
|
'mon allow pool delete' => 'true',
|
||||||
};
|
};
|
||||||
|
|
||||||
# this does not work for default pools
|
# this does not work for default pools
|
||||||
#'osd pool default pg num' => $pg_num,
|
#'osd pool default pg num' => $pg_num,
|
||||||
#'osd pool default pgp num' => $pg_num,
|
#'osd pool default pgp num' => $pg_num,
|
||||||
}
|
}
|
||||||
|
|
||||||
$cfg->{client}->{keyring} = '/etc/pve/priv/$cluster.$name.keyring';
|
$cfg->{client}->{keyring} = '/etc/pve/priv/$cluster.$name.keyring';
|
||||||
|
|
||||||
if ($param->{pg_bits}) {
|
if ($param->{pg_bits}) {
|
||||||
$cfg->{global}->{'osd pg bits'} = $param->{pg_bits};
|
$cfg->{global}->{'osd pg bits'} = $param->{pg_bits};
|
||||||
$cfg->{global}->{'osd pgp bits'} = $param->{pg_bits};
|
$cfg->{global}->{'osd pgp bits'} = $param->{pg_bits};
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($param->{network}) {
|
if ($param->{network}) {
|
||||||
$cfg->{global}->{'public network'} = $param->{network};
|
$cfg->{global}->{'public network'} = $param->{network};
|
||||||
$cfg->{global}->{'cluster network'} = $param->{network};
|
$cfg->{global}->{'cluster network'} = $param->{network};
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($param->{'cluster-network'}) {
|
if ($param->{'cluster-network'}) {
|
||||||
$cfg->{global}->{'cluster network'} = $param->{'cluster-network'};
|
$cfg->{global}->{'cluster network'} = $param->{'cluster-network'};
|
||||||
}
|
}
|
||||||
|
|
||||||
cfs_write_file('ceph.conf', $cfg);
|
cfs_write_file('ceph.conf', $cfg);
|
||||||
|
|
||||||
PVE::Ceph::Tools::setup_pve_symlinks();
|
PVE::Ceph::Tools::setup_pve_symlinks();
|
||||||
|
});
|
||||||
|
|
||||||
return undef;
|
return undef;
|
||||||
}});
|
}});
|
||||||
|
Loading…
Reference in New Issue
Block a user