Jump to content


Photo

MultiPath XenServer MPP-RDAC - IBM DS3512/24 - 1746

Started by Lorscheider de Santiago Silva , 13 June 2014 - 07:59 PM
3 replies to this topic

Best Answer James Cannon , 16 June 2014 - 03:40 PM

Yes. Place host into maintenance mode. This will migrate VMs so that they will not BSOD as access to VDI is interrupted during pathing change. 

Lorscheider de Santiago Silva Members

Lorscheider de Santiago Silva
  • 36 posts

Posted 13 June 2014 - 07:59 PM

Hi All,
 
I am writing this post to try to definitively clarify multipath on XenServer. 
Today I have an environment with XenServer 6.2 SP1 with IBM DS2524 (1746). It is implemented in ISCSI. As it is a LSI Storage, ran the following command to enable the MPP-RDAC: 
 
# /Opt/XenSource/libexec/mpp-rdac - enable 
 
In /etc/multipath.conf, the following settings related to multipath are enabled (not the other put it in the file are commented #)

 

 
       device {
                vendor                  "DELL",
                product                 "MD36xx(i|f)",
                features                "2 pg_init_retries 50",
                hardware_handler        "1 rdac",
                path_selector           "round-robin 0",
                path_grouping_policy    group_by_prio,
                failback                immediate,
                rr_min_io               100,
                path_checker            rdac,
                prio                    rdac,
                no_path_retry           30
        }
        device {
                vendor                  "IBM",
                product                 "1723*",
                hardware_handler        "1 rdac",
                path_selector           "round-robin 0",
                path_grouping_policy    group_by_prio,
                failback                immediate,
                path_checker            rdac,
                prio                    rdac,
        }
        device {
                vendor                  "DataCore",
                product                 "SAN*",
                path_checker            "tur",
                path_grouping_policy    failover,
                failback                30,
        }
 

Below command result mppUtil-g 0:

 

Hostname    = XS-04

Domainname  = (none)
Time        = GMT 06/13/2014 19:19:40
 
MPP Information:
----------------
      ModuleName: STORAGE-DS3524                       SingleController: N
 VirtualTargetID: 0x000                                       ScanTriggered: N
     ObjectCount: 0x000                                          AVTEnabled: N
             WWN: 60080e50002f25e60000000051b74a01               RestoreCfg: N
    ModuleHandle: none                                        Page2CSubPage: Y
 FirmwareVersion: 7.86.32.xx                                 FailoverMethod: C
   ScanTaskState: 0x00000000
        LBPolicy: LeastQueueDepth
  ProtectionType: 0
 
 
Controller 'A' Status:
-----------------------
ControllerHandle: none                                    ControllerPresent: Y
    UTMLunExists: Y (031)                                            Failed: N
   NumberOfPaths: 4                                          FailoverInProg: N
                                                                ServiceMode: N
 
    Path #1
    ---------
 DirectoryVertex: present                                           Present: Y
       PathState: OPTIMAL
          PathId: 77080000 (hostId: 8, channelId: 0, targetId: 0)
  ProtCapability: 0
 
    Path #2
    ---------
 DirectoryVertex: present                                           Present: Y
       PathState: OPTIMAL
          PathId: 770b0000 (hostId: 11, channelId: 0, targetId: 0)
  ProtCapability: 0
 
    Path #3
    ---------
 DirectoryVertex: present                                           Present: Y
       PathState: OPTIMAL
          PathId: 770c0000 (hostId: 12, channelId: 0, targetId: 0)
  ProtCapability: 0
 
    Path #4
    ---------
 DirectoryVertex: present                                           Present: Y
       PathState: OPTIMAL
          PathId: 770d0000 (hostId: 13, channelId: 0, targetId: 0)
  ProtCapability: 0
 
 
Controller 'B' Status:
-----------------------
ControllerHandle: none                                    ControllerPresent: Y
    UTMLunExists: Y (031)                                            Failed: N
   NumberOfPaths: 4                                          FailoverInProg: N
                                                                ServiceMode: N
 
    Path #1
    ---------
 DirectoryVertex: present                                           Present: Y
       PathState: OPTIMAL
          PathId: 77050000 (hostId: 5, channelId: 0, targetId: 0)
  ProtCapability: 0
 
    Path #2
    ---------
 DirectoryVertex: present                                           Present: Y
       PathState: OPTIMAL
          PathId: 77070000 (hostId: 7, channelId: 0, targetId: 0)
  ProtCapability: 0
 
    Path #3
    ---------
 DirectoryVertex: present                                           Present: Y
       PathState: OPTIMAL
          PathId: 77090000 (hostId: 9, channelId: 0, targetId: 0)
  ProtCapability: 0
 
    Path #4
    ---------
 DirectoryVertex: present                                           Present: Y
       PathState: OPTIMAL
          PathId: 770a0000 (hostId: 10, channelId: 0, targetId: 0)
  ProtCapability: 0
 
 
 
Lun Information
---------------
    Lun #0 - WWN: 60080e50002f25e600003132520a6898
    ----------------
       LunObject: present                                 CurrentOwningPath: A
  RemoveEligible: N                                          BootOwningPath: B
   NotConfigured: N                                           PreferredPath: A
        DevState: OPTIMAL                                   ReportedPresent: Y
                                                            ReportedMissing: N
                                                      NeedsReservationCheck: N
                                                                  TASBitSet: Y
                                                                   NotReady: N
                                                                       Busy: N
                                                                  Quiescent: N
                                        VD_Ownership_Transfer_Attempt_Count: 0
                                                             ProtectionType: 0
 
    Controller 'A' Path
    --------------------
   NumLunObjects: 4                                         RoundRobinIndex: 0
         Path #1: LunPathDevice: present
                       DevState: OPTIMAL
                    RemoveState: 0x0  StartState: 0x1  PowerState: 0x0
         Path #2: LunPathDevice: present
                       DevState: OPTIMAL
                    RemoveState: 0x0  StartState: 0x1  PowerState: 0x0
         Path #3: LunPathDevice: present
                       DevState: OPTIMAL
                    RemoveState: 0x0  StartState: 0x1  PowerState: 0x0
         Path #4: LunPathDevice: present
                       DevState: OPTIMAL
                    RemoveState: 0x0  StartState: 0x1  PowerState: 0x0
 
    Controller 'B' Path
    --------------------
   NumLunObjects: 4                                         RoundRobinIndex: 0
         Path #1: LunPathDevice: present
                       DevState: OPTIMAL
                    RemoveState: 0x0  StartState: 0x1  PowerState: 0x0
         Path #2: LunPathDevice: present
                       DevState: OPTIMAL
                    RemoveState: 0x0  StartState: 0x1  PowerState: 0x0
         Path #3: LunPathDevice: present
                       DevState: OPTIMAL
                    RemoveState: 0x0  StartState: 0x1  PowerState: 0x0
         Path #4: LunPathDevice: present
                       DevState: OPTIMAL
                    RemoveState: 0x0  StartState: 0x1  PowerState: 0x0
 
 
    Lun #1 - WWN: 60080e50002f25e60000387c520e5884
    ----------------
       LunObject: present                                 CurrentOwningPath: A
  RemoveEligible: N                                          BootOwningPath: B
   NotConfigured: N                                           PreferredPath: A
        DevState: OPTIMAL                                   ReportedPresent: Y
                                                            ReportedMissing: N
                                                      NeedsReservationCheck: N
                                                                  TASBitSet: Y
                                                                   NotReady: N
                                                                       Busy: N
                                                                  Quiescent: N
                                        VD_Ownership_Transfer_Attempt_Count: 0
                                                             ProtectionType: 0
 
    Controller 'A' Path
    --------------------
   NumLunObjects: 4                                         RoundRobinIndex: 0
         Path #1: LunPathDevice: present
                       DevState: OPTIMAL
                    RemoveState: 0x0  StartState: 0x1  PowerState: 0x0
         Path #2: LunPathDevice: present
                       DevState: OPTIMAL
                    RemoveState: 0x0  StartState: 0x1  PowerState: 0x0
         Path #3: LunPathDevice: present
                       DevState: OPTIMAL
                    RemoveState: 0x0  StartState: 0x1  PowerState: 0x0
         Path #4: LunPathDevice: present
                       DevState: OPTIMAL
                    RemoveState: 0x0  StartState: 0x1  PowerState: 0x0
 
    Controller 'B' Path
    --------------------
   NumLunObjects: 4                                         RoundRobinIndex: 0
         Path #1: LunPathDevice: present
                       DevState: OPTIMAL
                    RemoveState: 0x0  StartState: 0x1  PowerState: 0x0
         Path #2: LunPathDevice: present
                       DevState: OPTIMAL
                    RemoveState: 0x0  StartState: 0x1  PowerState: 0x0
         Path #3: LunPathDevice: present
                       DevState: OPTIMAL
                    RemoveState: 0x0  StartState: 0x1  PowerState: 0x0
         Path #4: LunPathDevice: present
                       DevState: OPTIMAL
                    RemoveState: 0x0  StartState: 0x1  PowerState: 0x0
 
 
    Lun #31 - WWN: 60080e50002f25e60000103551f7da55
    ----------------
       LunObject: none                                    CurrentOwningPath: B
  RemoveEligible: N                                          BootOwningPath: B
   NotConfigured: N                                           PreferredPath: B
        DevState: OPTIMAL                                   ReportedPresent: Y
                                                            ReportedMissing: N
                                                      NeedsReservationCheck: N
                                                                  TASBitSet: Y
                                                                   NotReady: N
                                                                       Busy: N
                                                                  Quiescent: N
                                        VD_Ownership_Transfer_Attempt_Count: 0
                                                             ProtectionType: -1
 
    Controller 'A' Path
    --------------------
   NumLunObjects: 4                                         RoundRobinIndex: 0
         Path #1: LunPathDevice: present                       UTMLunDevice: present
                       DevState: OPTIMAL
                    RemoveState: 0x0  StartState: 0x1  PowerState: 0x0
         Path #2: LunPathDevice: present                       UTMLunDevice: present
                       DevState: OPTIMAL
                    RemoveState: 0x0  StartState: 0x1  PowerState: 0x0
         Path #3: LunPathDevice: present                       UTMLunDevice: present
                       DevState: OPTIMAL
                    RemoveState: 0x0  StartState: 0x1  PowerState: 0x0
         Path #4: LunPathDevice: present                       UTMLunDevice: present
                       DevState: OPTIMAL
                    RemoveState: 0x0  StartState: 0x1  PowerState: 0x0
 
    Controller 'B' Path
    --------------------
   NumLunObjects: 4                                         RoundRobinIndex: 0
         Path #1: LunPathDevice: present                       UTMLunDevice: present
                       DevState: OPTIMAL
                    RemoveState: 0x0  StartState: 0x1  PowerState: 0x0
         Path #2: LunPathDevice: present                       UTMLunDevice: present
                       DevState: OPTIMAL
                    RemoveState: 0x0  StartState: 0x1  PowerState: 0x0
         Path #3: LunPathDevice: present                       UTMLunDevice: present
                       DevState: OPTIMAL
                    RemoveState: 0x0  StartState: 0x1  PowerState: 0x0
         Path #4: LunPathDevice: present                       UTMLunDevice: present
                       DevState: OPTIMAL
                    RemoveState: 0x0  StartState: 0x1  PowerState: 0x0
 

 

Until this point everything seems normal.

 

Let now the questions:

 

  • After reading many documents on the citrix multipath, the information passed is that the multipath xenserver is equal to any linux distribution (eg Centos). Thus, the following is supported storage which has information about multipath manual for linux and apply on XenServer?
  • Searching the internet, I found this site (http://pig.made-it.com/multipath.html#3532) with settings for multiple arrays, including the IBM 1746. Someone has tested these settings?
  •  

    Has anyone managed to configure the xenserver can use this feature alua equipment? current settings not working.

thanks for the help.

@lsantiagos

 

 

 

 



James Cannon Citrix Employees

James Cannon
  • 4,402 posts

Posted 13 June 2014 - 08:58 PM

If you are using RDAC as you have it enabled, you do not need to modify a multipath.conf file (used with device mapper multipath). Most Linux distros have deprecated RDAC (it is in alpha of next version on XenServer.org). It would be good to consider migrating to device mapper multipath. Your link to external web site is for Device Mapper Multipath, which can be enabled in XenCenter on the host property, once it is in maintenance mode). You would need to disable RDAC before switching to Device Mapper Multipath.



Lorscheider de Santiago Silva Members

Lorscheider de Santiago Silva
  • 36 posts

Posted 14 June 2014 - 02:52 PM

Hi James,

 

RDAC chosen because in many documentations recommend RDAC as multipath arrays for LSI. How this feature will be discontinued in xenserver, is now better soon migrate to Device Mapper Multipath.

 

I found this post here in the forum which explains Device Mapper Multipath together with alua for the IBM DS3524:

 

http://discussions.citrix.com/topic/311071-ibm-ds3524-with-alua-multipathing-performance/

 

I did a search on XenServer HCL and located the IBM DS3524 is approved for ISCSI:

 

http://hcl.xensource.com/ProductDetails.aspx?ProductType=Storage&ProductName=DS+3524

 

I only have one last question:

 

When migrating to RDAC Device Mapper Multipath is recommended to turn off the VMs to change settings RDAC or simply just follow the procedure of placing the master in maintenance mode, migrate the VMs that are running, disable RDAC, reboot and then continue in other hosts?

 

Thank you for your help

 

@lsantiagos



James Cannon Citrix Employees

James Cannon
  • 4,402 posts

Posted 16 June 2014 - 03:40 PM

Yes. Place host into maintenance mode. This will migrate VMs so that they will not BSOD as access to VDI is interrupted during pathing change. 


Best Answer