mirror of
				https://git.proxmox.com/git/pve-docs
				synced 2025-11-04 00:15:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			246 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			246 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
Introduction
 | 
						|
============
 | 
						|
 | 
						|
{pve} is a platform to run virtual machines and containers. It is
 | 
						|
based on Debian Linux, and completely open source. For maximum
 | 
						|
flexibility, we implemented two virtualization technologies -
 | 
						|
Kernel-based Virtual Machine (KVM) and container-based virtualization
 | 
						|
(LXC).
 | 
						|
 | 
						|
One main design goal was to make administration as easy as
 | 
						|
possible. You can use {pve} on a single node, or assemble a cluster of
 | 
						|
many nodes. All management tasks can be done using our web-based
 | 
						|
management interface, and even a novice user can setup and install
 | 
						|
{pve} within minutes.
 | 
						|
 | 
						|
image::images/pve-software-stack.svg["Proxmox Software Stack",align="center"]
 | 
						|
 | 
						|
 | 
						|
Central Management
 | 
						|
------------------
 | 
						|
 | 
						|
While many people start with a single node, {pve} can scale out to a
 | 
						|
large set of clustered nodes. The cluster stack is fully integrated
 | 
						|
and ships with the default installation.
 | 
						|
 | 
						|
Unique Multi-Master Design::
 | 
						|
 | 
						|
The integrated web-based management interface gives you a clean
 | 
						|
overview of all your KVM guests and Linux containers and even of your
 | 
						|
whole cluster. You can easily manage your VMs and containers, storage
 | 
						|
or cluster from the GUI. There is no need to install a separate,
 | 
						|
complex, and pricey management server.
 | 
						|
 | 
						|
Proxmox Cluster File System (pmxcfs)::
 | 
						|
 | 
						|
Proxmox VE uses the unique Proxmox Cluster file system (pmxcfs), a
 | 
						|
database-driven file system for storing configuration files. This
 | 
						|
enables you to store the configuration of thousands of virtual
 | 
						|
machines. By using corosync, these files are replicated in real time
 | 
						|
on all cluster nodes. The file system stores all data inside a
 | 
						|
persistent database on disk, nonetheless, a copy of the data resides
 | 
						|
in RAM which provides a maximum storage size is 30MB - more than
 | 
						|
enough for thousands of VMs.
 | 
						|
+
 | 
						|
Proxmox VE is the only virtualization platform using this unique
 | 
						|
cluster file system.
 | 
						|
 | 
						|
Web-based Management Interface::
 | 
						|
 | 
						|
Proxmox VE is simple to use. Management tasks can be done via the
 | 
						|
included web based management interface - there is no need to install a
 | 
						|
separate management tool or any additional management node with huge
 | 
						|
databases. The multi-master tool allows you to manage your whole
 | 
						|
cluster from any node of your cluster. The central web-based
 | 
						|
management - based on the JavaScript Framework (ExtJS) - empowers
 | 
						|
you to control all functionalities from the GUI and overview history
 | 
						|
and syslogs of each single node. This includes running backup or
 | 
						|
restore jobs, live-migration or HA triggered activities.
 | 
						|
 | 
						|
Command Line::
 | 
						|
 | 
						|
For advanced users who are used to the comfort of the Unix shell or
 | 
						|
Windows Powershell, Proxmox VE provides a command line interface to
 | 
						|
manage all the components of your virtual environment. This command
 | 
						|
line interface has intelligent tab completion and full documentation
 | 
						|
in the form of UNIX man pages.
 | 
						|
 | 
						|
REST API::
 | 
						|
 | 
						|
Proxmox VE uses a RESTful API. We choose JSON as primary data format,
 | 
						|
and the whole API is formally defined using JSON Schema. This enables
 | 
						|
fast and easy integration for third party management tools like custom
 | 
						|
hosting environments.
 | 
						|
 | 
						|
Role-based Administration::
 | 
						|
 | 
						|
You can define granular access for all objects (like VMs, storages,
 | 
						|
nodes, etc.) by using the role based user- and permission
 | 
						|
management. This allows you to define privileges and helps you to
 | 
						|
control access to objects. This concept is also known as access
 | 
						|
control lists: Each permission specifies a subject (a user or group)
 | 
						|
and a role (set of privileges) on a specific path.
 | 
						|
 | 
						|
Authentication Realms::
 | 
						|
 | 
						|
Proxmox VE supports multiple authentication sources like Microsoft
 | 
						|
Active Directory, LDAP, Linux PAM standard authentication or the
 | 
						|
built-in Proxmox VE authentication server.
 | 
						|
 | 
						|
 | 
						|
Flexible Storage
 | 
						|
----------------
 | 
						|
 | 
						|
The Proxmox VE storage model is very flexible. Virtual machine images
 | 
						|
can either be stored on one or several local storages or on shared
 | 
						|
storage like NFS and on SAN. There are no limits, you may configure as
 | 
						|
many storage definitions as you like. You can use all storage
 | 
						|
technologies available for Debian Linux.
 | 
						|
 | 
						|
One major benefit of storing VMs on shared storage is the ability to
 | 
						|
live-migrate running machines without any downtime, as all nodes in
 | 
						|
the cluster have direct access to VM disk images.
 | 
						|
 | 
						|
We currently support the following Network storage types:
 | 
						|
 | 
						|
* LVM Group (network backing with iSCSI targets)
 | 
						|
* iSCSI target
 | 
						|
* NFS Share
 | 
						|
* Ceph RBD
 | 
						|
* Directly use iSCSI LUNs
 | 
						|
* GlusterFS
 | 
						|
 | 
						|
Local storage types supported are:
 | 
						|
 | 
						|
* LVM Group (local backing devices like block devices, FC devices, DRBD, etc.)
 | 
						|
* Directory (storage on existing filesystem)
 | 
						|
* ZFS
 | 
						|
 | 
						|
 | 
						|
Integrated Backup and Restore
 | 
						|
-----------------------------
 | 
						|
 | 
						|
The integrated backup tool (`vzdump`) creates consistent snapshots of
 | 
						|
running Containers and KVM guests. It basically creates an archive of
 | 
						|
the VM or CT data which includes the VM/CT configuration files.
 | 
						|
 | 
						|
KVM live backup works for all storage types including VM images on
 | 
						|
NFS, iSCSI LUN, Ceph RBD or Sheepdog. The new backup format is
 | 
						|
optimized for storing VM backups fast and effective (sparse files, out
 | 
						|
of order data, minimized I/O).
 | 
						|
 | 
						|
 | 
						|
High Availability Cluster
 | 
						|
-------------------------
 | 
						|
 | 
						|
A multi-node Proxmox VE HA Cluster enables the definition of highly
 | 
						|
available virtual servers. The Proxmox VE HA Cluster is based on
 | 
						|
proven Linux HA technologies, providing stable and reliable HA
 | 
						|
services.
 | 
						|
 | 
						|
 | 
						|
Flexible Networking
 | 
						|
-------------------
 | 
						|
 | 
						|
Proxmox VE uses a bridged networking model. All VMs can share one
 | 
						|
bridge as if virtual network cables from each guest were all plugged
 | 
						|
into the same switch. For connecting VMs to the outside world, bridges
 | 
						|
are attached to physical network cards assigned a TCP/IP
 | 
						|
configuration.
 | 
						|
 | 
						|
For further flexibility, VLANs (IEEE 802.1q) and network
 | 
						|
bonding/aggregation are possible. In this way it is possible to build
 | 
						|
complex, flexible virtual networks for the Proxmox VE hosts,
 | 
						|
leveraging the full power of the Linux network stack.
 | 
						|
 | 
						|
 | 
						|
Integrated Firewall
 | 
						|
-------------------
 | 
						|
 | 
						|
The integrated firewall allows you to filter network packets on
 | 
						|
any VM or Container interface. Common sets of firewall rules can
 | 
						|
be grouped into ``security groups''.
 | 
						|
 | 
						|
 | 
						|
Why Open Source
 | 
						|
---------------
 | 
						|
 | 
						|
Proxmox VE uses a Linux kernel and is based on the Debian GNU/Linux
 | 
						|
Distribution. The source code of Proxmox VE is released under the
 | 
						|
http://www.gnu.org/licenses/agpl-3.0.html[GNU Affero General Public
 | 
						|
License, version 3]. This means that you are free to inspect the
 | 
						|
source code at any time or contribute to the project yourself.
 | 
						|
 | 
						|
At Proxmox we are committed to use open source software whenever
 | 
						|
possible. Using open source software guarantees full access to all
 | 
						|
functionalities - as well as high security and reliability. We think
 | 
						|
that everybody should have the right to access the source code of a
 | 
						|
software to run it, build on it, or submit changes back to the
 | 
						|
project. Everybody is encouraged to contribute while Proxmox ensures
 | 
						|
the product always meets professional quality criteria.
 | 
						|
 | 
						|
Open source software also helps to keep your costs low and makes your
 | 
						|
core infrastructure independent from a single vendor.
 | 
						|
 | 
						|
 | 
						|
Your benefit with {pve}
 | 
						|
-----------------------
 | 
						|
 | 
						|
* Open source software
 | 
						|
* No vendor lock-in
 | 
						|
* Linux kernel
 | 
						|
* Fast installation and easy-to-use
 | 
						|
* Web-based management interface
 | 
						|
* REST API
 | 
						|
* Huge active community
 | 
						|
* Low administration costs and simple deployment
 | 
						|
 | 
						|
include::getting-help.adoc[]
 | 
						|
 | 
						|
 | 
						|
Project History
 | 
						|
---------------
 | 
						|
 | 
						|
The project started in 2007, followed by a first stable version in
 | 
						|
2008. At the time we used OpenVZ for containers, and KVM for virtual
 | 
						|
machines. The clustering features were limited, and the user interface
 | 
						|
was simple (server generated web page).
 | 
						|
 | 
						|
But we quickly developed new features using the
 | 
						|
http://corosync.github.io/corosync/[Corosync] cluster stack, and the
 | 
						|
introduction of the new Proxmox cluster file system (pmxcfs) was a big
 | 
						|
step forward, because it completely hides the cluster complexity from
 | 
						|
the user. Managing a cluster of 16 nodes is as simple as managing a
 | 
						|
single node.
 | 
						|
 | 
						|
We also introduced a new REST API, with a complete declarative
 | 
						|
specification written in JSON-Schema. This enabled other people to
 | 
						|
integrate {pve} into their infrastructure, and made it easy to provide
 | 
						|
additional services.
 | 
						|
 | 
						|
Also, the new REST API made it possible to replace the original user
 | 
						|
interface with a modern HTML5 application using JavaScript. We also
 | 
						|
replaced the old Java based VNC console code with
 | 
						|
https://kanaka.github.io/noVNC/[noVNC]. So you only need a web browser
 | 
						|
to manage your VMs.
 | 
						|
 | 
						|
The support for various storage types is another big task. Notably,
 | 
						|
{pve} was the first distribution to ship ZFS on Linux by default in
 | 
						|
2014. Another milestone was the ability to run and manage
 | 
						|
http://ceph.com/[Ceph] storage on the hypervisor nodes. Such setups
 | 
						|
are extremely cost effective.
 | 
						|
 | 
						|
When we started we were among the first companies providing
 | 
						|
commercial support for KVM. The KVM project itself continuously
 | 
						|
evolved, and is now a widely used hypervisor. New features arrive
 | 
						|
with each release. We developed the KVM live backup feature, which
 | 
						|
makes it possible to create snapshot backups on any storage type.
 | 
						|
 | 
						|
The most notable change with version 4.0 was the move from OpenVZ to
 | 
						|
https://linuxcontainers.org/[LXC]. Containers are now deeply
 | 
						|
integrated, and they can use the same storage and network features
 | 
						|
as virtual machines.
 | 
						|
 | 
						|
include::howto-improve-pve-docs.adoc[]
 | 
						|
 |