Partition swap non détéctée par le système

Bonjour,

J’ai un problème sur un serveur de production sur debian 7 sur du raid1 (sda,sdb).

Après le changement d’un des disques (sda) par l’hébergeur, j’ai eu une alerte de zabbix comme quoi il manque la partition swap sur le serveur.

Sur le serveur :
d’après fdisk -l, il y a bien de la swap sur les deux disque :


Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 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: 0x56c32dd7

Device Boot Start End Blocks Id System
/dev/sdb1 * 1 204799 102399+ 83 Linux
/dev/sdb2 204800 2252799 1024000 82 Linux swap / Solaris
/dev/sdb3 2252800 488392064 243069632+ 83 Linux

Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders, total 488397168 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: 0x5459ed75

Device Boot Start End Blocks Id System
/dev/sda1 * 1 204799 102399+ 83 Linux
/dev/sda2 204800 2252799 1024000 82 Linux swap / Solaris
/dev/sda3 2252800 488392064 243069632+ 83 Linux


dans /etc/fstab il y a :


cat /etc/fstab
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
none /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/md0 /boot ext2 defaults 0 0
/dev/md1 / ext3 defaults,errors=remount-ro 0 0
# /dev/sda2 none swap sw 0 0
UUID=c867f2fc-7752-4208-bb91-2335fdceeed7 none swap sw 0 0


et /etc/blktab


cat /etc/blkid.tab
/dev/sda1
/dev/sda3
/dev/md1
/dev/md0
/dev/sdb

free

total used free shared buffers cached
Mem: 8198004 4812648 3385356 0 87492 2345612
-/+ buffers/cache: 2379544 5818460
Swap: 0 0 0

Il me semble que ‘UUID=c867f2fc-7752-4208-bb91-2335fdceeed7’ (/etc/fstab) fais référence à l’UUID de swap de l’ancien disque sda.

Pourriez-vous s’il vous plait m’aider à reconstruire la partition swap où à faire en sorte que le système reconnait la swap?

Après la recréation de la swap, un redémarrage de serveur est il nécessaire vu qu’elle existe déjà?

La RAM est largement suffisante pour la charge de serveur, le manque de swap pourra t-il causer l’augmentation de Laod average sur le serveur ?

Un grand merci d’avance.

Bonsoir,

executes la commande :

# blkid

et compares l’UUID retourné par cette commande pour la partition swap à celui dans le fstab, s’ils sont différents corriges simplement par celui retourné par blkid.

blkid m’a donné que les UUID des autres partitions (sda1,sda3, sdb1,sdb3, md0,md1) mais pas les partition swap sda2 et sdb2.

Et swapon /dev/sda2 a echoué


swapon: /dev/sda2: read swap header failed: Argument invalide

Au gré de te faire refaire les choses deux fois, redonnes-nous le retour des deux commandes que l’on puisse lire par nous même :

# fdisk -l

# blkid

Voici le fdisk -l :

La dernière ligne me parait bizarre.

Avant l’exécution de blkid, dans /etc/blkid.tab avait le contenu de la figure ci-jointe

et l’exécution de blkid m’a donné :

Il me semble que la partition swap n’est pas bien créée, j’ai exécuté “swapon sur /dev/sda2” et j’ai eu une erreur :

donc j’ai exécuté “mkswap /dev/sda”

puis j’ai exécuté “swapon /dev/sda2” ça a l’aire de marcher et le système à pu reconnaitre la swap:

Et en fin j’ai changé le UUID de /dev/sda (swap) au niveau de /etc/fstab par le UUID affiché lors de mkswap.

Et tu sais à quoi correspondent les ensembles RAID md0 et md1 (question subsidiaire)?

Je ne pourrai pas t’aider davantage étant donné que je ne connais pas mdadm et donc non plus les commandes associées donc je ne vais pas te dire n’importe quoi ce qui ne ferait qu’aggraver les choses.

Cependant je peux affirmer une chose, c’est que si fdisk reconnait les partitions sda2 et sdb2, alors que blkid ne les voit pas, c’est que ces partitions ne sont plus formatées en swap ou bien corrompues, et il faudrait les reformater en swap.
Dans le cas d’un système traditionnel on utilise la commande :

# mkswap

mais comme c’est du RAID là je ne sais pas comment ça fonctionne. Je préfère laisser la réponse aux contributeurs expérimentés avec ça.

1 J'aime

Euh t’emballes pas à faire des conneries le plus vite possible au risque de flinguer encore quelque chose… Perso j’attendrai que quelqu’un d’autre réponde avant de continuer parce que ce que tu viens de faire par exemple m’inquiète… Faire un :

#mkswap /dev/sda

applique théoriquement un format swap sur le disque sda… Mais sur sda tu as des partitions qui font partie d’un ensemble RAID, j’espère pour toi que t’as pas flingué quelque chose…

1 J'aime

Merci bcp pour vos réponses, malgré que je les ai vu un peu trop tard. mais ça me confirme ce qui j’ai pensé. ne vous inquiétez pas. J’ai exécuté les opérations avant même de voire vos réponses et après avoirbien réfléchie .

Désolée c’est une erreur de frape et heureusement :slight_smile: j’ai bien exécuté mkswap /dev/sda2

Ok, d’accord :smiley:
Mais cela dit si le swap etait etendu sur un volume RAID egalement il faudrait voir s’il ne faut pas recreer le volume RAID pour le swap avec la commande mdadm puis formater celui-ci en swap plutot que de ne formater que la partition sda2 en swap car sdb2 devait sans doute aussi faire partie de la swap…
Cela dit encore une fois je ne sais pas comment ça marche avec le RAID.

**EDIT : ** quelque chose du genre

# mdadm ...... /dev/sda2 /dev/sdb2

puis :

# mkswap mdX

X correspondant au volume RAID crée ci-dessus.

Concernant le raid1, normalement je comprends bien le fonctionnement.

Le serveur tourne sur deux disques (sda, sdb), partitionnés de cette manière :

  • sda : sda1–> boot , sda2–> swap, sda3 --> /
  • sdb : sdb1–> boot , sdb2–> swap, sdb3 --> /

Sur le serveur, il la 1ère et la 3ème partition de chaque disque est en raid1 mais pas la partition swap ( elle peut être en raid1, mais pas le cas sur ce serveur) , voici les partitions de raid1 :
m0 : sda1 et sdb1
m1 :sda3 et sdb3

et on vérifie l’état de raid1 logiciel de cette manière :

Franchement je n’y connais rien à ce RAID logiciel, je ne l’ai jamais utilisé, néanmoins je comprends ce que tu as écris mais comme je l’ai dit d’après ce que tu as fais jusqu’a maintenant il n’y a que /dev/sda2 qui sert de swap, donc /dev/sdb2 devait servir aussi de swap auparavant étant donné qu’elle porte un label swap retourné par fdisk -l.

Maintenant est-ce que ce swap etait “monté” au travers d’un volume RAID, je ne sais pas, mais mon intuition me dit que oui. Un expert passera sans doute par là pour compléter notre discussion.

Je verrai ça demain, et je vais vous répondre. Il me semble qu’il vaut mieux mettre la swap dans le raid1 aussi même si ce n’est pas nécessaire dans le cas de ce serveur ( la MAR est largement suffisante utilisée à 50% sur 8G) mais pour éviter les problèmes comme le problème d’aujourd’hui c’est une partition raid pour la swap me parait la bonne solution. n’est pas ?

Effectivement meme j’ai appliqué mkswap de /dev/sdb2 mais je ne l’ai pas activé avec swapon car je ne connais pas bien comment prioriser les partitions pour le moment. et en plus je pense à créer directement une partition swap en raid1.

Non, le swap n’est pas monté en raid, et pas de partition raid dédiée pour la swap et ça j’en suis sure et on voix bien ça dans /proc/mdstat et blkid

Ce n’ai pas moi qui a installé le système c’est l’hébergeur et je ne comprends pas leur choix de ne pas inclure le swap dans le raid.

Ce n’est pas parce que tu as suffisamment de RAM et que tu n’en utilises que 50% que tu n’as pas ou n’auras pas besoin de swap. La swap non seulement peut servir de “couche” physique" dans le cas d’une hibernation du système (mais bon dans le cas d’un serveur l’utilisation de l’hibernation est non avenue…), mais également lorsqu’une application a une fuite de mémoire.
Avec suffisamment d’espace swap le système va se mettre à ralentir puisqu’il va écrire sur le disque, mais en cas d’absence de swap ou de swap insuffisante le kernel va se mettre à tuer les processus un par un pour libérer de la mémoire si je me souviens bien, ce qui peut résulter à un crash du serveur.

Attention c’est un volume RAID avec plusieurs partitions disque.
Je me répète encore une fois , je ne sais pas comment ça fonctionne exactement avec mdadm, mais mon intuition me dit que oui, ne serait ce que pour une raison de continuité de redondance en cas de manque de RAM avec la swap egalement. De toute façon c’est quasiment sûr que /dev/sda2 et /dev/sdb2 faisaient partie du même volume puisqu’elles sont toutes deux labellisées “swap”…

j’ai répondu à ça donc le commentaire juste au dessus de votre.

Merci encore à vous. et bonne soirée, je suis obligée d’arreter aujourd’hui car je suis en wknd (normalement :slight_smile: ) je contenue demain sur le sujet.

De rien, passez un bon week-end :wink:

Bonsoir yfi

Avec un swap sur un seul disque (sda), ce qui est dommage,
c’est que si le disque sda tombe en panne, tu perdra le swap
et si des application utilisaient le swap à ce moment là, elle risquent très fortement de planter.

Donc, autant mettre aussi le swap en RAID1

# mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2
# mkswap --label swapRaid1 --uuid c867f2fc-7752-4208-bb91-2335fdceeed7 /dev/md2
# swapon -a

Tu n’aura pas à modifier ton fichier /etc/fstab


Si ce n’est pas déjà fait, il faudra aussi installer le chargeur de boot sur le nouveau disque qui vient d’être installé en remplacement

1 J'aime

Bravo c’est ce que je pensais mais je ne connais pas du tout les commandes avec mdadm.