{"id":77266,"date":"2020-04-09T13:42:08","date_gmt":"2020-04-09T11:42:08","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/tips-tricks-v-rabote-s-ceph-v-nagruzhennyh-proektah"},"modified":"2020-04-09T13:42:08","modified_gmt":"2020-04-09T11:42:08","slug":"tips-tricks-v-rabote-s-ceph-v-nagruzhennyh-proektah","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/tips-tricks-v-rabote-s-ceph-v-nagruzhennyh-proektah","title":{"rendered":"Dicas e truques para trabalhar com Ceph em projetos de alta carga","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Dicas e truques no trabalho com Ceph em projetos de alta demanda\" src=\"\/wp-content\/uploads\/2020\/04\/1d60f91e55b20a5dc4346bd8087bc11e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUsando o Ceph como armazenamento em rede em projetos de diferentes n\u00edveis de carga, podemos enfrentar v\u00e1rias tarefas que, \u00e0 primeira vista, n\u00e3o parecem simples ou triviais. Por exemplo:<\/p>\n<ul>\n<li> migra\u00e7\u00e3o de dados do Ceph antigo para o novo, com uso parcial dos servidores anteriores no novo cluster;<\/li>\n<li> resolu\u00e7\u00e3o do problema de distribui\u00e7\u00e3o do espa\u00e7o em disco no Ceph.<\/li>\n<\/ul>\n<p>\nAo lidar com essas tarefas, encontramos a necessidade de extrair corretamente o OSD sem perder dados, o que \u00e9 especialmente relevante em grandes volumes de dados. Este \u00e9 o tema deste artigo.<\/p>\n<p>Os m\u00e9todos descritos abaixo s\u00e3o aplic\u00e1veis a quaisquer vers\u00f5es do Ceph. Al\u00e9m disso, ser\u00e1 considerado que o Ceph pode armazenar um grande volume de dados: para evitar perdas de dados e outros problemas, algumas a\u00e7\u00f5es ser\u00e3o 'divididas' em v\u00e1rias outras.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Pref\u00e1cio sobre OSD<\/h3>\n<p>\nComo dois dos tr\u00eas relatos a seguir s\u00e3o dedicados ao OSD (<noindex><a rel=\"nofollow\" href=\"https:\/\/docs.ceph.com\/docs\/master\/man\/8\/ceph-osd\/\">Object Storage Daemon<\/a><\/noindex>), antes de entrar na parte pr\u00e1tica, faremos um resumo sobre o que \u00e9 isso no Ceph e por que \u00e9 t\u00e3o importante.<\/p>\n<p>Em primeiro lugar, deve-se dizer que todo o cluster Ceph \u00e9 composto por muitos OSDs. Quanto mais OSDs, maior ser\u00e1 o volume livre de dados no Ceph. Da\u00ed \u00e9 f\u00e1cil entender <b>a principal fun\u00e7\u00e3o do OSD<\/b>: ele armazena dados de objetos Ceph nos sistemas de arquivos de todos os n\u00f3s do cluster e fornece acesso em rede a eles (para leitura, grava\u00e7\u00e3o e outras solicita\u00e7\u00f5es).<\/p>\n<p>Neste mesmo n\u00edvel, s\u00e3o definidas as configura\u00e7\u00f5es de replica\u00e7\u00e3o, copiando objetos entre diferentes OSDs. E aqui podemos encontrar diversos problemas, cuja solu\u00e7\u00e3o ser\u00e1 abordada a seguir.<\/p>\n<h2>Caso n\u00ba 1. Extra\u00e7\u00e3o segura do OSD do cluster Ceph sem perda de dados<\/h2>\n<p>\nA necessidade de extrair um OSD pode ser causada pela retirada do servidor do cluster \u2014 por exemplo, para substitui\u00e7\u00e3o por outro servidor \u2014 o que aconteceu conosco e motivou a escrita deste artigo. Assim, o objetivo final das manobras \u00e9 extrair todos os OSDs e mon\u2019s deste servidor para que ele possa ser desligado.<\/p>\n<p>Para facilitar e evitar a situa\u00e7\u00e3o em que erramos ao indicar o OSD correto durante a execu\u00e7\u00e3o dos comandos, definiremos uma vari\u00e1vel separada, cujo valor ser\u00e1 o n\u00famero do OSD a ser removido. Vamos cham\u00e1-la de <code>${ID}<\/code> \u2014 aqui e adiante, essa vari\u00e1vel substitui o n\u00famero do OSD com o qual estamos trabalhando.<\/p>\n<p>Vamos verificar o estado antes de come\u00e7ar os trabalhos:<\/p>\n<pre><code class=\"bash\">root@hv-1 ~ # ceph osd tree\nID CLASS WEIGHT  TYPE NAME      STATUS REWEIGHT PRI-AFF\n-1       0.46857 root default\n-3       0.15619      host hv-1\n-5       0.15619      host hv-2\n 1   ssd 0.15619      osd.1     up     1.00000  1.00000\n-7       0.15619      host hv-3\n 2   ssd 0.15619      osd.2     up     1.00000  1.00000<\/code><\/pre>\n<p>\nPara iniciar a remo\u00e7\u00e3o do OSD, ser\u00e1 necess\u00e1rio realizar uma suaviza\u00e7\u00e3o <code>reweight<\/code> nele at\u00e9 zero. Assim, reduzimos a quantidade de dados no OSD balanceando para outros OSDs. Para isso, os seguintes comandos s\u00e3o executados:<\/p>\n<pre><code class=\"bash\">ceph osd reweight osd.${ID} 0.98\nceph osd reweight osd.${ID} 0.88\nceph osd reweight osd.${ID} 0.78<\/code><\/pre>\n<p>\n\u2026 e assim por diante at\u00e9 zero.<\/p>\n<p><b>O balanceamento suave \u00e9 necess\u00e1rio<\/b>, para n\u00e3o perder dados. Isso \u00e9 especialmente cr\u00edtico se houver uma grande quantidade de dados no OSD. Para garantir que ap\u00f3s a execu\u00e7\u00e3o dos comandos <code>reweight<\/code> tudo ocorreu com sucesso, pode-se executar <code>ceph -s<\/code> ou, em uma janela de terminal separada, iniciar <code>ceph -w<\/code> para observar as mudan\u00e7as em tempo real.<\/p>\n<p>Quando o OSD estiver \"esvaziado\", pode-se prosseguir com a opera\u00e7\u00e3o padr\u00e3o de remo\u00e7\u00e3o. Para isso, colocamos o OSD desejado no estado <code>down<\/code>:<\/p>\n<pre><code class=\"bash\">ceph osd down osd.${ID}<\/code><\/pre>\n<p>\n\"Retiramos\" o OSD do cluster:<\/p>\n<pre><code class=\"bash\">ceph osd out osd.${ID}<\/code><\/pre>\n<p>\nPararemos o servi\u00e7o OSD e desmontaremos sua parti\u00e7\u00e3o no FS:<\/p>\n<pre><code class=\"bash\">systemctl stop ceph-osd@${ID}\numount \/var\/lib\/ceph\/osd\/ceph-${ID}<\/code><\/pre>\n<p>\nRemoveremos o OSD do <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.ceph.com\/docs\/nautilus\/rados\/operations\/crush-map\/\">CRUSH map<\/a><\/noindex>:<\/p>\n<pre><code class=\"bash\">ceph osd crush remove osd.${ID}<\/code><\/pre>\n<p>\nRemoveremos o usu\u00e1rio OSD:<\/p>\n<pre><code class=\"bash\">ceph auth del osd.${ID}<\/code><\/pre>\n<p>\nE, finalmente, removeremos o pr\u00f3prio OSD:<\/p>\n<pre><code class=\"bash\">ceph osd rm osd.${ID}<\/code><\/pre>\n<p>\n<b>Nota<\/b>: se voc\u00ea estiver usando a vers\u00e3o Ceph Luminous ou superior, as a\u00e7\u00f5es acima para remover o OSD podem ser reduzidas a dois comandos:<\/p>\n<pre><code class=\"bash\">ceph osd out osd.${ID}\nceph osd purge osd.${ID}\n<\/code><\/pre>\n<p>\nSe ap\u00f3s a execu\u00e7\u00e3o dos comandos descritos acima, voc\u00ea executar o comando <code>ceph osd tree<\/code>, deve-se ver que no servidor onde o trabalho foi realizado, n\u00e3o h\u00e1 mais OSDs para os quais as opera\u00e7\u00f5es acima foram realizadas:<\/p>\n<pre><code class=\"bash\">root@hv-1 ~ # ceph osd tree\nID CLASS WEIGHT  TYPE NAME     STATUS REWEIGHT PRI-AFF\n-1       0.46857      root default\n-3       0.15619      host hv-1\n-5       0.15619      host hv-2\n-7       0.15619      host hv-3\n 2   ssd 0.15619      osd.2    up     1.00000  1.00000<\/code><\/pre>\n<p>\nNotamos tamb\u00e9m que o estado do cluster Ceph mudar\u00e1 para <code>HEALTH_WARN<\/code>, e tamb\u00e9m veremos uma redu\u00e7\u00e3o no n\u00famero de OSDs e na quantidade de espa\u00e7o em disco dispon\u00edvel. <\/p>\n<p>A seguir, ser\u00e3o descritas as a\u00e7\u00f5es necess\u00e1rias caso voc\u00ea deseje desligar completamente o servidor e, consequentemente, remov\u00ea-lo do Ceph. Nesse caso, \u00e9 importante lembrar que <b>antes de desligar o servidor \u00e9 preciso retirar todos os OSDs<\/b> neste servidor.<\/p>\n<p>Se n\u00e3o houver mais OSDs neste servidor, ap\u00f3s sua remo\u00e7\u00e3o, deve-se excluir o servidor da mapa OSD <code>hv-2<\/code>, executando o seguinte comando:<\/p>\n<pre><code class=\"bash\">ceph osd crush rm hv-2<\/code><\/pre>\n<p>\nRemovemos <code>mon<\/code> do servidor <code>hv-2<\/code>, executando o comando abaixo em outro servidor (ou seja, neste caso \u2014 em <code>hv-1<\/code>):<\/p>\n<pre><code class=\"bash\">ceph-deploy mon destroy hv-2<\/code><\/pre>\n<p>\nAp\u00f3s isso, voc\u00ea pode parar o servidor e prosseguir com as pr\u00f3ximas etapas (como a sua reimplanta\u00e7\u00e3o, etc.).<\/p>\n<h2>Caso n\u00ba 2. Distribui\u00e7\u00e3o do espa\u00e7o em disco em um cluster Ceph j\u00e1 criado<\/h2>\n<p>\nCome\u00e7arei a segunda hist\u00f3ria com uma introdu\u00e7\u00e3o sobre PG (<noindex><a rel=\"nofollow\" href=\"https:\/\/docs.ceph.com\/docs\/mimic\/rados\/operations\/placement-groups\/\">Placement Groups<\/a><\/noindex>). O papel principal do PG no Ceph \u00e9, em primeiro lugar, agregar objetos Ceph e replic\u00e1-los nos OSD. A f\u00f3rmula com a qual se pode calcular a quantidade necess\u00e1ria de PG est\u00e1 na <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.ceph.com\/docs\/mimic\/rados\/operations\/placement-groups\/#choosing-the-number-of-placement-groups\">se\u00e7\u00e3o correspondente<\/a><\/noindex> documenta\u00e7\u00e3o do Ceph. Esse assunto \u00e9 abordado l\u00e1 com exemplos concretos.<\/p>\n<p>Assim est\u00e1: um dos problemas comuns durante a opera\u00e7\u00e3o do Ceph \u00e9 a quantidade desigual de OSD e PG entre os pools no Ceph.<\/p>\n<p>Primeiro, isso pode levar a uma situa\u00e7\u00e3o em que um n\u00famero excessivo de PG \u00e9 especificado em um pool pequeno, o que \u00e9, na ess\u00eancia, um uso irracional do espa\u00e7o em disco no cluster. Em segundo lugar, na pr\u00e1tica, surge um problema mais s\u00e9rio: a satura\u00e7\u00e3o de dados em um dos OSD. Isso faz com que o cluster mude primeiro para um estado <code>HEALTH_WARN<\/code>, e depois para <code>HEALTH_ERR<\/code>. O culpado \u00e9 que o Ceph, ao calcular o volume de dados dispon\u00edveis (que pode ser obtido por meio de <code>MAX AVAIL<\/code> na sa\u00edda do comando <code>ceph df<\/code> para cada pool separadamente) se baseia no volume de dados dispon\u00edveis nos OSD. Se pelo menos um OSD n\u00e3o tiver espa\u00e7o suficiente, n\u00e3o ser\u00e1 poss\u00edvel gravar mais dados at\u00e9 que esses sejam distribu\u00eddos corretamente entre todos os OSD.<\/p>\n<p>Cabe destacar que esses problemas <b>s\u00e3o em sua maior parte resolvidos na etapa de configura\u00e7\u00e3o do cluster Ceph<\/b>. Uma das ferramentas que podem ser utilizadas \u00e9 <noindex><a rel=\"nofollow\" href=\"http:\/\/blog.easter-eggs.org\/index.php\/post\/2013\/09\/27\/%5BLibvirt%5D-Migrating-from-on-disk-raw-images-to-RBD-storage\">Ceph PGCalc<\/a><\/noindex>. Com ela, calcula-se visualmente a quantidade necess\u00e1ria de PG. No entanto, pode-se recorrer a ela tamb\u00e9m em situa\u00e7\u00f5es em que o cluster Ceph <i>j\u00e1<\/i> est\u00e1 configurado incorretamente. Aqui deve-se esclarecer que no \u00e2mbito dos trabalhos de corre\u00e7\u00e3o, voc\u00ea provavelmente precisar\u00e1 reduzir a quantidade de PG, e essa possibilidade n\u00e3o est\u00e1 dispon\u00edvel nas vers\u00f5es antigas do Ceph (s\u00f3 apareceu a partir da vers\u00e3o <noindex><a rel=\"nofollow\" href=\"https:\/\/ceph.com\/rados\/new-in-nautilus-pg-merging-and-autotuning\/\">Nautilus<\/a><\/noindex>).<\/p>\n<p>Portanto, imagine a seguinte situa\u00e7\u00e3o: o cluster tem status <code>HEALTH_WARN<\/code> porque um dos OSD est\u00e1 ficando sem espa\u00e7o. Isso ser\u00e1 indicado pelo erro <code>HEALTH_WARN: 1 near full osd<\/code>. Abaixo est\u00e1 o algoritmo para sair dessa situa\u00e7\u00e3o.<\/p>\n<p>Primeiro, \u00e9 necess\u00e1rio distribuir os dados existentes entre os outros OSDs. J\u00e1 realizamos essa opera\u00e7\u00e3o no primeiro caso, quando 'esgotamos' o n\u00f3 - com a \u00fanica diferen\u00e7a de que agora ser\u00e1 necess\u00e1rio reduzir ligeiramente. <code>reweight<\/code>Por exemplo, para 0.95:<\/p>\n<pre><code class=\"bash\">ceph osd reweight osd.${ID} 0.95<\/code><\/pre>\n<p>\nAssim, o espa\u00e7o em disco no OSD \u00e9 liberado e o erro no ceph health \u00e9 corrigido. No entanto, como j\u00e1 mencionado, esse problema ocorre principalmente devido \u00e0 configura\u00e7\u00e3o incorreta do Ceph nas etapas iniciais: \u00e9 muito importante realizar a reconfigura\u00e7\u00e3o para que n\u00e3o se manifeste no futuro.<\/p>\n<p>Em nosso caso espec\u00edfico, tudo se baseava em:<\/p>\n<ul>\n<li> um valor muito alto <code>replication_count<\/code> em um dos pools,<\/li>\n<li> um n\u00famero de PG muito elevado em um pool e muito baixo em outro. <\/li>\n<\/ul>\n<p>\nVamos usar a calculadora j\u00e1 mencionada. Ela mostra claramente o que deve ser inserido e, na verdade, n\u00e3o h\u00e1 nada de complicado. Definidos os par\u00e2metros necess\u00e1rios, obtemos as seguintes recomenda\u00e7\u00f5es:<\/p>\n<p><i><b>Nota<\/b>: se voc\u00ea estiver configurando um cluster Ceph do zero, uma fun\u00e7\u00e3o \u00fatil da calculadora ser\u00e1 a gera\u00e7\u00e3o de comandos que criar\u00e3o pools do zero com os par\u00e2metros especificados na tabela.<\/i><\/p>\n<p>O \u00faltimo coluna ajuda a se orientar - <i>Suggested PG Count<\/i>. No nosso caso, a segunda coluna tamb\u00e9m \u00e9 \u00fatil, que indica o par\u00e2metro de replica\u00e7\u00e3o, uma vez que decidimos alterar o fator de replica\u00e7\u00e3o.<\/p>\n<p>Portanto, primeiro ser\u00e1 necess\u00e1rio alterar os par\u00e2metros de replica\u00e7\u00e3o - isso deve ser feito em primeiro lugar, pois, ao reduzir o fator, liberaremos espa\u00e7o em disco. Durante a execu\u00e7\u00e3o do comando, pode-se observar que o valor do espa\u00e7o em disco dispon\u00edvel aumentar\u00e1:<\/p>\n<pre><code class=\"bash\">ceph osd pool $pool_name set $replication_size<\/code><\/pre>\n<p>\nE ap\u00f3s sua conclus\u00e3o - alteramos os valores dos par\u00e2metros <code>pg_num<\/code> e <code>pgp_num<\/code> da seguinte forma:<\/p>\n<pre><code class=\"bash\">ceph osd pool set $pool_name pg_num $pg_number\nceph osd pool set $pool_name pgp_num $pg_number<\/code><\/pre>\n<p>\n<b>Importante<\/b>: devemos alterar sequencialmente a quantidade de PG em cada pool e n\u00e3o alterar os valores em outros pools at\u00e9 que os avisos se extinguam. <i>\u2018Degraded data redundancy\u2019<\/i> e <i>\u2018n-number of pgs degraded\u2019<\/i>.<\/p>\n<p>Pode-se verificar se tudo ocorreu com sucesso tamb\u00e9m pelos resultados dos comandos <code>ceph health detail<\/code> e <code>ceph -s<\/code>.<\/p>\n<h2>Caso n\u00ba 3. Migra\u00e7\u00e3o de m\u00e1quina virtual de LVM para Ceph RBD<\/h2>\n<p>\nEm situa\u00e7\u00f5es em que um projeto utiliza m\u00e1quinas virtuais instaladas em servidores bare-metal alugados, frequentemente surge a quest\u00e3o do armazenamento de alta disponibilidade. E tamb\u00e9m \u00e9 muito desej\u00e1vel que haja espa\u00e7o suficiente nesse armazenamento... Outra situa\u00e7\u00e3o comum \u00e9 ter uma m\u00e1quina virtual com armazenamento local no servidor e precisar expandir o disco, mas n\u00e3o h\u00e1 como, pois n\u00e3o h\u00e1 espa\u00e7o livre em disco no servidor.<\/p>\n<p>O problema pode ser resolvido de v\u00e1rias maneiras \u2014 por exemplo, migrando para outro servidor (se houver) ou adicionando novos discos ao servidor. Mas nem sempre isso \u00e9 poss\u00edvel, por isso a migra\u00e7\u00e3o de LVM para Ceph pode ser uma excelente solu\u00e7\u00e3o para esse problema. Ao optar por essa alternativa, tamb\u00e9m simplificamos o processo de migra\u00e7\u00e3o entre servidores, uma vez que n\u00e3o ser\u00e1 necess\u00e1rio mover o armazenamento local de um hipervisor para outro. A \u00fanica complica\u00e7\u00e3o \u00e9 que ser\u00e1 necess\u00e1rio parar a VM durante o processo.<\/p>\n<p>Como receita a seguir, foi utilizado <noindex><a rel=\"nofollow\" href=\"http:\/\/blog.easter-eggs.org\/index.php\/post\/2013\/09\/27\/%5BLibvirt%5D-Migrating-from-on-disk-raw-images-to-RBD-storage\">um artigo deste blog<\/a><\/noindex>, cujas instru\u00e7\u00f5es foram testadas na pr\u00e1tica. Ali\u00e1s, <b>tamb\u00e9m \u00e9 descrito o m\u00e9todo de migra\u00e7\u00e3o sem complica\u00e7\u00f5es<\/b>, no entanto, no nosso caso, isso simplesmente n\u00e3o foi necess\u00e1rio, portanto n\u00e3o o testamos. Se isso for cr\u00edtico para o seu projeto \u2014 ficar\u00edamos felizes em saber os resultados nos coment\u00e1rios.<\/p>\n<p>Vamos iniciar a parte pr\u00e1tica. No exemplo, utilizamos o virsh e, consequentemente, o libvirt. Para come\u00e7ar, verifique se o pool do Ceph, para o qual os dados ser\u00e3o migrados, est\u00e1 conectado ao libvirt:<\/p>\n<pre><code class=\"bash\">virsh pool-dumpxml $ceph_pool<\/code><\/pre>\n<p>\nNa descri\u00e7\u00e3o do pool devem constar os dados de conex\u00e3o com o Ceph com as informa\u00e7\u00f5es de autentica\u00e7\u00e3o. <\/p>\n<p>A pr\u00f3xima etapa consiste em converter a imagem LVM para Ceph RBD. O tempo de execu\u00e7\u00e3o depende principalmente do tamanho da imagem:<\/p>\n<pre><code class=\"bash\">qemu-img convert -p -O rbd \/dev\/main\/$vm_image_name rbd:$ceph_pool\/$vm_image_name<\/code><\/pre>\n<p>\nAp\u00f3s a convers\u00e3o, permanecer\u00e1 a imagem LVM, que ser\u00e1 \u00fatil caso a migra\u00e7\u00e3o da VM para o RBD n\u00e3o funcione e seja necess\u00e1rio reverter as altera\u00e7\u00f5es. Al\u00e9m disso \u2014 para a possibilidade de reverter rapidamente as altera\u00e7\u00f5es \u2014 faremos um backup do arquivo de configura\u00e7\u00e3o da m\u00e1quina virtual:<\/p>\n<pre><code class=\"bash\">virsh dumpxml $vm_name &gt; $vm_name.xml\ncp $vm_name.xml $vm_name_backup.xml<\/code><\/pre>\n<p>\n\u2026 e editaremos o original (<code>vm_name.xml<\/code>). Vamos encontrar o bloco com a descri\u00e7\u00e3o do disco (come\u00e7a com a linha <code>&lt;disk type='file' device='disk'&gt;<\/code> e termina em <code>&lt;\/disk&gt;<\/code>) e lev\u00e1-lo \u00e0 seguinte forma:<\/p>\n<pre><code class=\"xml\"><address \/><\/code><\/pre>\n<p>\nVamos analisar alguns detalhes:<\/p>\n<ol>\n<li> No protocolo <code>source<\/code> \u00e9 indicado o endere\u00e7o do armazenamento no Ceph RBD (este \u00e9 o endere\u00e7o que inclui o nome do pool Ceph e a imagem RBD, que foi definida na primeira etapa).<\/li>\n<li> Na se\u00e7\u00e3o <code>secret<\/code> \u00e9 indicado o tipo <code>ceph<\/code>, assim como o UUID do segredo para a conex\u00e3o. Seu uuid pode ser obtido com o comando <code>virsh secret-list<\/code>.<\/li>\n<li> Na se\u00e7\u00e3o <code>host<\/code> s\u00e3o indicados os endere\u00e7os dos monitores Ceph.<\/li>\n<\/ol>\n<p>\nAp\u00f3s editar o arquivo de configura\u00e7\u00e3o e concluir a convers\u00e3o de LVM para RBD, \u00e9 poss\u00edvel aplicar o arquivo de configura\u00e7\u00e3o alterado e iniciar a m\u00e1quina virtual:<\/p>\n<pre><code class=\"bash\">virsh define $vm_name.xml\nvirsh start $vm_name<\/code><\/pre>\n<p>\n\u00c9 o momento de verificar se a m\u00e1quina virtual foi iniciada corretamente: isso pode ser feito, por exemplo, conectando-se a ela via SSH ou atrav\u00e9s de <code>virsh<\/code>. <\/p>\n<p>Se a m\u00e1quina virtual estiver funcionando corretamente e voc\u00ea n\u00e3o encontrar outros problemas, pode remover a imagem LVM que n\u00e3o est\u00e1 mais em uso:<\/p>\n<pre><code class=\"bash\">lvremove main\/$vm_image_name<\/code><\/pre>\n<p><\/p>\n<h2>Conclus\u00e3o<\/h2>\n<p>\nTodos os casos descritos ocorreram na pr\u00e1tica \u2014 esperamos que as instru\u00e7\u00f5es ajudem outros administradores a resolver problemas similares. Se voc\u00ea tiver coment\u00e1rios ou outras hist\u00f3rias semelhantes da experi\u00eancia com o Ceph \u2014 ficaremos felizes em v\u00ea-las nos coment\u00e1rios!<\/p>\n<h2>P.S.<\/h2>\n<p>\nConfira tamb\u00e9m em nosso blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/477680\/\">Nossas m\u00e3os n\u00e3o est\u00e3o para descanso: recupera\u00e7\u00e3o do cluster Rook no K8s<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/451818\/\">Rook ou n\u00e3o Rook \u2014 eis a quest\u00e3o<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/348044\/\">Rook - um armazenamento de dados \"self-service\" para Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/329666\/\">Criamos um armazenamento permanente com provisioning em Kubernetes baseado em Ceph<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/495870\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f Ceph \u043a\u0430\u043a \u0441\u0435\u0442\u0435\u0432\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u043e \u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0437\u0430\u0434\u0430\u0447\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0432\u0437\u0433\u043b\u044f\u0434\u0430 \u043d\u0435 \u043a\u0430\u0436\u0443\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0438\u043b\u0438 \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u044b\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0441\u0442\u0430\u0440\u043e\u0433\u043e Ceph \u0432 \u043d\u043e\u0432\u044b\u0439 \u0441 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0432 \u043d\u043e\u0432\u043e\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435; \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0432 Ceph. \u0420\u0430\u0437\u0431\u0438\u0440\u0430\u044f\u0441\u044c \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u0437\u0430\u0434\u0430\u0447\u0430\u043c\u0438, \u043c\u044b \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u0441 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":77267,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-77266","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f Ceph \u043a\u0430\u043a \u0441\u0435\u0442\u0435\u0432\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0432.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/tips-tricks-v-rabote-s-ceph-v-nagruzhennyh-proektah\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Tips &amp; tricks \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 Ceph \u0432 \u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f Ceph \u043a\u0430\u043a \u0441\u0435\u0442\u0435\u0432\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/tips-tricks-v-rabote-s-ceph-v-nagruzhennyh-proektah\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-04-09T11:42:08+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-09T11:42:08+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Dicas e truques no trabalho com Ceph em projetos de alta demanda | ProHoster","description":"Usando o Ceph como armazenamento de rede em.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/tips-tricks-v-rabote-s-ceph-v-nagruzhennyh-proektah","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Tips &amp; tricks \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 Ceph \u0432 \u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 | ProHoster","og:description":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f Ceph \u043a\u0430\u043a \u0441\u0435\u0442\u0435\u0432\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0432.","og:url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/tips-tricks-v-rabote-s-ceph-v-nagruzhennyh-proektah","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-04-09T11:42:08+00:00","article:modified_time":"2020-04-09T11:42:08+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"77266","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:20:51","updated":"2022-10-02 10:23:09","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/77266","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=77266"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/77266\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/77267"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=77266"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=77266"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=77266"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}