{"id":189,"date":"2011-11-04T13:31:00","date_gmt":"2011-11-04T13:31:00","guid":{"rendered":"http:\/\/hoper.dnsalias.net\/atdc\/index.php\/2011\/11\/04\/20111104mini-frayeur-avec-lvm\/"},"modified":"2011-11-04T13:31:00","modified_gmt":"2011-11-04T13:31:00","slug":"20111104mini-frayeur-avec-lvm","status":"publish","type":"post","link":"https:\/\/hoper.dnsalias.net\/atdc\/index.php\/2011\/11\/04\/20111104mini-frayeur-avec-lvm\/","title":{"rendered":"Petite frayeur avec LVM"},"content":{"rendered":"<p>Je vous rassure, quand je parle de \u00ab\u00a0frayeur\u00a0\u00bb, n&rsquo;allez pas imaginer un bug sur LVM ou quoi que ce soit dans le genre. LVM est (et restera), l&rsquo;un des logiciel les plus puissant et les plus fiables que je connaisse. Mais j&rsquo;ai eu ce week-end une petite inqui\u00e9tude&#8230;<\/p>\n<p>La situation \u00e9tait la suivante. Un serveur de fichier avec un raid logiciel (mdadm), et un groupe de volume ne comprenant qu&rsquo;un seul disque physique (PV), c&rsquo;est \u00e0 dire le raid lui m\u00eame (\/dev\/md0). Ce groupe de volume n&rsquo;ayant qu&rsquo;un seul \u00ab\u00a0disque\u00a0\u00bb utilisant en r\u00e9alit\u00e9 plusieurs \u00ab\u00a0vrais\u00a0\u00bb disques, j&rsquo;avais, au moment de la cr\u00e9ation initiale, demand\u00e9 l&rsquo;\u00e9criture de <a href=\"\/tdc\/index.php?pages\/LVM-Trucs-et-astuces\">deux copies des m\u00e9ta donn\u00e9es<\/a> au lieu d&rsquo;une seule. Le PV \u00e9tait donc constitu\u00e9 de la fa\u00e7on suivante&nbsp;:<\/p>\n<ol>\n<li>meta-data LVM<\/li>\n<li>Donn\u00e9es<\/li>\n<li>meta-data LVM<\/li>\n<\/ol>\n<p>Et tout allait tr\u00e8s bien jusqu\u2019\u00e0 ce qu&rsquo;il faille agrandir le PV en question. (Ajout d&rsquo;un nouveau disque dans le raid, puis mdadm &#8211;grow&#8230;). Au moment de lancer la commande pvresize, j&rsquo;ai obtenu ce magnifique message&nbsp;: \u00ab\u00a0too many metadata areas for pvresize\u00a0\u00bb. Ouch. <\/p>\n<p>Et oui, la seconde copie emp\u00eachait LVM d&rsquo;\u00e9tendre la partie \u00ab\u00a0donn\u00e9e\u00a0\u00bb (et donc de cr\u00e9er de nouveau physical extend etc). C&rsquo;est la qu&rsquo;une (grosse) inqui\u00e9tude s&rsquo;est empar\u00e9 de moi, car ce param\u00e8tre n&rsquo;est pas modifiable \u00e0 chaud. Il d\u00e9pend des options de cr\u00e9ation du pv, au moment du pvcreate donc&#8230;.<\/p>\n<p>Heureusement, google trouva tr\u00e8s vite la solution, parfaitement d\u00e9crite dans la <a href=\"http:\/\/wiki.tldp.org\/LVM-on-RAID\">documentation<\/a>, et que je ne recopie ici que pour me servir de pense b\u00eate. L&rsquo;id\u00e9e est la suivante&nbsp;: on sauvegarde la configuration, (emplacement des volumes logiques etc), on relance le pvcreate en ne demandant cette fois qu&rsquo;une seule copie des meta-data, puis on r\u00e9-applique la configuration, en for\u00e7ant bien l&rsquo;ancien uuid. En terme de commande, cela donne&nbsp;:<\/p>\n<ol type=\"1\">\n<li>vgcfgbackup -v -f \/some\/file volumeGroup <\/li>\n<li>vgchange -an volumeGroup <\/li>\n<li>pvcreate -ff &#8211;metadatacopies 1 &#8211;restorefile \/some\/file &#8211;uuid UUID \/dev\/device <\/li>\n<li>vgcfgrestore -v -f \/some\/file volumeGroup <\/li>\n<li>pvresize \/dev\/device <\/li>\n<\/ol>\n<p> Notez que la commande vgcfgbackup pourrait \u00eatre remplac\u00e9e par la simple copie du fichier de configuration pr\u00e9sent dans \/etc\/lvm\/backup. Notez aussi que pour pouvoir stopper le groupe de volume (vgchange -an), il faut bien \u00e9videment avoir auparavant d\u00e9monter tous les syst\u00e8mes de fichiers, ou ce qui pourrait utiliser les volumes logiques d&rsquo;une fa\u00e7on ou d&rsquo;une autre (cryptsetup&#8230;). Autre point important, ne vous trompez pas d&rsquo;UUID. On parle bien ici de l&rsquo;uuid du volume physique (PV), pas de l&rsquo;UUID du groupe de volume.<\/p>\n<p>Cette op\u00e9ration \u00e0 parfaitement fonctionn\u00e9e et contrairement \u00e0 ce qui est indiqu\u00e9 dans la documentation elle me semble absolument sans risques (a condition que vous ne fassiez pas n&rsquo;importe quoi bien sur..). <\/p>\n<p>Comme d&rsquo;habitude, je suis impressionn\u00e9 par ce formidable outil qu&rsquo;est LVM. Comment faisait on avant ? <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Je vous rassure, quand je parle de \u00ab\u00a0frayeur\u00a0\u00bb, n&rsquo;allez pas imaginer un bug sur LVM ou quoi que ce soit dans le genre. LVM est (et restera), l&rsquo;un des logiciel les plus puissant et les plus fiables que je connaisse. Mais j&rsquo;ai eu ce week-end une petite inqui\u00e9tude&#8230; La situation \u00e9tait la suivante. Un serveur [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-189","post","type-post","status-publish","format-standard","hentry","category-geekitude"],"_links":{"self":[{"href":"https:\/\/hoper.dnsalias.net\/atdc\/index.php\/wp-json\/wp\/v2\/posts\/189","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hoper.dnsalias.net\/atdc\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hoper.dnsalias.net\/atdc\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hoper.dnsalias.net\/atdc\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hoper.dnsalias.net\/atdc\/index.php\/wp-json\/wp\/v2\/comments?post=189"}],"version-history":[{"count":0,"href":"https:\/\/hoper.dnsalias.net\/atdc\/index.php\/wp-json\/wp\/v2\/posts\/189\/revisions"}],"wp:attachment":[{"href":"https:\/\/hoper.dnsalias.net\/atdc\/index.php\/wp-json\/wp\/v2\/media?parent=189"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hoper.dnsalias.net\/atdc\/index.php\/wp-json\/wp\/v2\/categories?post=189"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hoper.dnsalias.net\/atdc\/index.php\/wp-json\/wp\/v2\/tags?post=189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}