재부팅없이 Centos VM이 증가 된 디스크 크기를 다시 읽도록하려면 어떻게합니까


16

CentOS 5 VM이 있고 방금 VM 디스크를 10G에서 20G로 늘 렸지만 재부팅하지 않고 fdisk에서 새 디스크 크기를 볼 수는 없습니다.

시도했지만 echo 1 > /sys/block/sda/device/rescan새로운 크기를 볼 수 있음을 나타내는 것으로 보이지만 fdisk로 이동하여 새 파티션을 만들면 여전히 디스크가 10G로 표시됩니다.

어떤 아이디어?


가상화 플랫폼 및 스토리지 방법에 따라 가능하거나 불가능할 수 있습니다. 세부 사항이 중요합니다.
울림

추가 한 가상 디스크 유형 : IDE 또는 SCSI?
quanta

그 첫 번째 명령은 나를 위해 일했다 ...
Rodo

답변:


11

SCSI 버스에 rescan 명령을 실행해야합니다.

VMware에서는 SCSI 컨트롤러가 비정상적인 위치에있을 수 있습니다. 먼저 찾아보십시오.

find /sys -iname 'scan'

돌아온 나를 위해

/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

그런 다음 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

해야 도움이됩니다. :)


5
ls /sys/class/scsi_host아마도 더 빠를 수도 있습니다.
quanta

11

SLES 11 서버에서 비슷한 문제를 해결해야했습니다. LVM은 VMWare ESXi에서 실행되는 원시 디스크로 구축되었습니다.

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

잠시 후 LVM 크기를 늘려야했지만 이전에 한 것처럼 보조 디스크를 추가 한 다음 pvcreate + vgextend를 추가하지 않았지만 기존 디스크 (이 경우 / dev / sdd)의 크기를 늘리기로 결정했습니다. ). VMWare를 늘리고 나면

# rescan-scsi-bus.sh

그러나 pvdisplay는 여전히 '오래된'디스크 크기를 보여주었습니다. 할 필요가 있었다

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

커널이 / dev / sdd의 새로운 디스크 크기를 배울 수 있도록


6
echo 1 > /sys/block/sda/device/rescanCentOS에서 나를 위해 일했습니다
Benedikt Köppel

-bash : / sys / module / scsi_mod / parameters / scan : 권한이 거부되었습니다. username은 root입니다
Sarz

7

첫 번째 후 echo 1 > /sys/block/sda/device/rescan

pvresize /dev/sda 나를 위해 트릭을 했어


3

파티션 테이블이 직접 사용 중이면 (예 : 기본 파티션을 사용하여 파일 시스템을 마운트 한 경우) 커널은 더 이상 그렇지 않을 때까지 이전 파티션 테이블을 계속 사용합니다. 누군가가 한 번 말해 LVM을 사용하면이 문제를 해결할 수 있다고 말했습니다 ....


2

업데이트 : Centos 6-온라인에서 활성 디스크의 파티션 테이블을 업데이트 할 수 없음, Centos 7- growpart를 사용 하여 마지막 파티션을 확장 하거나 fdisk를 사용하여 새 파티션을 생성하고 partprobe로 재부팅하지 않고 볼 수 있습니다 . 아마도 우분투 / 데비안에서 동일합니다. -2.6 커널이 활성 디스크의 파티션 테이블에 대한 온라인 다시 읽기를 지원하기 시작한 후 어느 시점에서. 질문은 Centos 5에 대한 것이므로 아무 말도하지 않을 것입니다.

파티션을 사용하는 경우 새 공간을 사용하려면 재부팅해야합니다. 나는 이것을 피할 수있는 방법을 찾지 못했습니다. 누군가 나에게 알려주었다면.

그러나 디스크의 마지막 파티션을 확장하거나 새 파티션을 추가 한 후에 재부팅해야합니다. 전에 재부팅하는 것은 의미가 없습니다.

재검색 후 가장 먼저 알아 두어야 할 것은 fdisk 및 lsblk의 디스크 크기가 더 큽니다. 표시되지 않으면이 echo 1 및 echo---명령을 사용해야합니다.

더 많은 공간이 확보되면 파티션을 확장 / 추가 한 다음 재부팅, vg, lv 및 fs를 확장 할 수 있습니다.

재부팅을 피하려면 원시 sda / b / c 디스크를 sda1 / 2 / 3으로 분할하지 않고 볼륨 그룹에 할당해야합니다. 그런 다음 재부팅 할 필요가 없습니다.

얼마 전에 리눅스가 LVM에서 부팅 할 수 없었던 파티션 작업이 필요했지만 지금은 가능합니다.

lsblk를 사용하면 파티션 또는 lvm을 사용 중인지에 따라 파티션 또는 lvms가 표시됩니다. lvm을 사용하지 않으면 lvm 또는 모든 lvms를 사용하지 않으면 모든 부분을 가질 수 있습니다. 다음은 하나의 예입니다.

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


-5

당신은 재부팅해야합니다, 그 주위에 방법이 없습니다.


강제 시스템을 다시 스캔하는 것은 어떻습니까?
quanta

나는 재부팅해야했다 :-(
AndyM

나도 다시 부팅해야했다.
ondra

1
이것은 사실이 아닙니다. 재부팅하지 않고 여러 번 수행했습니다.
던컨 X 심슨
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.