bump version to 6.2-6 master
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Fri, 18 Sep 2020 14:55:23 +0000 (16:55 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Fri, 18 Sep 2020 14:55:23 +0000 (16:55 +0200)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
16 files changed:
api-viewer/apidata.js
debian/changelog
local-zfs.adoc
pct.1-synopsis.adoc
pct.adoc
pct.conf.5-opts.adoc
pve-external-metric-server.adoc
pve-faq.adoc
pve-installation.adoc
pve-network.adoc
pveceph.1-synopsis.adoc
pvecm.adoc
pvesm.1-synopsis.adoc
translation.adoc
vzdump.1-synopsis.adoc
vzdump.conf.5-opts.adoc

index 819802e..a438090 100644 (file)
@@ -3207,6 +3207,13 @@ var pveapi = [
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
+                              "prune-backups" : {
+                                 "description" : "Use these retention options instead of those from the storage configuration.",
+                                 "format" : "prune-backups",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "[keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
+                              },
                               "quiet" : {
                                  "default" : 0,
                                  "description" : "Be quiet.",
@@ -3495,6 +3502,13 @@ var pveapi = [
                            "type" : "string",
                            "typetext" : "<string>"
                         },
+                        "prune-backups" : {
+                           "description" : "Use these retention options instead of those from the storage configuration.",
+                           "format" : "prune-backups",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "[keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
+                        },
                         "quiet" : {
                            "default" : 0,
                            "description" : "Be quiet.",
@@ -22392,6 +22406,12 @@ var pveapi = [
                                              "optional" : 1,
                                              "type" : "integer"
                                           },
+                                          "debug" : {
+                                             "default" : 0,
+                                             "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
+                                             "optional" : 1,
+                                             "type" : "boolean"
+                                          },
                                           "description" : {
                                              "description" : "Container description. Only used on the configuration web interface.",
                                              "optional" : 1,
@@ -22881,6 +22901,13 @@ var pveapi = [
                                              "type" : "integer",
                                              "typetext" : "<integer> (0 - 500000)"
                                           },
+                                          "debug" : {
+                                             "default" : 0,
+                                             "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
+                                             "optional" : 1,
+                                             "type" : "boolean",
+                                             "typetext" : "<boolean>"
+                                          },
                                           "delete" : {
                                              "description" : "A list of settings you want to delete.",
                                              "format" : "pve-configid-list",
@@ -23490,6 +23517,13 @@ var pveapi = [
                                           "parameters" : {
                                              "additionalProperties" : 0,
                                              "properties" : {
+                                                "debug" : {
+                                                   "default" : 0,
+                                                   "description" : "If set, enables very verbose debug log-level on start.",
+                                                   "optional" : 1,
+                                                   "type" : "boolean",
+                                                   "typetext" : "<boolean>"
+                                                },
                                                 "node" : {
                                                    "description" : "The cluster node name.",
                                                    "format" : "pve-node",
@@ -27803,6 +27837,13 @@ var pveapi = [
                                  "type" : "integer",
                                  "typetext" : "<integer> (0 - 500000)"
                               },
+                              "debug" : {
+                                 "default" : 0,
+                                 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
+                                 "optional" : 1,
+                                 "type" : "boolean",
+                                 "typetext" : "<boolean>"
+                              },
                               "description" : {
                                  "description" : "Container description. Only used on the configuration web interface.",
                                  "optional" : 1,
@@ -28551,6 +28592,12 @@ var pveapi = [
                               "parameters" : {
                                  "additionalProperties" : 0,
                                  "properties" : {
+                                    "crush-device-class" : {
+                                       "description" : "Set the device class of the OSD in crush.",
+                                       "optional" : 1,
+                                       "type" : "string",
+                                       "typetext" : "<string>"
+                                    },
                                     "db_dev" : {
                                        "description" : "Block device name for block.db.",
                                        "optional" : 1,
@@ -30418,6 +30465,13 @@ var pveapi = [
                                  "type" : "string",
                                  "typetext" : "<string>"
                               },
+                              "prune-backups" : {
+                                 "description" : "Use these retention options instead of those from the storage configuration.",
+                                 "format" : "prune-backups",
+                                 "optional" : 1,
+                                 "type" : "string",
+                                 "typetext" : "[keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
+                              },
                               "quiet" : {
                                  "default" : 0,
                                  "description" : "Be quiet.",
@@ -30706,7 +30760,7 @@ var pveapi = [
                               "info" : {
                                  "POST" : {
                                     "allowtoken" : 1,
-                                    "description" : "Restart service.",
+                                    "description" : "Hard restart service. Use reload if you want to reduce interruptions.",
                                     "method" : "POST",
                                     "name" : "service_restart",
                                     "parameters" : {
@@ -30766,7 +30820,7 @@ var pveapi = [
                               "info" : {
                                  "POST" : {
                                     "allowtoken" : 1,
-                                    "description" : "Reload service.",
+                                    "description" : "Reload service. Falls back to restart if service cannot be reloaded.",
                                     "method" : "POST",
                                     "name" : "service_reload",
                                     "parameters" : {
@@ -32915,6 +32969,159 @@ var pveapi = [
                   "children" : [
                      {
                         "children" : [
+                           {
+                              "info" : {
+                                 "DELETE" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Prune backups. Only those using the standard naming scheme are considered.",
+                                    "method" : "DELETE",
+                                    "name" : "delete",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "prune-backups" : {
+                                             "description" : "Use these retention options instead of those from the storage configuration.",
+                                             "format" : "prune-backups",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
+                                          },
+                                          "storage" : {
+                                             "description" : "The storage identifier.",
+                                             "format" : "pve-storage-id",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "type" : {
+                                             "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
+                                             "enum" : [
+                                                "qemu",
+                                                "lxc"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "vmid" : {
+                                             "description" : "Only prune backups for this VM.",
+                                             "format" : "pve-vmid",
+                                             "minimum" : 1,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "description" : "You need the 'Datastore.Allocate' privilege on the storage (or if a VM ID is specified, 'Datastore.AllocateSpace' and 'VM.Backup' for the VM).",
+                                       "user" : "all"
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "type" : "string"
+                                    }
+                                 },
+                                 "GET" : {
+                                    "allowtoken" : 1,
+                                    "description" : "Get prune information for backups. NOTE: this is only a preview and might not be exactly what a subsequent prune call does, if the hour changes or if backups are removed/added in the meantime.",
+                                    "method" : "GET",
+                                    "name" : "dryrun",
+                                    "parameters" : {
+                                       "additionalProperties" : 0,
+                                       "properties" : {
+                                          "node" : {
+                                             "description" : "The cluster node name.",
+                                             "format" : "pve-node",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "prune-backups" : {
+                                             "description" : "Use these retention options instead of those from the storage configuration.",
+                                             "format" : "prune-backups",
+                                             "optional" : 1,
+                                             "type" : "string",
+                                             "typetext" : "[keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
+                                          },
+                                          "storage" : {
+                                             "description" : "The storage identifier.",
+                                             "format" : "pve-storage-id",
+                                             "type" : "string",
+                                             "typetext" : "<string>"
+                                          },
+                                          "type" : {
+                                             "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
+                                             "enum" : [
+                                                "qemu",
+                                                "lxc"
+                                             ],
+                                             "optional" : 1,
+                                             "type" : "string"
+                                          },
+                                          "vmid" : {
+                                             "description" : "Only consider backups for this guest.",
+                                             "format" : "pve-vmid",
+                                             "minimum" : 1,
+                                             "optional" : 1,
+                                             "type" : "integer",
+                                             "typetext" : "<integer> (1 - N)"
+                                          }
+                                       }
+                                    },
+                                    "permissions" : {
+                                       "check" : [
+                                          "perm",
+                                          "/storage/{storage}",
+                                          [
+                                             "Datastore.Audit",
+                                             "Datastore.AllocateSpace"
+                                          ],
+                                          "any",
+                                          1
+                                       ]
+                                    },
+                                    "protected" : 1,
+                                    "proxyto" : "node",
+                                    "returns" : {
+                                       "items" : {
+                                          "properties" : {
+                                             "ctime" : {
+                                                "description" : "Creation time of the backup (seconds since the UNIX epoch).",
+                                                "type" : "integer"
+                                             },
+                                             "mark" : {
+                                                "description" : "Whether the backup would be kept or removed. For backups that don't use the standard naming scheme, it's 'protected'.",
+                                                "type" : "string"
+                                             },
+                                             "type" : {
+                                                "description" : "One of 'qemu', 'lxc', 'openvz' or 'unknown'.",
+                                                "type" : "string"
+                                             },
+                                             "vmid" : {
+                                                "description" : "The VM the backup belongs to.",
+                                                "optional" : 1,
+                                                "type" : "integer"
+                                             },
+                                             "volid" : {
+                                                "description" : "Backup volume ID.",
+                                                "type" : "string"
+                                             }
+                                          },
+                                          "type" : "object"
+                                       },
+                                       "type" : "array"
+                                    }
+                                 }
+                              },
+                              "leaf" : 1,
+                              "path" : "/nodes/{node}/storage/{storage}/prunebackups",
+                              "text" : "prunebackups"
+                           },
                            {
                               "children" : [
                                  {
@@ -38728,6 +38935,13 @@ var pveapi = [
                            "type" : "string",
                            "typetext" : "<string>"
                         },
+                        "prune-backups" : {
+                           "description" : "The retention options with shorter intervals are processed first with --keep-last being the very first one. Each option covers a specific period of time. We say that backups within this period are covered by this option. The next option does not take care of already covered backups and only considers older backups.",
+                           "format" : "prune-backups",
+                           "optional" : 1,
+                           "type" : "string",
+                           "typetext" : "[keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
+                        },
                         "redundancy" : {
                            "default" : 2,
                            "description" : "The redundancy count specifies the number of nodes to which the resource should be deployed. It must be at least 1 and at most the number of nodes in the cluster.",
@@ -39138,6 +39352,13 @@ var pveapi = [
                      "type" : "string",
                      "typetext" : "<string>"
                   },
+                  "prune-backups" : {
+                     "description" : "The retention options with shorter intervals are processed first with --keep-last being the very first one. Each option covers a specific period of time. We say that backups within this period are covered by this option. The next option does not take care of already covered backups and only considers older backups.",
+                     "format" : "prune-backups",
+                     "optional" : 1,
+                     "type" : "string",
+                     "typetext" : "[keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
+                  },
                   "redundancy" : {
                      "default" : 2,
                      "description" : "The redundancy count specifies the number of nodes to which the resource should be deployed. It must be at least 1 and at most the number of nodes in the cluster.",
index 892854f..5ec9c60 100644 (file)
@@ -1,3 +1,19 @@
+pve-docs (6.2-6) pve; urgency=medium
+
+  * Add section with more information about ZFS RAID levels
+
+  * ha-manager: fix typos and grammatical errors; improve wording
+
+  * fix #2526: network configuration: change underscore to dash
+
+  * network: nat: add extra newlines between links for readability
+
+  * translation: combine old wiki entry with respective documentation section
+
+  * various typography and grammar fixes
+
+ -- Proxmox Support Team <support@proxmox.com>  Fri, 18 Sep 2020 16:54:38 +0200
+
 pve-docs (6.2-5) pve; urgency=medium
 
   * update link for YubiKey documentation
index 5b36f5e..89ab8bd 100644 (file)
@@ -242,7 +242,7 @@ Using `ashift=9` when creating the pool can lead to bad
 performance, depending on the disks underneath, and cannot be changed later on.
 
 Mirror vdevs (RAID1, RAID10) have favorable behavior for VM workloads. Use
-them, unless your environmanet has specific needs and charactersitics where
+them, unless your environment has specific needs and characteristics where
 RAIDZ performance characteristics are acceptable.
 
 
@@ -402,7 +402,7 @@ different steps are needed which depend on the bootloader in use.
 # zpool replace -f <pool> <old zfs partition> <new zfs partition>
 ----
 
-NOTE: Use the `zpool status -v` command to monitor how far the resivlering
+NOTE: Use the `zpool status -v` command to monitor how far the resilvering
 process of the new disk has progressed.
 
 .With `systemd-boot`:
@@ -564,10 +564,10 @@ All guest volumes/disks create on this storage will be encrypted with the
 shared key material of the parent dataset.
 
 To actually use the storage, the associated key material needs to be loaded
-with `zfs load-key`:
+and the dataset needs to be mounted. This can be done in one step with:
 
 ----
-# zfs load-key tank/encrypted_data
+# zfs mount -l tank/encrypted_data
 Enter passphrase for 'tank/encrypted_data':
 ----
 
index 014a655..c3862db 100644 (file)
@@ -120,6 +120,10 @@ CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger t
 +
 NOTE: You can disable fair-scheduler configuration by setting this to 0.
 
+`--debug` `<boolean>` ('default =' `0`)::
+
+Try to be more verbose. For now this only enables debug log-level on start.
+
 `--description` `<string>` ::
 
 Container description. Only used on the configuration web interface.
@@ -577,6 +581,10 @@ CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger t
 +
 NOTE: You can disable fair-scheduler configuration by setting this to 0.
 
+`--debug` `<boolean>` ('default =' `0`)::
+
+Try to be more verbose. For now this only enables debug log-level on start.
+
 `--description` `<string>` ::
 
 Container description. Only used on the configuration web interface.
@@ -755,6 +763,10 @@ CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger t
 +
 NOTE: You can disable fair-scheduler configuration by setting this to 0.
 
+`--debug` `<boolean>` ('default =' `0`)::
+
+Try to be more verbose. For now this only enables debug log-level on start.
+
 `--delete` `<string>` ::
 
 A list of settings you want to delete.
@@ -896,6 +908,10 @@ Start the container.
 
 The (unique) ID of the VM.
 
+`--debug` `<boolean>` ('default =' `0`)::
+
+If set, enables very verbose debug log-level on start.
+
 `--skiplock` `<boolean>` ::
 
 Ignore locks - only root is allowed to use this option.
index 0be738b..1f0bcef 100644 (file)
--- a/pct.adoc
+++ b/pct.adoc
@@ -36,28 +36,33 @@ the host system directly.
 The runtime costs for containers is low, usually negligible. However, there are
 some drawbacks that need be considered:
 
-* Only Linux distributions can be run in containers. It is not possible to run
-  other Operating Systems like, for example, FreeBSD or Microsoft Windows
+* Only Linux distributions can be run in Proxmox Containers. It is not possible to run
+  other operating systems like, for example, FreeBSD or Microsoft Windows
   inside a container.
 
 * For security reasons, access to host resources needs to be restricted.
-  Containers run in their own separate namespaces. Additionally some syscalls
-  are not allowed within containers.
+  Therefore, containers run in their own separate namespaces. Additionally some
+  syscalls (user space requests to the Linux kernel) are not allowed within containers.
 
-{pve} uses https://linuxcontainers.org/[Linux Containers (LXC)] as underlying
+{pve} uses https://linuxcontainers.org/lxc/introduction/[Linux Containers (LXC)] as its underlying
 container technology. The ``Proxmox Container Toolkit'' (`pct`) simplifies the
-usage and management of LXC containers.
+usage and management of LXC, by providing an interface that abstracts
+complex tasks.
 
 Containers are tightly integrated with {pve}. This means that they are aware of
 the cluster setup, and they can use the same network and storage resources as
 virtual machines. You can also use the {pve} firewall, or manage containers
 using the HA framework.
 
-Our primary goal is to offer an environment as one would get from a VM, but
-without the additional overhead. We call this ``System Containers''.
+Our primary goal is to offer an environment that provides the benefits of using a
+VM, but without the additional overhead. This means that Proxmox Containers can
+be categorized as ``System Containers'', rather than ``Application Containers''.
 
-NOTE: If you want to run micro-containers, for example, 'Docker' or 'rkt', it
-is best to run them inside a VM.
+NOTE: If you want to run application containers, for example, 'Docker' images, it
+is recommended that you run them inside a Proxmox Qemu VM. This will give you
+all the advantages of application containerization, while also providing the
+benefits that VMs offer, such as strong isolation from the host and the ability
+to live-migrate, which otherwise isn't possible with containers. 
 
 
 Technology Overview
index 09aca49..9102c6a 100644 (file)
@@ -26,6 +26,10 @@ CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger t
 +
 NOTE: You can disable fair-scheduler configuration by setting this to 0.
 
+`debug`: `<boolean>` ('default =' `0`)::
+
+Try to be more verbose. For now this only enables debug log-level on start.
+
 `description`: `<string>` ::
 
 Container description. Only used on the configuration web interface.
index c9e1107..cc19adb 100644 (file)
@@ -20,7 +20,7 @@ Graphite server configuration
 The definition of a server is:
 
 ----
- graphite: your-id
+graphite: your-id
     server your-server
     port your-port
     path your-path
@@ -37,7 +37,7 @@ Influxdb plugin configuration
 The definition is:
 
 ----
- influxdb: your-id
+influxdb: your-id
     server your-server
     port your-port
 ----
@@ -48,7 +48,7 @@ for this.
 Here is an example configuration for influxdb (on your influxdb server):
 
 ----
- [[udp]]
+‚Äč[[udp]]
    enabled = true
    bind-address = "0.0.0.0:8089"
    database = "proxmox"
@@ -68,14 +68,14 @@ type, then the ids must be defined and different from each other.
 Here is an example of a finished status.cfg
 
 ----
- graphite:
+graphite:
     server 10.0.0.5
 
- influxdb: influx1
+influxdb: influx1
     server 10.0.0.6
     port 8089
 
- influxdb: influx2
+influxdb: influx2
     server 10.0.0.7
     port 8090
 ----
index 620af51..9d1d708 100644 (file)
@@ -29,7 +29,7 @@ Will {pve} run on a 32bit processor?::
 {pve} works only on 64-bit CPUs (AMD or Intel). There is no plan
 for 32-bit for the platform.
 +
-NOTE: VMs and Containers can be both 32-bit and/or 64-bit.
+NOTE: VMs and Containers can be both 32-bit and 64-bit.
 
 Does my CPU support virtualization?::
 
@@ -52,13 +52,15 @@ Supported AMD CPUs::
 http://en.wikipedia.org/wiki/Virtualization_Technology#AMD_virtualization_.28AMD-V.29[AMD
 Virtualization Technology (AMD-V)] support.
 
-What is a container, CT, VE, Virtual Private Server, VPS?::
+What is a container/virtual environment (VE)/virtual private server (VPS)?::
 
-Operating-system-level virtualization is a server-virtualization
-method where the kernel of an operating system allows for multiple
-isolated user-space instances, instead of just one. We call such
-instances containers. As containers use the host's kernel they are
-limited to Linux guests.
+In the context of containers, these terms all refer to the concept of
+operating-system-level virtualization. Operating-system-level virtualization is
+a method of virtualization, in which the kernel of an operating system
+allows for multiple isolated instances, that all share the kernel. When
+referring to LXC, we call such instances containers. Because containers use the
+host's kernel rather than emulating a full operating system, they require less
+overhead, but are limited to Linux guests.
 
 What is a QEMU/KVM guest (or VM)?::
 
@@ -128,30 +130,31 @@ LXC vs LXD vs Proxmox Containers vs Docker::
 LXC is a userspace interface for the Linux kernel containment
 features. Through a powerful API and simple tools, it lets Linux users
 easily create and manage system containers. LXC, as well as the former
-OpenVZ, aims at *system virtualization*, i.e. allows you to run a
-complete OS inside a container, where you log in as ssh, add users,
+OpenVZ, aims at *system virtualization*. Thus, it allows you to run a
+complete OS inside a container, where you log in using ssh, add users,
 run apache, etc...
 +
-LXD is building on top of LXC to provide a new, better user
+LXD is built on top of LXC to provide a new, better user
 experience. Under the hood, LXD uses LXC through `liblxc` and its Go
 binding to create and manage the containers. It's basically an
 alternative to LXC's tools and distribution template system with the
 added features that come from being controllable over the network.
 +
-Proxmox Containers also aims at *system virtualization*, and thus uses
-LXC as the basis of its own container offer. The Proxmox Container
-Toolkit is called `pct`, and is tightly coupled with {pve}. That means
-that it is aware of the cluster setup, and it can use the same network
-and storage resources as fully virtualized VMs. You can even use the
+Proxmox Containers are how we refer to containers that are created and managed
+using the Proxmox Container Toolkit (`pct`). They also target *system
+virtualization* and use LXC as the basis of the container offering. The
+Proxmox Container Toolkit (`pct`) is tightly coupled with {pve}. This means
+that it is aware of cluster setups, and it can use the same network
+and storage resources as QEMU virtual machines (VMs). You can even use the
 {pve} firewall, create and restore backups, or manage containers using
 the HA framework. Everything can be controlled over the network using
 the {pve} API.
 +
-Docker aims at running a *single* application running in a contained
-environment. Hence you're managing a docker instance from the host with the
-docker toolkit. It is not recommended to run docker directly on your
-{pve} host.
+Docker aims at running a *single* application in an isolated, self-contained
+environment. These are generally referred to as ``Application Containers'', rather
+than ``System Containers''. You manage a Docker instance from the host, using the
+Docker Engine command line interface. It is not recommended to run docker
+directly on your {pve} host.
 +
-NOTE: You can however perfectly install and use docker inside a Proxmox Qemu
-VM, and thus getting the benefit of software containerization with the very
-strong isolation that VMs provide.
+NOTE: If you want to run application containers, for example, 'Docker' images, it
+is best to run them inside a Proxmox Qemu VM.
index 0d416ac..6a59b2c 100644 (file)
@@ -270,16 +270,6 @@ following command:
 # zpool add <pool-name> log </dev/path_to_fast_ssd>
 ----
 
-ifdef::wiki[]
-
-link:/wiki/Prepare_Installation_Media[Prepare Installation Media]
----------------------------------------------------------
-
-link:/wiki/Install_Proxmox_VE_on_Debian_Buster[Install Proxmox VE on Debian Buster]
------------------------------------------------------------------------------------
-
-endif::wiki[]
-
 ifndef::wiki[]
 
 Install {pve} on Debian
@@ -324,6 +314,10 @@ Video Tutorials
 See Also
 --------
 
+* link:/wiki/Prepare_Installation_Media[Prepare Installation Media]
+
+* link:/wiki/Install_Proxmox_VE_on_Debian_Buster[Install Proxmox VE on Debian Buster]
+
 * link:/wiki/System_Requirements[System Requirements]
 
 * link:/wiki/Package_Repositories[Package Repositories]
index 8f3af0d..294c201 100644 (file)
@@ -161,9 +161,9 @@ iface vmbr0 inet static
         address 192.168.10.2
         netmask 255.255.255.0
         gateway 192.168.10.1
-        bridge_ports eno1
-        bridge_stp off
-        bridge_fd 0
+        bridge-ports eno1
+        bridge-stp off
+        bridge-fd 0
 ----
 
 Virtual machines behave as if they were directly connected to the
@@ -209,9 +209,9 @@ auto vmbr0
 iface vmbr0 inet static
         address  203.0.113.17
         netmask  255.255.255.248
-        bridge_ports none
-        bridge_stp off
-        bridge_fd 0
+        bridge-ports none
+        bridge-stp off
+        bridge-fd 0
 ----
 
 
@@ -239,9 +239,9 @@ auto vmbr0
 iface vmbr0 inet static
         address  10.10.10.1
         netmask  255.255.255.0
-        bridge_ports none
-        bridge_stp off
-        bridge_fd 0
+        bridge-ports none
+        bridge-stp off
+        bridge-fd 0
 
         post-up   echo 1 > /proc/sys/net/ipv4/ip_forward
         post-up   iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o eno1 -j MASQUERADE
@@ -261,8 +261,11 @@ post-down iptables -t raw -D PREROUTING -i fwbr+ -j CT --zone 1
 ----
 
 For more information about this, refer to the following links:
+
 https://commons.wikimedia.org/wiki/File:Netfilter-packet-flow.svg[Netfilter Packet Flow]
+
 https://lwn.net/Articles/370152/[Patch on netdev-list introducing conntrack zones]
+
 https://blog.lobraun.de/2019/05/19/prox/[Blog post with a good explanation by using TRACE in the raw table]
 
 
@@ -357,18 +360,18 @@ iface bond0 inet static
       slaves eno1 eno2
       address  192.168.1.2
       netmask  255.255.255.0
-      bond_miimon 100
-      bond_mode 802.3ad
-      bond_xmit_hash_policy layer2+3
+      bond-miimon 100
+      bond-mode 802.3ad
+      bond-xmit-hash-policy layer2+3
 
 auto vmbr0
 iface vmbr0 inet static
         address  10.10.10.2
         netmask  255.255.255.0
         gateway  10.10.10.1
-        bridge_ports eno1
-        bridge_stp off
-        bridge_fd 0
+        bridge-ports eno1
+        bridge-stp off
+        bridge-fd 0
 
 ----
 
@@ -389,18 +392,18 @@ iface eno2 inet manual
 auto bond0
 iface bond0 inet manual
       slaves eno1 eno2
-      bond_miimon 100
-      bond_mode 802.3ad
-      bond_xmit_hash_policy layer2+3
+      bond-miimon 100
+      bond-mode 802.3ad
+      bond-xmit-hash-policy layer2+3
 
 auto vmbr0
 iface vmbr0 inet static
         address  10.10.10.2
         netmask  255.255.255.0
         gateway  10.10.10.1
-        bridge_ports bond0
-        bridge_stp off
-        bridge_fd 0
+        bridge-ports bond0
+        bridge-stp off
+        bridge-fd 0
 
 ----
 
@@ -474,15 +477,15 @@ iface vmbr0v5 inet static
         address  10.10.10.2
         netmask  255.255.255.0
         gateway  10.10.10.1
-        bridge_ports eno1.5
-        bridge_stp off
-        bridge_fd 0
+        bridge-ports eno1.5
+        bridge-stp off
+        bridge-fd 0
 
 auto vmbr0
 iface vmbr0 inet manual
-        bridge_ports eno1
-        bridge_stp off
-        bridge_fd 0
+        bridge-ports eno1
+        bridge-stp off
+        bridge-fd 0
 
 ----
 
@@ -502,10 +505,10 @@ iface vmbr0.5 inet static
 
 auto vmbr0
 iface vmbr0 inet manual
-        bridge_ports eno1
-        bridge_stp off
-        bridge_fd 0
-        bridge_vlan_aware yes
+        bridge-ports eno1
+        bridge-stp off
+        bridge-fd 0
+        bridge-vlan-aware yes
 ----
 
 The next example is the same setup but a bond is used to
@@ -523,9 +526,9 @@ iface eno2 inet manual
 auto bond0
 iface bond0 inet manual
       slaves eno1 eno2
-      bond_miimon 100
-      bond_mode 802.3ad
-      bond_xmit_hash_policy layer2+3
+      bond-miimon 100
+      bond-mode 802.3ad
+      bond-xmit-hash-policy layer2+3
 
 iface bond0.5 inet manual
 
@@ -534,15 +537,15 @@ iface vmbr0v5 inet static
         address  10.10.10.2
         netmask  255.255.255.0
         gateway  10.10.10.1
-        bridge_ports bond0.5
-        bridge_stp off
-        bridge_fd 0
+        bridge-ports bond0.5
+        bridge-stp off
+        bridge-fd 0
 
 auto vmbr0
 iface vmbr0 inet manual
-        bridge_ports bond0
-        bridge_stp off
-        bridge_fd 0
+        bridge-ports bond0
+        bridge-stp off
+        bridge-fd 0
 
 ----
 
index 817c489..6d15c85 100644 (file)
@@ -174,6 +174,10 @@ Create OSD
 
 Block device name.
 
+`--crush-device-class` `<string>` ::
+
+Set the device class of the OSD in crush.
+
 `--db_dev` `<string>` ::
 
 Block device name for block.db.
index 4bf2f59..3820c17 100644 (file)
@@ -61,7 +61,7 @@ Requirements
 
 * Date and time have to be synchronized.
 
-* SSH tunnel on TCP port 22 between nodes is used. 
+* SSH tunnel on TCP port 22 between nodes is used.
 
 * If you are interested in High Availability, you need to have at
   least three nodes for reliable quorum. All nodes should have the
@@ -327,11 +327,11 @@ After powering off the node hp4, we can safely remove it from the cluster.
 
 ----
  hp1# pvecm delnode hp4
+ Killing node 4
 ----
 
-If the operation succeeds no output is returned, just check the node
-list again with `pvecm nodes` or `pvecm status`. You should see
-something like:
+Use `pvecm nodes` or `pvecm status` to check the node list again. It should
+look something like:
 
 ----
 hp1# pvecm status
@@ -397,7 +397,7 @@ node from the cluster.
 WARNING: Ensure all shared resources are cleanly separated! Otherwise you will
 run into conflicts and problems.
 
-First stop the corosync and the pve-cluster services on the node:
+First, stop the corosync and the pve-cluster services on the node:
 [source,bash]
 ----
 systemctl stop pve-cluster
@@ -414,7 +414,7 @@ Delete the corosync configuration files:
 [source,bash]
 ----
 rm /etc/pve/corosync.conf
-rm /etc/corosync/*
+rm -r /etc/corosync/*
 ----
 
 You can now start the filesystem again as normal service:
@@ -527,7 +527,7 @@ application.
 Setting Up A New Network
 ^^^^^^^^^^^^^^^^^^^^^^^^
 
-First you have to set up a new network interface. It should be on a physically
+First, you have to set up a new network interface. It should be on a physically
 separate network. Ensure that your network fulfills the
 xref:pvecm_cluster_network_requirements[cluster network requirements].
 
@@ -952,13 +952,22 @@ QDevice-Net Setup
 ~~~~~~~~~~~~~~~~~
 
 We recommend to run any daemon which provides votes to corosync-qdevice as an
-unprivileged user. {pve} and Debian provides a package which is already
+unprivileged user. {pve} and Debian provide a package which is already
 configured to do so.
 The traffic between the daemon and the cluster must be encrypted to ensure a
 safe and secure QDevice integration in {pve}.
 
-First install the 'corosync-qnetd' package on your external server and
-the 'corosync-qdevice' package on all cluster nodes.
+First, install the 'corosync-qnetd' package on your external server
+
+----
+external# apt install corosync-qnetd
+----
+
+and the 'corosync-qdevice' package on all cluster nodes
+
+----
+pve# apt install corosync-qdevice
+----
 
 After that, ensure that all your nodes on the cluster are online.
 
@@ -969,8 +978,10 @@ of the {pve} nodes:
 pve# pvecm qdevice setup <QDEVICE-IP>
 ----
 
-The SSH key from the cluster will be automatically copied to the QDevice. You
-might need to enter an SSH password during this step.
+The SSH key from the cluster will be automatically copied to the QDevice.
+
+NOTE: Make sure that the SSH configuration on your external server allows root
+login via password, if you are asked for a password during this step.
 
 After you enter the password and all the steps are successfully completed, you
 will see "Done". You can check the status now:
@@ -1256,9 +1267,9 @@ iface vmbr0 inet static
     address 192.X.Y.57
     netmask 255.255.250.0
     gateway 192.X.Y.1
-    bridge_ports eno1
-    bridge_stp off
-    bridge_fd 0
+    bridge-ports eno1
+    bridge-stp off
+    bridge-fd 0
 
 # cluster network
 auto eno2
index ebfd676..af25db2 100644 (file)
@@ -54,7 +54,7 @@ Flag to disable the storage.
 
 CIFS domain.
 
-`--encryption-key` `<filepath>` ::
+`--encryption-key` `a file containing an encryption key, or the special value "autogen"` ::
 
 Encryption key. Use 'autogen' to generate one automatically without passphrase.
 
@@ -134,6 +134,10 @@ Pool.
 
 iSCSI portal (IP or DNS name with optional port).
 
+`--prune-backups` `[keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]` ::
+
+The retention options with shorter intervals are processed first with --keep-last being the very first one. Each option covers a specific period of time. We say that backups within this period are covered by this option. The next option does not take care of already covered backups and only considers older backups.
+
 `--redundancy` `<integer> (1 - 16)` ('default =' `2`)::
 
 The redundancy count specifies the number of nodes to which the resource should be deployed. It must be at least 1 and at most the number of nodes in the cluster.
@@ -378,6 +382,30 @@ Get filesystem path for specified volume
 
 Volume identifier
 
+*pvesm prune-backups* `<storage>` `[OPTIONS]`
+
+Prune backups. This is only a wrapper for the proper API endpoints.
+
+`<storage>`: `<string>` ::
+
+The storage identifier.
+
+`--dry-run` `<boolean>` ::
+
+Only show what would be pruned, don't delete anything.
+
+`--prune-backups` `[keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]` ::
+
+Use these retention options instead of those from the storage configuration.
+
+`--type` `<lxc | qemu>` ::
+
+Either 'qemu' or 'lxc'. Only consider backups for guests of this type.
+
+`--vmid` `<integer> (1 - N)` ::
+
+Only consider backups for this guest.
+
 *pvesm remove* `<storage>`
 
 Delete storage configuration.
@@ -492,7 +520,7 @@ Flag to disable the storage.
 
 CIFS domain.
 
-`--encryption-key` `<filepath>` ::
+`--encryption-key` `a file containing an encryption key, or the special value "autogen"` ::
 
 Encryption key. Use 'autogen' to generate one automatically without passphrase.
 
@@ -556,6 +584,10 @@ Password for accessing the share/datastore.
 
 Pool.
 
+`--prune-backups` `[keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]` ::
+
+The retention options with shorter intervals are processed first with --keep-last being the very first one. Each option covers a specific period of time. We say that backups within this period are covered by this option. The next option does not take care of already covered backups and only considers older backups.
+
 `--redundancy` `<integer> (1 - 16)` ('default =' `2`)::
 
 The redundancy count specifies the number of nodes to which the resource should be deployed. It must be at least 1 and at most the number of nodes in the cluster.
index 2dc156b..f224e11 100644 (file)
@@ -6,25 +6,76 @@ ifdef::wiki[]
 endif::wiki[]
 
 
-The {pve} user interface is in English by default. Thanks to contributions by
-the community, translations to other languages are available. We welcome help to
-add new languages, translate the newest features, and improve incomplete or
-inconsistent translations.
+
+The {pve} user interface is in English by default. However, thanks to the
+contributions of the community, translations to other languages are also available.
+We welcome any support in adding new languages, translating the latest features, and
+improving incomplete or inconsistent translations.
+
+We use https://www.gnu.org/software/gettext/[gettext] for the management of the
+translation files. Tools like https://poedit.net/[Poedit] offer a nice user
+interface to edit the translation files, but you can use whatever editor you're
+comfortable with. No programming knowledge is required for translating.
+
+Translating with git
+~~~~~~~~~~~~~~~~~~~~
 
 The language files are available as a
 https://git.proxmox.com/?p=proxmox-i18n.git[git repository]. If you are familiar
 with git, please contribute according to our
 {webwiki-url}Developer_Documentation[Developer Documentation].
 
-Even if you are not familiar with git, you can help with translating {pve}.
-Download the language files
-https://git.proxmox.com/?p=proxmox-i18n.git;a=tree[here]. Then choose the
-language you want to improve. Right click on the "raw" link of this language
-file, and select 'Save Link As...'. Make your changes to the file, and then
-send your final translation directly to office(at)proxmox.com together with a
+You can create a new translation by doing the following (replace <LANG> with the
+language ID):
+
+ # git clone git://git.proxmox.com/git/proxmox-i18n.git
+ # cd proxmox-i18n
+ # make init-<LANG>.po
+
+Or you can edit an existing translation, using the editor of your choice:
+
+ # poedit <LANG>.po
+
+
+Translating without git
+~~~~~~~~~~~~~~~~~~~~~~~
+
+Even if you are not familiar with git, you can help translate {pve}.
+To start, you can download the language files
+https://git.proxmox.com/?p=proxmox-i18n.git;a=tree[here]. Find the
+language you want to improve, then right click on the "raw" link of this language
+file and select 'Save Link As...'. Make your changes to the file, and then
+send your final translation directly to office(at)proxmox.com, together with a
 signed
 {webwiki-url}Developer_Documentation#Software_License_and_Copyright[contributor license agreement].
 
-We use https://www.gnu.org/software/gettext/[gettext] for the management of the
-translation files. Tools like https://poedit.net/[Poedit] offer a nice user
-interface to edit the translation files.
+
+Testing the Translation
+~~~~~~~~~~~~~~~~~~~~~~~
+
+In order for the translation to be used in {pve}, you must first translate
+the `.po` file into a `.js` file. You can do this by invoking the following script,
+which is located in the same repository:
+
+ # ./po2js.pl -t pve xx.po >pve-lang-xx.js
+
+The resulting file `pve-lang-xx.js` can then be copied to the directory
+`/usr/share/pve-i18n`, on your proxmox server, in order to test it out.
+
+Alternatively, you can build a deb package by running the following command from
+the root of the repository:
+
+ # make deb
+
+IMPORTANT: For either of these methods to work, you need to have the following
+perl packages installed on your system. For Debian/Ubuntu:
+
+   # apt-get install perl liblocale-po-perl libjson-perl
+
+
+Sending the Translation
+~~~~~~~~~~~~~~~~~~~~~~~
+You can send the finished translation (`.po` file) to the Proxmox team at the address
+office(at)proxmox.com, along with a signed contributor licence agreement.
+Alternatively, if you have some developer experience, you can send it as a
+patch to the {pve} development mailing list. See [Developer Documentation]
index 7f6b9e4..7458711 100644 (file)
@@ -68,6 +68,10 @@ Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread
 
 Backup all known guest systems included in the specified pool.
 
+`--prune-backups` `[keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]` ::
+
+Use these retention options instead of those from the storage configuration.
+
 `--quiet` `<boolean>` ('default =' `0`)::
 
 Be quiet.
index 42588df..b262499 100644 (file)
@@ -46,6 +46,34 @@ Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread
 
 Backup all known guest systems included in the specified pool.
 
+`prune-backups`: `[keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]` ::
+
+Use these retention options instead of those from the storage configuration.
+
+`keep-daily`=`<N>` ;;
+
+Keep backups for the last <N> different days. If there is morethan one backup for a single day, only the latest one is kept.
+
+`keep-hourly`=`<N>` ;;
+
+Keep backups for the last <N> different hours. If there is morethan one backup for a single hour, only the latest one is kept.
+
+`keep-last`=`<N>` ;;
+
+Keep the last <N> backups.
+
+`keep-monthly`=`<N>` ;;
+
+Keep backups for the last <N> different months. If there is morethan one backup for a single month, only the latest one is kept.
+
+`keep-weekly`=`<N>` ;;
+
+Keep backups for the last <N> different weeks. If there is morethan one backup for a single week, only the latest one is kept.
+
+`keep-yearly`=`<N>` ;;
+
+Keep backups for the last <N> different years. If there is morethan one backup for a single year, only the latest one is kept.
+
 `remove`: `<boolean>` ('default =' `1`)::
 
 Remove old backup files if there are more than 'maxfiles' backup files.