Thomas Lamprecht [Fri, 23 Nov 2018 11:01:39 +0000 (12:01 +0100)]
ceph: add CephFS create and list API
Allow to create a new CephFS instance and allow to list them.
As deletion requires coordination between the active MDS and all
standby MDS next in line this needs a bit more work. One could mark
the MDS cluster down and stop the active, that should work but as
destroying is quite a sensible operation, in production not often
needed I deemed it better to document this only, and leaving API
endpoints for this to the future.
For index/list I slightly transform the result of an RADOS `fs ls`
monitor command, this would allow relative easy display of a CephFS
and it's backing metadata and data pools in a GUI.
While for now it's not enabled by default and marked as experimental,
this API is designed to host multiple CephFS instances - we may not
need this at all, but I did not want to limit us early. And anybody
liking to experiment can use it after the respective ceph.conf
settings.
When encountering errors try to rollback. As we verified at the
beginning that we did not reused pools, destroy the ones which we
created.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com> Co-authored-by: Alwin Antreich <a.antreich@proxmox.com>
Thomas Lamprecht [Fri, 23 Nov 2018 11:01:38 +0000 (12:01 +0100)]
ceph: add MDS create/delete/list API
Allow to create, list and destroy and Ceph Metadata Server (MDS) over
the API and the CLI `pveceph` tool.
Besides setting up the local systemd service template and the MDS
data directory we also add a reference to the MDS in the ceph.conf
We note the backing host (node) from the respective MDS and set up a
'mds standby for name' = 'pve' so that the PVE created ones are a
single group. If we decide to add integration for rank/path specific
MDS (possible useful for CephFS with quite a bit of load) then this
may help as a starting point.
On create, check early if a reference already exists in ceph.conf and
abort in that case. If we only see existing data directories later
on we abort but do not remove them, they could well be from an older
manual create - where it's possible dangerous to just remove it. Let
the user handle it themself in that case.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com> Co-authored-by: Alwin Antreich <a.antreich@proxmox.com>
Thomas Lamprecht [Fri, 23 Nov 2018 06:09:49 +0000 (07:09 +0100)]
ui: ZFS: don't use gettext for ZFS specific columuns
hard to translate sensible and also better for user to have them in
english as much more can be found when searching those specific
terms. To what would one translate CKSUM for example?
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Thomas Lamprecht [Thu, 22 Nov 2018 13:45:42 +0000 (14:45 +0100)]
fix #1575: use reboot for node reboot
As requested by various users and also for Dominik's upcomming
restart Ceph [Mo, Mgr, ...} series where else two buttons just called
reboot would be exacly besides each other.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Dominik Csapak [Thu, 22 Nov 2018 10:35:45 +0000 (11:35 +0100)]
gui: add qemu/PCIEdit
this patch adds the PCIEdit window and InputPanel uses PCISelector
and MDevSelector
when we detect an iommugroup of -1, we put a warning on top to inform
the user that IOMMU is not activated (but let him add the devices
regardless, so that he can use it after IOMMU is activated)
also puts a warning if he selects a device that shares an iommugroup
with a different device (but not the same device with different
function). that detection is not perfect, but we cannot do really
better
Thomas Lamprecht [Tue, 20 Nov 2018 08:34:39 +0000 (09:34 +0100)]
CephTools: cleanup module usage
as done with the api ceph modules:
most of this was imported by just copying without verifying if all is
actually required. Some lost its purpose as we re-used more from our
existing module code base (e.g., pve-common) but wasn't actually
removed.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Thomas Lamprecht [Tue, 20 Nov 2018 07:47:09 +0000 (08:47 +0100)]
api/Ceph: cleanup module usage
most of this was imported by just copying without verifying if all is
actually required. Some lost its purpose as we re-used more from our
existing module code base (e.g., pve-common) but wasn't actually
removed.
As this file includes two perl modules you need to take a bit caution
when looking at this, as some things are used in one module but not
the other - simple grep'ing at this may give false positives.
Also add PVE::API2::Storage use which was missing here.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Thomas Lamprecht [Tue, 20 Nov 2018 07:44:04 +0000 (08:44 +0100)]
api/CephOSD: cleanup and sort module usage
most of this was imported by just copying without verifying if all is
actually required. Some lost its purpose as we re-used more from our
existing module code base (e.g., pve-common) but wasn't actually
removed.
As this file includes two perl modules you need to take a bit caution
when looking at this, as some things are used in one module but not
the other - simple grep'ing at this may give false positives.
Also include the missing IO::File use.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Thomas Lamprecht [Thu, 22 Nov 2018 07:40:15 +0000 (08:40 +0100)]
ui: qemu/HW: menu setDisable mustn't ignore caps
We passed a 'disable' config to those menu items on creation, but
promptly ignored that after the first set_button_status call, which
only checked if it's possible to add another device, but not if our
capabilities heuristic is OK.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Dominik Csapak [Fri, 16 Nov 2018 15:17:52 +0000 (16:17 +0100)]
copy storage scan API from pve-storage
this will be used for the api endpoints in the future as
PVE::API2::Scan instead of PVE::API2::Storage::Scan since it will
contain endpoints to other modules (like qemu-server for pci/usb
scanning)
Thomas Lamprecht [Thu, 15 Nov 2018 12:20:11 +0000 (13:20 +0100)]
ui: dc/storage: allow to add CephFS
Allow to add CephFS storage over GUI. Reuse viewcontroller and model from RBD
to detect if we can do a "hyper-converged" addition (with PVE maintained Ceph)
or if only external is possible.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
this was added for our (also in other places used):
> xtype: me.isCreate ? 'pveCephPoolSelector' : 'displayfield',
construct. But as displayfield does not has a submitValue setter we
cannot bind it generally.
So add such a setter with a small override and declare the bindings
direct when declaring the items, less side effects and all the
configurations for an item stays in the same place.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Thomas Lamprecht [Thu, 15 Nov 2018 12:20:09 +0000 (13:20 +0100)]
ui: storage: RBD: factor out view- model/controler
will be reused for CephFS, look at this with git's ignore whitespace
change flag '-w' to see that the changes consist mostly of indent and
hunk movement changes
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Thomas Lamprecht [Fri, 16 Nov 2018 09:00:00 +0000 (10:00 +0100)]
fix #1358: ui: show clustername besides 'Datacenter' node, if available
If we get the cluster name (successful login with '/' Sys.Audit
permissions) then display it in the resource tree's root node.
This updated on login and all ticket refreshs (every 15 minutes).
I currently have no functionallity to refresh it actively on cluster
create over WebUI, as it's not a straight forward change there.
Further, this is something which does not changes often (in
production), and we cannot detect CLI or API triggered (from non-pve
clients) cluster creations anyway.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Nick Chevsky [Wed, 14 Nov 2018 04:42:05 +0000 (23:42 -0500)]
Enable "Discard" option for IDE and SATA drives
Even though QEMU supports the discard feature for both ATA [1] and
SCSI drives, the "Discard" checkbox in Proxmox VE is artificially
restricted to SCSI drives. This change expands availability of the
"Discard" checkbox to all drive types supported by QEMU, leaving
VirtIO Block as the only remaining exclusion.
Combined with the new "SSD emulation" option [2], enabling discard
on IDE/SATA drives allows reclaiming of free space on thin-provisioned
storage with guests that do not support our SCSI controllers.
Alwin Antreich [Fri, 9 Nov 2018 16:43:16 +0000 (17:43 +0100)]
add_storage creates only one ceph storage entry
This patch removes the separate storage entries for CT & VM to the same
ceph pool. Instead only one entry is made as we can now map/unmap
volumes actively in pve-container.
Signed-off-by: Alwin Antreich <a.antreich@proxmox.com> Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Thomas Lamprecht [Mon, 12 Nov 2018 11:31:44 +0000 (12:31 +0100)]
ui: node/zfs: fix up order of variable declaration to match grid order
It confused me twice and I enabled autoScroll on the wrong component,
so order it as it's layouted and remove the autoscroll completely,
not needed at all...
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Tim Marx [Mon, 12 Nov 2018 10:41:14 +0000 (11:41 +0100)]
node zfs: added new component to display additional zfs details
ZFSStatus component got renamed to ZFSDevices to clarify that it only displays
the device tree of the status command. The newly added component is now named
ZFSStatus instead.
Nick Chevsky [Thu, 8 Nov 2018 18:17:19 +0000 (13:17 -0500)]
Add "SSD emulation" property to IDE, SATA, and SCSI drives
When enabled, the "SSD emulation" feature exposes drives as
solid-state (rather than rotational) by enabling the new `ssd`
qm.conf flag [1] on the drives, which in turn sets QEMU's
`rotation_rate` property [2, 3] on the underlying devices.
This change also moves the "Discard" option out of the advanced
section and promotes it to the top of the dialog box, as proposed
by Thomas Lamprecht [4].
lxc/Features: not that keyctl is unnecessary for privileged
So that users are (hopefully) less confused why this is disabled for
privileged CTs. If we get more feature settings which only make
sense for unprivileged or privileged but not both we could split
this into sections which respective headings, but for one only I
didn't wanted to do this - so just add a boxLabel conditionally.
Cc: Dominik Csapak <d.csapak@proxmox.com> Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Dietmar Maurer [Tue, 30 Oct 2018 10:36:14 +0000 (11:36 +0100)]
fix wrong permissions for subscription info
workaround to keep the subscription popup on login even without 'Sys.Audit'
permissions but remove the subscription details in the GUI for unauthorized
users.
David Limbeck [Wed, 24 Oct 2018 09:45:44 +0000 (11:45 +0200)]
add wipe_disk option when destroying ceph disk
this allows the disk to be reused as ceph disk by zeroing the first 200M
of the destroyed disk. disks are iterated separately from partitions to
prevent duplicate wipes.
Signed-off-by: David Limbeck <d.limbeck@proxmox.com>
Rhonda D'Vine [Thu, 11 Oct 2018 10:05:19 +0000 (12:05 +0200)]
Update default CIPHERS to a more current list
The default CIPHERS allowed for a fair amount of not really considered
secure anymore connections. This updated cipher list is taken from
mozilla: https://wiki.mozilla.org/Security/Server_Side_TLS
This add a new api to online reload networking configuration
with ifupdown2.
This work with native ifupdown2 modules, as ifupdown2 have
interface dependency relationships.
Some specific interfaces options can't be reloaded online
(because kernel don't implement it), it this case, we ifdown/ifup
theses interfaces. (mainly vxlan interfaces options)
Thomas Lamprecht [Tue, 11 Sep 2018 07:48:25 +0000 (09:48 +0200)]
ui: form/VMSelector: use SIMPLE mode for guest checkbox model
Switch the default mode 'MULTI' with 'SIMPLE', the same we use in the
dc/Backup guest selector. It allows to remove the 'checkOnly'
setting, which limited selection and deselection of elements on the
checkbox it self, doing nothing when clicking on rows.
Besides the friendlier and more streamlined UX this actually fixes a
bug in Firefox (confirmed in version 62, possible in other versions
too) where select/deselect di not worked when clicking in the white
area of the checkbox, but only when clicking on the surrounding
padding.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>