Como / está em um volume lógico, é possível crescer / dev / mapper / vg_hadoop1-lv_root sem reformatar . Esta operação será muito segura, desde que não haja relâmpagos.
Como / dev / sdb1 (/ disk1) não é um volume lógico, ainda é possível reduzi-lo - no entanto, existem sempre possibilidades de falhar . Eu nunca tive um problema com o redimensionamento de uma partição, desde que houvesse espaço suficiente; mas isso não significa que é impossível! Muitas das ferramentas que você pode usar para encolher uma partição avisarão você desse fato. Mais uma vez, apesar disso: não encontrei ninguém com problemas em fazê-lo.
Agora, se você fez o backup de / disk1 ou não se importa de perder, continue!
Assim, para continuarmos com o pivot de dados, primeiro reduziremos / disk1, para que mais tarde tenhamos espaço suficiente para crescer /. Primeiro, devemos garantir que seja desmontado - você não pode (com segurança) encolher um volume montado.
# umount /dev/sdb1
Ferramentas
[nota para outros leitores: isso só funciona com sistemas de arquivos ext {2,3,4}] Podemos usar resize2fs + fdisk , ou gparted . O fdisk não é para os fracos de coração. Se você quiser usar uma GUI para reduzir sua partição, siga este guia: link ,
Primeiro, vamos redimensionar os limites (partição) para garantir que nenhum dado esteja no final de nossa partição.
# resize2fs /dev/sdb1 1G
Agora, para o fdisk, podemos fazer:
# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help):
Lembre-se de que partições são apenas limites para dados. A exclusão de uma partição não excluirá os dados subjacentes. Eles são como ponteiros em uma linguagem de programação não coletada. Felizmente, com a sua saída do fdisk -l, temos os limites (localizações dos ponteiros) para a sua partição!
Aqui é possível perder dados. Eu não sou responsável por você excluir coisas muito importantes de / disk1 sem que você tenha feito o backup. Backup de qualquer coisa que você precisa para dois locais antes de realizar esta etapa
Vamos excluir sua partição
Command (m for help): d
Partition number (1-4, default 4): 1
Partition 1 is deleted
Command (m for help):
E recrie-o com os limites (reduzidos)
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default e): p
Selected partition 1
First sector (1-5368, default 1): <hit enter>
Last sector, +sectors or +size{K,M,G} (2-5368, default 5368): +1G
Partition 1 of type Linux and of size 1 GiB is set
Command (m for help):
E então, criaremos outra partição que poderemos usar mais tarde com todo o nosso novo espaço livre que criamos
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default e): p
Selected partition 2
First sector (1025-5368, default 1025): <hit enter>
Last sector, +sectors or +size{K,M,G} (1026-5368, default 5368): <hit enter>
Partition 2 of type Linux and of size <remaining> is set
Command (m for help):
Nossas novas partições são configuradas e podemos continuar na próxima etapa
Legal! A parte difícil está feita. Sua pergunta é um dos recursos impressionantes do LVM e por que ele é usado com tanta frequência (mesclando partições, mesmo em unidades separadas!)
Então, o que estamos tentando fazer é aumentar o volume lógico , que é / dev / mapper / vg_hadoop1-lv_root. Para fazer isso, precisamos de espaço suficiente no nosso grupo de volumes para crescer! Podemos fazer isso adicionando um volume físico ao nosso grupo de volumes .
Então, primeiro criaremos um Physical Volume fora da nossa nova partição, para que ela possa ser reconhecida pelo LVM e, posteriormente, adicionada a um grupo de volumes . Nós fazemos isso com ...
# /sbin/pvcreate /dev/sdb2
O LVM pode adicionar qualquer volume físico a qualquer grupo de volume, então vamos adicioná-lo ao nosso hadoop, que encontramos na saída de
# /sbin/vgscan
Então, sabemos que queremos o vg_hadoop1. Vamos adicionar nosso novo volume físico a este grupo de volume com ...
# /sbin/vgextend vg_hadoop1 /dev/sdb2
Agora que foi adicionado, executamos um comando rápido para redimensionar o volume lógico atual
# /sbin/lvextend -L +4.0G /dev/mapper/vg_hadoop1-lv_root
o parâmetro -L para lvextend é muito legal, e pode ter uma variedade de entradas diferentes. Estamos usando + quase como o operador binário + = em muitas linguagens de programação. Estamos dizendo "novo tamanho = tamanho atual + 4.5G"
Agora que tudo foi dito e feito, temos dois sistemas de arquivos que não são do mesmo tamanho que o volume em que estão residindo. Para um sistema de arquivos ext2 / 3 / 4fs [mais comum] (que atualizarei a questão assim que tivermos a saída do fdisk -l para nos dizer qual sistema de arquivos você está usando), podemos alterar o sistema de arquivos para corresponder ao tamanho da partição :
# /sbin/resize2fs /dev/mapper/vg_hadoop1-lv_root
# /sbin/resize2fs /dev/sdb1
Talvez seja necessário remontar root para ver o novo tamanho. Podemos também montar novamente o / disk1 novamente. faça isso com:
# mount -o remount /
# mount /dev/sdb1 /disk1
Vamos garantir que tudo funcionou, usando df (sem disco) e que tudo está no tamanho certo.
# df -H
Quando obtiver a saída desses dois comandos, atualizarei essa pergunta para que você tenha a certeza de que tudo está correto antes de executar.
Boa sorte!