I want to access a single volume from vmware ESX4 vms, in three ESX hosts with datastores in an Equallogic PS6000 SAN. I know how to manage the datas (through a cluster filesystem), but I cannot seems to find a way to do this.
- How can I share VMDK accross hosts ? (the relevant files are on the SAN)
- Is this even possible ?
- Is there a mean to do this with RDM ?
On all guests, the OS is GNU/Linux Debian 5 "Lenny", 64 bits version.
Yep, there's a couple of ways you can do this, though you don't mention your guest OSs or how you intend to manage this shared disk.
A common reason to do this is to support MS Clustering, for this you can easily create a couple of small ~1GB LUNs, expose them to all hosts ideally with the same LUN # then add them through a second SCSI controller to your VMs as Raw Device Mappings (the RDM you mentioned), these VMs will then see and have full control of these two new LUNs, you simply then use your MS Cluster setup to format the disks with NTFS and MSDTC will look after the disks to ensure writes are arbitrated. Use one for the Quorum and the second for the MSDTC files (you may be able to combine these, I'm not an MS expert sorry), if you're using this setup you may well need one or more additional shared LUNs setup in the same way for storing data/logs etc. depending on your app. You can do pretty much the same thing for Linux guests but ensure you're using a cluster-aware file system such as OCFS2 otherwise you'll corrupt your disk almost instantly.
Another option is to create a .vmdk and use the 'independent' option when creating, there are a number of limitations this brings with it but we'd need to know more about your use-case before going into them too deeply.
Feel free to come back to us with more detail but your answer is basically yes, it's very possible.
There are thousands of different requirements and limitations if you go with virtual disks or RDM. You need to decide if you want cluster in a box (many VMs on one physical host), or cluster across boxes (each VM sits on its own physical box), and you can't really mix and match or move VMs around: once you've chosen one or the other, you're stuck, because they require completely different configurations. Read the VMware MSCS document to understand (it doesn't matter that it's written with Windows VMs in mind, the design concepts and requirements still apply).
Instead, you can do something much simpler. Configure new vNICs for your VMs, connected to your iSCSI VLAN(s). Set up iSCSI initiator in the VMs, using the new vNICs. Provision the LUNs to the VMs, not to the ESX host. Basically, pretend that those VMs are regular servers talking iSCSI to your SAN. It will just work, as long as you build the network side of it right (multipathing, jumbo frames, vmxnet3 adapters, etc.)