LINUX: Debian, Proxmox, RAID software, GPT

2014-08-27 08:46:15 by MatMoul

Lors de ma dernière installation de proxmox, j'ai utilisé des disques de 2To et cela à créer une table de partition GPT qui n'est pas supportée par la procédure précédente.

Voici donc une procédure mise à jour pour les tables de partitions GPT :

apt-get -y install mdadm
# OK
# all
sgdisk -R=/dev/sdb /dev/sda
mdadm --create -l 1 -n 2 /dev/md1 missing /dev/sdb2
# Y
mdadm --create -l 1 -n 2 /dev/md2 missing /dev/sdb3
# Y
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
mkfs.ext4 /dev/md1
mount /dev/md1 /mnt
cp -ax /boot/* /mnt
nano /etc/fstab
# Replace  UUID=<your UUID here> boot/boot ext3 defaults 0 1 by
/dev/md1 /boot ext4 defaults 0 1
# CTRL+X;Y
reboot

mount|grep boot
echo '# customizations' >> /etc/default/grub  
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 --recheck /dev/sda
grub-install /dev/sdb
grub-install /dev/md1
# I Have A Segment Fault But I Ignore
update-initramfs -u
update-grub
reboot

pvcreate /dev/md2
vgextend pve /dev/md2
pvmove /dev/sda3 /dev/md2
vgreduce pve /dev/sda3
pvremove /dev/sda3
reboot

mkfs.ext4 /dev/sda2
mdadm --add /dev/md1 /dev/sda2
mdadm --add /dev/md2 /dev/sda3
watch -n 5 cat /proc/mdstat
# Wait end of replication
echo 800000 > /proc/sys/dev/raid/speed_limit_min
echo 1600000 > /proc/sys/dev/raid/speed_limit_max
reboot

Et voilà, ca devrait fonctionner !!!

LINUX: Proxmox, Gestion des interfaces réseaux

2014-08-27 04:24:01 by MatMoul

Maintenant que votre serveur de virtualisation Proxmox est en service, une des première chose à comprendre et la gestion des interfaces réseaux.

Pour ma part, j'ai 3 cartes ethernet (eth0, eth1, eth2).

Vous pouvez créer des cartes virtuels pour Proxmox depuis l'interface Web (node du serveur, onglet réseaux).
On utilisera le type Brige pour une carte unique et le type Bond pour agréger plusieurs cartes physiques.

Dans ma config, j'ai utilisé le mode Bridge pour créer vmbr1 sur eth1, vmbr2 sur eth2, vmbr0 étant créer par défaut sur eth0.

Il est aussi intéressant d'avoir des interfaces virtuels (switch internes).
Pour créer ces interfaces (de type dummy), il faudra passer par la console (local ou SSH).

Une fois connecter tapez la commande suivante où 1 est le nombre d'interfaces dummy maximum -1; puis modifiez le fichier intefaces pour ajouter vos interface (ici, vmbr90 et vmbr91):

# Définir le nombre d'interfaces dummy
modprobe dummy numdummies=1

nano /etc/network/interfaces
auto vmbr90
iface vmbr90 inet manual
        bridge_ports dummy0
        bridge_stp off
        bridge_fd 0
auto vmbr91
iface vmbr91 inet manual
        bridge_ports dummy1
        bridge_stp off
        bridge_fd 0
# CTRL+X;Y
service networking restart

Et vous voilà avec deux interfaces/switch virtuels.

Pour utiliser des VLAN sur vos machines virtuelles, il faudra définir les interfaces au niveau de la machine hôte.

Dans l'exemple suivant, on définira 2 VLAN (1 et 2) sur l'interface eth1 :

nano /etc/network/interfaces
auto vmbr111
iface vmbr111 inet manual
        bridge_ports eth1.1
        bridge_stp off
        bridge_fd 0
auto vmbr112
iface vmbr112 inet manual
        bridge_ports eth1.2
        bridge_stp off
        bridge_fd 0
# CTRL+X;Y
service networking restart

/!\ Lors de mes tests, j'ai du redémarrer pour que tout fonctionne mais cela demande approfondissement.

LINUX: Proxmox, Créer une machine virtuelle (KVM)

2014-01-23 10:28:44 by MatMoul

Maintenant que votre serveur de virtualisation est opérationnel, nous allons créer des machines virtuelles.

Vous aller rencontrez deux possibilités (Create VM (KVM) et Create CT (OpenVZ)). Nous allons nous concentrer sur Create VM qui est une machine virtuelle complète.

Créer une machine virtuelle n'est pas compliqué. Il suffit de cliquer sur le bouton et suivre l'assistant.

Toutefois il est utile d'optimiser les paramètres.

Choix d'un adaptateur réseau :

  • Intel E1000 (compatible avec la majorité des systèmes d'exploitations)
  • VirtIO (C'est le plus performant mais nécessite des drivers)
  • Realtek (compatibilité maximale mais 100mbs)

Choix d'un contrôleur HD :

  • SCSI (dans la majorité des cas)
  • VirtIO (performance maximale mais nécessite des drivers) 
  • IDE (compatibilité maximale) 
  • SATA (je n'ai pas vu d'amélioration par rapport à IDE) 

Choix d'un contrôleur SCSI :

  • LSI (compatibilité maximiale) 
  • VirtIO (performance maximale mais nécessite des drivers)

Choix d'un format de disque :

  • QEMU (Taille dynamique, idéal pour les machines de tests et les templates)
  • Raw disk image (Pour la prod, utilise d'office la taille allouée)
  • VMWare (Disque au format vmdk à utiliser uniquement pour la compatibilité)

Pour le processeur, je vous conseil le mode "host" ou "kvm64".
Nous pourrons encore désactiver l'option "user tablet for pointer" si l'on a pas besoin de la souris.

Comme vous avez pu le constater, Proxmox utilise le composant Java dans son interface web pour afficher la console d'une machine virtuelle.
Si comme moi vous êtes allergique à Java, vous pouvez modifier les fichiers de configuration de vos machines virtuelles afin d'utiliser vnc.
Editer le fichier /etc/pve/qemu-server/{id}.conf et ajoutez la ligne suivante :
args: -vnc:0.0.0.0:100
Vous pourrez vous connecter sur le port 5900 + 100 avec vnc (le nombre 100 peut être modifier pour chaque machines)

LINUX: Debian, Proxmox, RAID software

2014-01-23 09:35:20 by MatMoul

Si votre disque utilise une table de partition GPT, consultez cette article...

Créer un RAID software n'est pas des plus intuitif, mais en suivant ces instructions, cela devrait le faire.

J'ai utilisé cette procédure pour monter mon RAID software sous Debian (précisément la distribution Proxmox).

Dans mon cas, un poste HP de récupération, un Core 2 Duo, avec controller SATA en mode IDE, disque système en sda et disque supplémentaire en sdb, j'ai effectué la procédure suivante qui s'est très bien passée. Toutefois en appliquant la même procédure dans différant cas, (principalement des tests sur des machines virtuelles VMWare et Proxmox), j'ai rencontrer un certain nombre de problème en fonction du mode de contrôleur. A vous de tester, n'oubliez surtout pas de faire une sauvegarde avant de vous lancer.

Pour info, j'ai aussi essayé un RAID hardware sur un contrôleur fournit avec un serveur HP Proliant avec succès et un contrôleur (light) intégré à un mainboard ASUS sans succès.

Pour info, il faudra utiliser mdadm, c'est le package qui gère le RAID software sous Debian.

Console ou SSH :

apt-get -y install mdadm
sfdisk -d /dev/sda | sfdisk -f /dev/sdb
sfdisk -c /dev/sdb 1 fd
sfdisk -c /dev/sdb 2 fd
mdadm --create -l 1 -n 2 /dev/md0 missing /dev/sdb1
# Répondez Yes
mdadm --create -l 1 -n 2 /dev/md1 missing /dev/sdb2
# Répondez Yes
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
mkfs.ext4 /dev/md0
mkdir /mnt/md0
mount /dev/md0 /mnt/md0
cp -ax /boot/* /mnt/md0
nano /etc/fstab
  • # Replace  UUID=<UUID> /boot ext3 defaults 0 1 by
  • /dev/md0 /boot ext4 defaults 0 1
# CTRL+X;Y
reboot

mount|grep boot
echo '# customizations' >> /etc/default/grub
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 --recheck /dev/sda
grub-install /dev/sdb
grub-install /dev/md0
# Si un message d'erreur de segmentation apparaît, ignorez le.
update-grub
update-initramfs -u
sfdisk -c /dev/sda 1 fd
mdadm --add /dev/md0 /dev/sda1
watch -n 5 cat /proc/mdstat
# La commande watch vous montre l'état de la duplication de sda1 (normalement très rapide voir instantanée)
reboot

pvcreate /dev/md1
vgextend pve /dev/md1
pvmove /dev/sda2 /dev/md1
vgreduce pve /dev/sda2
pvremove /dev/sda2
sfdisk --change-id /dev/sda 2 fdls
mdadm --add /dev/md1 /dev/sda2
watch -n 5 cat /proc/mdstat
# La commande watch vous montre l'état de la duplication de sda2 (le temps dépend de la taille de votre disque)
# Répétez la commande watch jusqu’à ce que sda2 soit synchronisé.
echo 800000 > /proc/sys/dev/raid/speed_limit_min
echo 1600000 > /proc/sys/dev/raid/speed_limit_max
reboot
Si tout c'est bien passé, vous êtes sur votre RAID software. Seul moyen d'en être sure, faites une modification dans votre système de fichiers et redémarrer sur un disque puis l'autre.

Il reste un point un peut compliqué. C'est la mise à jour de GRUB (lors d'un apt-get upgrade). Il faudra bien veiller à mettre à jour GRUB sur chaque partitions.

LINUX: Proxmox, Serveur de virtualisation Open-Source

2013-09-02 07:58:38 by MatMoul

Introdution :

Proxmox est une distribution Linux basée sur Debian permettant de créer un serveur de virtualisation tel que VMWare ou Hyper-V.

Pourquoi :

Après de longs tests sur différents serveurs de virtualisations, j'ai retenu cette distribution pour m'affranchir de systèmes propriétaires.

Proxmox a pour principal avantages de consommer peu de mémoire, d'être open source, d'être configurable via une interface web, de prendre en charge le format vmdk de VMWare ainsi que le clustering.

J'ai aussi testé des solutions comme OpenStack ou OpenNebula mais ceux-ci sont trop axés Data-Center pour une petite entité.
Vous pouvez aussi vous renseigner sur OpenNode basé sur CentOS qui est une bonne alternative mais j'ai quand même une préférence pour Proxmox.

Comment :

Il se base sur deux technologies différentes :

  • KVM qui permet de virtualiser un ordinateur.
  • OpenVZ qui permet d'isoler les processus Linux.

Chacun a ses avantages, nous y reviendrons plus tard.

Créer son propre serveur :

Je vous propose un tuto qui vous permettra de créer votre propre serveur de virtualisés.
Je vous site quelques exemples de machines virtuels :


Préparation :

Sélection d'un PC qui fera office de serveur :

  • Mainboard :
    • Controleur HDD le plus performant possible.
    • Utiliser des cartes réseaux physiques (si défectueuse, peut être changée).
  • RAM : (2GB min, de préférence 4GB, si possible 8GB ou plus)
    • 300Mb pour le système.
    • 256Mb pour une VM Linux standard.
  • HDD : (RAID1)
    • HDD1 : 130Gb (SSD)
    • HDD2 : 130Gb (SSD)  
    • HDD3 : 1TB
    • HDD4 : 1TB 
  • Network : (J'utilise 2 cartes pour le router, 3 avec le firewall)

Pour le RAID, il est mieux d'avoir un controlleur hardware mais pour des raisons économiques, je vous présenterais le RAID software dans un prochain poste (Cela ne vous demandera pas de recommencer votre installation).

Télécharger Proxmox :


Créer un média d'installation :

  • CD - Gravez votre iso sur un CD.


Installation :

Etape d'installation pour la version 3.0-0428106c-13.

Démarrer le PC sur le média d'installation.
Appuyez sur Enter pour démarrer l'installation et suivez les instructions.
Cliquez sur "I Agree".
Cliquez sur  "Next".
Sélectionnez le pays, la zone horaire et le clavier et cliquez sur "Next".
Définissez votre mot de passe "root" et votre e-mail et cliquez sur "Next".
Définissez votre nom de serveur (serveur.domaine.loc), IP, NetMask, Gateway, DNS et cliquez sur "Next".
Patientez...
Cliquez sur "Reboot".

Une fois sur le login, l'url d'administration de votre serveur est indiqué sur la console. (https://x.x.x.x:8006/)

Je vous propose d'installer quelques logiciels supplémentaire pour vous faciliter la vie.
On se connecte à la console ou par client SSH (PUTTY) avec le compte "root" et votre mot de passe.

printf "deb http://download.webmin.com/download/repository sarge contrib\ndeb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib\n" > /etc/apt/sources.list.d/webmin.list
wget -O - http://www.webmin.com/jcameron-key.asc | apt-key add - 
apt-get update
apt-get -y install nmon ntpdate webmin

On se connecte à Webmin via un navigateur Web (https://x.x.x.x:10000) (root, votre mot de passe).

Sur la première page, on clique sur "Install Updates Now"
Dans "Hardware - System Time - Time server sync", on définit :
- Timeserver hostnames or addresses : ch.pool.ntp.org 1.ch.pool.ntp.org 2.ch.pool.ntp.org
- Synchronize on schedule : Yes, at times below ..
- Time to sync : 5:40, 12:40


Résumé d'installation :

  • Proxmox : https://x.x.x.x:8006/  (root, votre mot de passe) 
  • Webmin : https://x.x.x.x:10000/  (root, votre mot de passe)