Como outras respostas aludidas, a abordagem ideal é LUN-por-VDI. No começo, não parecia que era possível fazer isso, mas há um driver SR "iscsi" não documentado que criará um LUN-per-VDI SR (descobri isso ao examinar o diretório / opt / xensource / sm - veja o arquivo ISCSISR.py). Você essencialmente configura um SR para cada destino iSCSI e o XenServer cria os VDIs para cada LUN nesse destino. Você só pode configurá-lo por meio da linha de comando, incluindo a criação dos VBDs e sua anexação às VMs. Os VBDs e VDIs nem sequer aparecem no XenCenter.
Aqui está um exemplo de comando para configurá-lo:
xe sr-create name-label=san type=iscsi device-config:target=<IP address of target> device-config:targetIQN=<IQN of target> shared=true
Isso criará automaticamente um VDI para cada LUN iSCSI. Se você acabar adicionando um novo iSCSI LUN no SAN, o XenServer adicionará um novo VDI para ele depois de executar o seguinte comando:
xe sr-scan uuid=<UUID of SR>
Isso também funciona ao adicionar VDIs para LUNs clonados - o novo VDI recebe um novo UUID.
Além disso, se você acaba redimensionando um LUN, o XenServer não atende automaticamente, então você deve executar o seguinte:
xe vdi-forget uuid=<UUID of VDI that you resized>
iscsiadm -m node -R
xe sr-scan uuid=<UUID of SR>
E para criar um VBD e anexá-lo a uma VM:
xe vbd-create vm-uuid=<UUID of VM> device=<VBD device #, e.g. 0> vdi-uuid=<VDI of UUID>