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.
- Condition: "VS2013 Redistributable Package" requires KB2883200 (Windows Update) for Windows Server 2012 R2.
- 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.
- Condition: An error of 0x800b010a occurs.
- Problem
Problem 2. Resources does not start.
- Failed to read configuration files with UTF-8 with BOM.
Condition
Failed to read drx.conf.
Code Block title DRX 로그 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 title DRX 로그 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
- Open the file with
- Windows
- Open the file with notepad and change the encoding to 'ANSI' via 'Save As'.
- Centos 6, 7
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
- 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.
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
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
- Ping the loopback address
- 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
- drbd : 8.4.8 or higher
- drbd-utils : 8.9.10 or higher
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
- Make sure that the resource configuration file is stored in ANSI format or UTF8 format → UTF8 with BOM format is not supported.
- Check hostname: Be careful about whether the hostname change has been applied successfully.
- Using individual ports by resource: Make sure there is no port duplication.
DRBD Configuration
- Change the DRBD's resource configuration to a direct DRBD connection to ensure that it connects normally.
drbdsetup show
checks that the ip loaded in drbd is the same as the ip set in the resource file.- Check the global entry to see if
wfc-timeout
is set. If it is not set, setwfc-timeout
value to 1. - Add the value of
ping-timeout
to thenet
entry of the resource. The default value is 500ms and we recommend setting it to 30 (3 seconds) generously.
DRX Configuration
- Connection between DRX
- Change all of DRBD's resources to 'standalone':
drbdadm disconnect r0
- Install DRX and start drxsvc to check DRX connectivity.
- In
netstat
output, check whether DRX IP and port are LISTEN / ESTABLISHE / TIME_WAIT. - If it is normal, the connection status of the resource is 'bridged'.
- At this time, DRBD status is 'standalone', and DRX is switched to 'connecting' / 'waiting' status to connect with DRBD.
- 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.
- 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.
- Change all of DRBD's resources to 'standalone':
- Connections between DRBD and DRX
- 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/
- Check that the status of the resource changes to 'WFConnection' in the log of
- In normal situation, when DRBD and DRX are connected, it becomes 'established' state.
- 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.
- Verify that the local DRX attempts SYN_SENT with the IP of the local DRBD.
- You may not be able to identify SYN_SENT in the output of netstat because the status of TCP can change quickly.
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
- 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.
- Check if the log output from DRX contains a failure (Ex. Connection refuse).
- Change the state of the DRBD resource from 'standalone' to 'connecting'. → Use
- Collect logs (Collect the output from the command)
- cat /etc/sysconfig/network-scripts/ifcfg-*
- /var/log/messages
- service iptables status
- ip a
Problem 4. DRX connection does not work well when configured with Virtual IP.
If socket Bind is performed over the same VIP on both Active / Standby nodes using VIP, communication interference between both nodes may occur. Therefore, when DRX is interworked with the VIP (SDR, MDR, etc.), DRX of the node whose drbd resource is down should be stopped and DRX must be start at the time of resource's up
...