저는 RHEL 7.6 기반 배포판인 Oracle Linux 7.6을 사용하고 있습니다. 다음 테스트는 RHEL 7.6 또는 기타 RHEL 7.6 기반 배포판에서 동일해야 합니다.
Windows 10의 VMware Workstation에서 Oracle Linux 7.6 서버를 실행하고 있습니다. 내가 하고 싶은 일은 Linux 서버를 다시 시작하지 않고 Linux 게스트 가상 머신에 디스크를 추가하는 것입니다. 구글링해서 이런 페이지를 찾았습니다.https://rahsupport.wordpress.com/2017/08/10/vmware-add-disk-to-linux-without-rebooting-the-vm/. 기본적으로 수행되는 작업은 다음과 같습니다.
- VMware Workstation의 디스크를 Linux 가상 머신에 추가
- 가다
/sys/class/scsi_host/
- 달리기
echo '- - -' > host1/scan
- 그런 다음 실행하면
fdisk -l
새로 추가된 디스크를 볼 수 있습니다.
제 환경에서 테스트해봤습니다. 이러한 호스트 디렉터리는 세 개가 있으며, 각 디렉터리 scan
에는 파일이 있습니다.
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]#
원래 Linux 서버는 디스크를 인식할 수 없습니다.
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
하지만 다음을 실행하면 echo '- - -' > host0/scan
디스크가 나타납니다.
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]#
다시 테스트하기 위해 Linux VM을 원래 상태로 복원했습니다. 이번에는 echo '- - -' > host1/scan
작동하지 않는 것으로 나타났지만 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
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]#
내 질문은, 이것들은 무엇입니까?주인목차? Linux 서버가 디스크를 인식하기를 원하지만 인식할 수 없는 이유는 무엇 echo '- - -' > host0/scan
입니까 ?echo '- - -' > host2/scan
echo '- - -' > host1/scan
그런데 저는 Linux를 처음 접했고 아직 배우고 있습니다.
답변1
서로 다른 host
디렉터리는 서로 다른 디스크 컨트롤러에 해당합니다. 컨트롤러가 매핑되는 대상은 관련 기술에 따라 다릅니다. AHCI SATA는 포트당 하나의 호스트를 호스트하고, NVMe는 컨트롤러당 하나의 호스트를 사용합니다. 이는 가상 머신 설정에 따라 다릅니다.
기본적으로 이는 모든 호스트를 다시 검색해야 함을 의미합니다.