Indeed, the vm can boot up with "ide" and "sparse".
qemu-img convert -f qcow2 -O vmdk centos74.qcow2 centos74-ide-from-qcow2.vmdk
--------------------------------------------------------------
head -20 centos74-ide-from-qcow2.vmdk
KDMV��
�
# Disk DescriptorFile
version=1
CID=270f282d
parentCID=ffffffff
createType="monolithicSparse"
# Extent description
RW 41943040 SPARSE "centos74-ide-from-qcow2.vmdk"
# The Disk Data Base
#DDB
ddb.virtualHWVersion = "4"
ddb.geometry.cylinders = "41610"
ddb.geometry.heads = "16"
ddb.geometry.sectors = "63"
ddb.adapterType = "ide"
--------------------------------------------------------------
openstack image create --disk-format vmdk --container-format bare --property vmware_adaptertype="ide" --property vmware_disktype="sparse" centos74-ide-from-qcow2 < centos74-ide-from-qcow2.vmdk
--------------------------------------------------------------
openstack server create --image centos74-ide-from-qcow2 --flavor 1 --network 4217efe4-f2e4-4e68-8419-52117384016c centos74-ide-from-qcow2
The vm booted up before pending quite a while.

then it started.

However, I am trying to attach a iscsi lun to this vm, but it can not be attached. I checked the vm, it does not have any iscsi controller configured, shown as below:

I did configure a software iscsi adapter in vsphere, and it can discover the target and lun. something like this

I also checked the Openstack code two days ago, only the registered Glance image have this property vmware_adaptertype="lsiLogic", the vm booted up can I have a SCSI Adapter configured, which a iscsi target lun can be attached to.
The Openstack code will check if the image have this adapter vmware_adaptertype="lsiLogic" , if it is there, then vmx will have SCSI Adapters configuration, otherwise it wont.

That is why I will put this property vmware_adaptertype="lsiLogic" in below command, rather than "ide".
openstack image create --disk-format vmdk --container-format bare --property vmware_adaptertype="lsiLogic" --property vmware_disktype="sparse" test-image < centos70.vmdk
But I still want to use the previous KVM used raw/qcow2 images rather than create new images. thus I try to convert previous images to adapter_type=lsilogic and vmdk. But I found the vm can not be boot up (as the question I asked before).
That is the whole background for the question I asked initially.
I am confused:
1. is this the Openstack vmwareapi driver bug? since I found a quite few bugs in the code.
2. is it possible to convert my previous KVM qcow2 image with lsiLogic and preallocated (as the doc said, this pair may work), I tried these commands, but it seems still sparse monolithicSparse:
qemu-img create -f qcow2 -o preallocation=metadata centos74-test.qcow2 1G
Formatting 'centos74-test.qcow2', fmt=qcow2 size=1073741824 encryption=off cluster_size=65536 preallocation=metadata lazy_refcounts=off refcount_bits=16
qemu-img convert -p -f qcow2 -O vmdk -o adapter_type=lsilogic centos74-test.qcow2 centos74-lsi-pre-from-qcow2.vmdk
(100.00/100%)
head -20 centos74-lsi-pre-from-qcow2.vmdk
KDMV ���
# Disk DescriptorFile
version=1
CID=a7b129d9
parentCID=ffffffff
createType="monolithicSparse"
# Extent description
RW 2097152 SPARSE "centos74-lsi-pre-from-qcow2.vmdk"
# The Disk Data Base
#DDB
ddb.virtualHWVersion = "4"
ddb.geometry.cylinders = "130"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.adapterType = "lsilogic"
"&*.26:>BFJNRVZ^bfjnrvz~��������������������������������