Como faço para que o Centos VM releia seu tamanho de disco aumentado SEM uma reinicialização

16

Eu tenho uma VM do CentOS 5 e acabei de aumentar o disco da VM de 10G para 20G, mas não consigo o fdisk ver o novo tamanho do disco sem uma reinicialização.

Eu tentei echo 1 > /sys/block/sda/device/rescan, parece indicar que pode ver o novo tamanho, mas quando vou ao fdisk para criar uma nova partição, ele ainda vê o disco como 10G.

Alguma ideia?

AndyM
fonte
Dependendo da plataforma de virtualização e do método de armazenamento, isso pode ou não ser possível. Detalhes importam.
womble
Qual tipo de disco virtual você adicionou: IDE ou SCSI?
Quanta
Esse primeiro comando funcionou para mim ...
Rodo

Respostas:

11

Você precisa emitir o comando rescan para seu barramento SCSI.

No VMware, o controlador SCSI pode ser encontrado em algum lugar incomum. Primeiro encontre:

find /sys -iname 'scan'

Para mim que voltou

/sys/devices/pci0000:00/0000:00:07.1/host0/scsi_host/host0/scan
/sys/devices/pci0000:00/0000:00:07.1/host1/scsi_host/host1/scan
/sys/devices/pci0000:00/0000:00:10.0/host2/scsi_host/host2/scan

Em seguida, basta emitir o comando rescan

echo "- - -" >/sys/devices/pci0000:00/0000:00:07.1/host0/scsi_host/host0/scan
echo "- - -" >/sys/devices/pci0000:00/0000:00:07.1/host0/scsi_host/host1/scan
echo "- - -" >/sys/devices/pci0000:00/0000:00:10.0/host0/scsi_host/host2/scan

Isso deve ajudar. :)

Janne Pikkarainen
fonte
5
ls /sys/class/scsi_hosttalvez mais rápido.
Quanta
11

Eu tive que lidar com um problema semelhante, em um servidor SLES 11. O LVM foi construído com discos brutos, rodando no VMWare ESXi

# pvcreate /dev/sdd; vgextend ....

Depois de um tempo, precisei aumentar o tamanho do LVM, mas não adicionei um disco suplementar e depois pvcreate + vgextend como fiz antes, mas optei por aumentar o tamanho de um disco existente (/ dev / sdd nesse caso ) Após fazer o aumento no VMWare, executei um

# rescan-scsi-bus.sh

Mas o pvdisplay ainda estava mostrando o tamanho do disco 'antigo'. Era necessário fazer uma

# echo 1 > /sys/block/sdd/device/rescan

para o kernel aprender o novo tamanho de disco do / dev / sdd

enterco
fonte
6
echo 1 > /sys/block/sda/device/rescantrabalhou para mim no CentOS
Benedikt Köppel
-bash: / sys / module / scsi_mod / parameters / scan: permissão negada, nome de usuário é raiz
Sarz
7

depois de fazer primeiro echo 1 > /sys/block/sda/device/rescan

pvresize /dev/sda fez o truque para mim

kurt5
fonte
3

Se a tabela de partições estiver diretamente em uso (por exemplo, você montou o sistema de arquivos usando uma partição base), o kernel continuará usando a tabela de partições antiga até que este não seja mais o caso. Alguém me disse uma vez que se você estiver usando LVM, você pode contornar isso ....

Anon
fonte
2

Atualização: Centos 6 - não é possível atualizar a tabela de partições do disco ativo online, Centos 7 - é possível estender a última partição com o growpart ou criar uma nova partição com o fdisk e torná-la visível sem a reinicialização com o partprobe . Provavelmente o mesmo no ubuntu / debian. - Em algum momento após o 2.6, o kernel começou a dar suporte à releitura online da tabela de partições do disco ativo. Como a pergunta é para o Centos 5, eu diria que não.

Se você estiver usando partições, precisará reiniciar para usar o novo espaço. Não encontrei uma maneira de evitar isso. Se alguém me avisar.

No entanto, a reinicialização deve ser feita após você estender a última partição no disco ou adicionar uma nova partição. Não faz sentido reiniciar antes.

A primeira coisa que você deve notar após a nova varredura é o tamanho maior do disco no fdisk e no lsblk. Caso não o veja, você deve jogar com esses comandos echo 1 e echo - - -.

Depois de ver mais espaço, você pode estender / adicionar partição, reiniciar, estender vg, estender lv e fs.

Se você deseja evitar a reinicialização, é necessário atribuir o disco sda / b / c bruto ao grupo de volumes sem particioná-lo para sda1 / 2/3. Então não há necessidade de reinicialização.

O particionamento foi necessário há algum tempo, quando o linux não pôde inicializar a partir do LVM, mas agora pode.

Se você fizer o lsblk, verá partições ou lvms, dependendo de se estiver usando partições ou lvm, poderá ter todas as partes se não usar o lvm ou todos os lvms se não usar as partições. Aqui está um exemplo:

root@srv4 ~ $ lsblk
NAME                        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                           8:0    0  7.3T  0 disk
├─sda1                        8:1    0  500M  0 part /boot
└─sda2                        8:2    0  7.3T  0 part
  ├─vg_srv4-LogVol13 (dm-0) 253:0    0  7.1T  0 lvm  /
  ├─vg_srv4-LogVol05 (dm-1) 253:1    0  100G  0 lvm  /var/log
  ├─vg_srv4-LogVol04 (dm-2) 253:2    0   20G  0 lvm  /var
  ├─vg_srv4-LogVol01 (dm-5) 253:5    0   20G  0 lvm  /opt
  ├─vg_srv4-LogVol00 (dm-6) 253:6    0   20G  0 lvm  /home
  ├─vg_srv4-LogVol03 (dm-7) 253:7    0   20G  0 lvm  /usr
  └─vg_srv4-LogVol02 (dm-8) 253:8    0    8G  0 lvm  /tmp
borrão
fonte
-5

Você precisa reiniciar, não há maneira de contornar isso.

pfo
fonte
E o sistema de força a ser verificado novamente?
Quanta
Eu tive que reiniciar :-(
AndyM
Eu tive que reiniciar também.
ondra
11
Isso é completamente falso. Eu fiz isso várias vezes sem reiniciar.
Duncan X Simpson