Как создать NVMe с размером сектора 4K в KVM-QEMU

В целях тестирования я создаю виртуальную машину следующим образом:

qemu-img create -f qcow2 \
-o cluster_size=4096,preallocation=full \
/home/marcop/.libvirt/nvme-20G.qcow2 20G

qemu-system-x86_64 -machine q35,accel=kvm \
  -m 4096 \
  -smp 4 \
  -cpu host \
  -boot d \
  -cdrom /var/lib/libvirt/isos/archlinux-2020.10.01-x86_64.iso \
  -drive file=/home/marcop/.libvirt/nvme-20G.qcow2,if=none,aio=native,cache.direct=on,id=D24 \
  -device nvme,drive=D24,serial=1234,logical_block_size=4096,physical_block_size=4096

При загрузке внутри машины я использую fdisk и nvme-cli для проверки размера сектора, но это всегда 512 Байт.

pacman -Sy nvme-cli
fdisk -l /dev/nvme0n1

с выходом:

Disk /dev/nvme0n1: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: QEMU NVMe Ctrl
Units: sectors of 1 * 512 = 512 bytes
Sector size (logica/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Поиск доступных режимов размера сектора с помощью nvme-cli (см. здесь и здесь для получения подробной информации о NVMe)

nvme id-ns /dev/nvme0n1

возвратный вывод:

NVME Identify Namespace 1:
nsze    : 0x2800000
ncap    : 0x2800000
nuse    : 0x2800000
nsfeat  : 0
nlbaf   : 0
flbas   : 0
mc      : 0
dpc     : 0
dps     : 0
nmic    : 0
rescap  : 0
fpi     : 0
dlfeat  : 0
nawun   : 0
nawupf  : 0
nacwu   : 0
nabsn   : 0
nabo    : 0
nabspf  : 0
noiob   : 0
nvmcap  : 0
nsattr  : 0
nvmsetid: 0
anagrpid: 0
endgid  : 0
nguid   : 00000000000000000000000000000000
eui64   : 0000000000000000
lbaf  0 : ms:0   lbads:9  rp:0 (in use)

Это указывает на выход только из одного профиля сектора. Для сравнения вывод той же команды, выданной для моего физического NVMe, возвращает

[...]
lbaf  0 : ms:0   lbads:9  rp:0x2 (in use)
lbaf  1 : ms:0   lbads:12 rp:0x1 

Любая помощь будет принята с благодарностью!


person Marco Prevedello    schedule 14.10.2020    source источник
comment
Похоже, что для типов дисков NVMe это в настоящее время не реализовано. Размер сектора 4k возможен с помощью virtio-blk: -device virtio-blk,drive=data-disk,serial=2222,logical_block_size=4096,physical_block_size=4096.   -  person falstaff    schedule 30.12.2020


Ответы (1)


запустите команду для форматирования с 4k. Но будьте осторожны, этот формат уничтожит данные.

nvme format /dev/nvme0n1 --lbaf=1
person Umamahesh Allenki    schedule 23.02.2021
comment
В этом ответе нет объяснения. Взгляните на stackoverflow.com/help/how-to-answer и отредактируйте свой размещать соответственно. - person Rishabh Kumar; 23.02.2021