A method for processing input-output commands (IOs) in a storage system, the method comprising steps of: receiving an IO at a storage system, the IO including a first identifier (PEID) and a second identifier (SLLID); directing the IO to an endpoint in the storage system using the first identifier (PEID), the endpoint being associated with a set of logical storage volumes (151, 152) in the storage system; at the storage system, retrieving the second identifier (SLLID) from the IO and translating the second identifier (SLLID) to a logical storage volume identifier of a logical storage volume in the set that is associated with the endpoint; executing IO on storage locations referenced by the logical storage volume corresponding to the logical storage volume identifier, and maintaining a data structure that provides a mapping of the second identifiers to the logical storage volume identifiers, wherein the second identifier is translated to the logical storage volume identifier using the data structure, the method characterised by: the data structure comprising block device names corresponding to block device instances of the logical storage volumes (151, 152) created for one or more virtual machines, and accessing the data structure to reference a mapping between a block device name specified in the IO and the first identifier and the second identifier that define an IO session to the logical storage volume associated with the block device name. receiving an IO at a storage system, the IO including a first identifier (PEID) and a second identifier (SLLID); directing the IO to an endpoint in the storage system using the first identifier (PEID), the endpoint being associated with a set of logical storage volumes (151, 152) in the storage system; at the storage system, retrieving the second identifier (SLLID) from the IO and translating the second identifier (SLLID) to a logical storage volume identifier of a logical storage volume in the set that is associated with the endpoint; executing IO on storage locations referenced by the logical storage volume corresponding to the logical storage volume identifier, and maintaining a data structure that provides a mapping of the second identifiers to the logical storage volume identifiers, wherein the second identifier is translated to the logical storage volume identifier using the data structure, the method characterised by: the data structure comprising block device names corresponding to block device instances of the logical storage volumes (151, 152) created for one or more virtual machines, and accessing the data structure to reference a mapping between a block device name specified in the IO and the first identifier and the second identifier that define an IO session to the logical storage volume associated with the block device name. the data structure comprising block device names corresponding to block device instances of the logical storage volumes (151, 152) created for one or more virtual machines, and accessing the data structure to reference a mapping between a block device name specified in the IO and the first identifier and the second identifier that define an IO session to the logical storage volume associated with the block device name.