[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCHv2 11/11] iscsi: assert that sectors are aligned
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCHv2 11/11] iscsi: assert that sectors are aligned to LUN blocksize |
Date: |
Tue, 02 Jul 2013 12:53:11 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130514 Thunderbird/17.0.6 |
Il 02/07/2013 12:49, Peter Lieven ha scritto:
>
> Am 02.07.2013 um 12:44 schrieb Paolo Bonzini <address@hidden>:
>
>> Il 02/07/2013 10:28, Peter Lieven ha scritto:
>>>> I agree that it's better to emit an error than to corrupt the disk. I'm
>>>> just trying to understand what needs to be done on top of this to make 4
>>>> KB LUNs work.
>>>
>>> Reading is quite easy, you just have to have a wrapper that is reading an
>>> aligned
>>> portion of sectors around the original request and then extracting what was
>>> requested.
>>> Writing is very complicated. Requests have to be serialized,
>>> Read-Modify-Write for
>>> unaligned write requests. Paolo had all this prepared already.
>>>
>>> I wonder if it would be enough to have the block size of the host/iSCSI
>>> device propagated
>>> to the guest drivers and read 4K (or the protocol block size bytes) when
>>> probing the MBR.
>>
>> No, propagating the size of the device is only correct if we're doing
>> SCSI passthrough (-device scsi-block) and in that case we're doing it
>> already.
>>
>> For emulation, the choices are:
>>
>> 1) manually set the logical_block_size of the disk to 4096 (which means
>> the disk cannot be used as a boot disk, at least with BIOS; I don't know
>> about UEFI);
>>
>> 2) do 512e/4KN as in my patches. You would still need to expose a 4K
>> physical_sector_size to be precise, but it is just an optimization.
>
> This seems the more reasonable for me. Can you check what needs to be done
> to get your last version of your old series ready for upstream?
>
> Is the exposing of a sector size > 512 byte complicated or is this something
> that is already possible with IDE, Virtio-BLK, Virtio-SCSI etc.?
It is possible with virtio-blk and SCSI with the logical_block_size
property of virtio-blk-*, scsi-hd and scsi-disk devices. IIRC libvirt
supports it, too.
IDE only supports 512e/4KN (in general, not just in QEMU).
Paolo
> Peter
>