É possível encolher on-line um volume EXT4 com o LVM?

44

Hoje testei isso na minha máquina com o OpenSUSE 12.3 (kernel 3.7):

# resize2fs /dev/mapper/system-srv 2G
resize2fs 1.42.6 (21-Sep-2012)
Filesystem at /dev/mapper/system-srv is mounted on /srv; on-line resizing required
resize2fs: On-line shrinking not supported

/dev/mapper/system-srv é um volume EXT4.

É realmente sem suporte ou estou sentindo falta de algo?

    
por Alicia 01.08.2013 / 20:59

3 respostas

58

Como a mensagem dizia, você só pode aumentar um sistema de arquivos on-line. Se você quiser reduzi-lo, será necessário desmontá-lo primeiro.

De acordo com o mantenedor do sistema de arquivos ext4, Ted Ts'o:

Sorry, on-line shrinking is not supported.

    
por 01.08.2013 / 21:04
15

Sim, você pode diminuir / mover / aumentar uma partição raiz sem reinicializações (nem o livecd nem o usbkey): consulte esta resposta . É muito bem escrito e fácil de seguir, embora bastante longo e um pouco arriscado.

resize2fs não pode reduzir on-line ext4 partitions . Essa limitação, quando aplicada na partição raiz, pode levar você a pensar que não é possível evitar a reinicialização do host para permitir a redução da partição root , que pode ser algo que você deseja evitar. O processo vinculado permitirá que você desmonte a partição raiz sem reinicializações. Então, sob esta luz, não está estritamente falando online redimensionando em relação ao estado montado da partição, no entanto, permanece um redimensionamento online em relação ao status on-line da rede ou acessibilidade do host.

É claro que, se você quiser apenas aumentar sua partição ext4, deverá manter as soluções resize2fs em funcionamento convencionais.

A solução geral que eu vinculei funcionará em qualquer tipo de solução dedicada ou VPS, por exemplo.

TLDR; esta solução implica pivot_root to tmpfs , então você pode umount seguramente sua partição root viver e mexer com ela. Quando terminar, você voltará a pivot_root em sua nova partição raiz.

Isso permite praticamente qualquer manipulação no sistema de arquivos raiz (movê-lo, alterar o sistema de arquivos, alterando seu dispositivo físico ...).

Eu pessoalmente usei isso, e funciona muito bem no sistema debian também, mas o guia foi escrito inicialmente em 2007 para redhat, a resposta que eu vinculei foi atualizada para o CentOS7. É altamente provável que funcione no seu OpenSUSE, embora provavelmente com alguma adaptação.

    
por 01.02.2016 / 03:22
9

Se o caso for um servidor remoto sem console, você poderá reduzir o sistema de arquivos usando o initramfs durante a reinicialização. Você precisa adicionar resize2fs ao initramfs e executá-lo antes de montar a raiz.

Exemplo de Debian / Ubuntu:

/ etc / initramfs-tools / hooks / resizefs (executável):

#!/bin/sh

set -e

PREREQS=""

prereqs() { echo "$PREREQS"; }

case $1 in
    prereqs)
        prereqs
        exit 0
    ;;
esac

. /usr/share/initramfs-tools/hook-functions

copy_exec /sbin/e2fsck
copy_exec /sbin/resize2fs

exit 0

/etc/initramfs-tools / scripts / local-premount / resizefs (executável)

#!/bin/sh

set -e

PREREQS=""

prereqs() { echo "$PREREQS"; }

case "$1" in
    prereqs)
        prereqs
        exit 0
    ;;
esac

/sbin/e2fsck -yf /dev/sda1
/sbin/resize2fs /dev/sda1 5G
/sbin/e2fsck -yf /dev/sda1

Agora, execute update-initramfs, reinicialize, verifique o tamanho, remova esses scripts e atualize-intiramfs novamente.

Para dracut (Fedora, CentOS) use a mesma lógica (/usr/lib/dracut/modules.d).

Isso é muito útil para criptografar ou mover rootfs, sem espaço livre disponível para a nova partição.

    
por 19.12.2017 / 11:47