Étendre la partition d’une machine virtuelle Linux avec LVM

Grâce à la virtualisation, il est facile de ne pas se soucier de l’espace disque. En quelques clics, la machine virtuelle reçoit quelques giga octets supplémentaires et hop, le tour est joué. Par contre, comment faire en sorte que l’OS puisse l’utiliser ? Voici un exemple d’utilisation de Linux avec LVM.

Mon cas de figure

Une VM avec une distribution CentOS, un système pré-partitionné avec LVM (Physical Group/Volume Group), et un filesystem XFS.

Mon disque /dev/sdb avait 50Go, j’ajoute 50 Go dans VMWare pour arriver à 100Go mais ma partition /dev/sdb1 reste avec ses 50Go initiaux.

1ère partie : FDISK

Pour me permettre d’utiliser les 50Go suivants, je prépare une nouvelle partition avec fdisk:

En tapant la commande fdisk /dev/sdb suivi de la commande ‘p’ pour ‘print’, je peut voir que mon disque a 107.4Go et que la partition /dev/sdb1 ne fait que 50Go.

Je vais créer une seconde partition avec le reste du disque :

La commande « n » me permet de créer une nouvelle partition

Je tape ensuite « p » pour une partition primaire, puis le numéro de la partition : 2

Je choisi ensuite les valeurs par défaut pour les tailles.

J’affiche ensuite la table avec ma nouvelle partition grâce à la commande « p »:

On voit donc maintenant les deux partitions /dev/sdb1 et /dev/sdb2.

Il faut ensuite changer le type de la partition avec la commande « t »

et on choisi le type « 8e » pour « Linux LVM »

Reste ensuite à écrire la nouvelle table des partitions sur le disque avec la commande « w »

Comme indiqué, la table n’est pas vue dynamiquement par le système, le plus simple reste encore un reboot.

2ème partie : LVM

Après le reboot, on démonte la partition qui utilise le LVM, chez nous c’est /data:

puis on affiche les physical volumes avec pvdisplay et les logical volumes avec lvdisplay pour recueillir leurs infos, notamment leurs noms:

On crée un physical volume sur la nouvelle partition /dev/sdb2 avec pvcreate:

Puis on étend le volume vg_data avec ce nouveau physical volume avec vgextend:

vgdisplay nous affiche maintenant une taille de 99,99 GiB

Alors que la partie « logical » reste encore à 50,00 GiB

Il nous reste à l’étendre avec les « +100% libres » grâce à lvextend:

Ça doit être bon, on vérifie avec lvdisplay:

Effectivement, on a 99,999 GiB.

3ème partie : XFS

On remonte notre volume /data, et on constate qu’il n’a encore que 50Go

Il nous reste à étendre la partition avec xfs_growfs

Et là, tout est OK.

 

 

 

Les protocoles de l’email, le SMTP (2ème partie)

Cet article est le 2ème de la série. Voici le début expliquant comment marche l’email.

Vous l’utilisez quotidiennement, mais comment marche l’email réellement ? Quels sont les protocoles de l’email, le SMTP et l’IMAP ? Comment fonctionnent-ils ? Par où passe un email ? Voici un récapitulatif des bases de l’email.

Le chemin de l'email

Les protocoles de l’email, le SMTP :

Le SMTP est le protocole d’envoi et de transfert des messages. C’est le même protocole qui est utilisé par le MUA (Mail User Agent) pour communiquer avec le MSA (Mail Submission Agent), mais aussi entre les MTA (Mail Transfert Agent). De nos jours, le protocole réellement utilisé est l’ESMTP (Extented SMTP ou Enhanced SMTP), mais ne nous attardons pas pour l’instant sur leurs différences.

Le SMTP, comme tous les protocoles de cette page, s’appuie sur TCP/IP. Pour faire simple, c’est un protocole réseau qui garde une notion de « session » (j’arrête là pour la théorie). Passons donc à la pratique. Lire la suite

Comment marche l’email (1ère partie)

Vous l’utilisez quotidiennement, mais comment marche l’email réellement ? Quels sont les protocoles de l’email, SMTP et IMAP ? comment fonctionnent-ils ? Par ou passe un email ? Voici un récapitulatif des bases de l’e-mail.

Comment marche l’email

Commençons par le chemin emprunté par l’e-mail

Comment marche l'email

Les composants (en rouge):

  • MUA (Mail User Agent) : Il s’agit du logiciel utilisé pour envoyer et recevoir vos email. Le plus connu est Outlook, mais Thunderbird, en Open Source et gratuit, est un très bon outil.
  • MSA (Mail Submission Agent) : Il s’agit d’un logiciel serveur dédié à traiter les demandes d’envoi de mails. Il reçoit les demandes des MUA, et si les critères d’acceptations sont respectés (authentification, contenu,…) le mail est accepté pour l’envoi.
  • MTA (Mail Transfert Agent) : Il s’agit d’un logiciel serveur dédié à acheminer les mails vers le bon serveur.
  • MDA (Mail Delivery Agent) : Il s’agit également d’un logiciel serveur dédié à déposer le mail dans la boite aux lettres de l’utilisateur.

Rentrons dans le détail, et pour comprendre comment marche l’email :

Lire la suite

Tests unitaires ou tests d’intégration ?

Si vous vous intéressez quelque peu à la qualité du code, vous avez pris l’habitude de le tester et vous vous êtes forcément confrontés à ce dilemme : test unitaire ou un test d’intégration ?

Quelle différence ?

Pour commencer, rappelons la différence entre les deux types de tests. C’est essentiellement fonction de ce qu’on appelle l’isolation. Lire la suite

Adminer en local pour gérer ses bases distantes

Utiliser Adminer ?

Au menu aujourd’hui, un petit tuto pour utiliser un Adminer en local pour se connecter et gérer des bases distantes.

Il y a quelques temps, en bon développeur que je suis, je me suis posé la question de comment je pourrais accéder facilement aux bases de données sur les serveurs sur lesquels ne sont pas installés phpMyAdmin. Avant, je me connectais en ssh pour faire mes requêtes directement. Pas très pratique, pas très ergonomique, quelque chose me disait qu’il y avait un moyen de faire tout ça plus sympa. Lire la suite

Introduction à Slick2D

Qu’est-ce que Slick2D ?

La réponse courte serait : C’est une librairie Java permettant de faire de l’openGL.

Cependant, cette définition est légèrement fausse, il vaudrait mieux parler d’un ensemble d’outils qui permettent d’utiliser les bindings OpenGL fournis par LWJGL afin de développer simplement des jeux ou plus généralement des applications 2D utilisant OpenGL.

En effet, Slick2D, comme son nom l’indique, ne permet pas de faire une application ayant un rendu en 3D, pour cela il vous faudra utiliser directement LWJGL ou une autre librairie.

Pourquoi utiliser cette librairie au lieu d’une autre, pourquoi ne pas utiliser LWJGL directement? Lire la suite

Les pièges d’une appli Android – myMail

Introduction

Que se cache-t-il vraiment derrière la dernière appli mobile à la mode ? Est-ce vraiment une killer app ? Sûrement, vu les notes sur le Google Play l’App Store, mais alors, pourquoi est-elle gratuite ? Que gagnent-ils ? Qui se cache derrière cette app et est-elle sans reproche ?

Avec cet article, j’ai analysé 2 apps de gestion d’ e-mails en remplacement de votre appli native (Android ou iPhone). MyMail et CloudMagic. Je vais vous démontrer que si vous l’avez installée, vous avez certainement fait une belle bêtise, et sinon, vous éviter de l’installer !

Le Contexte

Installer une application mobile c’est très simple. Trop simple… Des utilitaires, des jeux ou encore des widgets. Souvent par effet de mode, ou « parce qu’elle est bien notée ». C’est rapide, 2 ou 3 tapotages plus loin, l’appli est sur notre smartphone.

Qu’on la garde ou qu’on la jette, l’appli est passée par votre smartphone, et le mal est peut-être déjà fait. Lire la suite

My Awesome devops list

Sur le principe des listes des outils et projets open sources utiles, voici la mienne !

Outils poste client Ubuntu d’un devops

  • Terminator : Cet outil va vous permettre d’arrêter de jongler entre les onglets de vos terminaux.
    Mes tips:

    • CTRL+SHIFT+O, CTRL+SHIFT+E: ouvrir une nouvelle fenêtre en splittant en bas ou à droite de
    • ALT+ FLECHE (haut, bas, gauche,droite) : se déplacer d’une fenêtre à l’autre
    • Installer le plugin « ssh clone » : vous permet d’ouvrir une nouvelle fenêtre avec sur le même serveur que la fenêtre courante
    • clic droit, « Commandes personnalisées »  -> « Préférences » : j’ai une commande nommée « AddMyKey » pour ajouter ma clé ssh du type :

      et donc, en arrivant sur un nouveau serveur, une nouvelle VM, je n’ai plus qu’a faire un clic droit, « Commandes personnalisées » -> AddMyKey
    • Je vous laisse découvrir (ou re-découvrir) l’outil, mais entre les raccourcis, l’envoi des mêmes commandes à plusieurs serveurs en même temps, c’est vraiment sympa.
  • Remmina : Gestionnaire de connexions VNC ou RDP
  • Eclipse : On ne le présente plus … Certains le trouvent lourd, il n’empêche qu’il reste très complet !
  • Sublime Text 3 : En plus des classiques (vim, gedit) qui vont bien pour du « rapide », ST est sympa pour coder rapidement un script ou encore pour de la manipulation avancée.
  • Easystroke : « Mouse Gesture » sur les commandes du bureau, et ça fait gagner un temps fou ! (compatible Gnome Shell 3.14)
  • Clementine : Parce qu’il faut bien un peu de musique en travaillant ;)

Lire la suite

Concaténation en Java ? Oui, mais comment ?

La concaténation est une opération simple et récurrente en programmation et le java ne déroge pas a la règle. Cependant, en java, il est possible de concaténer deux chaînes (ou plus) de différentes façons. Toutes ont leurs avantages et leurs inconvénients, les connaître nous permettra de choisir la manière la plus adaptée à chaque utilisation.

La concaténation de chaine

Si vous avez quelque chose comme ça dans votre code, sachez que, lors de la génération de vos fichiers .class depuis le .java, ce genre de concaténation est optimisée dans la mesure du possible.
Cette affectation deviendra donc : Lire la suite

Identifier les problèmes de concurrence

Commençons pas le commencement, si vous lisez cet article ce n’est probablement pas pour y trouver la recette de la blanquette de veau, ni comment monter votre nouvelle étagère scandinave…
Vous voulez en savoir plus sur les problèmes de concurrence, et nous allons voir comment les mettre en évidence.

Les problèmes liés à la concurrence de threads peuvent être particulièrement difficiles à identifier, surtout durant la phase de développement où, généralement, les tests sont faits dans un contexte mono-utilisateur.

Bien que les problèmes posés par l’accès concurrent de plusieurs threads à une variable puissent être faciles à contourner lors de la création d’une application initialement multi-utilisateurs, il peut arriver, lors de la montée en charge d’une application qui n’était pas initialement prévue pour fonctionner à l’aide de plusieurs threads, qu’une partie du code soit amenée à être appelée par plusieurs threads en même temps. Lire la suite