{"id":4992,"date":"2020-11-09T16:54:34","date_gmt":"2020-11-09T19:54:34","guid":{"rendered":"https:\/\/blog.clusterweb.com.br\/?p=4992"},"modified":"2020-11-09T16:54:34","modified_gmt":"2020-11-09T19:54:34","slug":"lvm-no-linux","status":"publish","type":"post","link":"https:\/\/blog.clusterweb.com.br\/?p=4992","title":{"rendered":"LVM no Linux"},"content":{"rendered":"<h2 id=\"Introduo\">Introdu\u00e7\u00e3o<\/h2>\n<p>LVM significa Logical Volume Manager. Como o nome diz, essa ferramenta \u00e9 capaz de gerenciar os chamados volumes l\u00f3gicos, substituindo assim as tradicionais parti\u00e7\u00f5es nos discos. Ao longo do tempo, v\u00e1rias empresas fizeram suas implementa\u00e7\u00f5es de LVM e o Linux n\u00e3o ficou para tr\u00e1s: ele tamb\u00e9m possui uma implementa\u00e7\u00e3o (e muito boa) de LVM, que na \u00e9poca da escrita deste documento est\u00e1 na vers\u00e3o 2.<\/p>\n<p>Utilizar volumes l\u00f3gicos ao inv\u00e9s do esquema de particionamento comum traz algumas boas vantagens. Mas antes de saber destas vantagens, precisamos saber o que s\u00e3o esses tais volumes l\u00f3gicos. Um volume l\u00f3gico \u00e9 nada mais nada menos que uma representa\u00e7\u00e3o virtuais de peda\u00e7os de um dispositivo fixo. Enquanto as parti\u00e7\u00f5es definem estes peda\u00e7os \u201ccruamente\u201d, o volume l\u00f3gico permite flexibilidade na hora de definir quem s\u00e3o esses peda\u00e7os. Por exemplo, um volume l\u00f3gico pode ter seu espa\u00e7o dividido em 3 ou mais HDs, mas para o sistema operacional vai parecer como se fosse apenas um dispositivo. Sendo assim come\u00e7a a ficar clara as vantagens, n\u00e3o?<\/p>\n<p><!--more--><\/p>\n<h2 id=\"Vantagens-e-talvez-desvantagens\">Vantagens e talvez desvantagens<\/h2>\n<p>Vamos supor que eu tenha comprado um HD de 60GB. Quando eu instalei o meu Linux, particionei ele da seguinte forma:<\/p>\n<table border=\"1\" align=\"center\">\n<thead>\n<tr align=\"center\">\n<td>Parti\u00e7\u00e3o<\/td>\n<td>Tamanho<\/td>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\/boot<\/td>\n<td>666MB<\/td>\n<\/tr>\n<tr>\n<td>\/<\/td>\n<td>10GB<\/td>\n<\/tr>\n<tr>\n<td>\/home<\/td>\n<td>49GB<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Deixei 49GB para os arquivos de meu usu\u00e1rio (\/home). Mas suponha que eu enchi esta parti\u00e7\u00e3o com filmes pirateados. Em um cen\u00e1rio normal, eu teria que reformatar e refazer as parti\u00e7\u00f5es para colocar mais espa\u00e7o no \/home, ou comprar um novo HD maior e refazer tudo, depois copiando os dados. Isso n\u00e3o seria legal, n\u00e9? Com o LVM, \u00e9 poss\u00edvel voc\u00ea fazer isso de forma totalmente transparente para o sistema operacional: isso quer dizer que voc\u00ea pode redimensionar estas parti\u00e7\u00f5es, ou pode adicionar um espa\u00e7o de um novo HD em um volume l\u00f3gico j\u00e1 criado.<\/p>\n<p>Outra vantagem \u00e9 a cria\u00e7\u00e3o dos chamados LVM Snapshots, que falarei mais \u00e0 frente neste artigo. Basicamente um snapshot \u00e9 uma \u201cparada no tempo\u201d que voc\u00ea faz no volume l\u00f3gico. Quando voc\u00ea o faz, o LVM faz uma c\u00f3pia exata do volume l\u00f3gico, congelado na hora que voc\u00ea pediu. Com isso voc\u00ea pode usar o volume l\u00f3gico para testes, backups e outros fins, sem modificar o original, que continuar\u00e1 trabalhando normalmente.<\/p>\n<p>O LVM acaba por tamb\u00e9m executar alguns conceitos de RAID. Ao voc\u00ea indicar, por exemplo, 2 HDs para funcionar como apenas um volume l\u00f3gico, o LVM caso esteja trabalhando de uma certa forma, estar\u00e1 dividindo os dados entre os HDs, aumentando a velocidade. Esse \u00e9 o conceito do RAID0.<\/p>\n<p>Talvez duas das \u00fanicas desvantagens que poder\u00edamos levantar sobre o LVM seriam a dificuldade que as pessoas tem em se adaptar \u00e0 este novo modelo (sempre a resist\u00eancia a mudan\u00e7as) e uma forma de pensar em como montar o LVM sem comprometer a seguran\u00e7a dos dados caso um HD falhe. Por exemplo, se um volume l\u00f3gico conter 3 HDs, e um deles falhar, pode ser que este volume l\u00f3gico fique corrompido. Para situa\u00e7\u00f5es mais complexas como esta, geralmente se usa um conjunto de t\u00e9cnicas de RAID e LVM.<\/p>\n<p>Tanto para servidores de grande porte, com muito espa\u00e7o e uso de disco, quanto para as nossas m\u00e1quinas caseiras do dia-a-dia, o LVM \u00e9 uma ferramenta bastante \u00fatil. \u00c9 por isso que conhecer a ferramenta \u00e9 importante e \u00e9 por isto que estamos aqui \ud83d\ude09<\/p>\n<p>DICA: Se voc\u00ea quer brincar com fogo e n\u00e3o se queimar (leia-se: se voc\u00ea quer ficar mexendo com LVM sem precisar estragar todos os seus HDs), h\u00e1 um tutorial na P\u00e1gina do Eitch chamado Parti\u00e7\u00f5es em Arquivos que pode ser muito \u00fatil para voc\u00ea. Recomendo a leitura se voc\u00ea n\u00e3o quiser se arriscar muito. \u00c9 f\u00e1cil e r\u00e1pido e depois \u00e9 s\u00f3 substituir os HDs aqui pelos arquivos.<\/p>\n<h2 id=\"Instalando\">Instalando<\/h2>\n<p>Atualmente todas as vers\u00f5es mais atuais do kernel 2.6 j\u00e1 v\u00eam com o LVM e suas ferramentas inclusas. A maioria das distribui\u00e7\u00f5es de Linux tamb\u00e9m incluem os pacotes necess\u00e1rios para o funcionamento do mesmo. Ou seja, na grande maioria dos casos, seu sistema dever\u00e1 estar pronto para utilizar o LVM. Por este motivo n\u00e3o vou me extender sobre isso.<\/p>\n<p>Neste artigo trabalhamos apenas com o LVM2.<\/p>\n<p>Caso seu sistema for muito antigo e n\u00e3o possuir estas funcionalidades, voc\u00ea ter\u00e1 que obter o c\u00f3digo-fonte do LVM, compil\u00e1-lo junto ao seu kernel e fazer todo o trabalho adicional. Basicamente voc\u00ea precisar\u00e1 compilar e instalar o device-mapper e o lvm2. Acesse os seguintes endere\u00e7os para faz\u00ea-lo:<\/p>\n<ul>\n<li>LVM2 \u2013\u00a0<a href=\"http:\/\/sources.redhat.com\/lvm2\/\">http:\/\/sources.redhat.com\/lvm2\/<\/a><\/li>\n<li>DM \u2013\u00a0<a href=\"http:\/\/sources.redhat.com\/dm\/\">http:\/\/sources.redhat.com\/dm\/<\/a><\/li>\n<\/ul>\n<p>As pr\u00f3prias p\u00e1ginas t\u00eam respectivas instru\u00e7\u00f5es de constru\u00e7\u00e3o.<\/p>\n<h2 id=\"Colocando-o-LVM-em-ao\">Colocando o LVM em a\u00e7\u00e3o<\/h2>\n<p>Para come\u00e7ar a usar o LVM, voc\u00ea precisar\u00e1 escolher quais dispositivos (parti\u00e7\u00f5es) deseja usar com o LVM. Ent\u00e3o o primeiro passo \u00e9 preparar os dispositivos f\u00edsicos atrav\u00e9s do utilit\u00e1rio fdisk. Neste documento iremos usar 3 HDs: \/dev\/sdb, \/dev\/sdc, \/dev\/sdd, cada um com 2GB de espa\u00e7o cada. Para criar as parti\u00e7\u00f5es prontas para trabalhar com o LVM, utilize o fdisk e crie parti\u00e7\u00f5es do tipo 8e (Linux LVM). Veja o exemplo abaixo da cria\u00e7\u00e3o da primeira parti\u00e7\u00e3o em \/dev\/sdb:<\/p>\n<pre class=\"code\"># fdisk \/dev\/sdb\r\n\r\nCommand (m for help): p\r\n\r\nDisk \/dev\/sdb: 2147 MB, 2147483648 bytes\r\n255 heads, 63 sectors\/track, 261 cylinders\r\nUnits = cylinders of 16065 * 512 = 8225280 bytes\r\nDisk identifier: 0x0cad2d95\r\n\r\nDevice Boot      Start         End      Blocks   Id  System\r\n\r\nCommand (m for help): n\r\nCommand action\r\ne   extended\r\np   primary partition (1-4)\r\np\r\nPartition number (1-4): 1\r\nFirst cylinder (1-261, default 1): 1\r\nLast cylinder or +size or +sizeM or +sizeK (1-261, default 261): 261\r\n\r\nCommand (m for help): t\r\nSelected partition 1\r\nHex code (type L to list codes): 8e\r\nChanged system type of partition 1 to 8e (Linux LVM)\r\n\r\nCommand (m for help): p\r\n\r\nDisk \/dev\/sdb: 2147 MB, 2147483648 bytes\r\n255 heads, 63 sectors\/track, 261 cylinders\r\nUnits = cylinders of 16065 * 512 = 8225280 bytes\r\nDisk identifier: 0x0cad2d95\r\n\r\nDevice Boot      Start         End      Blocks   Id  System\r\n\/dev\/sdb1               1         261     2096451   8e  Linux LVM\r\n\r\nCommand (m for help): w\r\nThe partition table has been altered!\r\n\r\nCalling ioctl() to re-read partition table.\r\nSyncing disks.<\/pre>\n<p>No bloco acima eu executei o fdisk no HD \/dev\/sdb e criei uma parti\u00e7\u00e3o utilizando todos os cilindros (tamanho m\u00e1ximo \u2013 2GB), e configurando o tipo de parti\u00e7\u00e3o para 8e, gerando ent\u00e3o uma parti\u00e7\u00e3o Linux LVM. Eu repeti o mesmo processo no HD \/dev\/sdc, enquanto que no \/dev\/sdd eu criei uma parti\u00e7\u00e3o de aproximadamente 800MB.<\/p>\n<p>Agora que preparamos as parti\u00e7\u00f5es para serem usadas pelo LVM, est\u00e1 na hora de coloc\u00e1-las em a\u00e7\u00e3o! As ferramentas do LVM podem ser usadas de duas maneiras: atrav\u00e9s de um prompt geral do lvm ou atrav\u00e9s de comandos na shell do sistema. Aqui neste documento estarei utilizando o prompt geral, que pode ser executado atrav\u00e9s do comando:<\/p>\n<pre class=\"code\"># lvm<\/pre>\n<p>Com este comando voc\u00ea cair\u00e1 em um prompt \u201clvm&gt;\u201d. Dentro deste prompt voc\u00ea pode utilizar o comando help e todos os outros comandos que o LVM possui.<\/p>\n<h3 id=\"LVM-e-os-dispositivos-fsicos\">LVM e os dispositivos f\u00edsicos<\/h3>\n<p>Vamos come\u00e7ar adicionando ao LVM as tr\u00eas parti\u00e7\u00f5es que criamos anteriormente com o fdisk. Para adicionar dispositivos f\u00edsicos no LVM, utilizamos o comando pvcreate, por exemplo:<\/p>\n<pre class=\"code\">lvm&gt; pvcreate \/dev\/sdb1 \/dev\/sdc1 \/dev\/sdd1\r\nPhysical volume \"\/dev\/sdb1\" successfully created\r\nPhysical volume \"\/dev\/sdc1\" successfully created\r\nPhysical volume \"\/dev\/sdd1\" successfully created<\/pre>\n<p>Agora as tr\u00eas parti\u00e7\u00f5es est\u00e3o dispon\u00edveis para alocarmos como quisermos no LVM. Caso voc\u00ea queira listar todos os dispositivos f\u00edsicos atualmente registrados no LVM, utilize os comandos pvs e\/ou pvdisplay. Voc\u00ea tamb\u00e9m pode remover um dispositivo do LVM com o comando pvremove se quiser.<\/p>\n<p>Vamos ver como os nossos dispositivos f\u00edsicos ficaram:<\/p>\n<pre class=\"code\">lvm&gt; pvdisplay\r\n--- NEW Physical volume ---\r\nPV Name               \/dev\/sdb1\r\nVG Name\r\nPV Size               2.00 GB\r\nAllocatable           NO\r\nPE Size (KByte)       0\r\nTotal PE              0\r\nFree PE               0\r\nAllocated PE          0\r\nPV UUID               X49M4Q-l9jl-u93u-17yF-kF8a-gusv-6z6267\r\n\r\n--- NEW Physical volume ---\r\nPV Name               \/dev\/sdc1\r\nVG Name\r\nPV Size               2.00 GB\r\nAllocatable           NO\r\nPE Size (KByte)       0\r\nTotal PE              0\r\nFree PE               0\r\nAllocated PE          0\r\nPV UUID               Rw3RyW-emUx-OYeJ-58eo-XOG0-ctWu-obtDOE\r\n\r\n--- NEW Physical volume ---\r\nPV Name               \/dev\/sdd1\r\nVG Name\r\nPV Size               784.39 MB\r\nAllocatable           NO\r\nPE Size (KByte)       0\r\nTotal PE              0\r\nFree PE               0\r\nAllocated PE          0\r\nPV UUID               WGCxed-i30s-IuJ4-sgc5-CVJo-lL13-uU9DoI<\/pre>\n<h3 id=\"Grupos-de-Volumes\">Grupos de Volumes<\/h3>\n<p>Uma vez em que os dispositivos f\u00edsicos j\u00e1 estejam preparados para serem utilizados no LVM, est\u00e1 na hora de come\u00e7ar a criar grupos de volumes. Um grupo de volume nada mais \u00e9 que a especifica\u00e7\u00e3o de qual fatia do dispositivo f\u00edsico ser\u00e1 utilizada nos volumes l\u00f3gicos.<\/p>\n<p>No nosso exemplo aqui, temos 3 dispositivos f\u00edsicos, certo? Supomos que eu queira criar dois grupos de volumes: O primeiro e o segundo dispositivos f\u00edsicos ser\u00e3o o Grupo 1 e o terceiro dispositivo ser\u00e1 o Grupo 2. Quando eu for criar os volumes l\u00f3gicos no Grupo 1, os dados estar\u00e3o nos HDs 1 e 2, enquanto que os volumes do Grupo 2 estar\u00e3o no HD 3. Desta forma voc\u00ea pode escolher e planejar quais parti\u00e7\u00f5es v\u00e3o ficar em quais HDs.<\/p>\n<p>Indo para a pr\u00e1tica, vamos fazer o que eu disse acima. O comando para criar um grupo de volume \u00e9 o vgcreate:<\/p>\n<pre class=\"code\">lvm&gt; vgcreate Grupo01 \/dev\/sdb1 \/dev\/sdc1\r\nVolume group \"Grupo01\" successfully created\r\nlvm&gt; vgcreate Grupo02 \/dev\/sdd1\r\nVolume group \"Grupo02\" successfully created<\/pre>\n<p>Agora vamos verificar o que foi feito atrav\u00e9s do comando vgdisplay:<\/p>\n<pre class=\"code\">lvm&gt; vgdisplay\r\n--- Volume group ---\r\nVG Name               Grupo02\r\nSystem ID\r\nFormat                lvm2\r\nMetadata Areas        1\r\nMetadata Sequence No  1\r\nVG Access             read\/write\r\nVG Status             resizable\r\nMAX LV                0\r\nCur LV                0\r\nOpen LV               0\r\nMax PV                0\r\nCur PV                1\r\nAct PV                1\r\nVG Size               784.00 MB\r\nPE Size               4.00 MB\r\nTotal PE              196\r\nAlloc PE \/ Size       0 \/ 0\r\nFree  PE \/ Size       196 \/ 784.00 MB\r\nVG UUID               GNHWKf-HQ65-DJzn-cU0S-2B8a-F0jm-oQOr9g\r\n\r\n--- Volume group ---\r\nVG Name               Grupo01\r\nSystem ID\r\nFormat                lvm2\r\nMetadata Areas        2\r\nMetadata Sequence No  1\r\nVG Access             read\/write\r\nVG Status             resizable\r\nMAX LV                0\r\nCur LV                0\r\nOpen LV               0\r\nMax PV                0\r\nCur PV                2\r\nAct PV                2\r\nVG Size               3.99 GB\r\nPE Size               4.00 MB\r\nTotal PE              1022\r\nAlloc PE \/ Size       0 \/ 0\r\nFree  PE \/ Size       1022 \/ 3.99 GB\r\nVG UUID               XK7VwK-uxVI-XSF0-vNak-S4le-jU2K-sgXXNn<\/pre>\n<p>Veja que acima, podemos ver que os dois grupos foram criados exatamente da forma que a gente queria: O Grupo 01 tem um tamanho de 4GB (ou 1022 Physical Extends), ou seja, os dois HDs de 2GB juntos. O Grupo 02 tem um tamanho de 784MB (ou 196 Physical Extends), o que corresponde ao terceiro HD.<\/p>\n<p>Mas antes de prosseguir, que tal se perguntar o que \u00e9 esse tal de Physical Extend (PE)? Pense no PE como um tijolo da constru\u00e7\u00e3o de uma casa. Este tijolo tem um tamanho fixo (que no nosso caso \u00e9 4MB) e para construir toda a casa, s\u00e3o necess\u00e1rios uma quantidade de tijolos que iguale o tamanho total da casa, que \u00e9 4GB. Para chegar nesse espa\u00e7o, precisa-se de 1022 tijolos, pois 1022 x 4MB = ~2GB. Em um grupo de volume, o tamanho do PE \u00e9 sempre igual para todos os PEs dentro do grupo, ent\u00e3o seu tamanho precisa ser um m\u00faltiplo desse tamanho.<\/p>\n<p>Um PE \u00e9 uma parte do HD que quando alocado em um grupo de volume, fica dispon\u00edvel para mapear em um volume l\u00f3gico. Desta forma, um volume l\u00f3gico pode conter v\u00e1rios PEs de diversos dispositivos f\u00edsicos diferentes alocados em LEs (Logical Extends) de um \u00fanico volume l\u00f3gico. Essa distribui\u00e7\u00e3o \u00e9 que d\u00e1 flexibilidade ao LVM e permite ele fazer as t\u00e9cnicas de RAID. Isso poder\u00e1 ficar mais claro quando come\u00e7armos a criar os volumes l\u00f3gicos.<\/p>\n<p>No comando vgdisplay mostrado acima, voc\u00ea pode observar tr\u00eas linhas que cont\u00e9m defini\u00e7\u00f5es do Physical Extend (PE): Total PE,Alloc PE \/ Size e Free PE \/ Size. O Total PE diz quantos PEs foram alocados no total para o grupo de volume: este \u00e9 o total que poder\u00e1 ser utilizados nos volumes l\u00f3gicos que voc\u00ea ir\u00e1 criar. O Alloc PE \/ Size \u00e9 a quantidade (e tamanho) de PEs que j\u00e1 est\u00e3o alocados em volumes l\u00f3gicos: como n\u00e3o criamos nenhum ainda, nenhum est\u00e1 alocado no exemplo acima. J\u00e1 o FreePE \/ Size cont\u00e9m a quantidade (e tamanho) de PEs livres para criar volumes l\u00f3gicos: como n\u00e3o criamos nenhum ainda, todos os PEs est\u00e3o livres no exemplo acima.<\/p>\n<p>Uma \u00faltima nota sobre os PEs: o tamanho padr\u00e3o de um PE ao criar um grupo de volume \u00e9 de 4MB. Este n\u00famero, caso voc\u00ea queira, pode ser alterado em uma faixa que vai de 8K a 16GB. Na hora de criar um Grupo de Volume, utilize o par\u00e2metro -s para especificar o tamanho do PE. Por exemplo: vgcreate -s 64M Grupo03 \/dev\/sde1 \u2013 Isso ir\u00e1 criar o Group03 com o tamanho dos PEs sendo 64MB. Quanto maior o tamanho, melhor o desempenho e pior a flexibilidade do LVM (pois os tamanhos dos volumes l\u00f3gicos t\u00eam de ser todos m\u00faltiplos do tamanho do PE e isso pode acarretar em desperd\u00edcio de espa\u00e7o). Neste exemplo continuaremos utilizando o tamanho de 4MB.<\/p>\n<h3 id=\"Volumes-Lgicos\">Volumes L\u00f3gicos<\/h3>\n<p>Preparados os Grupos de Volume, vamos agora criar os famosos volumes l\u00f3gicos de que falamos tanto. Para ficar mais f\u00e1cil o entendimento, considere o volume l\u00f3gico como o equivalente a uma parti\u00e7\u00e3o comum, pois \u00e9 assim que o sistema ir\u00e1 ver este volume l\u00f3gico: voc\u00ea poder\u00e1 montar, desmontar, formatar, entre outros.<\/p>\n<p>Como expliquei anteriormente, criar um volume l\u00f3gico significa mapear os Physical Extends em Logical Extends, distribuindo assim o acesso entre os HDs do Grupo de Volume e criando um volume l\u00f3gico \u201cvirtual\u201d. Neste exemplo iremos criar 3 volumes l\u00f3gicos em 2 grupos de volume. No Grupo01 iremos criar um volume chamado Grupo01-raiz, ao qual montaremos na raiz, e outro volume chamado Grupo01-home, ao qual montaremos no diret\u00f3rio \/home. No Grupo02 iremos criar apenas um volume, chamado Grupo02-log, que montar\u00e1 em \/var\/log.<\/p>\n<p>Para criar os volumes l\u00f3gicos, o comando lvcreate \u00e9 utilizado (j\u00e1 reparou como os nomes dos comandos s\u00e3o intuitivos? :). Os seguintes par\u00e2metros podem (e devem ser usados) na hora de criar um volume l\u00f3gico simples:<\/p>\n<ul>\n<li><strong>-l<\/strong>\u00a0: Especifica a quantidade de PEs que ser\u00e3o mapeados como LEs, formando assim o tamanho do volume l\u00f3gico.<\/li>\n<li><strong>-L<\/strong>\u00a0: Alternativa ao par\u00e2metro -l. Ao inv\u00e9s de voc\u00ea especificar a quantidade de PEs (e por consequencia ter que calcular o tamanho certo do volume), voc\u00ea pode especificar aqui apenas o tamanho da parti\u00e7\u00e3o e ele j\u00e1 far\u00e1 a conta para voc\u00ea.<\/li>\n<li><strong>-n<\/strong>\u00a0: O nome do volume l\u00f3gico, que estar\u00e1 sempre listado no LVM. Opcional, mas para efeito de organiza\u00e7\u00e3o tente sempre colocar um nome intuitivo. Se voc\u00ea n\u00e3o colocar esta op\u00e7\u00e3o o LVM vai utilizar um nome aleat\u00f3rio para voc\u00ea.<\/li>\n<\/ul>\n<p>H\u00e1 outras op\u00e7\u00f5es \u00fateis como a -i (striping) e -m (mirroring), mas por enquanto n\u00e3o falaremos sobre isso se n\u00e3o as coisas complicam mais.<\/p>\n<p>Chega de conversa! Vamos criar os volumes l\u00f3gicos agora mesmo:<\/p>\n<pre class=\"code\">lvm&gt; lvcreate -L 1G -n Grupo01-raiz Grupo01\r\nLogical volume \"Grupo01-raiz\" created\r\nlvm&gt; lvcreate -L 3G -n Grupo01-home Grupo01\r\nInsufficient free extents (766) in volume group Grupo01: 768 required\r\nlvm&gt; lvcreate -l 766 -n Grupo01-home Grupo01\r\nLogical volume \"Grupo01-home\" created\r\nlvm&gt; lvcreate -l 196 -n Grupo02-log Grupo02\r\nLogical volume \"Grupo02-log\" created<\/pre>\n<p>Vejamos o que eu fiz:<\/p>\n<ol>\n<li>Criei um volume l\u00f3gico chamado (-n) Grupo01-raiz, dentro do Grupo01 (obviamente), com o tamanho (-L) de 1GB;<\/li>\n<li>Eu tentei criei um volume l\u00f3gico chamado (-n) Grupo01-home com o tamanho (-L) de 3GB. O LVM converteu esses 3GB para a quantidade de PEs e n\u00e3o deu muito certo: a convers\u00e3o resultou em 768 PEs e s\u00f3 tinha 766 livres, 8MB de diferen\u00e7a. Esta \u00e9 a desvantagem de utilizar o -L ao inv\u00e9s do -l: voc\u00ea pode n\u00e3o encontrar muita exatid\u00e3o;<\/li>\n<li>Corrigi o segundo substituindo o tamanho pela quantidade (-l) de 766 PEs. Dessa vez criou com sucesso;<\/li>\n<li>Por \u00faltimo criei um volume l\u00f3gico chamado (-n) Grupo02-log com o tamanho de 196 PEs (o total que o comando gdisplay havia me informado anteriormente, ou seja, 784MB).<\/li>\n<\/ol>\n<p>Agora vamos usar o comando lvdisplay para obter detalhes de nossos rec\u00e9m-criados volumes l\u00f3gicos:<\/p>\n<pre class=\"code\">lvm&gt; lvdisplay\r\n--- Logical volume ---\r\nLV Name                \/dev\/Grupo02\/Grupo02-log\r\nVG Name                Grupo02\r\nLV UUID                epfsvr-h75Q-7I3L-zl6H-5GLO-2YpH-eH2rVN\r\nLV Write Access        read\/write\r\nLV Status              available\r\n# open                 0\r\nLV Size                784.00 MB\r\nCurrent LE             196\r\nSegments               1\r\nAllocation             inherit\r\nRead ahead sectors     0\r\nBlock device           253:4\r\n\r\n--- Logical volume ---\r\nLV Name                \/dev\/Grupo01\/Grupo01-raiz\r\nVG Name                Grupo01\r\nLV UUID                2wh0eH-im2b-7lZY-UjoL-yQG1-Pz5A-I16erM\r\nLV Write Access        read\/write\r\nLV Status              available\r\n# open                 0\r\nLV Size                1.00 GB\r\nCurrent LE             256\r\nSegments               1\r\nAllocation             inherit\r\nRead ahead sectors     0\r\nBlock device           253:2\r\n\r\n--- Logical volume ---\r\nLV Name                \/dev\/Grupo01\/Grupo01-home\r\nVG Name                Grupo01\r\nLV UUID                d1f9vO-4pkY-T29d-c0T1-M2Bd-x3BR-2ZOvOg\r\nLV Write Access        read\/write\r\nLV Status              available\r\n# open                 0\r\nLV Size                2.99 GB\r\nCurrent LE             766\r\nSegments               2\r\nAllocation             inherit\r\nRead ahead sectors     0\r\nBlock device           253:3<\/pre>\n<p>Prontinho, analizando a sa\u00edda acima, d\u00e1 pra ver que criamos com sucesso nossos 3 volumes l\u00f3gicos e agora eles est\u00e3o prontos para serem usados transparentemente pelo sistema. A \u00fanica coisa que voc\u00ea precisa saber agora \u00e9 que, no sistema, ao inv\u00e9s de voc\u00ea utilizar os dispositivos f\u00edsicos (\/dev\/sdb1, \/dev\/sdc1, etc) voc\u00ea utilizar\u00e1 o que est\u00e1 escrito no campo LV Name, ou seja, \/dev\/Grupo01\/Grupo01-raiz, \/dev\/Grupo01\/Grupo01-home e \/dev\/Grupo02\/Grupo02-log. Que tal uns exemplos?<\/p>\n<h2 id=\"Utilizando-os-volumes-lgicos-no-sistema\">Utilizando os volumes l\u00f3gicos no sistema<\/h2>\n<p>Ok, acabei de criar os volumes l\u00f3gicos, o que eu posso fazer com eles agora?<\/p>\n<p>Vamos pegar como exemplo o volume l\u00f3gico \/dev\/Grupo02\/Grupo02-log. Antes de mont\u00e1-lo no lugar correto, voc\u00ea precisa formatar esta \u201cparti\u00e7\u00e3o\u201d. Fa\u00e7a isso com o comando mkfs.ext3 (caso o sistema de arquivos que voc\u00ea queira seja o ext3 claro):<\/p>\n<pre class=\"code\"># mkfs.ext3 \/dev\/Grupo02\/Grupo02-log<\/pre>\n<p>Aguarde um pouco e pronto! Agora monte o volume no diret\u00f3rio correto:<\/p>\n<pre class=\"code\"># mount \/dev\/Grupo02\/Grupo02-log \/var\/log<\/pre>\n<p>Se quiser tamb\u00e9m pode at\u00e9 adicionar uma linha no \/etc\/fstab para montar automaticamente na inicializa\u00e7\u00e3o!<\/p>\n<pre class=\"code\">\/dev\/Grupo02\/Grupo02-log        \/var\/log               ext3    defaults        1 1<\/pre>\n<p>E sim, voc\u00ea pode fazer estes e quaisquer outros comandos que aceitem dispositivos de bloco (p.ex.: parti\u00e7\u00f5es). Para voc\u00ea isso \u00e9 transparente, o LVM cuida de todo o resto.<\/p>\n<h2 id=\"Outras-operaes-possveis-e-teis-do-LVM\">Outras opera\u00e7\u00f5es poss\u00edveis e \u00fateis do LVM<\/h2>\n<p>Al\u00e9m de simplesmente criar os volumes l\u00f3gicos com o LVM, voc\u00ea tamb\u00e9m pode fazer in\u00fameras outras opera\u00e7\u00f5es que s\u00e3o bastante \u00fateis (e essenciais). Uma delas j\u00e1 falamos aqui: redimensionar os volumes l\u00f3gicos; outras incluem mover volumes, criar snapshots, adicionar novos dispositivos, entre outros. Que tal falarmos um pouco de cada?<\/p>\n<h3 id=\"Redimensionando-volumes-lgicos\">Redimensionando volumes l\u00f3gicos<\/h3>\n<p>Suponha que realmente o meu espa\u00e7o do \/home encheu de filmes pirateados. Eu, com pregui\u00e7a de ficar gravando CDs e DVDs, resolvi comprar um novo HD e queria adicionar esse espa\u00e7o novo no \/home sem ter que refazer todo o particionamento. Se o meu \/home estiver em um esquema LVM como o criado atrav\u00e9s deste documento, eu posso fazer isso sem muita dor de cabe\u00e7a!<\/p>\n<p>Instalei o novo HD e sei que ele \u00e9 atualmente o \/dev\/sde. Agora come\u00e7o do come\u00e7o: crio uma nova parti\u00e7\u00e3o dentro deste HD com o fdisk, coloco esta parti\u00e7\u00e3o como tipo 8e (Linux LVM), salvo. Depois executo o LVM, adiciono o \/dev\/sde1 ao LVM com o comando pvcreate e depois utilizo o comando vgextend para adicionar esta nova parti\u00e7\u00e3o ao meu grupo de volume. Como quero aumentar o \/home, os seguintes passos do LVM fazem o que queremos:<\/p>\n<pre class=\"code\">lvm&gt; pvcreate \/dev\/sde1\r\nPhysical volume \"\/dev\/sde1\" successfully created\r\nlvm&gt; vgextend Grupo01 \/dev\/sde1\r\nVolume group \"Grupo01\" successfully extended\r\n\r\nlvm&gt; vgdisplay Grupo01\r\n--- Volume group ---\r\nVG Name               Grupo01\r\nSystem ID\r\n[...]\r\nVG Size               4.47 GB\r\nPE Size               4.00 MB\r\nTotal PE              1144\r\nAlloc PE \/ Size       1022 \/ 3.99 GB\r\nFree  PE \/ Size       122 \/ 488.00 MB\r\n[...]<\/pre>\n<p>Quando eu extendi o grupo de volume Grupo01, eu adicionei o espa\u00e7o que tinha no \/dev\/sde1 e o LVM tornou dispon\u00edvel os PEs para serem utilizados. Neste exemplo, o \/dev\/sde1 tem 488MB, ent\u00e3o como voc\u00ea pode ver depois no comando vgdisplay Grupo01, o grupo foi modificado, agora h\u00e1 122 novos PEs, o que corresponde a 488MB. Agora voc\u00ea pode utilizar esses PEs como quiser nos volumes l\u00f3gicos.<\/p>\n<p>Como queremos aumentar o \/home, utilizamos o comando lvresize para redimensionar o volume l\u00f3gico. Vamos l\u00e1:<\/p>\n<pre class=\"code\">lvm&gt; lvresize -l +122 \/dev\/Grupo01\/Grupo01-home\r\nExtending logical volume Grupo01-home to 3.47 GB\r\nLogical volume Grupo01-home successfully resized<\/pre>\n<p>Simples n\u00e3o? No lvresize, podemos utilizar tanto o -L (por tamanho) quanto o -l (por PE). O sinal de + (ou -) antes do n\u00famero indica se voc\u00ea quer aumentar ou diminuir a quantidade de PE (ou tamanho). Vamos ver como ficou o nosso volume l\u00f3gico com o lvdisplay:<\/p>\n<pre class=\"code\">--- Logical volume ---\r\nLV Name                \/dev\/Grupo01\/Grupo01-home\r\nVG Name                Grupo01\r\nLV UUID                d1f9vO-4pkY-T29d-c0T1-M2Bd-x3BR-2ZOvOg\r\nLV Write Access        read\/write\r\nLV Status              available\r\n# open                 0\r\nLV Size                3.47 GB\r\nCurrent LE             888\r\nSegments               3\r\nAllocation             inherit\r\nRead ahead sectors     0\r\nBlock device           253:3<\/pre>\n<p>Sim\u2026 Agora ele ao inv\u00e9s de ter 3GB, tem 3.47GB e est\u00e1 utilizando um outro HD \ud83d\ude42<\/p>\n<p>ATEN\u00c7\u00c3O: O processo n\u00e3o acabou por a\u00ed. Lembre-se que todo este processo feito no LVM \u00e9 f\u00edsico. Dentro deste dispositivo fixo h\u00e1 um sistema de arquivos que tamb\u00e9m tem que ser tratado. Neste exemplo acima, voc\u00ea ter\u00e1 que fazer o comando \u201cext2online \/dev\/Grupo01\/grupo01-home\u201d antes de poder utilizar este sistema de arquivos. Lembre-se tamb\u00e9m que este procedimento deve ser feito enquanto o sistema de arquivos estiver desmontado. Evite corromper seu sistema de arquivos e perder todos os seus dados! Lembrando tamb\u00e9m que o comando do sistema de arquivos varia, no nosso caso estamos sempre utilizando o ext3.<\/p>\n<p>Para ajudar, lembre-se sempre destes dois passo-a-passos:<\/p>\n<p>Aumentando o tamanho de uma parti\u00e7\u00e3o LVM:<\/p>\n<ol>\n<li>Desmonte o sistema de arquivos;<\/li>\n<li>Ajuste a parti\u00e7\u00e3o no LVM, aumentando o seu tamanho com o lvresize ou lvextend para o desejado;<\/li>\n<li>Saia do LVM e redimensione o sistema de arquivos com o comando ext2online ou resize2fs;<\/li>\n<li>Remonte o sistema de arquivos<\/li>\n<\/ol>\n<p>Diminuindo o tamanho de uma parti\u00e7\u00e3o LVM:<\/p>\n<ol>\n<li>Desmonte o sistema de arquivos;<\/li>\n<li>Primeiro diminua o tamanho do sistema de arquivos com o comando resize2fs para o desejado;<\/li>\n<li>Entre no LVM e ajuste o tamanho do volume para o configurado no passo anterior;<\/li>\n<li>Remonte o sistema de arquivos<\/li>\n<\/ol>\n<p>Lembre-se sempre de alterar a ordem! J\u00e1 vi muita gente corrompendo sistemas de arquivos ao diminuir os seus tamanhos de forma errada.<\/p>\n<h3 id=\"Migrando-dispositivos-fixos\">Migrando dispositivos fixos<\/h3>\n<p>Se por acaso se voc\u00ea acha que um de seus HDs est\u00e1 falhando, voc\u00ea pode mover os PEs de um dispositivo fixo para outro atrav\u00e9s do comando pvmove. Voc\u00ea pode utilizar essa \u201cmovimenta\u00e7\u00e3o\u201d para criar novos grupos de volume caso voc\u00ea n\u00e3o tenha PEs livres ou nenhum HD novo. Seu funcionamento \u00e9 bem simples:<\/p>\n<pre class=\"code\">lvm&gt; pvmove -v<\/pre>\n<p>No nosso exemplo, vamos supor que o HD \/dev\/sdc esteja falhando e precisamos troc\u00e1-lo. Podemos colocar um novo HD (\/dev\/sdf), adicion\u00e1-lo ao LVM com o pvcreate, adicion\u00e1-lo a grupo do \/dev\/sdc (Grupo01) e migrar todos os PEs com o comando:<\/p>\n<pre class=\"code\">lvm&gt; pvmove -v \/dev\/sdc1 \/dev\/sdf1<\/pre>\n<p>Depois basta apenas remover o \/dev\/sdc1 do Volume e LVM. Outra maneira de fazer isso \u00e9 n\u00e3o espeficicando o destino:<\/p>\n<pre class=\"code\">lvm&gt; pvmove -v \/dev\/sdc1<\/pre>\n<p>Neste caso o LVM vai mover todos os PEs que estavam no \/dev\/sdc1 para qualquer PE livre dentro do volume Grupo01 (lembre-se de que os PEs tem de estar livres). Depois \u00e9 s\u00f3 remover o \/dev\/hdc1 do LVM, substituir por um HD novo e integr\u00e1-lo ao Grupo novamente.<\/p>\n<h3 id=\"Exportando-e-importando-volumes-entre-sistemas\">Exportando e importando volumes entre sistemas<\/h3>\n<p>Caso alguma vez voc\u00ea precise mover todo um grupo de volume LVM para outra m\u00e1quina (por exemplo, se voc\u00ea quer trocar o home de uma m\u00e1quina para outra), voc\u00ea pode utilizar os comandos vgexport e vgimport para exportar e importar esses grupos de volumes. Vamos, neste exemplo, mover o Grupo02 de uma m\u00e1quina para outra.<\/p>\n<p>Primeiro tenha certeza de que o sistema n\u00e3o esteja utilizando os volumes. Voc\u00ea pode fazer isso desmontando os diret\u00f3rios que pertencem ao volume. No nosso caso, o diret\u00f3rio \/var\/log \u00e9 utilizado pelo Grupo02, ent\u00e3o fa\u00e7o:<\/p>\n<pre class=\"code\"># umount \/var\/log<\/pre>\n<p>(Ou umount em todos os dispositivos do grupo \u2013 \/dev\/Grupo02\/Grupo02-log)<\/p>\n<p>Agora que o disco n\u00e3o est\u00e1 sendo mais usado pelo sistema, basta entrar no LVM, marcar o volume como inativo e export\u00e1-lo:<\/p>\n<pre class=\"code\">lvm&gt; vgchange -a n Grupo02\r\nVolume group \"Grupo02\" successfully deactivated\r\nlvm&gt; vgexport Grupo02\r\nVolume group \"Grupo02\" successfully exported<\/pre>\n<p>Em seguinda voc\u00ea pode desligar a m\u00e1quina, tirar o HD e colocar na sua outra m\u00e1quina.<\/p>\n<p>Agora na outra m\u00e1quina, com o HD j\u00e1 colocado e logo depois da inicializa\u00e7\u00e3o do sistema, basta entrar no LVM, pedir para fazer um \u201cscan\u201d nos dispositivos LVM, importar e ativar:<\/p>\n<pre class=\"code\">lvm&gt; pvscan\r\npvscan -- reading all physical volumes (this may take a while...)\r\npvscan -- inactive PV \"\/dev\/sdb1\"  is in EXPORTED VG \"Grupo02\" [784 MB \/ 784 MB free]\r\npvscan -- total: 1 [784 MB] \/ in use: 1 [784 MB] \/ in no VG: 0 [0]\r\n\r\nlvm&gt; vgimport Grupo02\r\nVolume group \"Grupo02\" successfully imported\r\n\r\nlvm&gt; vgchange -a y Grupo02\r\nVolume group \"Grupo02\" successfully activated<\/pre>\n<p>Depois basta apenas montar e\/ou configurar no \/etc\/fstab para utilizar este novo volume no sistema.<\/p>\n<h2 id=\"LVM-Snapshots--Uma-soluo-de-backup\">LVM Snapshots \u2013 Uma solu\u00e7\u00e3o de backup<\/h2>\n<p>Criar snapshots \u00e9 uma funcionalidade bastante \u00fatil e utilizada do LVM. Um \u201csnapshot\u201d \u00e9 uma imagem do volume l\u00f3gico, virtual, onde o LVM p\u00e1ra o tempo do volume, deixando-o intacto para trabalhar enquanto o volume l\u00f3gico \u201creal\u201d continua trabalhando e sendo modificado. Em outras palavras, quando se faz um LVM Snapshot, o LVM duplica o volume l\u00f3gico e \u201ccongela\u201d a duplicata.<\/p>\n<p>Isto \u00e9 \u00fatil para v\u00e1rios motivos:<\/p>\n<ul>\n<li>Voc\u00ea pode efetuar backup em um exato instante sem se preocupar com os dados estarem mudando a cada segundo: \u00f3timo para servidores de bancos de dados que tem seus dados sendo mudados constantemente;<\/li>\n<li>Fazer experimentos no conte\u00fado do volume sem precisar se preocupar em destruir algum dado;<\/li>\n<li>Verificar algum acontecimento no sistema de arquivos em alguma hora exata: como por exemplo como estava seus arquivos quando algu\u00e9m entrou no servidor, ou quando falhou algum servi\u00e7o;<\/li>\n<li>Entre outros, usando a criatividade.<\/li>\n<\/ul>\n<p>Neste documento vou ilustrar os snapshots com o seu uso mais comum: backups. Aqui irei criar um snapshot da parti\u00e7\u00e3o dos logs (Grupo02), que s\u00e3o atualizados constantemente, para ent\u00e3o fazer um backup em fita, em outro HD, ou em CD\/DVD.<\/p>\n<p>Antes de come\u00e7ar, vamos entender como um snapshot funciona. Quando voc\u00ea pede para o LVM criar um snapshot, voc\u00ea vai especificar um certo tamanho para este snapshot e neste caso, voc\u00ea precisa se certificar de que existam PEs livres para este tamanho. Ent\u00e3o supondo que criamos um snapshot de 24MB do volume l\u00f3gico Grupo02-log, o que significa? O LVM ir\u00e1 criar uma duplicata do Grupo02-log, com o conte\u00fado exato do Grupo02-log na hora da cria\u00e7\u00e3o e sem mudan\u00e7as posteriores. O espa\u00e7o de 24MB necess\u00e1rios para o snapshot ser\u00e1 utilizado para as posteriores grava\u00e7\u00f5es. Ent\u00e3o enquanto voc\u00ea analiza e faz backup da duplicata, o LVM vai continuando a escrever as mudan\u00e7as dos arquivos neste espa\u00e7o de 24MB, que serve como um buffer. Se as mudan\u00e7as acumularem e se tornarem maiores que 24MB, o snapshot se torna inv\u00e1lido.<\/p>\n<p>Sabendo disso, antes de voc\u00ea planejar uma estrat\u00e9gia de backup com LVM Snapshots, voc\u00ea precisa estudar a quantidade de dados e mudan\u00e7as de dados que a sua m\u00e1quina tem. Se voc\u00ea acha que em um banco de dados, o processo de backup demora menos que o tempo das mudan\u00e7as encherem, vamos dizer, 500MB, ent\u00e3o reserve 500MB de PEs livres no Grupo de Volume para criar os snapshots. Caso ache que o backup demora mais que isso, aumente o tamanho do snapshot.<\/p>\n<p>Ent\u00e3o com isso j\u00e1 sabemos que no nosso cen\u00e1rio atual de exemplos, \u00e9 imposs\u00edvel criar LVM snapshots. Por que? Se voc\u00ea der uma olhada em nossos exemplos, ver\u00e1 que nenhum Grupo de Volume ter\u00e1 PEs livres, pois utilizamos todas as PEs em todos os grupos. Pare remediar isso, eu redimensionei (ah, como eu gosto do LVM) o volume l\u00f3gico Grupo02-log para 684MB ao inv\u00e9s de 784MB, deixando assim 100MB livres para criar um snapshot. O resultado ficar\u00e1 assim:<\/p>\n<pre class=\"code\">lvm&gt; lvdisplay \/dev\/Grupo02\/Grupo02-log\r\n--- Logical volume ---\r\nLV Name                \/dev\/Grupo02\/Grupo02-log\r\nVG Name                Grupo02\r\nLV UUID                epfsvr-h75Q-7I3L-zl6H-5GLO-2YpH-eH2rVN\r\nLV Write Access        read\/write\r\nLV Status              available\r\n# open                 0\r\nLV Size                684.00 MB\r\nCurrent LE             171\r\nSegments               1\r\nAllocation             inherit\r\nRead ahead sectors     0\r\nBlock device           253:4\r\n\r\nlvm&gt; vgdisplay Grupo02\r\n--- Volume group ---\r\nVG Name               Grupo02\r\nSystem ID\r\n[...]\r\nVG Size               784.00 MB\r\nPE Size               4.00 MB\r\nTotal PE              196\r\nAlloc PE \/ Size       171 \/ 684.00 MB\r\nFree  PE \/ Size       25 \/ 100.00 MB\r\n[...]<\/pre>\n<p>Como deu parar reparar, agora o Grupo02 tem 25 PEs livres, ou seja, 100MB. Utilizando agora esta situa\u00e7\u00e3o, vamos criar um snapshot do Grupo02-log utilizando estes PEs livres. O pr\u00f3prio comando lvcreate faz isso, mas agora com a op\u00e7\u00e3o -s:<\/p>\n<pre class=\"code\">lvm&gt; lvcreate -s -L 100M -n Grupo02-log-backup \/dev\/Grupo02\/Grupo02-log\r\nLogical volume \"Grupo02-log-backup\" created\r\n\r\nlvm&gt; lvdisplay \/dev\/Grupo02\/Grupo02-log-backup\r\n--- Logical volume ---\r\nLV Name                \/dev\/Grupo02\/Grupo02-log-backup\r\nVG Name                Grupo02\r\nLV UUID                VvU1ok-1tE0-33kQ-by7i-E6bj-NzuI-sAqkGw\r\nLV Write Access        read\/write\r\nLV snapshot status     active destination for \/dev\/Grupo02\/Grupo02-log\r\nLV Status              available\r\n# open                 0\r\nLV Size                684.00 MB\r\nCurrent LE             171\r\nCOW-table size         100.00 MB\r\nCOW-table LE           25\r\nAllocated to snapshot  0.02%\r\nSnapshot chunk size    8.00 KB\r\nSegments               1\r\nAllocation             inherit\r\nRead ahead sectors     0\r\nBlock device           253:5<\/pre>\n<p>Pronto, um snapshot foi criado, agora basta apenas mont\u00e1-lo como qualquer outro volume e utilizar a sua rotina de backup:<\/p>\n<pre class=\"code\"># mkdir \/mnt\/Grupo02-log-backup\r\n# mount \/dev\/Grupo02\/Grupo02-log-backup \/mnt\/Grupo02-log-backup\r\n# cd \/mnt\/Grupo02-log-backup\r\n[...] rotina de backup [...]<\/pre>\n<p>Depois de feito a rotina de backup com o conte\u00fado do \/mnt\/Grupo02-log-backup, desmonte o volume:<\/p>\n<pre class=\"code\"># cd\r\n# umount \/mnt\/Grupo02-log-backup<\/pre>\n<p>E logo em seguida entre no LVM e remove o snapshot:<\/p>\n<pre class=\"code\">lvm&gt; lvremove \/dev\/Grupo02\/Grupo02-log-backup\r\nDo you really want to remove active logical volume \"Grupo02-log-backup\"? [y\/n]: y\r\nLogical volume \"Grupo02-log-backup\" successfully removed<\/pre>\n<p>Pronto, backup conclu\u00eddo! O snapshot foi removido e os 100MB de PEs livres est\u00e3o dispon\u00edveis novamente.<\/p>\n<h2 id=\"Concluses\">Conclus\u00f5es<\/h2>\n<p>Apesar do LVM n\u00e3o ser reconhecido por 100% das ferramentas em todos os sistemas operacionais, se voc\u00ea utiliza apenas o Linux na m\u00e1quina, \u00e9 extremamente recomend\u00e1vel utilizar o LVM por ser t\u00e3o \u00fatil e flex\u00edvel. Uma grande gama de instaladores das distribui\u00e7\u00f5es atuais j\u00e1 vem com ferramentas que preparam o sistema j\u00e1 com o LVM, o que \u00e9 bastante \u00fatil e salva um bom tempo para n\u00f3s administradores: mas nunca \u00e9 ruim saber mais detalhes sobre os assuntos n\u00e9?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introdu\u00e7\u00e3o LVM significa Logical Volume Manager. Como o nome diz, essa ferramenta \u00e9 capaz de gerenciar os chamados volumes l\u00f3gicos, substituindo assim as tradicionais parti\u00e7\u00f5es nos discos. Ao longo do tempo, v\u00e1rias empresas fizeram suas implementa\u00e7\u00f5es de LVM e o Linux n\u00e3o ficou para tr\u00e1s: ele tamb\u00e9m possui uma implementa\u00e7\u00e3o (e muito boa) de LVM, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1082,1,730,830,725,42,51,439,495,127,548],"tags":[14,722,361],"class_list":["post-4992","post","type-post","status-publish","format-standard","hentry","category-centos-7-rhel-7","category-viazap","category-clusterweb","category-debian","category-hospedagem","category-leitura-recomendada","category-linux-linuxrs","category-midia","category-profissional-de-ti","category-sistemas-de-armazenamento","category-ubuntu-2","tag-linux","tag-lvm","tag-no"],"_links":{"self":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/4992","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4992"}],"version-history":[{"count":1,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/4992\/revisions"}],"predecessor-version":[{"id":4993,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/4992\/revisions\/4993"}],"wp:attachment":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4992"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4992"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4992"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}