This is hard to say, as it depends on many things. How large your cloud is, howmuch I/O the instances will do to their ephemeral storage, etc..
I've used NFS backed shared storage for non-openstack virtualization with a few (approx 5) hypervisors with an average of about 10 VMs each. This was OK under normal conditions but pathological conditions could be, well pathological. This depends a lot on your load profile and the performance of your NAS.
You can definately use Ceph or GlusterFS. Not 100% sure about using SAN directly for the ephemeral storage, though you can use it for block storage and boot all your instances from the block store.
I'm currently using local storage (non-shared) for my 70 hypervisor openstack cloud and using KVM block migration to move instances ( nova live-migration --block-migrate ), but this has some limitations. I'm hoping to move to ceph soon, bu tI don't have it in production quite yet (though many do).
Can you be specific with what issue you are facing.