Jak sprawić, by Centos VM ponownie odczytała zwiększony rozmiar dysku BEZ ponownego uruchomienia

16

Mam maszynę Wirtualną CentOS 5 i właśnie zwiększyłem dysk VM z 10G do 20G, ale nie mogę uzyskać fdisk, aby zobaczyć nowy rozmiar dysku bez ponownego uruchomienia.

Próbowałem echo 1 > /sys/block/sda/device/rescan, wydaje się wskazywać, że może zobaczyć nowy rozmiar, ale kiedy idę do fdisk, aby utworzyć nową partycję, nadal widzi dysk jako 10G.

Jakieś pomysły?

AndyM
źródło
W zależności od platformy do wirtualizacji i metody przechowywania może to być niemożliwe lub niemożliwe. Szczegóły mają znaczenie.
womble
Jaki typ dysku wirtualnego dodałeś: IDE lub SCSI?
kwanty
To pierwsze polecenie zadziałało dla mnie ...
Rodo

Odpowiedzi:

11

Musisz wydać polecenie rescan na szynie SCSI.

W VMware kontroler SCSI można znaleźć w nietypowym miejscu. Najpierw znajdź:

find /sys -iname 'scan'

Dla mnie to wróciło

/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

Następnie po prostu wydaj polecenie 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

To powinno pomóc. :)

Janne Pikkarainen
źródło
5
ls /sys/class/scsi_hostmoże szybciej.
kwanty
11

Miałem do czynienia z podobnym problemem na serwerze SLES 11. LVM został zbudowany z surowych dysków, działających na VMWare ESXi

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

Po pewnym czasie musiałem zwiększyć rozmiar LVM, ale nie dodałem dodatkowego dysku, a następnie pvcreate + vgextend, jak to zrobiłem wcześniej, ale zdecydowałem się zwiększyć rozmiar istniejącego dysku (/ dev / sdd w tym przypadku ). Po zwiększeniu VMWare wykonałem

# rescan-scsi-bus.sh

Ale pvdisplay wciąż pokazywał „stary” rozmiar dysku. Trzeba było zrobić

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

aby jądro nauczyło się nowego rozmiaru dysku / dev / sdd

enterco
źródło
6
echo 1 > /sys/block/sda/device/rescanpracował dla mnie w CentOS
Benedikt Köppel
-bash: / sys / module / scsi_mod / parameters / scan: Odmowa
dostępu
7

po pierwszym zrobieniu echo 1 > /sys/block/sda/device/rescan

pvresize /dev/sda zrobił dla mnie lewę

kurt5
źródło
3

Jeśli tablica partycji jest bezpośrednio używana (np. Podłączyłeś system plików za pomocą partycji podstawowej), jądro będzie nadal używać starej tablicy partycji, dopóki tak się nie stanie. Ktoś kiedyś powiedział mi, że jeśli używasz LVM, możesz to obejść ....

Zaraz
źródło
2

Aktualizacja: Centos 6 - nie można zaktualizować tabeli partycji aktywnego dysku online, Centos 7 - można rozszerzyć ostatnią partycję za pomocą growpart lub utworzyć nową partycję za pomocą fdisk i uczynić ją widoczną bez ponownego uruchamiania z partprobe . Prawdopodobnie to samo na Ubuntu / Debian. - W pewnym momencie po 2.6 jądro zaczęło wspierać ponowne czytanie online tablicy partycji aktywnego dysku. Ponieważ pytanie dotyczy Centos 5, nie powiedziałbym, że nie ma mowy.

Jeśli używasz partycji, musisz zrestartować komputer, aby użyć nowej przestrzeni. Nie znalazłem sposobu, aby tego uniknąć. Jeśli ktoś dał mi znać.

Jednak ponowne uruchomienie powinno nastąpić po rozszerzeniu ostatniej partycji na dysku lub dodaniu nowej partycji. Ponowne uruchomienie komputera nie ma sensu.

Pierwszą rzeczą, którą powinieneś zauważyć po ponownym skanowaniu, jest większy rozmiar dysku w fdisk i lsblk. Jeśli go nie widzisz, musisz grać tymi poleceniami echo 1 i echo - - -.

Gdy zobaczysz więcej miejsca, możesz rozszerzyć / dodać partycję, a następnie uruchomić ponownie, rozszerzyć vg, rozszerzyć lv i fs.

Jeśli chcesz uniknąć ponownego uruchomienia, musisz przypisać surowy dysk sda / b / c do grupy woluminów bez partycjonowania go na sda1 / 2/3. Wtedy nie ma potrzeby ponownego uruchamiania.

Partycjonowanie było konieczne jakiś czas temu, kiedy Linux nie mógł uruchomić się z LVM, ale teraz może.

Jeśli wykonasz lsblk, zobaczysz partycje lub lvms w zależności od tego, czy używasz partycji czy lvm, możesz mieć wszystkie części, jeśli nie używasz lvm lub wszystkie lvms, jeśli nie używasz partycji. Oto jeden przykład:

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
plama
źródło
-5

Musisz zrestartować komputer, nie można tego obejść.

pfo
źródło
Co powiesz na system wymuszający ponowne skanowanie?
kwanty
Musiałem zrestartować :-(
AndyM
Też musiałem zrestartować komputer.
ondra
1
To jest całkowicie nieprawdziwe. Zrobiłem to wiele razy bez ponownego uruchamiania.
Duncan X Simpson