首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么CentOS将ATA总线转换为scsi总线?

为什么CentOS将ATA总线转换为scsi总线?
EN

Unix & Linux用户
提问于 2022-05-19 02:01:10
回答 1查看 342关注 0票数 5

我使用libvirt + qemu引导带有IDE总线的磁盘的VM

libvirt中的设备:

代码语言:javascript
复制
<disk type='network' device='disk'>
  <driver name='qemu' type='raw' cache='none' io='native'/>
  <source protocol='iscsi' name='xxx'>
    <host name='127.0.0.1' port='xxx'/>
  </source>
  <target dev='hdb' bus='ide'/>
  <boot order='3'/>
  <alias name='ide0-0-1'/>
  <address type='drive' controller='0' bus='0' target='0' unit='1'/>
</disk>

在qemu中:

代码语言:javascript
复制
-drive file.driver=iscsi,file.portal=127.0.0.1:xxx,file.target=xxx,file.lun=xxx,file.transport=tcp,format=raw,if=none,id=drive-ide0-0-1,cache=none,aio=native
-device ide-hd,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1,bootindex=3,write-cache=on

客户操作系统是CentOS-7.9-x86_64-DVD-2009

启动后,dmesg中的显示显示

代码语言:javascript
复制
May 18 06:07:37 localhost kernel: ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xd120 irq 14
May 18 06:07:37 localhost kernel: ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xd128 irq 15
May 18 09:15:54 localhost kernel: ata1.00: ATAPI: QEMU DVD-ROM, 2.5+, max UDMA/100
May 18 09:15:54 localhost kernel: ata1.01: ATA-7: QEMU HARDDISK, 2.5+, max UDMA/100
May 18 09:15:54 localhost kernel: ata1.01: 6291456 sectors, multi 16: LBA48
May 18 09:15:54 localhost kernel: ata1.00: configured for MWDMA2
May 18 09:15:54 localhost kernel: ata1.01: configured for MWDMA2
May 18 09:15:54 localhost kernel: scsi 0:0:0:0: CD-ROM            QEMU     QEMU DVD-ROM     2.5+ PQ: 0 ANSI: 5
May 18 09:15:54 localhost kernel: scsi 0:0:1:0: Direct-Access     ATA      QEMU HARDDISK    2.5+ PQ: 0 ANSI: 5
May 18 09:15:54 localhost kernel: sr 0:0:0:0: [sr0] scsi3-mmc drive: 4x/4x cd/rw xa/form2 tray
May 18 09:15:54 localhost kernel: cdrom: Uniform CD-ROM driver Revision: 3.20
May 18 09:15:54 localhost kernel: sd 0:0:1:0: [sda] 6291456 512-byte logical blocks: (3.22 GB/3.00 GiB)
May 18 09:15:54 localhost kernel: sd 0:0:1:0: [sda] Write Protect is off
May 18 09:15:54 localhost kernel: sd 0:0:1:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
May 18 09:15:54 localhost kernel: sd 0:0:1:0: [sda] Attached SCSI disk

以及在伊索的表演

代码语言:javascript
复制
[root@localhost ~]# lshw -class disk
  *-cdrom                   
       description: DVD reader
       product: QEMU DVD-ROM
       vendor: QEMU
       physical id: 0.0.0
       bus info: scsi@0:0.0.0
       logical name: /dev/cdrom
       logical name: /dev/sr0
       version: 2.5+
       capabilities: removable audio dvd
       configuration: ansiversion=5 status=ready
     *-medium
          physical id: 0
          logical name: /dev/cdrom
          capabilities: partitioned partitioned:dos
          configuration: signature=6b8b4567
  *-disk
       description: ATA Disk
       product: QEMU HARDDISK
       physical id: 0.1.0
       bus info: scsi@0:0.1.0
       logical name: /dev/sda
       version: 2.5+
       serial: 918a6997-1928-38a1-9
       size: 3GiB (3221MB)
       configuration: ansiversion=5 logicalsectorsize=512 sectorsize=512

为什么CentOS将ATA总线转换为scsi总线?我在哪里可以看到更相关的描述?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-05-19 04:39:43

Linux内核就是这样处理并行ATA (IDE)和串行ATA (SATA)的。最初,有一组特定于IDE的驱动程序,IDE驱动器以hda等的形式出现。但当Serial出现时,Jeff决定在内核中使用现有的SCSI 中间层;特别是给出了一些理由

  • 许多优点都源于scsi中间层的存在.它代表我们做了大量工作,允许我集中讨论ATA命令协议(PIO-in、PIO-out、DMA等)。几乎全是。

  • 串行ATA正在迅速逼近地平线。设备和主机控制器SATA实现实际上都适合在SCSI中存在一段时间的行为。SATA甚至定义了SCSI封装服务的使用。
  • Linux层处理热插拔,而且更模块化。它已经有了重新计算的设备和sysfs等等。从零开始创建一个新的块设备驱动程序意味着处理所有这些小细节。
  • SCSI已经做了一段时间的基本错误恢复和队列控制。即将到来的SATA2将从这一点中获益良多,如果我有时间实现后者的话, ATA也会从中受益。
  • ATAPI是SCSI样的。

结果是libata,它提供对ATA设备的支持,并在SCSI驱动时通过SCSI中间层呈现它们。最初,这涉及SATA设备和一些Intel控制器(但据我所知,旧的IDE设备驱动程序在默认情况下仍然用于后者)。

几年后,libata被扩展到支持大多数PATA控制器.和大多数IDE设备最后被当作SCSI设备来处理。遗留的IDE驱动程序于2021年被移除

票数 8
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/703094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档