약간의 문제가 있습니다. RHEL 6.7(VM)에서 실행되는 라이브 시스템이 있고 VMware 6.5(우리 그룹에서 관리되지 않음)가 있습니다. 문제는 다른 그룹이 가상 머신의 기존 디스크 용량을 확장하려고 한다는 것입니다. 그 후 평소와 같이 scan 명령을 실행하여 새 디스크를 검색했지만 echo "- - -" > /sys/class/scsi_host/host0/scan
아무 일도 일어나지 않았습니다. 그들은 sdb 디스크에 40G를 추가했는데 100G여야 했습니다. VM에서는 변경된 것을 보았지만 Linux에서는 변경되지 않았습니다. 그렇다면 문제는 무엇입니까? 내가 말했듯이 이것은 라이브 시스템이므로 다시 시작하고 싶지 않습니다.
시스템은 다음과 같습니다.
# df -h /dev/mapper/itsmvg-bmclv
59G 47G 9.1G 84% /opt/bmc
# lsblk sdb 8:16 0 60G 0 disk └─itsmvg-bmclv (dm-2) 253:2 0 60G 0 lvm /opt/bmc
# vgs VG #PV #LV #SN Attr VSize VFree itsmvg 1 1 0 wz--n- 59.94g 0
# pwd /sys/class/scsi_host
# ll lrwxrwxrwx 1 root root 0 Nov 13 16:18 host0 -> ../../devices/pci0000:00/0000:00:07.1/host0/scsi_host/host0 lrwxrwxrwx 1 root root 0 Nov 13 16:19 host1 -> ../../devices/pci0000:00/0000:00:07.1/host1/scsi_host/host1 lrwxrwxrwx 1 root root 0 Nov 13 16:19 host2 -> ../../devices/pci0000:00/0000:00:15.0/0000:03:00.0/host2/scsi_host/host2
답변1
위에서 언급했듯이 한 줄로 모든 기존 호스트를 검색할 수 있습니다.
for host in /sys/class/scsi_host/*; do echo "- - -" | sudo tee $host/scan; ls /dev/sd* ; done
결과:
$ for host in /sys/class/scsi_host/*; do echo "- - -" | sudo tee $host/scan; ls /dev/sd* ; done
- - -
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1 /dev/sdc /dev/sdc1
- - -
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1 /dev/sdc /dev/sdc1
︙
- - -
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1 /dev/sdc /dev/sdc1
- - -
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1 /dev/sdc /dev/sdc1
- - -
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1 /dev/sdc /dev/sdc1 /dev/sdd /dev/sdd1
마지막 줄은 우리가 /dev/sdd
장치를 발견했음을 보여줍니다.
답변2
이것은 모든 장치를 새로 고치는 데 도움이 되었습니다. (실행하기 쉬운 명령으로)
echo "- - -" | tee /sys/class/scsi_host/host*/scan
세 개의 대시는 채널, SCSI 대상 ID, LUN 등 모든 항목을 다시 검색하는 와일드카드 역할을 합니다.
답변3
연결된 새 하드 드라이브가 나타나도록 호스트 장치를 검색하기 위해 실행해야 하는 명령은 다음과 같습니다.
echo "- - -" >> /sys/class/scsi_host/host_$i/scan
$i는 호스트 번호입니다.
답변4
당신은 또한 실행을 시도할 수 있습니다
partprobe
이 명령은 파티션 테이블의 변경 사항을 확인하고 이를 운영 체제에 알립니다.