I'm creating logical volumes for export via targetcli (iSCSI).
I'm using lvm's thin provisioned volumes, e.g.
lvcreate -V 1T --thin -n vol_name storage/thin_pool
Then I add the created logical volume into targetcli
's iblock backstore. The resulting device shows 4096 as get attribute hw_block_size
Due to lacking initiator support (VirtualBox) I need those LUNs to have 512-byte sectors. I'd like to avoid using fileio backstore (which supposedly allows setting sector size), for consistency reasons.
Is it possible to specify sector size during creation of the volume or assignment of the volume into backstore?
Драйвер резервного хранилища fileio - это способ, которым вы можете это сделать. Согласованность - это проблема, только если вы решите включить кэширование с обратной записью (или, как указывает targetcli, «буферизованный режим») в хранилищах файлов fileio.
Небуферизованный режим используется по умолчанию практически для каждой реализации targetcli в любом дистрибутиве, как это было предложено самой Datera. Это не должно иметь большого значения.
Однако, если вам нужно принудительно включить небуферизованный режим для определенного объекта поддержки (и, возможно, вам следует просто на всякий случай), вы можете указать это следующим образом:
#> targetcli
/ backstores / fileio / test_name> set attribute buffered = False
Что касается решения проблемы размера блока, вы также можете свободно редактировать атрибут block_size для конкретного объекта резервного хранилища fileio:
/ backstores / fileio / test_name> set attribute block_size = 4096
Вы можете использовать backstores fileio для адресации тонкого LVM2 (или действительно любого другого блочного устройства), изменяя практически любой параметр, в то время как backstore блока или iblock оптимизированы для передачи устройств и их аппаратных свойств напрямую "инициаторам". Block должен работать лучше, чем fileio, поскольку реализация более компактная - ему просто не хватает таких функций из-за этой экономичной реализации. Если вам не требуется устанавливать эти параметры, для блочных устройств следует использовать «блок».
У меня были большие проблемы с тем, чтобы целевой LUN LIO распознавался ESXi 6.5. Я не накладываю LVM на виртуальный диск, доступный из подсистемы RAID, просто использую команду «targetcli», чтобы предоставить виртуальный диск как iSCSI LUN моему хосту ESXi. (с использованием резервного хранилища «блочного» типа)
Будучи новым оборудованием, физические диски имеют размер 4096 секторов. Это открыло себя вплоть до подсистемы iSCSI на хосте ESXi, которая успешно вошла в цель, но отказалась показывать устройство LUN. (Файлы журнала ESXi подсказали мне его жалобу на неподдерживаемый размер сектора.)
Однажды идентифицированная, эта проблема была легко решена с помощью утилиты targetcli с командой set attribute block_size=512.
Мне не пришлось переключаться на тип резервного хранилища «fileio»! Но обратите внимание: это не позволит вам сделать это, если резервное хранилище в настоящее время привязано к iscsi lun — вам нужно разорвать эту привязку (удалить lun), установить block_size, а затем воссоздать iscsi lun.
Я работаю с командой targetcli версии 2.1.51 на RHEL 7.