Proxmox
HOWTO: First Steps After Installation
Add the no subscription repository...
echo "deb http://download.proxmox.com/debian/pve buster pve-no-subscription" >>/etc/apt/sources.list apt-get update apt-get check apt-get --simulate dist-upgrade
https://bendellar.com/simple-repository-setup-for-proxmox/
HOWTO: Update PCI and USB IDs
update-pciids update-usbids
HOWTO: Set System Locale
dpkg-reconfigure locales (and choose en_GB.utf8)
Thanks - https://wiki.debian.org/Locale
HOWTO: Change To Software RAID and LVM
Do NOT do this if you are using the new 4.x version of Proxmox and have chosen ZFS (RAID) filesystem!
Install Software
aptitude install mdadm
Prepare Disks
sgdisk -R=/dev/sdb /dev/sda sgdisk -t 2:fd00 /dev/sdb sgdisk -t 3:fd00 /dev/sdb sgdisk -R=/dev/sdc /dev/sda sgdisk -t 2:fd00 /dev/sdc sgdisk -t 3:fd00 /dev/sdc parted GNU Parted 2.3 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) print Model: ATA WDC WD3000FYYZ-0 (scsi) Disk /dev/sda: 3001GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 1049kB 2097kB 1049kB primary bios_grub 2 2097kB 537MB 535MB ext3 primary boot 3 537MB 3001GB 3000GB primary lvm (parted) (parted) select /dev/sdb Using /dev/sdb (parted) print Model: ATA WDC WD3000FYYZ-0 (scsi) Disk /dev/sdb: 3001GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 1049kB 2097kB 1049kB primary bios_grub 2 2097kB 537MB 535MB primary raid 3 537MB 3001GB 3000GB primary raid
Create RAID Arrays
mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb2 mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb3 cat /proc/partitions /proc/mdstat
Copy Boot Files To RAID Array
mkfs.ext3 /dev/md0 mkdir /mnt/tmp mount /dev/md0 /mnt/tmp cp -ax /boot/* /mnt/tmp umount /mnt/tmp rmdir /mnt/tmp
Change Boot Filesystem Tab
nano /etc/fstab /dev/pve/root / ext3 errors=remount-ro 0 1 /dev/pve/data /var/lib/vz ext3 defaults 0 1 /dev/md0 /boot ext3 defaults 0 1 #UUID=46b4d3d6-fdec-43b6-a4cb-3f8f8a9c6c10 /boot ext3 defaults 0 1 /dev/pve/swap none swap sw 0 0 proc /proc proc defaults 0 0
Do not reboot now as per kbDone's page!
Update GRUB Bootloader
echo 'GRUB_DISABLE_LINUX_UUID=true' >> /etc/default/grub echo 'GRUB_PRELOAD_MODULES="raid dmraid"' >> /etc/default/grub echo raid1 >> /etc/modules echo raid1 >> /etc/initramfs-tools/modules grub-install /dev/sda grub-install /dev/sdb grub-install /dev/sdc (because we will actually be adding sdc below) update-grub update-initramfs -u
Now reboot.
reboot
Prepare First Disk (Part 1)
sgdisk -t 2:fd00 /dev/sda mdadm --add /dev/md0 /dev/sda2
Move LVM Data
pvcreate /dev/md1 vgextend pve /dev/md1 pvmove /dev/sda3 /dev/md1 <-- this takes a very long time! vgreduce pve /dev/sda3 pvremove /dev/sda3
Prepare First Disk (Part 2)
sgdisk -t 3:fd00 /dev/sda mdadm --add /dev/md1 /dev/sda3 <-- this takes a long time as well cat /proc/mdstat
Wait for RAID to sync.
Add Extra (Spare) Disks As Required
mdadm --add /dev/md0 /dev/sdc2 mdadm --add /dev/md1 /dev/sdc3
Update GRUB (Again)
grub-install /dev/sda grub-install /dev/sdb grub-install /dev/sdc update-grub update-initramfs -t -u sync
Finish
reboot cat /proc/mdstat
Thanks - http://kbdone.com/proxmox-ve-3-2-software-raid/
HOWTO: Add ISO Files
In the GUI...
Storage View > Datacenter > server > local > content > Upload
Location on disk...
/var/lib/vz/template/iso
HOWTO: Add Virtual Machine (VM)
Server View > Datacenter > server Create VM
Ubuntu Linux
Copy Existing - Physical To Virtual (P2V)
Physical
- https://help.ubuntu.com/community/BackupYourSystem/TAR
- sudo tar -czvpf /backup.tar.gz --exclude=/backup.tar.gz --one-file-system /
Virtual
STOP PRESS - new method?! - http://www.fsarchiver.org/QuickStart
- Boot with SystemRescueCD iso in virtual cdrom
- either use the proxmox console, or set root password and restart ssh, and ssh in
- Partition and Format virtual hard disk drive (1:swap,2:ext4)
- mkdir /mnt/sda2 and mount -v /dev/sda2 /mnt/sda2/
- scp physical:/backup.tar.gz root@virtual:/mnt/sda2/
- sudo tar -xzvpf /mnt/sda2/backup.tar.gz -C /mnt/sda2/ --numeric-owner (close console window for this)
- mount -t proc none /mnt/sda2/proc
- mount -o bind /dev /mnt/sda2/dev
- mount -t sysfs /sys /mnt/sda2/sys
- chroot /mnt/sda2 /bin/bash
- blkid /dev/sda1 /dev/sda2
- nano /etc/mtab /etc/fstab /etc/hosts /etc/network/interfaces (change IP address to different to physical)
- touch /var/lock/aptitude
- aptitude -y -v purge mdadm lm-sensors hddtemp smartmontools cpufrequtils
- rm -rfv /var/lib/smartmontools/
- grub-install /dev/sda
- update-initramfs -u
- update-grub
- exit
- reboot
Finish
- When you are happy, then shut down the Physical and change the Virtual IP address, then reboot Virtual :-)
Windows 7
Fresh Installation
- Create an ISO of the Windows 7 DVD
dd if=/dev/sr0 of=/var/lib/vz/template/iso/win7pro-sp1.iso
- Download the VirtIO Drivers ISO (Changelog)
- Create VM according to the Windows 7 Best Practices page
- CDROM #1 = win7pro-sp1.iso
- CDROM #2 = virtio-win-0.1-81.iso
- CDROM #3 = VMware-tools-windows-9.4.11-2400950.iso
- Start VM and read instructions below
Mouse Driver
This gives you much better mouse performance and uses less resources (than the default 'usb tablet mouse').
The vmmouse driver need a reboot to get activated but then you can enable/disable the 'usb device tablet' on the fly.
- extract setup.exe from iso
- extract datas from setup.exe
- setup.exe /A /P C:\Extract
- drivers are in C:\extract\Program Files\VMware\VMware Tools\VMware\Drivers\mouse
Mouse Driver (64 Bit) - http://packages.vmware.com/tools/esx/latest/windows/x64/index.html (e.g. VMware-tools-windows-9.4.11-2400950.iso)
Mouse Driver (32 Bit) - http://packages.vmware.com/tools/esx/latest/windows/x86/index.html (e.g. VMware-tools-windows-9.4.11-2400950.iso)
Qemu Agent
The qemu-guest-agent is a helper daemon, which is installed in the guest. It is used to exchange information between the host and guest, and to execute command in the guest.
This is a must have!
http://pve.proxmox.com/wiki/Qemu-guest-agent
Links
Tweaks - https://pve.proxmox.com/wiki/Performance_Tweaks
Thanks - https://pve.proxmox.com/wiki/Windows_7_guest_best_practices
Thanks - https://pve.proxmox.com/wiki/Windows_VirtIO_Drivers#Choose_the_right_driver
HOWTO: RUN VIRTUAL MACHINE IN PROXMOX INSIDE VIRTUALBOX
Because VirtualBox does not support KVM Stacking or KVM-in-KVM, you have to use the QEMU option in Proxmox when running inside VirtualBox.
- Install Proxmox VE inside VirtualBox and start Proxmox
- Log in to the Proxmox Web Admin and 'Create VM'
- VM > Options > KVM Hardware Virtualization = NO, QEMU Agent = YES
HOWTO: RESIZE DISKS
https://pve.proxmox.com/wiki/Resize_disks
Shut Down Stop The Virtual Machine
Shut down and Stop the VM using the GUI or command line.
GUI
Server View > Datacenter > Node > VM > Hardware > Hard Disk > Resize
COMMAND LINE
In this example, we will be increasing the first virtual hard disk sda from 20Gb to 68Gb.
Resize Virtual Hard Disk
Find out the name of the virtual machine and hard disk, using the GUI (shown above), for example 105 and sata0.
Now, you can resize the virtual disk...
qm resize 105 sata0 +48G
Resize Hard Disk Partition
Boot the VM with a live CD such as SystemRescueCD, and then use 'parted' to resize the partition (in our case partition #2)...
parted /dev/sda (parted) print (parted) resizepart 2 100% (parted) print (parted) quit
Check Hard Disk Filesystem (I)
e2fsck -f /dev/sda2
Resize Hard Disk Filesystem
resize2fs /dev/sda2
Check Hard Disk Filesystem (II)
e2fsck -f /dev/sda2
Poweroff The Virtual Machine
Now, you can shutdown the SystemRescueCD...
poweroff
START THE VIRTUAL MACHINE
Start the VM using the GUI or command line, login and check your disk size.
df -H
http://pve.proxmox.com/wiki/Resize_disks
HOWTO: FIX
apt update: TASK ERROR: command 'apt-get update' failed: exit code 100
To fix, run the following option to apt-get ...
apt-get update --allow-releaseinfo-change
OR
apt-get update
and answer questions manually ...
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details. Do you want to accept these changes and continue updating from this repository? [y/N] y
apt-get update: server certificate verification failed
https://pve.proxmox.com/wiki/Server_certificate_verification_failed_when_updating
Manually
To check mountpoint of NFS share...
mount
Disable the NFS share (either in web GUI or on the command line)...
pvesm set yournfsharename_inwebgui --disable 1
To unmount (be patient for up to 10 minutes)...
fusermount -uz /path/to/mountpoint
If no success, then...
umount -f -l -vvv /path/to/mountpoint
https://forum.proxmox.com/threads/nfs-share-umount-f-problem-device-is-busy.26777/
Automatically
nano /etc/rc.local.shutdown
#!/bin/sh -e echo "NFS Shares are unmounting..." fusermount -uz /mnt/pve/* exit 0
http://unix.stackexchange.com/questions/98510/run-a-script-at-shutdown-in-debain#98523
Shutdown Error - TASK ERROR: VM quit powerdown failed - got timeout
Install the app 'acpid' in each of your Linux virtual machines...
sudo apt install acpid
HOWTO: ENABLE
Add CPU Frequency Scaling
aptitude install cpufrequtils
Thanks - https://wiki.debian.org/HowTo/CpuFrequencyScaling
HOWTO: CONVERT:
From Proxmox RAW Image To VirtualBox Qcow
-rw-r--r-- 1 root root 20G 2015-02-18 12:54 disk-drive-sata0.raw -rw-r--r-- 1 root root 330 2015-02-18 12:51 qemu-server.conf
qemu-img convert -f raw -O qcow disk-drive-sata0.raw disk-drive-sata0.qcow
-rw-r--r-- 1 root root 9.8G 2015-02-20 11:03 disk-drive-sata0.qcow -rw-r--r-- 1 root root 20G 2015-02-18 12:54 disk-drive-sata0.raw -rw-r--r-- 1 root root 330 2015-02-18 12:51 qemu-server.conf
OVA IMAGE TO Qcow
Instructions
This example shows how to convert the ESET Remote Administrator Virtual Appliance to a Proxmox Virtual Machine.
sudo -i tar -xf era_appliance.ova qemu-img convert -p -f vmdk ERA_Appliance-disk1.vmdk -O qcow2 ERA_Appliance-disk1.qcow2 qemu-img info ERA_Appliance-disk1.qcow2
image: ERA_Appliance-disk1.qcow2 virtual size: 64G (68719476736 bytes) disk size: 7.5G cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false corrupt: false
Open up the OVF file in your editor (it's XML format) and just check what hardware it requires.
Then, create your new VM in the Proxmox web GUI as per hardware requirements.
Then, copy over the new QCOW2 disk image file we converted OVER the one created by Proxmox.
cp -av ERA_Appliance-disk1.qcow2 /var/lib/vz/images/106/vm-106-disk-1.qcow2
Then, edit the Proxmox VM config file to change the disk size to match the figure in bold above.
nano /etc/pve/nodes/proxmox1/qemu-server/106.conf
bootdisk: ide0 cores: 4 ide0: local:106/vm-106-disk-1.qcow2,format=qcow2,size=64G ide2: none,media=cdrom memory: 4096 name: eset1 net0: e1000=5E:EF:04:01:CA:45,bridge=vmbr0 numa: 0 onboot: 1 ostype: l26 smbios1: uuid=12936a8c-6417-4e5d-9f7d-f6e06730b72a sockets: 1 startup: order=7,up=70,down=10
Now, you can go back to the Proxmox web GUI and start the new VM in a Console.
Job, done.
Troubleshooting
If your VM will not start because of this error:-
file system may not support O_DIRECT
It is because you are using the new ZFS with Proxmox, which does not support it.
Then change the Cache setting on your VM to Write Through...
cache=writethrough
Thanks - http://www.jamescoyle.net/how-to/471-zfs-and-glusterfs-network-storage
Links
http://www.jamescoyle.net/how-to/1218-upload-ova-to-proxmox-kvm
http://forum.proxmox.com/threads/9309-Convert-OVA-to-working-Proxmox-VM
http://opentox.github.io/installation/2012/08/02/converting-ova-images-to-kvm/
http://matthewmidgett.com/virtualization/5-converting-virtualbox-to-proxmox
http://edoceo.com/notabene/ova-to-vmdk-to-qcow2
HOWTO: Command Line Tools
https://pve.proxmox.com/wiki/Command_line_tools
Check Storage
Settings are kept in...
/etc/pve/storage.cfg
Check the current status with...
pvesm status
This also works to fix an unmounted NFS share (say the NFS server rebooted).
Add A User Using Domain Based Authentication
pveum aclmod / -user joebloggs@DOMAIN -role PVEAuditor
Shell Script To List Status Of Virtual Machines
#!/bin/bash cd /etc/pve/nodes/<nodename>/qemu-server/ for FILE in *.conf do VMID="${FILE%%.*}" echo -n "vm $VMID " /usr/sbin/qm status $VMID; done
Backup All VMs
vzdump --quiet 1 --mailto backupnotify@domain.com --mode snapshot --compress lzo --storage nfs1 --node proxmox1 --all 1
Backup 1 VM
vzdump 219 --mode stop --compress lzo --node proxmox2 --remove 0 --storage nfs1 --mailto backupnotify@domain.com
Shutdown VM
qm shutdown VMID
Thanks - https://pve.proxmox.com/wiki/Virtual_Machine_Startup_and_Shutdown_Behavior
List VMs
qm list
Start VM
qm start VMID
Shutdown VM
qm shutdown VMID
Stop VM
qm stop VMID
Stop Unresponsive Locked VM
qm unlock VMID qm stop VMID
If that fails then kill the Linux process, which you can find out with ...
ps -auwx | grep VMID kill PID
HOWTO: DHCP For VMs On Different IP Address Range
https://jay.sh/setting-up-dhcp-for-proxmox-vms/
HOWTO: Change Cron Scheduled Backup Time
sudo nano /etc/pve/vzdump.cron
HOWTO: Change Node IP to DHCP
$ nano /etc/network/interfaces auto lo iface lo inet loopback iface eno1 inet manual iface eno2 inet manual auto vmbr0 iface vmbr0 inet dhcp bridge_ports eno1 bridge_stp off bridge_fd 0
HOWTO: Change Node IP Address
Use the Web GUI...
Server View > Datacenter > Node > Network > vmbr0 > IP Address > OK > Restart
If you are not able to directly access the Web GUI, use SSH to Port Forward to your computer...
ssh root@proxmox-node -L local-port:remote-server-ip:remote-port
ssh root@123.456.789.0 -L 8006:192.168.1.200:8006
Then, point your web browser to the following address, and hey presto, Web GUI!
https://127.0.0.1:8006
OLD
Update the IP address and DNS IP address in these files...
nano /etc/hosts /etc/network/interfaces /etc/resolv.conf
If it's a cluster, run this command as well...
/etc/init.d/cman restart
Then, reboot...
reboot
HOWTO: Change Node Hostname Name
WARNING: THIS WORKED FOR ME IN A TEST VIRTUALBOX ENVIRONMENT BUT HAS NOT BEEN TRIED IN PRODUCTION
YOU HAVE BEEN WARNED
THESE INSTRUCTIONS ARE A WORK IN PROGRESS
You may also have to edit some VM .conf files.
nano /etc/hostname /etc/hosts /etc/postfix/main.cf cd /etc/pve/nodes/ cp -av old new rm -rfv old cd /var/lib/rrdcached/db/pve2-node/ cp -av old new rm -rfv old reboot
HOWTO: System Update
https://pve.proxmox.com/wiki/Downloads
- Change DNS Server to modem
nano /etc/resolv.conf nameserver 192.168.0.1
- Shut down all running Virtual Machines
- Turn off Start at Boot for each Virtual Machine (using WebGUI) or...
nano /etc/pve/nodes/proxmox1/qemu-server/*.conf onboot: 1 <-- delete this line
- Update system software...
screen -rd apt-get update apt-get check apt-get --download-only dist-upgrade apt-get --simulate dist-upgrade apt-get --quiet dist-upgrade (answer YES to Continuing Without Installing GRUB) grub-mkdevicemap -n grub-install /dev/sda grub-install /dev/sdb grub-install /dev/sdc update-grub update-initramfs -t -u sync touch /root/misc/system_updated (exit screen) reboot
HOWTO: Test ZFS With Virtualbox
...
HOWTO: Cluster
https://www.mattwall.co.uk/2019/06/09/new-proxmox-cluster-pt1.html
https://www.howtoforge.com/tutorial/how-to-configure-a-proxmox-ve-4-multi-node-cluster/
http://www.unixmen.com/setting-cluster-proxmox/
HOWTO: Help
Wiki
https://pve.proxmox.com/wiki/Main_Page