Primeiro, o backup do sistema de arquivos foi feito e desmontado com sucesso.
Então, um lvresize foi executado e já está rodando:
lvresize --resizefs --size 1024G /dev/dbdrp/db
E mostra a saída:
fsck from util-linux-ng 2.17.2
/dev/mapper/dbdrp-db: 1718907/201326592 files (0.4% non-contiguous), 92969270/805304320 blocks
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/mapper/dbdrp-db to 268435456 (4k) blocks.
A saída dos sistemas de arquivos foi a anterior:
[root@generic-linux-hostname ~]# df -hP
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/dbdrp-db 3.0T 310G 2.7T 11% /usr/local/oracle
E tabelas de volumes físicos são as seguintes:
PV VG Fmt Attr PSize PFree
/dev/xvdc1 dbdrp lvm2 a-- 1.50t 0
/dev/xvdd1 dbdrp lvm2 a-- 1.50t 0
Após a conclusão do redimensionamento, um desses volumes será removido para reciclar o disco rígido virtual.
Como posso ver o progresso deste lvresize? Já está funcionando há uma hora e não foram divulgadas muitas informações.
Obrigado rapazes :)
Responder1
Isso pode ser um exagero porque não conheço os detalhes internos, mas, para se ter uma ideia, você pode tentar o seguinte:
Obtenha o pid do processo em execução:
pgrep -afl resize2fs
2377 resize2fs -M /dev/vg0/lv-3
Aqui foi resize2fs
só mudar para lvresize (caso seja o comando que realmente faz o redimensionamento). A seguir, execute strace -e pread64,pwrite64 -p 2377
para monitorar quais são os syscalls que o comando está fazendo para ver de onde ele lê e onde grava.
A saída seria algo assim:
pread64(3, "<!-- ..........................."..., 1236992, 2441878626304) = 1236992
pwrite64(3, "<!-- ..........................."..., 1236992, 181592702976) = 1236992
pread64(3, "<!-- ..........................."..., 479232, 2441880231936) = 479232
pwrite64(3, "<!-- ..........................."..., 479232, 181593939968) = 479232
e se você verificar a página de manual de pread64
, verá que sua assinatura é ssize_t pread(int fd, void *buf, size_t count, off_t offset)
assim, o último parâmetro da chamada é o deslocamento ou de qual ponto do bloco ele está lendo agora. Se você converter 2441880231936
bytes em TB, seria aproximadamente 2,2 TB e meu volume, conforme mostrado abaixo, tem 3,44 TB, 2,2/3,34 = ~65%. Mas, isso é apenas uma estimativa de onde está agora porque, nesse caso, ele redimensionará a partição para o mínimo possível (por causa de resize2f -M) com base no espaço livre. Além disso, não tenho certeza se o ext4 (no meu caso) gravaria dados em blocos contíguos, portanto, poderia ser menos trabalhoso do que o disco cheio.
lv-3 vg0 -wi-ao---- <3.34t
Responder2
O lvresize não possui opção de barra de progresso. Mas, se você fizer o redimensionamento em mais etapas, poderá verificar isso:
- Verifique o tamanho inicial do fs:
# df -h /mnt
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg00-vol_projects 19G 5.3G 13G 30% /mnt
- quantidade:
# umount /mnt
- verifique o fs:
# e2fsck -f /dev/mapper/vg00-vol_projects
e2fsck 1.42.5 (29-Jul-2012)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/vg00-vol_projects: 13/1245184 files (0.0% non-contiguous), 1447987/4980736 blocks
- redimensione o fs com a opção progress (-p):
# resize2fs -p /dev/mapper/vg00-vol_projects 6G
resize2fs 1.42.5 (29-Jul-2012)
Resizing the filesystem on /dev/mapper/vg00-vol_projects to 1572864 (4k) blocks.
Begin pass 2 (max = 32768)
Relocating blocks XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 3 (max = 152)
Scanning inode table XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/mapper/vg00-vol_projects is now 1572864 blocks long.
- verifique o tamanho inicial do LV:
# lvs vg00/vol_projects
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
vol_projects vg00 -wi-a--- 19.00g
- redimensione o LV sem a opção resizefs (fizemos na etapa anterior):
# lvresize --size 6G /dev/mapper/vg00-vol_projects
WARNING: Reducing active logical volume to 6.00 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vol_projects? [y/n]: y
Reducing logical volume vol_projects to 6.00 GiB
Logical volume vol_projects successfully resized
- verifique o tamanho:
# lvs vg00/vol_projects
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
vol_projects vg00 -wi-a--- 6.00g
- monte e verifique o tamanho do fs:
# mount /dev/mapper/vg00-vol_projects /mnt
# df -h /mnt
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg00-vol_projects 6.0G 5.3G 402M 94% /mnt
... mas acho que assim é mais complicado :/