Cloud Computing with Proxmox VE
Proxmox Virtual Environment is an easy to use Open Source virtualization platform for running Virtual Appliances and Virtual Machines. Proxmox VE is an open source project, developed and maintained by Proxmox Server Solutions GmbH. Proxmox VE delivers a virtualization platform for software vendors and Open source projects for running their server software as a pre-configured Virtual Appliance on the Proxmox VE. Virtual Appliances are pre-installed, pre-configured and ready to use applications and software solutions, coming prepacked with an operating system in form of a virtual machine.
- Dual Socket, Quad Core CPU
- CPU: 64bit (Intel EMT64 or AMD64), Multi core CPU recommended
- Intel VT/AMD-V capable CPU/Mainboard (for KVM Full Virtualization support)
- 8 GB RAM is good, more is better (grab as much as possible)
- Hardware RAID with batteries protected write cache (BBU)
- Fast hard drives, best results with 15k rpm SAS, Raid10
Two Gbit NIC (for bonding), additional NIC´s depending on the preferred storage technology
Minimum (for testing)
- CPU: 64bit (Intel EMT64 or AMD64)
- Intel VT/AMD-V capable CPU/Mainboard (for KVM Full Virtualization support)
- Minimum 1 GB RAM
- Hard drive
- One NIC
Supported storage technologies (NAS/SAN)
The following standard technologies are supported, if you are unsure which one to choose contact us.
- Local storage (mandatory)
… and all other Debian capable solutions
Container and Full Virtualization
Proxmox VE is optimized for performance and usability. For maximum flexibility, the following virtualization technologies are installed by the bare metal ISO-installer.
- CPU: 64bit (Intel EMT64 or AMD64)
This is the preferred technology for running Linux servers as it is the fastest approach. OpenVZ is container-based virtualization for Linux. OpenVZ creates multiple secure, isolated containers (otherwise known as CT, VEs or VPSs). Each container performs and executes exactly like a stand-alone server; a container can be rebooted independently and have root access, users, IP addresses, memory, processes, files, applications, system libraries and configuration files.
Currently all Virtual Appliances are OpenVZ based and are “production ready”.
For details see OpenVZ.
KVM (for Kernel-based Virtual Machine) is a full virtualization solution on x86 hardware containing virtualization extensions (Intel VT or AMD-V CPU is needed). Each virtual machine has private virtualized hardware: a network card, disk, graphics adapter, etc. KVM is a similar to XEN, but KVM is part of Linux and uses the regular Linux scheduler and memory management.
KVM is perfectly suited to unmodified operating systems including windows operating systems like Windows 2000, Windows XP, Windows Vista, Windows Server 2003 and Windows Server 2008.
For details see KVM.
KVM supports paravirtualization for device drivers to improve I/O performances. See Paravirtualized Network Drivers for Windows.
For all details see KVM.
Bare-metal ISO Installer
“Bare-metal” means that you start from a empty server – there is no need to install a base operation system.
Including the following:
- Complete operating system (Debian Lenny 64)
- Partition the hard drive with LVM2
- Proxmox VE Kernel with OpenVZ and KVM support
- Backup/Restore tools
- Web based management interface
- Proxmox uses LVM – See backup and restore of LVM data.
Please note, the complete server is used and all existing data is removed.
See Installation for more details.
Central Web-based Management
Proxmox VE is simple. There is no need to install a separate management tool, everything can be done via your web browser (IE6/7/8/9, Firefox 2/3/4, also others should work)
The web interface can be reached via https://youripaddress (default login is: root, the password is specified during the installation)
- Integrated console view to the Virtual Machines
- Seamless integration and management of Proxmox VE Cluster
- AJAX technologies for dynamic updates of resources
- Secure access to all Virtual Machines via SSL encryption (https); (Note: VNC console is not encrypted, work in progress)
Backup – Restore – Live Migration
VZDump is an utility to make consistent snapshots of running Virtual Machines (OpenVZ containers and KVM). It basically creates a tar archive of the Virtual Machines private area, which also includes the configuration files.
There are several ways to provide consistency:
- stop: Stop the VE during backup (very long downtime)
- suspend: Use suspend/resume (minimal downtime with OpenVZ, long downtime with KVM VMs)
- snapshot: Use LVM2 (no downtime, online)
VZDump stores the backup on the disk in a single file. This file should go to a tape backup for archiving. You can copy the file directly to a remote storage for easy tape backup (e.g. on a windows file server).
For details regarding OpenVZ commandline version see Backup of a running container with vzdump
Also check out the man pages:
Proxmox VE provides a web interface to define the backup jobs. First step is to define a backup storage. Most people simply use a NFS share on their NAS/SAN. Simply select content ‘VZDump Backups’ when you configure the storage. See also Storage Model
Next you can define the backup job using that storage.
The resulting configuration is saved as cron job to ‘/etc/cron.d/vzdump’. That file is syncronized to all cluster nodes.
To restore a Virtual Machine, just copy the tar file to the host where you want to restore. Depending on the type of virtual machine, use ‘vzrestore’ to restore OpenVZ containers, or ‘qmrestore’ to restore KVM machines.
Example1: Restore the backup of KVM VM 555 (backup file: vzdump-qemu-555.tar) to CT 500
qmrestore vzdump-qemu-555.tar 500
Example2: Restore the backup of OpenVZ container CT 777 (backup file: vzdump-openvz-777.tar) to CT 600
vzrestore vzdump-openvz-777.tar 600
Example3: Restore the backup of KVM VM 555 (backup file: vzdump-qemu-555.tgz) to CT 500 in Storage with the Name raid1data
qmrestore –storage raid1data vzdump-qemu-555.tgz 500
Proxmox VE support live migration of Virtual Machines via web interface. To migrate from one physical host to another, you need at least two Proxmox VE servers.
Proxmox VE Cluster
Proxmox VE Cluster enables central management of multiple physical servers. A Proxmox VE Cluster consists of one master and several nodes (minimum is a master and one node).
- Centralized web management
- One login and password for accessing all nodes and guests
- Console view to all Virtual Machines
- Migration of Virtual Machines between physical hosts
- Synchronized Virtual Appliance template store
First, install two Proxmox VE servers, see Installation. Make sure that each Proxmox VE server has a unique host name, by default all server has the same host name.
Currently the cluster creation has to be done on the console, you can login to the Proxmox VE server via ssh.
All settings can be done via “pveca”, the PVE Cluster Administration Toolkit
USAGE: pveca -l # show cluster status
pveca -c # create new cluster with localhost as master
pveca -s [-h IP] # sync cluster configuration from master (or IP)
pveca -d ID # delete a node
pveca -a [-h IP] # add new node to cluster
pveca -m # force local node to become master
Login via ssh to the first Proxmox VE server.
Create the master:
To check the state of cluster:
Login via ssh to a second Proxmox VE server. Please note, the node should not have any VM´s. (If yes you will get conflicts with identical VMID´s – to workaround, use vzdump to backup and to restore to a different VMID after the cluster configuration).
Join a node to the master:
pveca -a -h IP-ADDRESS-MASTER
To check the state of cluster:
Display the state of cluster:
1 : 192.168.7.104 M A 5 days 01:43 0.54 20% 1% 4%
2 : 192.168.7.103 N A 2 days 05:02 0.04 26% 5% 29%
3 : 192.168.7.105 N A 00:13 1.41 22% 3% 15%
4 : 192.168.7.106 N A 00:05 0.54 17% 3% 3%
Through the Central Web-based Management move all virtual machines out of the node you need to remove from the cluster. Make sure you have no local backups you want to keep, and save them accordingly.
Log into the cluster master node via ssh. Issue a pceva command to identify the nodeID:
1 : 172.25.3.40 M A 58 days 00:02 0.02 7% 75%
2 : 172.25.3.41 N A 57 days 22:42 0.02 2% 90%
3 : 172.25.3.39 N A 59 days 00:26 0.00 2% 14%
Issue the delete command (here deleting node #3):
pveca -d 3
If the operation succeeds no output is returned.
PVE cluster unconfigures the slave node and shortly it will not be visible into the Central Web-based Management.
Please note that the node will not see the shared storage anymore.
NOTE: if you got a critical production system you should test upgrades in your test lab.
Here are two possible ways to perform cluster upgrades (new pve versions, etc), example for a simple two nodes cluster:
If you want to keep the disruption to each vm as short as possible:
- Live Migrate all VMs to the master node
- Update the slave node.
- Reboot Slave node.
- One by One turn off a VM, offline migrate to updated node, turn it on on new node.
- After all vms are moved, update the master node and reboot it.
- Then live migrate some of the vms back to the master node where they belong.
This can also be done backwards, i.e update the master first and then the slave. Users report to have done this without issues. But it could be better to update the slaves first then the master.
Users have also updated like this:
- turn off all the vms on a node.
- install updates
- let VMs autostart or manually start them
- repeat process till all nodes are updated.
Now, you can start creating Virtual Machines on Cluster nodes by using the Central Web-based Management on the master.
You can manually check the cluster configuration files on each node. Before you edit these files, stop the cluster sync and tunnel service via web interface.
Also check if the following file are still up to date, if not because your keys got updated just remove/adapt it.
Delete and recreate a cluster configuration
Sometimes it’s quicker to delete and recreate your cluster configuration than it is to try and figure out what went wrong. The process includes stoping the cluster sync and tunnel service, deleting the existing cluster config and creating/joining the new cluster. The steps can be found below:
Note: If your ssh host keys have changed you may need to delete them on each host before you begin:
- Jot down the IP of the new master node.
Run on new master node:
Verify that the cluster has been created:
Run on nodes you wish to add to the new cluster.
- Note: Change IP-ADDRESS-MASTER to the IP of the new master node.
pveca -a -h IP-ADDRESS-MASTER
Verify that the node has been added to the new cluster:
If you are getting the error “local node already part of cluster” and you have verified that the host name is different than any other node then you may have not properly indented you /etc/network/interfaces file. Example:
iface vmbr0 inet static
iface vmbr0 inet static
- Griffon’s IT Library – ProxMox Cluster Walkthrough
Virtual Appliances can be downloaded directly via the Central Web-based Management
- Additional information Virtual Appliances
- All standard OpenVZ templates can also be used (manual upload necessary)
Updating of Old Containers’ Startup Scripts
As of Proxmox VE v1.8 with vzevents revision – pve-manager: 1.8-17 (pve-manager/1.8/5948), kindly update all OpenVZ containers that rely on file-rc to sysv-rc thus:
aptitude install sysv-rc insserv
This will ensure that they reboot immediately. This fixes the issue in this post.
SugarCRM is the world’s leading provider of commercial open source customer relationship management (CRM) software for companies of all sizes. Sugar easily adapts to any business environment by offering a more flexible, cost-effective alternative than proprietary applications. SugarCRM’s open source architecture allows companies to more easily customize and integrate customer-facing business processes in order to build and maintain more profitable relationships.
Zenoss Core is an award-winning open source IT monitoring product that delivers the functionality to effectively manage the configuration, health and performance of networks, servers and applications through a single, integrated software package.
MediaWiki is a wiki engine (a program for creating a collaboratively edited website).
Mediawiki v1.16.x is an improved wiki engine (a program for creating a collaboratively edited website). It is built from scratch and not based on the old deb package but uses the same file paths.
Acquia Drupal is a commercially supported distribution of the open source Drupal social publishing system. A packaged collection of some of the best software from the Drupal community, Acquia Drupal offers you an advanced starting point to quickly begin building Drupal websites.
Drupal is a free software package that allows an individual or a community of users to easily publish, manage and organize a wide variety of content on a website. Tens of thousands of people and organizations are using Drupal to power scores of different web sites, including community web portals, discussion sites, corporate web sites, intranet applications, personal web sites or blogs, ….
Joomla! 1.6 is one of the most powerful Open Source Content Management Systems on the planet. It is used all over the world for everything from simple websites to complex corporate applications. Joomla! is easy to install, simple to manage, and reliable.
Joomla! v1.6 builds upon the success of Joomla! v1.5.x as the best Open Source Content Management Systems of choice. It is easy to install, simple to manage, and is becoming more reliable. This avatar brings with it fine grained ACLs, SEO, Speed, Power and Control of Options like never before.
Zimbra is a client and server platform for next-generation messaging and collaboration. Is a alternative for MS Exchange (Open Source and commercial versions available)
RT is the leading open-source issue- and ticket-tracking system, providing enterprise-grade quality and reliability.
WordPress is a state-of-the-art publishing platform with a focus on aesthetics, web standards, and usability. WordPress is both free and priceless at the same time.
BlueOnyx is a Cobalt Clone Hosting Appliance. BlueOnyx is the successor to the NuOnce-BlueQuartz Appliance and is both free and priceless at the same time. Download from BlueOnyx Download
Care2x is an Open Source Health care and Hospital Management Application.
eyeOS is the Cloud Computing Operating System. Work online – personally or collaboratively – with your files, office, calendar, contacts and much more. Your data is safe and always available –eyeOS is Free Software!
FrontAccounting is an entire ERP for an SME based on PHP / MySQL that means it is an accounts cum inventory cum manufacturing web based software operated solely through a browser. A Training Company with test data is available on first install and User types are Administrator, Accountant and Inquirer.
Moodle is a Course Management System (CMS), also known as a Learning Management System (LMS) or a Virtual Learning Environment (VLE). It is a Free web application that educators can use to create effective online learning sites.
OpenGOO is now Feng Office. It is a web based collaboration tool allowing businesses to manage project tasks, billing, documents, communication with co-workers, customers and vendors, schedule meetings and events, and share every kind of electronic information.
OrangeHRM is a Human Resource Management application that is web based and Open Source. It runs off a PHP / MySQL / Apache stack and has a clean interface. The official addon modules are not free though.
Prestashop is an e-Commerce solution / online shop sporting an elegant shopping cart with extensive backoffice and frontoffice features – free and Open Source – in rapid development based on PHP / MySQL / Apache stack.
Justin Kelly’s Simple Invoices from down under is a superb Open Source PHP based Invoicing System supporting PDO, MySQL, Postgres and SQLite, avoiding spreadsheets and accessible from anywhere. You can create receipts, estimates, quotes and other document types. It supports products, tax rates, database backups, integrated database upgrades and tracks invoice payments with a slew of reports.
Simple-GroupWare and CMS is an open source enterprise groupware. It offers email, calendaring, contacts, tasks, document management, project management, synchronization with Outlook and cell phones, full-text search, extensions and many more. Written in PHP that combines standards like RSS, iCalendar, vCard, IMAP, POP3, SMTP, CIFS, CSV, WebDAV, LDAP and SyncML under one platform, it leverages sgsML for easy generation of new functionality.
vTigerCRM is a free and Open Source full featured CRM in active development. Sales Force Automation, Customer Support and Service, Marketing, Inventory, Activity and Security Management, Calendaring, EMail and PBX Integration are standard features. Many plug-ins, extensions and device interfaces are available.
PBX in a Flash OpenVZ Template currently available for ProxMox from the PIAF Forums. Till we have our own….
FreePBX available as a openvz dump with installation instructions here: http://blog.wedovoice.com/projects/freepbx-for-proxmox-openvz/ Includes: – a standard FreePBX – a provision system – nginx + php-fpm instead of Apache – ntpd + dnscache
- 2011-12-29 at the above site, the download link is broken. I got dropbox Error (404)
DebPBX is a platform of free software (licensed under GPLv2) based on Debian and Asterisk. It provides the function of a IP telephone system (PBX). Like any PBX, you can connect a number of phones to make calls to each other and even connect to a VoIP provider or to an ISDN (ISDN) basic and primary education. For more information visit our web site www.debpbx.org
- Debian v6.0.0 (Squeeze)
- Asterisk 1.8.3
- Dahdi 2.4.1+2.4.1
- FreePBX 2.9beta2
- Script installation addons
Dolibarr ERP/CRM is a Web based OpenSource software to manage a professional or foundation activity (small and medium enterprises, freelancers) – free and Open Source – in rapid development based on PHP / MySQL / Apache stack. (compatible with PostgreSQL)
A small Debian Etch 4.0 system including all standard packages.
A small Debian Etch 4.0 (64-bit) system including all standard packages. Download manually: debian-4.0-standard_4.0-5_amd64
A small Debian Lenny 5.0 system including all standard packages. This is the best supported and preferred OS template on Proxmox VE.
A small Debian Lenny 5.0 (64-bit) system including all standard packages. Download manually: debian-5.0-standard_5.0-2_amd64
A small Debian Squeeze 6.0 system including all standard packages. This is the best supported and preferred future OS template on Proxmox VE.
A standard Debian Squeeze 6.0 (64-bit) system including all standard packages. Download manually: debian-6.0-standard_6.0-4_amd64
A standard Ubuntu 8.04 system.
A standard Ubuntu 8.04 (64-bit) system. Download manually: ubuntu-8.04-standard_8.04-3_amd64
A standard Ubuntu 10.04 system.
A standard Ubuntu 10.04 (64-bit) system. Download manually: ubuntu-10.04-standard_10.04-4_amd64
A standard Ubuntu 11.04 system. Download manually: ubuntu-11.04-standard_11.04-1_i386
A standard Ubuntu 11.04 (64-bit) system. Download manually: ubuntu-11.04-standard_11.04-1_amd64
A standard CentOS 5 template.
A standard CentOS 5 (64-bit) template system including all standard packages. Download manually: centos-5-standard_5.6-1_amd64
A standard CentOS 4 template.
A standard CentOS 4 (64-bit) template system including all standard packages. Download manually: centos-4-standard_4.9-1_amd64
A standard Fedora 9 template.
A standard Fedora 14 (64-bit) template. Download manually: fedora-14-standard_14-1_amd64