Proxmox et KVM

De Linux Server Wiki
Aller à la navigation Aller à la recherche


Prérequis

Ce tutoriel se base sur l'utilisation de debootstrap pour installer une base de système d'exploitation debian. La plupart des hébergeurs proposent un système de "rescue" permettant l'installation de debian par ce moyen. Si vous ne disposez pas de mode rescue, vous pouvez toujours utiliser l'installeur proposé par votre hébergeur, ou encore passer par un kvm pour installer vous même le système avec l'iso de debian.

Pour les débutants

Si vous êtes débutant en administration linux, je vous conseil de sauvegarder quelque part les fichier suivant issu d'une précédente installation de debian:

  • /etc/networks
  • /etc/network/interfaces
  • /etc/resolv.conf
  • /etc/hosts
  • /etc/fstab
  • /etc/mdadm/mdadm.conf si vous disposez d'un raid logiciel
  • tout fichier de personnalisation de grub (/etc/grub.d/06_OVHkernel par exemple)

Partitionnement

Commencer par partitionner ainsi vos deux disques (avec fdisk ou cfdisk) :

  • /dev/sd*1 200 Mo (/boot) (type de partition : FD)
  • /dev/sd*2 15 Go (/) (type de partition : FD)
  • /dev/sd*3 4096 Go (swap) (type de partition : 82)
  • /dev/sd*4 partition étendue (invisible sous cfdisk)
  • /dev/sd*5 20 Go (/var) (type de partition : FD)
  • /dev/sd*6 reste de l'espace disque (lvm) (type de partition : FD)

Nous allons créer le RAID software (raid 1) :

  • /dev/md0 regroupant /dev/sda1 et /dev/sdb1 (/boot)
  • /dev/md1 regroupant /dev/sda2 et /dev/sdb2 (/)
  • /dev/md2 regroupant /dev/sda5 et /dev/sdb5 (/var)
  • /dev/md3 regroupant /dev/sda6 et /dev/sdb6 (lvm)
mdadm --create /dev/md0 --level=1 --assume-clean --raid-devices=2 /dev/sda1 /dev/sdb1
mdadm --create /dev/md1 --level=1 --assume-clean --raid-devices=2 /dev/sda2 /dev/sdb2
#sd*4 est la partition étendue
mdadm --create /dev/md2 --level=1 --assume-clean --raid-devices=2 /dev/sda5 /dev/sdb5
mdadm --create /dev/md3 --level=1 --assume-clean --raid-devices=2 /dev/sda6 /dev/sdb6

Création des systèmes de fichiers

mkfs.ext3 /dev/md0
mkfs.ext3 /dev/md1
mkfs.ext3 /dev/md2
mkswap /dev/sda3
mkswap /dev/sdb3

Création du LVM

pvcreate /dev/md3
vgcreate main /dev/md3

Nous ne créerons pas de volume logique dans le LVM maintenant. Nous laisserons en effet proxmox et KVM se charger de créer des volumes logiques pour chaque VM.

Installation de proxmox

Installation du système de base

mount /dev/md1 /mnt
mkdir /mnt/boot
mkdir /mnt/var
mount /dev/md0 /mnt/boot
mount /dev/md2 /mnt/var
debootstrap --arch=amd64 lenny /mnt http://ftp.fr.debian.org/debian

Configuration de Debian

mount -o bind /proc /mnt/proc
mount -o bind /dev /mnt/dev
mount -o bind /sys /mnt/sys
chroot /mnt

Editez le fichier /etc/apt/sources.list :

deb http://ftp.fr.debian.org/debian lenny main contrib non-free
deb-src http://ftp.fr.debian.org/debian lenny main contrib non-free

#Sec
deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free

deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free

Mettez à jour les paquets :

aptitude update
aptitude safe-upgrade

Installez les locales et la configuration de console :

aptitude install locales 
dpkg-reconfigure locales
aptitude install console-data
dpkg-reconfigure console-data # from arch > french > latin9)

Définissez la zone horaire :

tzselect
dpkg-reconfigure tzdata

Installez mdadm pour gérer le raid software :

aptitude install mdadm

Configurez votre /etc/fstab :

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0

/dev/md1        /       ext3    defaults,errors=remount-ro      0       1
/dev/md0        /boot   ext3    defaults        0       2
/dev/sda3       none    swap    sw      0       0
/dev/sdb3       none    swap    sw      0       0
/dev/md2        /var    ext3    defaults        0       2

/etc/network/interfaces :

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto vmbr0
iface vmbr0 inet static
        address <IP>
        netmask 255.255.255.0
        gateway <GW>
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0

/etc/hosts :

127.0.0.1       localhost                                                                                                                                                           
::1             localhost ip6-localhost ip6-loopback                                                                                                                                
fe00::0         ip6-localnet                                                                                                                                                        
ff00::0         ip6-mcastprefix                                                                                                                                                     
ff02::1         ip6-allnodes                                                                                                                                                        
ff02::2         ip6-allrouters                                                                                                                                                      

<IP>   <hostname>
echo votrehostname > /etc/hostname
echo votrehostname > /etc/mailname

N'oubliez pas de configurer les dns (ceux de votre hébergeur dédié) :

nameserver XX.XX.XX.XX

Installation de proxmox

Ajoutez le dépot proxmox dans le fichier /etc/apt/source.list :

# PVE packages provided by proxmox.com
deb ftp://download.proxmox.com/debian lenny pve

Ajoutez la clé du dépôt proxmox :

wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add -
aptitude update
aptitude install grub-pc
grub-install /dev/sda
grub-install /dev/sdb

http://pve.proxmox.com/wiki/Proxmox_VE_Kernel

Pour profiter d'openVZ, installez le kernel 2.6.32* :

aptitude install pve-kernel-2.6.32-4-pve
update-grub

Sinon, installez le kernel pve-kernel-2.6.35-1-pve qui permet de profiter de KSM :

aptitude install pve-kernel-2.6.35-1-pve
update-grub

Attention ! Vérifiez votre fichier /boot/grub/grub.cfg ! En particulier les directives menuentry update-grub avait configuré la ligne de boot suivante sur mon installation :

linux   /vmlinuz-2.6.35-1-pve root=/dev/md/1 ro

a corriger en

linux   /vmlinuz-2.6.35-1-pve root=/dev/md1 ro


Accesoirement installez les headers

aptitude install pve-headers-2.6.35-1-pve
aptitude install openssh-server
passwd

Si vous avez installé le kernel pve-kernel-2.6.35-1-pve installez proxmox-ve-2.6.35. Sinon, adaptez en fonction de votre kernel.

aptitude install proxmox-ve-2.6.35 ntp lvm2


configuration réseau avancée

# network interface settings
auto lo
iface lo inet loopback

iface eth0 inet manual

auto vmbr0
iface vmbr0 inet static
        address  <IP>
        netmask  255.255.255.0
        gateway  <GW>
        broadcast  <ip>.255
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        network <ip>.0
        post-up ifconfig vmbr0 inet6 add <ipv6>/64
        pre-down ifconfig vmbr0 inet6 del <ipv6>/64

auto vmbr1
iface vmbr1 inet static
        address  192.168.0.1
        netmask  255.255.255.0
        broadcast 192.168.0.255
        bridge_ports dummy0
        bridge_stp off
        bridge_fd 0
        post-up /etc/pve/kvm-networking.sh

reboot et postinstallation

Rebootez votre serveur en mode normal :

reboot

Créez votre utilisateur :

adduser pfoo

Je vous conseil de commencer à sécuriser votre ssh :

  • désactivez le login root (directive PermitRootLogin no dans /etc/ssh/sshd_config)
  • ajoutez la directive allowusers pfoo dans /etc/ssh/sshd_config