Estou usando o Oracle Linux 7.6, que é uma distribuição baseada no RHEL 7.6. O teste a seguir deve ser o mesmo no RHEL 7.6 ou em outras distribuições baseadas no RHEL 7.6.
Estou executando o servidor Oracle Linux 7.6 no VMware Workstation no Windows 10. O que estou tentando fazer é adicionar um disco à máquina virtual convidada do Linux sem reinicializar o servidor Linux. Eu pesquisei e encontrei esta página: https://rahsupport.wordpress.com/2017/08/10/vmware-add-disk-to-linux-without-rebooting-the-vm/ . Basicamente, o que ele faz é:
- Adicione o disco do VMware Workstation à VM do Linux
- Vamos para
/sys/class/scsi_host/
- Corre
echo '- - -' > host1/scan
- Em seguida, executando
fdisk -l
, você pode ver o disco recém-adicionado
Testei no meu ambiente. Existem três desses diretórios de host e cada um deles possui um scan
arquivo:
root:[/sys/class/scsi_host]# ls -la
total 0
drwxr-xr-x. 2 root root 0 Aug 24 22:49 .
drwxr-xr-x. 54 root root 0 Aug 24 22:49 ..
lrwxrwxrwx. 1 root root 0 Aug 24 22:49 host0 -> ../../devices/pci0000:00/0000:00:07.1/ata1/host0/scsi_host/host0
lrwxrwxrwx. 1 root root 0 Aug 24 22:49 host1 -> ../../devices/pci0000:00/0000:00:07.1/ata2/host1/scsi_host/host1
lrwxrwxrwx. 1 root root 0 Aug 24 22:49 host2 -> ../../devices/pci0000:00/0000:00:10.0/host2/scsi_host/host2
root:[/sys/class/scsi_host]#
root:[/sys/class/scsi_host]# ls -la */scan
--w-------. 1 root root 4096 Aug 24 22:50 host0/scan
--w-------. 1 root root 4096 Aug 24 22:50 host1/scan
--w-------. 1 root root 4096 Aug 24 22:50 host2/scan
root:[/sys/class/scsi_host]#
Originalmente, o servidor Linux não pode reconhecer o disco:
root:[/sys/class/scsi_host]# fdisk -l
Disk /dev/sda: 1099.5 GB, 1099511627776 bytes, 2147483648 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 label type: dos
Disk identifier: 0x000d3e78
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 976895 487424 83 Linux
/dev/sda2 976896 2059401215 1029212160 83 Linux
/dev/sda3 2059401216 2101344255 20971520 83 Linux
/dev/sda4 2101344256 2147483647 23069696 5 Extended
/dev/sda5 2101348352 2143289343 20970496 83 Linux
/dev/sda6 2143291392 2147483647 2096128 82 Linux swap / Solaris
Mas quando eu executo echo '- - -' > host0/scan
, o disco apareceu:
root:[/sys/class/scsi_host]# echo '- - -' > host0/scan
root:[/sys/class/scsi_host]# fdisk -l
Disk /dev/sda: 1099.5 GB, 1099511627776 bytes, 2147483648 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 label type: dos
Disk identifier: 0x000d3e78
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 976895 487424 83 Linux
/dev/sda2 976896 2059401215 1029212160 83 Linux
/dev/sda3 2059401216 2101344255 20971520 83 Linux
/dev/sda4 2101344256 2147483647 23069696 5 Extended
/dev/sda5 2101348352 2143289343 20970496 83 Linux
/dev/sda6 2143291392 2147483647 2096128 82 Linux swap / Solaris
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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
root:[/sys/class/scsi_host]#
Reverti minha VM Linux ao seu estado original para testar novamente. Desta vez mostrou que echo '- - -' > host1/scan
não funciona, mas echo '- - -' > host2/scan
funciona.
root:[/sys/class/scsi_host]# fdisk -l
Disk /dev/sda: 1099.5 GB, 1099511627776 bytes, 2147483648 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 label type: dos
Disk identifier: 0x000d3e78
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 976895 487424 83 Linux
/dev/sda2 976896 2059401215 1029212160 83 Linux
/dev/sda3 2059401216 2101344255 20971520 83 Linux
/dev/sda4 2101344256 2147483647 23069696 5 Extended
/dev/sda5 2101348352 2143289343 20970496 83 Linux
/dev/sda6 2143291392 2147483647 2096128 82 Linux swap / Solaris
root:[/sys/class/scsi_host]# echo '- - -' > host1/scan
root:[/sys/class/scsi_host]# fdisk -l
Disk /dev/sda: 1099.5 GB, 1099511627776 bytes, 2147483648 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 label type: dos
Disk identifier: 0x000d3e78
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 976895 487424 83 Linux
/dev/sda2 976896 2059401215 1029212160 83 Linux
/dev/sda3 2059401216 2101344255 20971520 83 Linux
/dev/sda4 2101344256 2147483647 23069696 5 Extended
/dev/sda5 2101348352 2143289343 20970496 83 Linux
/dev/sda6 2143291392 2147483647 2096128 82 Linux swap / Solaris
root:[/sys/class/scsi_host]# echo '- - -' > host2/scan
root:[/sys/class/scsi_host]# fdisk -l
Disk /dev/sda: 1099.5 GB, 1099511627776 bytes, 2147483648 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 label type: dos
Disk identifier: 0x000d3e78
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 976895 487424 83 Linux
/dev/sda2 976896 2059401215 1029212160 83 Linux
/dev/sda3 2059401216 2101344255 20971520 83 Linux
/dev/sda4 2101344256 2147483647 23069696 5 Extended
/dev/sda5 2101348352 2143289343 20970496 83 Linux
/dev/sda6 2143291392 2147483647 2096128 82 Linux swap / Solaris
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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
root:[/sys/class/scsi_host]#
Minha pergunta é: quais são esses diretórios de host ? Por que echo '- - -' > host0/scan
e echo '- - -' > host2/scan
fará o servidor Linux reconhecer o disco, mas echo '- - -' > host1/scan
não consegue?
Btw, eu sou muito novo no Linux e ainda aprendendo.
Os diferentes
host
diretórios correspondem a diferentes controladores de disco. O que os controladores mapeiam depende da tecnologia envolvida; Os hosts AHCI SATA têm um host por porta, o NVMe usa um host por controlador, etc. A situação exata no seu caso dependerá da configuração da sua VM.Basicamente, o que isso significa é que você deve verificar novamente todos os hosts.