libvirt+qemu を使用して IDE バスディスクで仮想マシンを起動します。
libvirtのデバイス:
<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>
キュムから:
-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
ゲストOSはCentOS-7.9-x86_64-DVD-2009です。
起動後、dmesgが表示されます。
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
lshwに表示されます。
[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バスに変換するのはなぜですか?より関連性の高い説明はどこにありますか?
答え1
これは、Linuxカーネルが並列ATA(IDE)とシリアルATA(SATA)を処理する方法です。最初はIDE専用のドライバセットがあり、IDEドライバが登場しましたhda
。しかし、Serial ATAが登場すると、Jeff Garzikは既存のSCSIを使用することにしました。中間層カーネルから。多くの理由を取った、特に:
- scsi中間層の存在により多くの利点が生じる。これは私たちに多くのことを行い、ほぼ完全にATAコマンドプロトコル(PIO-in、PIO-out、DMAなど)にのみ集中できるようにしました。
[… ]
シリアルATAがリリースされます。デバイスとホストコントローラのSATA実装は、
しばらくSCSIにあった動作に適しています。 SATA は SCSI 接続サービスの使用も定義します。Linux SCSI層はホットプラグを処理し、さらにモジュール化されています。それはデバイスやsysfsなどに言及しました。最初から新しいブロックデバイスドライバを作成することは、これらすべての小さな詳細を処理することを意味します。
SCSIはしばらくの間、基本的なエラー回復とキュー制御を行ってきました。すぐにリリースされるSATA2と
ATA TCQ(後者を実装する時間がある場合)はどちらも大きな利点を得るでしょう。ATAPIはSCSIに似ています。
その結果、libata
ATAデバイスのサポートを提供し、それをSCSI中間層を介してSCSIドライブとしてマークします。最初はここにSATAデバイスといくつかのIntel PATAコントローラが含まれていました(私の知る限り、後者はまだデフォルトで古いIDEデバイスドライバを使用しています)。
数年後、libataはほとんどのPATAコントローラをサポートするように拡張されました。そしてほとんどのIDEデバイス最終的にSCSIデバイスとして扱われる。レガシーIDEドライバ2021年に削除されました。