Linux: Como criar um Volume Group com todos os discos acabados de adicionar

Vamos supor que acabaste de adicionar um ou mais discos a um sistema Linux (físico ou virtual), e que queres criar um volume group chamado “vgdata” composto por todos eles — ou adicioná-los a esse VG caso ele já exista.

Pela piada da coisa, vamos também supor que queres fazer isto para vários sistemas ao mesmo tempo, e que há bastante heterogeneidade entre eles — uns podem já ter o VG “vgdata” e outros não, e uns podem ter tido apenas um disco adicionado, quando outros tiveram vários. Como scriptar isto?

[pastacode lang=”bash” manual=”%23!%2Fbin%2Fbash%0A%0A%23%20cria%20parti%C3%A7%C3%B5es%20LVM%20de%20tamanho%20m%C3%A1ximo%20em%20todas%20as%20drives%20sem%20parti%C3%A7%C3%B5es%3B%20cria%20tamb%C3%A9m%20PVs%20para%20elas%0Afor%20i%20in%20b%20c%20d%20e%20f%20g%20h%20i%20j%20k%20l%20m%20n%20o%20p%20q%20r%20s%20t%20u%20v%20w%20x%20y%20z%3B%20do%20sfdisk%20-s%20%2Fdev%2Fsd%24i%20%3E%2Fdev%2Fnull%202%3E%261%20%26%26%20(%20sfdisk%20-s%20%2Fdev%2Fsd%24%7Bi%7D1%20%3E%2Fdev%2Fnull%202%3E%261%20%7C%7C%20(%20parted%20%2Fdev%2Fsd%24i%20mklabel%20msdos%20%26%26%20parted%20-a%20optimal%20%2Fdev%2Fsd%24i%20mkpart%20primary%20ext4%20%220%25%22%20%22100%25%22%20%26%26%20parted%20-s%20%2Fdev%2Fsd%24i%20set%201%20lvm%20on%20%26%26%20pvcreate%20%2Fdev%2Fsd%24%7Bi%7D1%20)%20)%20%3B%20done%0A%0A%23%20se%20o%20VG%20%22vgdata%22%20existe%2C%20estende-o%20com%20todos%20os%20PVs%20n%C3%A3o%20usados…%0Avgs%20%7C%20grep%20-q%20vgdata%20%26%26%20pvs%20–no-headings%20-o%20pv_name%20-S%20vg_name%3D%22%22%20%7C%20sed%20’s%2F%5E%20*%2F%2Fg’%20%7C%20xargs%20vgextend%20vgdata%0A%0A%23%20…%20caso%20contr%C3%A1rio%2C%20cria-o%20com%20esses%20mesmos%20PVs%0Avgs%20%7C%20grep%20-q%20vgdata%20%7C%7C%20pvs%20–no-headings%20-o%20pv_name%20-S%20vg_name%3D%22%22%20%7C%20sed%20’s%2F%5E%20*%2F%2Fg’%20%7C%20xargs%20vgcreate%20vgdata%0A” message=”” highlight=”” provider=”manual”/]

Como sempre, podes usar o sistema de automatização da tua empresa para correr isto numa lista de servidores, ou usar o pssh, ou um ciclo “for” em bash, ou…

2 comentários em “Linux: Como criar um Volume Group com todos os discos acabados de adicionar”

  1. Podem perguntar-se porque é que estou a usar o sfdisk para verificar discos e partições, quando podia apenas olhar para a existência dos ficheiros de devices (/dev/sdb, /dev/sdb1, etc.). Tenho memória de que isso não é completamente fiável, mas não me lembro dos detalhes. O sfdisk funciona correctamente, e verifica que os devices são realmente discos ou partições, se bem que é possível que aqui esteja a ser paranóico.

  2. No caso de um Linux mais antigo (ex. Red Hat 5.x):

    – “mklabel msdos” não é aceite, apesar de na man page dizer que devia ser. Retira a parte “msdos” do comando, para funcionar;

    – “-a optimal” também não é reconhecido…

    – … nem o tipo de filesystem ext4 (usa ext3).

Leave a Reply to ZurglCancel reply