在虛擬機Vmware中咱們有時候須要添加新的虛擬磁盤或給已有虛擬磁盤擴容(expand),在新增磁盤或磁盤擴容後,Linux系統並不能立刻識別到。也就是說你看不到磁盤空間變化(使用fdisk -l查看),這時咱們能夠經過重啓系統(reboot)解決這個問題,可是不少時候,咱們並不想在存儲擴容時重啓系統,由於這樣會影響到現有的業務系統。那麼爲何新增磁盤或磁盤擴容後,Linux系統識別不到呢?這個是由於鏈接存儲設備的SCSI總線須要從新掃描,才能識別到這些新的存儲設備。下面測試一下在添加新的虛擬磁盤或給已有虛擬磁盤擴容如何操做才能不用重啓系統 html
1:Vmware虛擬磁盤擴容 linux
以下所示,Vmware虛擬磁盤擴容後,使用fdisk -l看不到任何變化app
[root@localhost ~]# fdisk -l
Disk /dev/sda: 171.7 GB, 171798691840 bytes
255 heads, 63 sectors/track, 20886 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 15665 125724690 8e Linux LVM
/dev/sda3 15666 15795 1044225 83 Linux
/dev/sda4 15796 20886 40893457+ 83 Linux
Disk /dev/dm-0: 126.6 GB, 126600871936 bytes
255 heads, 63 sectors/track, 15391 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/dm-0 doesn't contain a valid partition table
Disk /dev/dm-1: 2113 MB, 2113929216 bytes
255 heads, 63 sectors/track, 257 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/dm-1 doesn't contain a valid partition table
方法1:echo 1 > /sys/class/scsi_device/device/rescan測試
[root@localhost ~]# cd /sys/class/scsi_disk/
[root@localhost scsi_disk]# ls
0:0:0:0
[root@localhost scsi_disk]# cd 0\:0\:0\:0/
[root@localhost 0:0:0:0]# echo '1' > device/rescan
[root@localhost 0:0:0:0]# fdisk -l
Disk /dev/sda: 173.9 GB, 173946175488 bytes
255 heads, 63 sectors/track, 21147 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 15665 125724690 8e Linux LVM
/dev/sda3 15666 15795 1044225 83 Linux
/dev/sda4 15796 20886 40893457+ 83 Linux
Disk /dev/dm-0: 126.6 GB, 126600871936 bytes
255 heads, 63 sectors/track, 15391 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/dm-0 doesn't contain a valid partition table
Disk /dev/dm-1: 2113 MB, 2113929216 bytes
255 heads, 63 sectors/track, 257 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/dm-1 doesn't contain a valid partition table
方法2:從新掃描特定的 SCSI Device spa
echo 1 > /sys/block/$DEVICE/device/rescan 用sda, sdb, sdc等替換$DEVICE.net
[root@localhost ~]# echo 1 > /sys/block/sda/device/rescan
2:Vmware新增虛擬磁盤 code
首先找到您的主機總線編號htm
[root@localhost ~]# grep mpt /sys/class/scsi_host/host?/proc_name
/sys/class/scsi_host/host0/proc_name:mptspi
使用下面命令掃描SCSI總線blog
[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host0/scan
參考資料: ip