P4000 / Lefthand and Windows DSM (MPIO)

Steps to setup MPIO round robin and DSM with P4000 / Lefthand nodes

This example is windows 2008 with 2 x 1gbit nics

  1. Install HP DSM driver onto windows 2008  (this should also install MPIO feature on windows 2008)
  2. Setup 2 x IP’s on windows host – storage subnet (used with MPIO)
    1. Confirm you can ping target from both (enable one at a time – ensure there is no routing on your other nics)
  3. Provision storage and allow server read / write access to windows server (via initiator name)
  4. Open iSCSI on windows 2008
  5. Put in IP of target in discovery tab
  6. On first tab confirm that iSCSI drive is presented to host
  7. Click “connect” – check both auto-connect and use MPIO
    1. click advanced – chose MS iSCSI initiator, choose first IP and target IP. Click o.k. / o.k
    2. click advanced – chose MS iSCSI initiator, choose second IP and target IP. Click o.k. / o.k
    3. Repeat above per additional Nic
  8. Confirm via “devices” that there is x (as many targets as nics) targets per disk
    1. Within devices choose MPIO – change from vendor specific to “round robin”
      1. Note : read / write access to LUN is required when using “round robin” MPIO opposed to the default “vendor specific” which works with read only access. Else you will get an error – “not supported”
    2. Repeat above per “device”
  9. Confirm on Lefthand / P4000 CMC that the LUN has one connection per initiator Nic, and that each connection also has its DSM children (visible in CMC if working).

Confirm that the connection are as expected…

Run some disk benchmark utilities (iometer) and check that traffic is travelling over all the nics you have setup above. You can just use windows builtin task manager to do this.

Check that the right amount of connections are on the CMC for that particular LUN and initiator.  So if you had 3 nodes via 2 initiator nics you would actually have 8 active connections in total (1 per nic (2) and an additional for every nic to each nodes (6))

Note : There are some reported issues with DMS and data corruption. Although i have not seen this myself please be diligent when it comes to data backup esp when production data is involved.

opensolaris – network teaming

Otherwise known as trunking or link aggregation. I believe it is the best way to get that additional boost out of your network server while providing a bit of redundancy on link failure. here is how to do it…

Official docs on the process here… http://docs.sun.com/app/docs/doc/819-6990/gdysn?a=view and some good bits here http://blogs.sun.com/nickyv/entry/link_aggregation_jumpstart_post_install

dladm (data link admin) is the tool for the job. List the links you currently have…

dladm show-link

First shut down the links you are currently using..  (you will have to do this on the console)

ifconfig e1000g1 unplumb

Now join the two nics into one aggregate connection via….

dladm create-aggr -l e1000g1 -l rge0 aggr1

then bring up the new aggregate link

ifconfig aggr1 plumb IP-address up

Show link

dladm show-aggr

(Optional) Make the IP configuration of the link aggregation persist across reboots.

  1. Create the /etc/hostname file for the aggregation’s interface.

    If the aggregation contains IPv4 addresses, the corresponding hostname file is/etc/hostname.aggr1. For IPv6–based link aggregations, the corresponding hostname file is/etc/hostname6.aggr1.

  2. Type the IPv4 or IPv6 address of the link aggregation into the file.

  3. Perform a reconfiguration boot.

I have teamed an intel nic (e1000g) and a (rge) together without any issues…  the rge drive by itself had issues, but i have not come across them again since i trunked both interfaces together. Perhaps the e1000g takes the load while the other nic dies off..

Updated : 4/08/2009

To test the throughput / load balancing run these commands (in two terminal sesssions);

dladm show-link -s -i 5 rge0

dladm show-link -s -i 5 e1000g1

It will return the packets going over each nic. Copy some files back and forth over the interface and watch the numbers. RBYTES and OBYTES are the fields to watch (received and out bytes)