Linux

Linux and Unix tips

Exporter ou sauvegarder une VM KVM

En dehors des containers LXC que j'utilise souvent pour isoler mes environnements de test, j'utilise aussi des "vraies" machines virtuelles avec KVM, notamment lorsque j'ai besoin d'une VM windows ou d'un autre Linux ; par exemple CentOS 6.x alors que j'ai une Ubuntu 14.04 LTS sur mon poste.

Pour le stockage des données KVM, j'utilise des volumes logiques avec LVM.

Pour exporter ou sauvegarder une VM, il faut donc récupérer la définition de la VM, ainsi que les données.

Mise en place d'un serveur FTP cloisonné

Comme le dit Wikipedia, chroot (change root) est une commande des systèmes d'exploitation UNIX permettant de changer le répertoire racine d'un processus de la machine hôte. Ceci est un bon moyen de cloisonner les utilisateurs sur une machine, en les isolant, sans leur permettre d'avoir accès à toute l'arborescence. C'est généralement ce qui est utilisé, par exemple, sur les hébergements mutualisés pour les accès ftp.

Un exemple sans le chroot. L'utilisateur a accès à toute l'arborescence, depuis /  :

Archiver des containers LXC

On parle beaucoup depuis quelques temps de Docker et des containers Linux LXC (https://linuxcontainers.org/), qui permettent d'avoir une approche légère de la virtualisation.

La version 1.0 de LXC est sortie en février 2014, et est incluse dans la plupart des distributions Linux.

Il est très facile de créer une machine, la cloner, la lancer en mode éphémère (qui ne conserve pas les modifications), et la détruire via des commandes :

Récupérer la consommation mémoire d'un process sous linux

Il est assez facile de récupérer la consommation totale de mémoire sur un serveur Linux/Unix, via la commande free par exemple :

free -m
             total       used       free     shared    buffers     cached
Mem:          5963       3516       2446          0        194       1161
-/+ buffers/cache:       2160       3802
Swap:         4095          7       4088

On voit ici que l'on utilise 3516 Mo sur 5963 disponibles, mais que sans la mémoire utilisée par les buffers et caches, on n'en prend que 2160 (la deuxième colonne de la deuxième ligne).

[Linux] Gestion de la RAM et du Swap

Libération de la RAM utilisée pour le cache

Par défaut, Linux a tendance à utiliser toute la RAM pour accélérer ses opérations, et notamment pour y placer en cache ses données.

On peut donc arriver facilement à des situations où la RAM est utilisée à 90% ou plus, alors que les traitements n'en prennent que la moitié.

Par exemple, sur un serveur disposant de 7,5 Go de mémoire, la commande free -m donne :

Named pipes sous Linux

Utilisation des named pipes sous linux

Dans un script bash, il est difficile de lancer des opérations en parallèle, tout en gardant le contrôle. Si on lance plusieurs commandes en tâche de fond (avec le caractère &) les scripts s'exécutent, mais on ne peut pas s'assurer qu'ils se terminent avant de finir le traitement.

Utilisation LVM (Logical Volume Manager) sous Linux

LVM (Logical Volume Manager) permet de gérer des partitions logiques, et non pas physiques, ce qui a notamment comme avantage de pouvoir plus facilement modifier leur taille.

Pré-requis

Partition non formatée

Il faut disposer d'une partition non formatée. Dans notre cas, il s'agit de /dev/sda9, qui dispose d'un peu plus de 300 Go de libres. Cette partition sera utilisée principalement pour gérer des images de machines virtuelles créées avec KVM.