Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: 1차 번역 완료

Table of Contents


It is a guide to solving problems that may arise during the process of configuring DRX.


Problem 1. An error occurred while installing DRX.

  • Problems installing the Visual C++ Redistributable Package for Visual Studio 2013 when installing DRX for Windows
    • Problem
      • "VS2013 Redistributable Package" installation error after installing DRX
      • Cause: VS2013 Redistributable Package Issue
    • Solution

      • Windows Server 2012 R2

        • Condition: "VS2013 Redistributable Package" requires KB2883200 (Windows Update) for Windows Server 2012 R2.
        • Solution: Make sure that Windows Update KB2883200 is installed. If it is not installed, install it through Windows Update.
      • Windows Server 2008 R2 SP1
        • Condition: An error of 0x800b010a occurs.

          • Code Block
            [0AD8:05C0][2018-07-26T15:33:04]e000: Error 0x800b010a: Failed authenticode verification of payload: C:\ProgramData\Package Cache\.unverified\vcRuntimeMinimum_x64
            [0AD8:05C0][2018-07-26T15:33:04]e000: Error 0x800b010a: Failed to verify signature of payload: vcRuntimeMinimum_x64
            [0AD8:05C0][2018-07-26T15:33:04]e310: Failed to verify payload: vcRuntimeMinimum_x64 at path: C:\ProgramData\Package Cache\.unverified\vcRuntimeMinimum_x64, error: 0x800b010a. Deleting file.


        • Solution: Update the ".NET Framework 3.5.1" entry in Windows Update.

Problem 2. Resources does not start.

  • Failed to read configuration files with UTF-8 with BOM.
    • Condition

      • Failed to read drx.conf.

        Code Block
        titleDRX 로그
        E1120 16:37:02.690660 t42053 config] Failed to load [/opt/DRX/drx.conf]. /opt/DRX/drx.conf(1): '=' character not found in line


      • Failed to read drbd configurations

        Code Block
        titleDRX 로그
        E1120 16:37:52.810044 t42132 config] Failed to get drbd configuration: Can't get drbd configuration. (exit_code: 2560)
        E1120 16:37:52.810068 t42132 config] Output: drbd.d/1/r0.res:1: Parse error: 'global | common | resource | skip | include' expected,
        E1120 16:37:52.810070 t42132 config] Output: but got '▒'


      • Cause: BOM Configuration file parsing fails due to BOM.
    • Solution

      • Centos 6, 7
        • Check the encoding of the file with the file command.

          Code Block
          [root@drxdev1 test]# file r1.res
          r1.res: UTF-8 Unicode (with BOM) text, with CRLF line terminators


        • Re-encoding via vi
          • Open the file with vi, type the following, and save it.
            :set nobomb
      • Windows
        • Open the file with notepad and change the encoding to 'ANSI' via 'Save As'.

Problem 3. Can't connect between DRX resources.

There are many reasons why a connection has not been established. You should check these items in detail for the following sequence of configuration steps. The following is a Linux-based troubleshooting guide and is equally applicable to Windows environments.

Network environments

  1. Make sure that the IP of DRBD and the IP of DRX are set in the firewall policy allow list. If the IP and port used by the resource has not been applied, take the following actions.
    1. Centos 6

      Add the settings to '/etc/sysconfig/iptables' file.

      Code Block
      -A INPUT -p tcp -s \{source IP\} -d \{destination IP\} --dport \{listen port\} -j ACCEPT


    2. Centos 7

      Code Block
      Command to add port : firewall-cmd --permanent --zone=public --add-port=\{listen port\}/tcp 
      Command to restart firewall : firewall-cmd --reload
      Command to output opened ports : firewall-cmd --zone=public --list-all


  2. Ping the loopback address
    1. If there is a ping response with the loopback address (127.0.0.1), but no ping response with the local ip address, there is a problem with the configuration of the network environment. If this is the case, you should contact your network administrator.

DRBD version

  1. drbd : 8.4.8 or higher
  2. drbd-utils : 8.9.10 or higher
  3. lsmod | grep drbd command to verify that the drbd kernel driver module is loaded.

    Code Block
    [root@c65-3 build_files]# lsmod | grep drbd
    drbd                  374888  3 
    [root@c65-3 build_files]# 


DRX version

Make sure that the DRX version of the local node is the same as the DRX version of the remote node. DRX provides backward compatibility between versions, but it is recommended that you configure DRX to the same version as possible.

Resource settings

  1. Make sure that the resource configuration file is stored in ANSI format or UTF8 format → UTF8 with BOM format is not supported.
  2. Check hostname: Be careful about whether the hostname change has been applied successfully.
  3. Using individual ports by resource: Make sure there is no port duplication.


DRBD Configuration

  1. Change the DRBD's resource configuration to a direct DRBD connection to ensure that it connects normally.
  2. drbdsetup show checks that the ip loaded in drbd is the same as the ip set in the resource file.
  3. Check the global entry to see if wfc-timeout is set. If it is not set, set wfc-timeout value to 1.
  4. Add the value of ping-timeout to the net entry of the resource. The default value is 500ms and we recommend setting it to 30 (3 seconds) generously.

DRX Configuration

  1. Connection between DRX
    1. Change all of DRBD's resources to 'standalone': drbdadm disconnect r0
    2. Install DRX and start drxsvc to check DRX connectivity.
    3. In netstat output, check whether DRX IP and port are LISTEN / ESTABLISHE / TIME_WAIT.
    4. If it is normal, the connection status of the resource is 'bridged'.
      1. At this time, DRBD status is 'standalone', and DRX is switched to 'connecting' / 'waiting' status to connect with DRBD.
    5. If the state of DRX of both nodes is 'bridging', it is a state to try to connect between DRX. If there is no change after a certain time, check connection on WAN section first.
      1. The icmp ping is usually blocked by firewall policy, so it checks for the possibility of a TCP connection between local and remote via drbdsim or other tools.
  2. Connections between DRBD and DRX
    1. Change the state of the DRBD resource from 'standalone' to 'connecting'. → Use drbdadm connect command to change the status.
      • Check that the status of the resource changes to 'WFConnection' in the log of cat /proc/kmsg/
    2. In normal situation, when DRBD and DRX are connected, it becomes 'established' state.
    3. If the status of the DRBD is 'connecting' and the connection is not established, check the netstat output to see if the IP of the DRBD is in the LISTEN state.
    4. Verify that the local DRX attempts SYN_SENT with the IP of the local DRBD.
      1. You may not be able to identify SYN_SENT in the output of netstat because the status of TCP can change quickly.
      2. Let netstat monitor the results continuously through the following script.

        Code Block
        $> while(true); do date; netstat -nap | grep 779 | sort -k 3; sleep 1; clear; done
        Thu Aug 23 08:51:23 PDT 2018
        tcp        0      0 192.168.100.3:35814         192.168.100.3:7792          ESTABLISHED -                   
        tcp        0      0 192.168.100.3:7791          0.0.0.0:*                   LISTEN      -                   
        tcp        0      0 192.168.100.3:7792          192.168.100.3:35814         ESTABLISHED 8033/drx            
        tcp        0      0 192.168.100.3:7793          192.168.100.2:60676         ESTABLISHED 8033/drx            
        tcp        0      0 192.168.100.3:7795          0.0.0.0:*                   LISTEN      8033/drx            
        tcp        0      0 192.168.100.3:7796          192.168.100.2:43684         ESTABLISHED 8033/drx            
        tcp        0      1 10.10.0.182:50460           31.1.1.2:7793               SYN_SENT    8033/drx            
        tcp        0      1 10.10.0.182:57966           31.1.1.2:7796               SYN_SENT    8033/drx            
        unix  3      [ ]         STREAM     CONNECTED     18779  2477/gconfd-2       
        unix  3      [ ]         STREAM     CONNECTED     20779  2512/gnome-panel    
        
        


    5. When DRBD and DRX are connected, the netstat output checks that the DRBD IP and DRX IP of the resource are in the 'established' state.
    6. Check if the log output from DRX contains a failure (Ex. Connection refuse).
  3. Collect logs (Collect the output from the command)
    1. cat /etc/sysconfig/network-scripts/ifcfg-*
    2. /var/log/messages
    3. service iptables status
    4. ip a


Problem 4. DRX connection does not work well when configured with Virtual IP.

In order to link DRX to VIP (SDR, MDR, etc.) smoothly, DRX must be stopped when DRBD resources are down, and DRX must be started when DRBD resources are up.