VMware ESXI虚拟机磁盘在线扩容后fdisk -l 找不到问题解决
VMware ESXI虚拟机磁盘在线扩容后fdisk -l 找不到问题解决在VMware ESXI终端页面为虚拟机新增磁盘后,进入虚拟机执行fdisk -l 找不到新增的盘,机器有在跑测试不想重启虚拟机。下面是解决我的问题的方案。# fdisk -lDisk /dev/sda: 80 GiB, 85899345920 bytes, 167772160 sectorsUnits: sectors o
VMware ESXI虚拟机磁盘在线扩容后fdisk -l 找不到问题解决
在VMware ESXI终端页面为虚拟机新增磁盘后,进入虚拟机执行fdisk -l 找不到新增的盘。重启系统肯定是可以解决的,但是机器有在跑测试不想重启虚拟机,注意Linux是支持热插的。下面是解决我的问题的方案:
# fdisk -l
Disk /dev/sda: 80 GiB, 85899345920 bytes, 167772160 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x159c1b84
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 1499135 1497088 731M 83 Linux
/dev/sda2 1501182 167770111 166268930 79.3G 5 Extended
/dev/sda5 1501184 167770111 166268928 79.3G 8e Linux LVM
Disk /dev/mapper/git--svn--vg-root: 78.3 GiB, 84074823680 bytes, 164208640 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/git--svn--vg-swap_1: 976 MiB, 1023410176 bytes, 1998848 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
可以执行lsscsi
# lsscsi
[32:0:0:0] disk VMware, VMware Virtual S 1.0 /dev/sda
[2:0:0:0] cd/dvd NECVMWar VMware SATA CD01 1.00 /dev/sr0
有的系统没有这个命令,需要安装。或者执行下面命令也可以
#ll /sys/bus/scsi/drivers/sd/
total 0
lrwxrwxrwx 1 root root 0 Oct 23 11:26 32:0:0:0 -> ../../../../devices/pci0000:00/0000:00:10.0/host32/target32:0:0/32:0:0:0/
从上面可以看到 [32:0:0:0] && /32:0:0:0/ 字样,这个是代表什么意思呢?
# cat /proc/scsi/scsi
Attached devices:
Host: scsi2 Channel: 00 Id: 00 Lun: 00
Vendor: NECVMWar Model: VMware SATA CD00 Rev: 1.00
Type: CD-ROM ANSI SCSI revision: 05
Host: scsi32 Channel: 00 Id: 00 Lun: 00
Vendor: VMware Model: Virtual disk Rev: 2.0
Type: Direct-Access ANSI SCSI revision: 06
如上:
有两块scsi磁盘,一块通过光驱cd-rom连接的光盘。我们只考虑scsi磁盘,VMware ESXI终端页面原来的磁盘SCSI 控制器 0:0,新增的磁盘SCSI 控制器 0:1。所以这两块磁盘在scsi中的定位符为32:0:0:0和32:0:1:0。如果继续插入一块盘,那么新盘在scsi中的定位符为32:0:2:0,这个数值串非常重要。
热插
在向计算机中插入一块磁盘后,内核因为识别不了它所以不会产生任何事件通知,因此在/sys目录中不会产生任何文件,任何工具也就读取不了它。热插新盘的方式是向/proc/scsi/scsi中写入新scsi设备的信息。方式如下:
echo "scsi add-single-device w x y z" > /proc/scsi/scsi
其中:
参数值 w、x、y 、 z,解释如下:
w(Host)是主机适配器标识,第一个适配器为零(0)
x (Channel)是主机适配器上的 SCSI 通道,第一个通道为零(0)
y (ID)是设备的 SCSI 标识
z (Lun)是 LUN 号,第一个 LUN 为零(0)
这里执行:
echo "scsi add-single-device 32 0 1 0" > /proc/scsi/scsi
这里是没有啥反应的,执行有问题才会报错。
这里可以再次执行:fdisk -l 新增的磁盘显示出来了。
# fdisk -l
Disk /dev/sda: 80 GiB, 85899345920 bytes, 167772160 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x159c1b84
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 1499135 1497088 731M 83 Linux
/dev/sda2 1501182 167770111 166268930 79.3G 5 Extended
/dev/sda5 1501184 167770111 166268928 79.3G 8e Linux LVM
Disk /dev/mapper/git--svn--vg-root: 78.3 GiB, 84074823680 bytes, 164208640 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/git--svn--vg-swap_1: 976 MiB, 1023410176 bytes, 1998848 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdb: 120 GiB, 128849018880 bytes, 251658240 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
后面就可以执行其他操作了。
另外,重新扫描scsi总线也可以实现热插的功能。
因为上面的例子中,scsi host id为2(即host2),所以扫描的是host2,这样host2这个scsi上的所有设备都会被重新扫描。
# echo "- - -" > /sys/class/scsi_host/host2/scan
如果不知道要扫描哪个host,直接使用循环全部扫描。
不过我这里没有起到作用。
更多推荐
所有评论(0)