Auteur/autrice : starmate

6 novembre 2015 /

Voici un petit mémo pour moi même, qui détaille la façon d’augmenter la taille d’une partition lvm:

On va commencer par créer une partition de type lvm sur l’espace vide d’un disque, /dev/sda (dans un contexte hyperviseur):

fdisk /dev/sda

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x3657f1c2.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

On affiche la table de partition (vide sur un disque vierge)  avec la lettre « p« :

Command (m for help): p

Disk /dev/sda: 581.7 GB, 421474836480 bytes
16 heads, 183 sectors/track, 451610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3567f1c2

 Device Boot Start End Blocks Id System
/dev/sda1 * * * * * *
/dev/sda2 * * * * * *

On crée une nouvelle partition avec « n »

Command (m for help): n

Puis on choisit une partition type « primary » (« p« )

Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p

On lui donne un numéro (chez moi, il y a déjà un sda1 et sda2 donc cela sera la sda3 « 3« ):

Partition number (1-4, default 1): 3
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039):
Using default value 41943039

On va maintenant changer le « type » de la partition, c’est a dire que l’on va indiquer que cette partition est une partition lvm (8e):

Command (m for help): t
Selected partition 3
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

8e est le code pour LVM.

On affiche la table de partition pour tout vérifier avant de réécrire la table :

Command (m for help): p

Disk /dev/sda: 21.5 GB, 21474836480 bytes
16 heads, 63 sectors/track, 41610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3657f1c2

Device Boot Start End Blocks Id System
/dev/sda1 * * * * * *
/dev/sda2 * * * * * *
/dev/sda3 2048 41943039 20970496 8e Linux LVM

On a bien une partition de type « LVM ».

On peux enfin écrire la table:

Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.
Syncing disks
.

Pour une prise en charge de la nouvelle table sans redémarrer :

partx -v -a /dev/sda

Maintenant qu’on en a terminé avec le bas niveau, occupons-nous de LVM.

On commence par sauvegarder la configuration de LVM pour la restaurer en cas de problème:

vgcfgbackup mvg

Cela va créer un fichier /etc/lvm/backup/mvg qu’il nous sera utile en cas de problème.

On poursuit en initialisant maintenant la partition Lvm que l’on souhaite ajouté:

pvcreate /dev/sda3

Writing physical volume data to disk "/dev/sda3"
Physical volume "/dev/sda3" successfully created

On peut maintenant étendre le volume groupe « mvg » sur ce nouveau disque/partition:

vgextend mvg /dev/sda3

Volume group "mvg" successfully extended

Nous allons maintenant étendre le volume groupe à la totalité de l’espace libre de « mvg »:

lvextend -l +100%FREE /dev/mvg/LogVol02

Extending logical volume LogVol02 to 136.72 GiB
Logical volume LogVol02 successfully resized

En cas de problème, nous pouvons restaurer la configuration de LVM à l’état précédent grâce à la sauvegarde faite precedemment avec cette commande:

vgcfgrestore -f /etc/lvm/backup/mvg

Si tout est bon, il ne nous reste plus qu’à étendre le file système du volume logique (EXT2/3/4):

resize2fs /dev/mvg/LogVol02

resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mvg/VolGroup00-LogVol02 is mounted on /; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 9
Performing an on-line resize of /dev/mvg/VolGroup00-LogVol02 to 35840000 (4k) blocks.
The filesystem on /dev/mvg/VolGroup00-LogVol02 is now 35840000 blocks long.

Si la partition est en XFS, il faudra plutot passer par cette commande:

xfs_growfs /dev/mvg/LogVol02

meta-data=/dev/mvg/LogVol02 isize=512 agcount=4, agsize=1113856 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=4455424, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 4455424 to 9697280

On peux maintenant savourer son travail avec un petit df -h.

 

 

 

5 novembre 2015 /

Cette méthode est à utiliser avec des serveurs FTP ne contenant pas de données sensibles, car les identifiants de connexion sont stockés en clair.
Ce script permet de télécharger du serveur ftp « ftp.test.fr » le fichier « test.txt » en utilisant l’identifiant « test » et le mot de passe « t4st »

#!/bin/bash
ftplogin="test"
ftppasswd="t4st"
url_ftp="ftp.test.fr"
fichier="test.txt"
# On se positionne dans le dossier /home/test/ftp
# où sera téléchargé le fichier du serveur FTP
cd /home/test/ftp
ftp -in <<EOF
open $url_ftp
user $ftplogin $ftppasswd
get $fichier
close
bye
EOF
# Peut être complété par d'autre commande ici, notamment sur le fichier téléchargé.
exit 0

3 novembre 2015 /

Voici une petite commande pour débugger un serveur Apache. Elle fait un strace sur tous les processus Apache qui tournent sur la machine. Vous pourrez facilement identifier les nœuds d’étranglement avant une mise en production, ou détecter une procédure qui bloque.

Pour une distribution RPM :

ps awux | grep sbin/httpd | awk '{print"-p " $2}' | xargs strace -f

Pour une distribution Debian, (« apache » au lieu de « httpd »):

ps awux | grep sbin/apache | awk '{print"-p " $2}' | xargs strace -f

 

1 novembre 2015 /

Après certaine mise à jour sous Ubuntu, le son peut ne plus fonctionner.
On peut le rétablir en réinstallant le pilote, il suffit de lancer cette commande:

sudo apt-get --reinstall install build-essential linux-headers-`uname -r`

Plus d’aide ici ou

28 octobre 2015 /

On se retrouve assez souvent dans des environnements utilisant des proxy avec authentification pour encadrer la façon dont les utilisateurs du réseau local (donc moi du coup) vont sur le net.

Cela peux poser un problème notamment pour Yum qui ne pourra pas accéder aux différents miroirs sur internet, Up2date pour enregistrer son RedHat sur le RHN ou encore Wget.

 

Pour Up2date, il faut éditer le fichier /etc/sysconfig/rhn/up2date:

vi /etc/sysconfig/rhn/up2date

Puis on change la valeur de ce paramètre:
enableProxy=0

en ça:
enableProxy=1

On renseigne l’Url du serveur faisant office de proxy, dans le format « machine:port »:

httpProxy=serveur.proxy:8080

Si le proxy demande une authentification, on place le paramètre « enableProxyAuth » à 1:

enableProxyAuth=1

Il faudra alors renseigner les paramètres suivants:
proxyPassword=
proxyUser=

Une fois cela terminé on sauvegarde son fichier (:wq!).

 

Pour Yum, il faut aller modifier son fichier de configuration /etc/yum.conf:

vi /etc/yum.conf

Et on y ajoute cela:

proxy=http://nom_ou_adresse_ip_du_proxy:port/
proxy_username=login #si besoin d'authentification
proxy_password=pwd #idem

Vous devriez maintenant pourvoir faire un « yum update ».

 

Pour Wget, il faut aller modifier son fichier de configuration /etc/wgetrc et renseigner/décommenter les champs proxy suivant:

# You can set the default proxies for Wget to use for http, https, and ftp.
# They will override the value in the environment.
https_proxy = "http://nom_ou_adresse_ip_du_proxy:port/"
http_proxy = "http://nom_ou_adresse_ip_du_proxy:port/"
ftp_proxy = "http://nom_ou_adresse_ip_du_proxy:port/"

Si le proxy demande un mot de passe, on le déclare comme ça:
http_proxy="http://login:password@nom_ou_adresse_ip_du_proxy:port"

Pour finir, on va mettre l’option suivante sur on:

# If you do not want to use proxy at all, set this to off.
use_proxy = on

Wget est maintenant opérationnel derrière le proxy.

Vous pouvez aussi le déclarer dans son ~/bashrc:

http_proxy=http://nom_ou_adresse_ip_du_proxy:port
export http_proxy