Commit Graph

417 Commits

Author SHA1 Message Date
Fabian Grünbichler
ae672a64ce ceph: add add_storage helper
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2017-09-07 11:38:20 +02:00
Fabian Grünbichler
e16cd81fb5 pveceph/init: improve version check error message 2017-08-25 14:16:09 +02:00
Alwin Antreich
c64c04dd39 implement checks for ceph version & binaries
add version check to ceph init to require luminous or higher and
fix #1481: check existence of ceph binaries before use

Signed-off-by: Alwin Antreich <a.antreich@proxmox.com>
2017-08-25 13:46:42 +02:00
Dominik Csapak
6c11e92154 ceph: add application parameter to createpool
and use 'rbd' by default, since we cannot create a cephfs or
rgw from the gui currently

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-08-10 09:38:29 +02:00
Dominik Csapak
6747b0a903 ceph: make size 3/min 2 default with createpool
in the gui this is already the default, so make it also the default
in the backend (also 2/1 is really bad as a default)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-08-10 09:38:29 +02:00
Dominik Csapak
4d422ffc3e add bluestore information to osd api call
this adds information about bluestore (which devices and if
bluestore/filestore) to show in the gui

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-08-07 14:52:02 +02:00
Dominik Csapak
c9508b5d4c also get the crush rule name in the ceph pool list
we get the names in the backend, and give them as an additional field
in the api call, and use it in the grid

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-07-31 15:25:34 +02:00
Dominik Csapak
d2692b86e2 fix #1465: use a combobox for the crush rule instead of the id
this patch does a few things

1. we introduce a new api call /nodes/nodename/ceph/rules
   which gets us a list of crush rules

2. we introduce a new CephRuleSelector which is a simple combobox
   with the data from the api call ceph/rules

3. we use this in the create pool window

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-07-31 15:25:34 +02:00
Dominik Csapak
2db28c036e make crush rules working again
since ceph 12.1.1 the (deprecated) parameter 'crush_ruleset' is removed
and replaced with 'crush_rule' while changing this, change from
integer to string so that we can later use the names of the rules
instead of the id

(for now there seems to be a bug that you can only use the name and
not the id)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-07-31 15:25:34 +02:00
Dominik Csapak
33a7e15766 add osd device class to osd tree
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-07-31 15:25:34 +02:00
Dominik Csapak
bb7d5aa955 correctly remove partitions for ceph bluestore osds
we now have to remove 5 types of partitions:

data/metadata
journal
block
block.db
block.wal

this patch fixes the detection of block/block.db/block.wal
generalizes it

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-07-31 15:25:34 +02:00
Dominik Csapak
8d64bd8c3b enable using a device for bluestore block db/wal
we reuse the 'journal_dev' parameter for bluestores block.db
and add a new parameter 'wal_dev' for bluestores write ahead log

if only journal_dev is given, use it for both db and wal

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-07-31 15:25:34 +02:00
Dominik Csapak
87eb0fc205 fix creating the first ceph monitor
we cannot use a rados connection before having at least one monitor,
so we have to move it down

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-07-27 15:14:21 +02:00
Dominik Csapak
b0e5ae21cf add missing '-' to service name pattern
since ids can contain '-', we have to include them in the pattern
for the service names

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-07-26 16:51:09 +02:00
Dominik Csapak
be753927e7 whitespace cleanup
and intendation fix

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-07-26 14:45:07 +02:00
Dominik Csapak
ca68ac3efd pveceph: add createmgr/destroymgr commands
this patch adds the create-/destroymgr commands to the api and pveceph,
so that advanced users can split monitor and manager daemons

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-07-26 14:45:07 +02:00
Dominik Csapak
c05ff7b4de pveceph: create mgr with mon, use nodename for id
we now want to add a ceph-mgr daemon to every node where a ceph-mon
daemon runs, as per ceph documentation recommendation, because in
luminous the mgr daemons will not be automatically created/started
with a monitor anymore

we also give the createmon an optional id parameter, so that one
can set a custom id, and make the creation/removal of the manager
optional but the default

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-07-26 14:45:07 +02:00
Dominik Csapak
84caf265bd add health detail to ceph status api call
with ceph 12.1.1 luminous, ceph has reorganized its json
interface of the ceph status and ceph health call

so to get everything we need, we have to also get
the ceph health detail information into our
status call

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-07-24 16:10:24 +02:00
Wolfgang Link
b6c427261c Fix pveceph createosd
The --filestore flag is now required see doc of ceph.

If the --bluestore argument is given, a bluestore objectstore will be
created.  If --filestore is provided, a legacy FileStore objectstore
will be created.  If neither is specified, we default to BlueStore.
2017-07-19 12:40:28 +02:00
Thomas Lamprecht
959f37afe2 replication: show disabled jobs and allow enabling/disabling
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2017-06-29 10:59:11 +02:00
Dietmar Maurer
a4beaa9422 PVE/API2/Replication.pm: cleanup - avoid modifying jobcfg
This is simply no longer necessary.
2017-06-29 07:45:57 +02:00
Wolfgang Link
fa298bb000 Fix create replication job
Add node to load config. this is needed if you are on an other node then the guest.
2017-06-28 14:20:09 +02:00
Dietmar Maurer
88ea8e67d3 PVE/API2/Replication.pm: add schedule_now API 2017-06-28 12:14:22 +02:00
Fabian Grünbichler
d197634b4b ceph: keys: add mgr allow * to client.admin
needed for data that now gets queried via the mgr instead of
via the mon.
2017-06-27 16:42:35 +02:00
Fabian Grünbichler
50239dba68 pveceph: createosd: allow to create bluestore OSDs 2017-06-27 16:15:44 +02:00
Fabian Grünbichler
207f493293 pveceph: init: add min_size, change default to 3/2
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2017-06-27 16:15:44 +02:00
Dietmar Maurer
5a26b00600 PVE/API2/Replication.pm: call purge_old_states in run_jobs
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2017-06-27 15:48:06 +02:00
Wolfgang Bumiller
1adc6f7ab3 replication: refuse to create jobs with nothing to do
When a VM has no disks or all of them are on shared storage
the replication job has nothing to do and fails, so catch
this when creating a new job.
2017-06-27 15:16:41 +02:00
Wolfgang Bumiller
5b35845009 tests: update pvesr_lock_path variable location 2017-06-27 15:16:41 +02:00
Fabian Grünbichler
2e9d791ee6 ceph: init: allow pool deletion by default
set to false by default since Ceph > Kraken

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2017-06-27 14:53:17 +02:00
Wolfgang Bumiller
25420507b2 refuse to create replication jobs for unreplicatable VMs 2017-06-27 06:28:33 +02:00
Dietmar Maurer
2aa029571c PVE/API2/Replication.pm: add $verbose parameter run_jobs() 2017-06-20 08:58:48 +02:00
Dominik Csapak
dc9bc76843 implement delete parameter for replicationconfig
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-06-14 07:30:05 +02:00
Dominik Csapak
a4dc8611e6 implement digest checking for ReplicationConfig update
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-06-12 16:02:53 +02:00
Dominik Csapak
d09c076a62 change to ReplicaState
this function moved, so the call to it has to move too

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-06-12 16:01:55 +02:00
Dietmar Maurer
d092dc4f83 use new replication helpers from pve-guest-common 2017-06-12 06:59:21 +02:00
Dietmar Maurer
810c6776d9 PVE::Replication - remove dependency to PVE::LXC/PVE::QemuServer
So that we can move the whole class to package pve-guest-common.
2017-06-12 05:59:51 +02:00
Dietmar Maurer
9a427c6cc8 PVE::API2::ReplicationConfig->delete - use raise_param_exc 2017-06-09 06:12:02 +02:00
Wolfgang Link
948136a4f0 Add force parameter for delete replica job.
This parameter is helpful if an unsolvable situation occurs or the vmconfig was delete manually.
2017-06-09 06:00:18 +02:00
Dietmar Maurer
4542a42ab3 PVE/API2/ReplicationConfig.pm: add job creation checks
Check if the target and guest exists to avoid creation of faulty jobs.
2017-06-08 10:01:45 +02:00
Dietmar Maurer
bc1ec7bc1b pvesr: add a message that job removal will take some time 2017-06-08 09:42:12 +02:00
Dietmar Maurer
51506f9a2b PVE::API2::Tasks - remove dead code 2017-06-08 08:52:22 +02:00
Dietmar Maurer
4b70f596b3 PVE::API2::Tasks - use PVE::Tools::dump_logfile 2017-06-08 07:36:33 +02:00
Dietmar Maurer
fc527b4da1 PVE::API2::Replication: rework replication status API
/nodes/<node>/replication => list status of all jobs

/nodes/<node>/replication/<id>/status => individual job status

/nodes/<node>/replication/<id>/log => job log
2017-06-08 07:16:39 +02:00
Dietmar Maurer
a9da300ded PVE::API2::ReplicationConfig - extract guest ID from job ID 2017-06-07 11:30:52 +02:00
Dominik Csapak
4b48563a88 use correct field for child link
namely id instead of vmid, so that the child links are working in the
api inspector and pvesh

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-06-02 16:23:30 +02:00
Dietmar Maurer
f5b53d4c31 PVE/API2/Replication.pm: change vmid => guest 2017-06-02 16:22:46 +02:00
Dominik Csapak
c1b20fca93 add vmid parameter to replication status
so that one can limit the status list for one vm/ct

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-06-02 16:19:26 +02:00
Dominik Csapak
b8ac8b0cec allow width and height parameter for vncshell
so that novnc can request a different screen size

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-06-02 09:19:07 +02:00
Dietmar Maurer
f9d38c545c PVE::API2::ReplicationConfig - implement delete
We just set the remove_job property in the configuration. Actual removal
is done asynchronous inside replicate().
2017-05-31 08:23:47 +02:00