]>
Commit | Line | Data |
---|---|---|
0fe09789 DM |
1 | Introduction |
2 | ============ | |
3 | ||
4 | {pve} is a platform to run virtual machines and containers. It is | |
5 | based on Debian Linux, and completely open source. For maximum | |
6 | flexibility, we implemented two virtualization technologies - | |
7 | Kernel-based Virtual Machine (KVM) and container-based virtualization | |
8 | (LXC). | |
9 | ||
10 | One main design goal was to make administration as easy as | |
11 | possible. You can use {pve} on a single node, or assemble a cluster of | |
de5c87d9 | 12 | many nodes. All management tasks can be done using our web-based |
0fe09789 DM |
13 | management interface, and even a novice user can setup and install |
14 | {pve} within minutes. | |
15 | ||
16 | image::images/pve-software-stack.svg["Proxmox Software Stack",align="center"] | |
17 | ||
18 | ||
6dc16cda | 19 | [[intro_central_management]] |
0fe09789 DM |
20 | Central Management |
21 | ------------------ | |
22 | ||
23 | While many people start with a single node, {pve} can scale out to a | |
24 | large set of clustered nodes. The cluster stack is fully integrated | |
25 | and ships with the default installation. | |
26 | ||
5eba0743 | 27 | Unique Multi-Master Design:: |
0fe09789 DM |
28 | |
29 | The integrated web-based management interface gives you a clean | |
30 | overview of all your KVM guests and Linux containers and even of your | |
31 | whole cluster. You can easily manage your VMs and containers, storage | |
32 | or cluster from the GUI. There is no need to install a separate, | |
5eba0743 | 33 | complex, and pricey management server. |
0fe09789 | 34 | |
98d7e09a | 35 | Proxmox Cluster File System (pmxcfs):: |
0fe09789 | 36 | |
755949f1 | 37 | {pve} uses the unique Proxmox Cluster file system (pmxcfs), a |
0fe09789 DM |
38 | database-driven file system for storing configuration files. This |
39 | enables you to store the configuration of thousands of virtual | |
40 | machines. By using corosync, these files are replicated in real time | |
41 | on all cluster nodes. The file system stores all data inside a | |
42 | persistent database on disk, nonetheless, a copy of the data resides | |
a22d7c24 | 43 | in RAM which provides a maximum storage size of 30MB - more than |
0fe09789 | 44 | enough for thousands of VMs. |
98d7e09a | 45 | + |
755949f1 | 46 | {pve} is the only virtualization platform using this unique |
0fe09789 DM |
47 | cluster file system. |
48 | ||
98d7e09a | 49 | Web-based Management Interface:: |
0fe09789 | 50 | |
755949f1 | 51 | {pve} is simple to use. Management tasks can be done via the |
5eba0743 | 52 | included web based management interface - there is no need to install a |
0fe09789 DM |
53 | separate management tool or any additional management node with huge |
54 | databases. The multi-master tool allows you to manage your whole | |
55 | cluster from any node of your cluster. The central web-based | |
56 | management - based on the JavaScript Framework (ExtJS) - empowers | |
57 | you to control all functionalities from the GUI and overview history | |
58 | and syslogs of each single node. This includes running backup or | |
59 | restore jobs, live-migration or HA triggered activities. | |
60 | ||
98d7e09a | 61 | Command Line:: |
0fe09789 DM |
62 | |
63 | For advanced users who are used to the comfort of the Unix shell or | |
755949f1 | 64 | Windows Powershell, {pve} provides a command line interface to |
0fe09789 DM |
65 | manage all the components of your virtual environment. This command |
66 | line interface has intelligent tab completion and full documentation | |
67 | in the form of UNIX man pages. | |
68 | ||
98d7e09a | 69 | REST API:: |
0fe09789 | 70 | |
755949f1 | 71 | {pve} uses a RESTful API. We choose JSON as primary data format, |
0fe09789 DM |
72 | and the whole API is formally defined using JSON Schema. This enables |
73 | fast and easy integration for third party management tools like custom | |
74 | hosting environments. | |
75 | ||
98d7e09a | 76 | Role-based Administration:: |
0fe09789 | 77 | |
5eba0743 | 78 | You can define granular access for all objects (like VMs, storages, |
0fe09789 DM |
79 | nodes, etc.) by using the role based user- and permission |
80 | management. This allows you to define privileges and helps you to | |
81 | control access to objects. This concept is also known as access | |
82 | control lists: Each permission specifies a subject (a user or group) | |
83 | and a role (set of privileges) on a specific path. | |
84 | ||
98d7e09a | 85 | Authentication Realms:: |
0fe09789 | 86 | |
755949f1 | 87 | {pve} supports multiple authentication sources like Microsoft |
0fe09789 | 88 | Active Directory, LDAP, Linux PAM standard authentication or the |
755949f1 | 89 | built-in {pve} authentication server. |
0fe09789 DM |
90 | |
91 | ||
5eba0743 | 92 | Flexible Storage |
0fe09789 DM |
93 | ---------------- |
94 | ||
755949f1 | 95 | The {pve} storage model is very flexible. Virtual machine images |
0fe09789 DM |
96 | can either be stored on one or several local storages or on shared |
97 | storage like NFS and on SAN. There are no limits, you may configure as | |
98 | many storage definitions as you like. You can use all storage | |
99 | technologies available for Debian Linux. | |
100 | ||
101 | One major benefit of storing VMs on shared storage is the ability to | |
102 | live-migrate running machines without any downtime, as all nodes in | |
103 | the cluster have direct access to VM disk images. | |
104 | ||
105 | We currently support the following Network storage types: | |
106 | ||
107 | * LVM Group (network backing with iSCSI targets) | |
108 | * iSCSI target | |
109 | * NFS Share | |
de14ebff | 110 | * CIFS Share |
0fe09789 DM |
111 | * Ceph RBD |
112 | * Directly use iSCSI LUNs | |
113 | * GlusterFS | |
114 | ||
115 | Local storage types supported are: | |
116 | ||
117 | * LVM Group (local backing devices like block devices, FC devices, DRBD, etc.) | |
118 | * Directory (storage on existing filesystem) | |
119 | * ZFS | |
120 | ||
5eba0743 | 121 | |
0fe09789 DM |
122 | Integrated Backup and Restore |
123 | ----------------------------- | |
124 | ||
8c1189b6 | 125 | The integrated backup tool (`vzdump`) creates consistent snapshots of |
0fe09789 DM |
126 | running Containers and KVM guests. It basically creates an archive of |
127 | the VM or CT data which includes the VM/CT configuration files. | |
128 | ||
129 | KVM live backup works for all storage types including VM images on | |
e4fefc2c CE |
130 | NFS, CIFS, iSCSI LUN, Ceph RBD. The new backup format is optimized for storing |
131 | VM backups fast and effective (sparse files, out of order data, minimized I/O). | |
0fe09789 | 132 | |
5eba0743 | 133 | |
0fe09789 DM |
134 | High Availability Cluster |
135 | ------------------------- | |
136 | ||
755949f1 TL |
137 | A multi-node {pve} HA Cluster enables the definition of highly |
138 | available virtual servers. The {pve} HA Cluster is based on | |
0fe09789 DM |
139 | proven Linux HA technologies, providing stable and reliable HA |
140 | services. | |
141 | ||
5eba0743 | 142 | |
0fe09789 DM |
143 | Flexible Networking |
144 | ------------------- | |
145 | ||
755949f1 | 146 | {pve} uses a bridged networking model. All VMs can share one |
0fe09789 DM |
147 | bridge as if virtual network cables from each guest were all plugged |
148 | into the same switch. For connecting VMs to the outside world, bridges | |
a22d7c24 | 149 | are attached to physical network cards and assigned a TCP/IP |
0fe09789 DM |
150 | configuration. |
151 | ||
152 | For further flexibility, VLANs (IEEE 802.1q) and network | |
153 | bonding/aggregation are possible. In this way it is possible to build | |
755949f1 | 154 | complex, flexible virtual networks for the {pve} hosts, |
0fe09789 DM |
155 | leveraging the full power of the Linux network stack. |
156 | ||
8c1189b6 | 157 | |
0fe09789 DM |
158 | Integrated Firewall |
159 | ------------------- | |
160 | ||
5eba0743 | 161 | The integrated firewall allows you to filter network packets on |
8c1189b6 FG |
162 | any VM or Container interface. Common sets of firewall rules can |
163 | be grouped into ``security groups''. | |
164 | ||
4360c00f TM |
165 | include::hyper-converged-infrastructure.adoc[] |
166 | ||
0fe09789 DM |
167 | |
168 | Why Open Source | |
169 | --------------- | |
170 | ||
755949f1 TL |
171 | {pve} uses a Linux kernel and is based on the Debian GNU/Linux |
172 | Distribution. The source code of {pve} is released under the | |
a55d30db | 173 | https://www.gnu.org/licenses/agpl-3.0.html[GNU Affero General Public |
0fe09789 DM |
174 | License, version 3]. This means that you are free to inspect the |
175 | source code at any time or contribute to the project yourself. | |
176 | ||
177 | At Proxmox we are committed to use open source software whenever | |
178 | possible. Using open source software guarantees full access to all | |
179 | functionalities - as well as high security and reliability. We think | |
180 | that everybody should have the right to access the source code of a | |
181 | software to run it, build on it, or submit changes back to the | |
182 | project. Everybody is encouraged to contribute while Proxmox ensures | |
183 | the product always meets professional quality criteria. | |
184 | ||
185 | Open source software also helps to keep your costs low and makes your | |
186 | core infrastructure independent from a single vendor. | |
187 | ||
5eba0743 | 188 | |
a22d7c24 | 189 | Your benefits with {pve} |
424214c1 | 190 | ------------------------ |
0fe09789 DM |
191 | |
192 | * Open source software | |
193 | * No vendor lock-in | |
194 | * Linux kernel | |
195 | * Fast installation and easy-to-use | |
196 | * Web-based management interface | |
197 | * REST API | |
198 | * Huge active community | |
199 | * Low administration costs and simple deployment | |
200 | ||
fe907b65 EK |
201 | include::getting-help.adoc[] |
202 | ||
5eba0743 | 203 | |
6dc16cda | 204 | [[intro_project_history]] |
0fe09789 DM |
205 | Project History |
206 | --------------- | |
207 | ||
208 | The project started in 2007, followed by a first stable version in | |
5eba0743 | 209 | 2008. At the time we used OpenVZ for containers, and KVM for virtual |
0fe09789 DM |
210 | machines. The clustering features were limited, and the user interface |
211 | was simple (server generated web page). | |
212 | ||
213 | But we quickly developed new features using the | |
a55d30db | 214 | https://corosync.github.io/corosync/[Corosync] cluster stack, and the |
0fe09789 DM |
215 | introduction of the new Proxmox cluster file system (pmxcfs) was a big |
216 | step forward, because it completely hides the cluster complexity from | |
217 | the user. Managing a cluster of 16 nodes is as simple as managing a | |
218 | single node. | |
219 | ||
220 | We also introduced a new REST API, with a complete declarative | |
5eba0743 FG |
221 | specification written in JSON-Schema. This enabled other people to |
222 | integrate {pve} into their infrastructure, and made it easy to provide | |
0fe09789 DM |
223 | additional services. |
224 | ||
225 | Also, the new REST API made it possible to replace the original user | |
226 | interface with a modern HTML5 application using JavaScript. We also | |
227 | replaced the old Java based VNC console code with | |
228 | https://kanaka.github.io/noVNC/[noVNC]. So you only need a web browser | |
229 | to manage your VMs. | |
230 | ||
231 | The support for various storage types is another big task. Notably, | |
232 | {pve} was the first distribution to ship ZFS on Linux by default in | |
233 | 2014. Another milestone was the ability to run and manage | |
a55d30db | 234 | https://ceph.com/[Ceph] storage on the hypervisor nodes. Such setups |
0fe09789 DM |
235 | are extremely cost effective. |
236 | ||
237 | When we started we were among the first companies providing | |
238 | commercial support for KVM. The KVM project itself continuously | |
5eba0743 | 239 | evolved, and is now a widely used hypervisor. New features arrive |
0fe09789 DM |
240 | with each release. We developed the KVM live backup feature, which |
241 | makes it possible to create snapshot backups on any storage type. | |
242 | ||
243 | The most notable change with version 4.0 was the move from OpenVZ to | |
244 | https://linuxcontainers.org/[LXC]. Containers are now deeply | |
245 | integrated, and they can use the same storage and network features | |
246 | as virtual machines. | |
abafd0a3 | 247 | |
3ef512ec | 248 | include::howto-improve-pve-docs.adoc[] |
8d7b6807 | 249 | include::translation.adoc[] |
3ef512ec | 250 |