再起動せずに新しく接続されたハードドライブをどのように検出できますか?

再起動せずに新しく接続されたハードドライブをどのように検出できますか?

少し問題があります。 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

上記のように、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

3つのダッシュは、チャネル、SCSIターゲットID、LUNなど、すべての項目を再検索するワイルドカードとして機能します。

答え3

接続されている新しいハードドライブが表示されるようにホストデバイスを検索するために実行する必要があるコマンドは次のとおりです。

echo "- - -" >> /sys/class/scsi_host/host_$i/scan

$i はホスト番号です。

答え4

また、実行を試すことができます

partprobe

このコマンドは、パーティション表の変更を確認し、それをオペレーティングシステムに通知します。

関連情報