Ticket #378 (new defect)

Opened 5 years ago

Last modified 5 years ago

Implementing storage usable by multiple controllers

Reported by: ibaldin Owned by: yxin
Priority: major Milestone:
Component: ORCA: Policies and their components Version: baseline
Keywords: Cc: vjo, yxin, pruth

Description (last modified by ibaldin) (diff)

We have an issue now because the controller issues the LUN and IP addresses, that multiple controllers can't actually operate over the same AM storage pool.

One possible solution would be to move LUN allocation to the AM and do IP allocation via DHCP. This requires further discussion on this ticket. There is an additional issue of ACLs in #375, that is related. Also see ticket #372 for topology-embedding extensions that affect storage.

Change History

Changed 5 years ago by ibaldin

  • owner changed from ibaldin to yxin
  • component changed from Don't Know to ORCA: Policies and their components

Changed 5 years ago by ibaldin

  • description modified (diff)

Changed 5 years ago by ibaldin

Current issues:

  1. Using single IP on shared VLANs for the initiator
  2. ACLs in server-based storage
    • Use All IP or initiator IP in ACLs
    • Pass in valid LUN through handler
  3. Issuing IPs to initiators
    • by controller
    • by AM
    • by DHCP
  4. Support for multipath
    • in Neuca
    • in NDL and controller
  5. Allowing multiple controllers to operate on storage
    • Collisions in IPs
    • Collision in LUNs
    • Collisions in ???
  6. Tagging LUNs to VLANs on server-based storage (and optionally providing the freedom to user to select IP addresses)
    • Changes to NDL and controller
    • Support for network namespaces in order to support multiple forwarding tables
  7. Forward-looking architecture
    • Support for NFS
      • by creating an NSF server on an allocated block device
      • by getting a portion of existing NSF partition
    • Support for Gluster

Agreement issues

  1. Forward looking thoughts
    1. At the highest level we want to enable users to require specific iops.
    2. For supporting NFS pick a set of performance/access control options that most make sense to limit configuration options (e.g. /etc/exports sync/async r/w root_squash etc)
      • Support for shared and dedicated networking depending on site architecture
  1. Freedom of IP address assignment and tagging LUNs to VLANs are not the same. The latter is required to support the former, however the former isn’t necessarily available.
  1. Tagging LUNs to VLANs (and optionally providing the freedom the user to select IP addresses)
    • Happens on the storage server, not changes to NEuca
  • Changes to controller and NDL
    • If address assignment is left to user (i.e. network namespaces are available on storage server), this simplifies the controller
    • If address assignment of LUN tgtd must be done server-side, then what? Controller has to enforce the uniqueness of all IP addresses assigned on the storage server.
      • iSCSI puts IP address into the PDU, which means that rewriting IP address in the IP header is not sufficient
      • Requires assigning by the controller of all addresses on the VLAN
  1. Issuing IP addresses
    • DHCP will not be a good solution because it covers only one corner case of a single shared VLAN.
    • We won’t allow the case of multiple storage LUNs on VLAN (shared or dedicated) where storage server requires unique (non-user-assigned) IP addresses. The only case allowed if all addresses are assignable by the user.
    • VM AM is a good candidate to do this. Assume only one IP address per sliver is needed in shared VLAN case
  2. There are now 3 options for storage:
    1. Shared VLAN/Shared IP space
    2. Dedicated VLAN/SHared IP space (QoS with single namespace)
    3. Dedicated VLAN/Dedicated IP space (QoS with multiple namespaces)

Todo items

  1. Victor to fix ACL based on IQN in storage-service handler. Also needs to pass LUN (as a property) and use them instead of choosing one (the control already does that)
  2. Investigate LUNControl - it already assigns unique LUN numbers regardless of controller, however Paul reports that not to be the case.
    • It is possible Victor’s current handler generates the LUN independent of the control and rewrites one generated by the control
  1. Move IP address assignment for storage on shared vlans to VM control to allow multiple controller to function properly. This will also work in the future for dedicated vlans with shared IP space (QoS without namespace separation)
Note: See TracTickets for help on using tickets.