----------------------------------------------------------------------------------
@MSGID: grosbein.net a39d380a
@REPLY: ddt.demos.su 46c80d61
@RFC-Reply-To: eugen@grosbein.net
@RFC-X-newsgroup: nkz.fido.ru.unix.bsd
@RFC-X-RealName: Eugene Grosbein
31 авг. 2023, четверг, в 09:03 NOVT, Alex Korchmar написал(а):
AK> Хозяйке на заметку:
AK> https://www.truenas.com/community/threads/unmap-failed.85345/
AK>
https://forums.freebsd.org/threads/zfs-unmap-and-vmware-esxi-troubles.77648/
AK> https://forum.netgate.com/topic/167882/scsi-error-on-vm
AK> что сделали генитальные разработчики freebsd по этому поводу?
AK> Правильно - забили х-й.
AK> Hу не выяснять же ж на самом деле, что сломалось.
Во-первых, первое и третье вообще не репорты в FreeBSD.
А второе это обмен опытом между юзерами FreeBSD, а не Problem Report
для разработчиков в багзиллу.
Во-вторых, UNMAP failed это ошибка, которую (виртуализированное) железо
выдаёт драйверу в ответ на его команду SCSI UNMAP и сделать с этим драйвер
особо ничего не может. Это тащем-то надо репортить разработчикам гипервизора
и/или искать ответ в их Knowledge base.
Максимум, что может сделать гостевая OS в таком случае, это попытаться
найти workaround. В случае da0 для этого у нас есть подсистема CAM
и man 4 da:
kern.cam.da.X.delete_method
This variable specifies method to handle BIO_DELETE requests:
ATA_TRIM ATA TRIM via ATA COMMAND PASS THROUGH command,
UNMAP UNMAP command,
WS16 WRITE SAME(16) command with UNMAP flag,
WS10 WRITE SAME(10) command with UNMAP flag,
ZERO WRITE SAME(10) command without UNMAP flag,
DISABLE disable BIO_DELETE support.
А ещё вместо эмуляции аппаратного контроллера LSI Logic
нынче полезно отдавать виртуалке носитель в виде VirtIO block device
или NVMe, для последнего есть драйвер nda(4) с настройками
kern.cam.da.enable_biospeedup, kern.cam.nda.max_trim,
kern.cam.nda.0.unmapped_io, kern.cam.nda.0.trim_{ticks,goal}
В любом случае, нужен PR.
Eugene
--- slrn/1.0.3 (FreeBSD)
* Origin: RDTC JSC (2:5006/1@fidonet)
SEEN-BY: 50/109 221/6 250/25 301/1 341/66 450/1024
463/68 467/888 5000/111
SEEN-BY: 5001/100 5003/17 5005/49 5006/1 5015/42 46
5019/40 5020/113 545 715
SEEN-BY: 5020/814 830 848 1042 2332 2992 4441
12000 5022/128 5030/49 115 500
SEEN-BY: 5030/1081 1474 1900 5036/26 5052/4 5053/51
5054/8 89 5058/104
SEEN-BY: 5061/133 5080/31 102 172 245 5083/1 444
6090/1
@PATH: 5006/1 5080/102 5030/49 5020/1042 4441