2017-03-07 12 views
0

동일한 이름 ("gsx")을 6 개의 다른 IP 주소에 매핑하는 라운드 로빈 DNS 설정이 있습니다. 이는 'nslookup'및 'ping'과 같은 것을 사용하여 클라이언트에서 작동하는 것으로 확인됩니다. 그러나 이름 ("gsx")을 사용하여 NFS 마운트를 시도하면 단일 시스템에서만 마운트됩니다.라운드 로빈을 통한 NFS 마운트 DNS는 10Gb/s 이더넷을 사용할 때 단일 시스템에서만 마운트합니다.

IP 주소를 통해 특별히 마운트하는 경우 6 개의 서버 중 하나에서 마운트 할 수 있으므로 6 개의 서버 모두 올바르게 NFS 요청을 내보내고 서비스합니다. 문제는 mount.nfs 주소 지정 또는 다른 위치에 의존하는 것으로 보입니다.

해당 클라이언트는 CentOS 6.8을 실행하는 Linux 시스템입니다.

문제를 설명하려면 다음 명령을 참조하십시오. [1] nslookup이 클라이언트의 주소간에 올바르게 회전 함을 보여줍니다. [2] ping이 클라이언트의 주소 사이에서 올바르게 회전합니다. [3] NFS 마운트 -t 않습니다 하지 제대로 클라이언트의 주소 중 회전, 대신 항상 같은 주소를 사용합니다 :에 난에 대한

[1] nslookup을 테스트

1 2 3 4 5 6; do nslookup gsx; 1 2 3 4 5 6 제가

위한
Server:   192.168.1.19 
Address:  192.168.1.19#53 

Name: gsx.backbone.lan 
Address: 192.168.10.16 
Name: gsx.backbone.lan 
Address: 192.168.10.11 
Name: gsx.backbone.lan 
Address: 192.168.10.12 
Name: gsx.backbone.lan 
Address: 192.168.10.13 
Name: gsx.backbone.lan 
Address: 192.168.10.14 
Name: gsx.backbone.lan 
Address: 192.168.10.15 

Server:   192.168.1.19 
Address:  192.168.1.19#53 
Name: gsx.backbone.lan 
Address: 192.168.10.11 
Name: gsx.backbone.lan 
Address: 192.168.10.12 
Name: gsx.backbone.lan 
Address: 192.168.10.13 
Name: gsx.backbone.lan 
Address: 192.168.10.14 
Name: gsx.backbone.lan 
Address: 192.168.10.15 
Name: gsx.backbone.lan 
Address: 192.168.10.16 

Server:   192.168.1.19 
Address:  192.168.1.19#53 

Name: gsx.backbone.lan 
Address: 192.168.10.12 
Name: gsx.backbone.lan 
Address: 192.168.10.13 
Name: gsx.backbone.lan 
Address: 192.168.10.14 
Name: gsx.backbone.lan 
Address: 192.168.10.15 
Name: gsx.backbone.lan 
Address: 192.168.10.16 
Name: gsx.backbone.lan 
Address: 192.168.10.11 

Server:   192.168.1.19 
Address:  192.168.1.19#53 
Name: gsx.backbone.lan 
Address: 192.168.10.13 
Name: gsx.backbone.lan 
Address: 192.168.10.14 
Name: gsx.backbone.lan 
Address: 192.168.10.15 
Name: gsx.backbone.lan 
Address: 192.168.10.16 
Name: gsx.backbone.lan 
Address: 192.168.10.11 
Name: gsx.backbone.lan 
Address: 192.168.10.12 

Server:   192.168.1.19 
Address:  192.168.1.19#53 

Name: gsx.backbone.lan 
Address: 192.168.10.14 
Name: gsx.backbone.lan 
Address: 192.168.10.15 
Name: gsx.backbone.lan 
Address: 192.168.10.16 
Name: gsx.backbone.lan 
Address: 192.168.10.11 
Name: gsx.backbone.lan 
Address: 192.168.10.12 
Name: gsx.backbone.lan 
Address: 192.168.10.13 

Server:   192.168.1.19 
Address:  192.168.1.19#53 
Name: gsx.backbone.lan 
Address: 192.168.10.15 
Name: gsx.backbone.lan 
Address: 192.168.10.16 
Name: gsx.backbone.lan 
Address: 192.168.10.11 
Name: gsx.backbone.lan 
Address: 192.168.10.12 
Name: gsx.backbone.lan 
Address: 192.168.10.13 
Name: gsx.backbone.lan 
Address: 192.168.10.14 

[2] 핑 예

을 수행; do ping -c3 gsx; [3] 3 4 5 6 제가

잘못된 동작

의 NFS 예 -t 마운트

PING gsx.backbone.lan (192.168.10.16) 56(84) bytes of data. 
64 bytes from gsx.backbone.lan (192.168.10.16): icmp_seq=1 ttl=64 time=0.065 ms 
64 bytes from gsx.backbone.lan (192.168.10.16): icmp_seq=2 ttl=64 time=0.093 ms 
64 bytes from gsx.backbone.lan (192.168.10.16): icmp_seq=3 ttl=64 time=0.063 ms 

--- gsx.backbone.lan ping statistics --- 
3 packets transmitted, 3 received, 0% packet loss, time 2001ms 
rtt min/avg/max/mdev = 0.063/0.073/0.093/0.016 ms 
PING gsx.backbone.lan (192.168.10.11) 56(84) bytes of data. 
64 bytes from gsx.backbone.lan (192.168.10.11): icmp_seq=1 ttl=64 time=0.064 ms 
64 bytes from gsx.backbone.lan (192.168.10.11): icmp_seq=2 ttl=64 time=0.089 ms 
64 bytes from gsx.backbone.lan (192.168.10.11): icmp_seq=3 ttl=64 time=0.061 ms 

--- gsx.backbone.lan ping statistics --- 
3 packets transmitted, 3 received, 0% packet loss, time 2001ms 
rtt min/avg/max/mdev = 0.061/0.071/0.089/0.014 ms 
PING gsx.backbone.lan (192.168.10.12) 56(84) bytes of data. 
64 bytes from gsx.backbone.lan (192.168.10.12): icmp_seq=1 ttl=64 time=0.133 ms 
64 bytes from gsx.backbone.lan (192.168.10.12): icmp_seq=2 ttl=64 time=0.124 ms 
64 bytes from gsx.backbone.lan (192.168.10.12): icmp_seq=3 ttl=64 time=0.061 ms 

--- gsx.backbone.lan ping statistics --- 
3 packets transmitted, 3 received, 0% packet loss, time 2002ms 
rtt min/avg/max/mdev = 0.061/0.106/0.133/0.032 ms 
PING gsx.backbone.lan (192.168.10.13) 56(84) bytes of data. 
64 bytes from gsx.backbone.lan (192.168.10.13): icmp_seq=1 ttl=64 time=0.080 ms 
64 bytes from gsx.backbone.lan (192.168.10.13): icmp_seq=2 ttl=64 time=0.090 ms 
64 bytes from gsx.backbone.lan (192.168.10.13): icmp_seq=3 ttl=64 time=0.060 ms 
--- gsx.backbone.lan ping statistics --- 
3 packets transmitted, 3 received, 0% packet loss, time 2001ms 
rtt min/avg/max/mdev = 0.060/0.076/0.090/0.016 ms 
PING gsx.backbone.lan (192.168.10.14) 56(84) bytes of data. 
64 bytes from gsx.backbone.lan (192.168.10.14): icmp_seq=1 ttl=64 time=0.106 ms 
64 bytes from gsx.backbone.lan (192.168.10.14): icmp_seq=2 ttl=64 time=0.154 ms 
64 bytes from gsx.backbone.lan (192.168.10.14): icmp_seq=3 ttl=64 time=0.114 ms 

--- gsx.backbone.lan ping statistics --- 
3 packets transmitted, 3 received, 0% packet loss, time 2001ms 
rtt min/avg/max/mdev = 0.106/0.124/0.154/0.024 ms 
PING gsx.backbone.lan (192.168.10.15) 56(84) bytes of data. 
64 bytes from gsx.backbone.lan (192.168.10.15): icmp_seq=1 ttl=64 time=0.072 ms 
64 bytes from gsx.backbone.lan (192.168.10.15): icmp_seq=2 ttl=64 time=0.097 ms 
64 bytes from gsx.backbone.lan (192.168.10.15): icmp_seq=3 ttl=64 time=0.081 ms 

--- gsx.backbone.lan ping statistics --- 
3 packets transmitted, 3 received, 0% packet loss, time 1999ms 
rtt min/avg/max/mdev = 0.072/0.083/0.097/0.012 ms 

을 수행; -verbose -t nfs -o ro gsx :/gpm604/80 $ {i}/tmp/tony/80 $ {i};
mount.nfs: timeout set for Tue Mar 7 17:46:51 2017 
mount.nfs: trying text-based options 'vers=4,addr=192.168.10.16,clientaddr=192.168.10.21' 
mount.nfs: mount(2): Protocol not supported 
mount.nfs: trying text-based options 'addr=192.168.10.16' 
mount.nfs: prog 100003, trying vers=3, prot=6 
mount.nfs: trying 192.168.10.16 prog 100003 vers 3 prot TCP port 2049 
mount.nfs: prog 100005, trying vers=3, prot=17 
mount.nfs: trying 192.168.10.16 prog 100005 vers 3 prot UDP port 597 
gsx:/gpm604/803 on /tmp/tony/803 type nfs (ro) 
mount.nfs: timeout set for Tue Mar 7 17:46:51 2017 
mount.nfs: trying text-based options 'vers=4,addr=192.168.10.16,clientaddr=192.168.10.21' 
mount.nfs: mount(2): Protocol not supported 
mount.nfs: trying text-based options 'addr=192.168.10.16' 
mount.nfs: prog 100003, trying vers=3, prot=6 
mount.nfs: trying 192.168.10.16 prog 100003 vers 3 prot TCP port 2049 
mount.nfs: prog 100005, trying vers=3, prot=17 
mount.nfs: trying 192.168.10.16 prog 100005 vers 3 prot UDP port 597 
gsx:/gpm604/804 on /tmp/tony/804 type nfs (ro) 
mount.nfs: timeout set for Tue Mar 7 17:46:51 2017 
mount.nfs: trying text-based options 'vers=4,addr=192.168.10.16,clientaddr=192.168.10.21' 
mount.nfs: mount(2): Protocol not supported 
mount.nfs: trying text-based options 'addr=192.168.10.16' 
mount.nfs: prog 100003, trying vers=3, prot=6 
mount.nfs: trying 192.168.10.16 prog 100003 vers 3 prot TCP port 2049 
mount.nfs: prog 100005, trying vers=3, prot=17 
mount.nfs: trying 192.168.10.16 prog 100005 vers 3 prot UDP port 597 
gsx:/gpm604/805 on /tmp/tony/805 type nfs (ro) 
mount.nfs: timeout set for Tue Mar 7 17:46:52 2017 
mount.nfs: trying text-based options 'vers=4,addr=192.168.10.16,clientaddr=192.168.10.21' 
mount.nfs: mount(2): Protocol not supported 
mount.nfs: trying text-based options 'addr=192.168.10.16' 
mount.nfs: prog 100003, trying vers=3, prot=6 
mount.nfs: trying 192.168.10.16 prog 100003 vers 3 prot TCP port 2049 
mount.nfs: prog 100005, trying vers=3, prot=17 
mount.nfs: trying 192.168.10.16 prog 100005 vers 3 prot UDP port 597 
gsx:/gpm604/806 on /tmp/tony/806 type nfs (ro) 

을 수행 [추가] 우리는 1 GB/s의 이더넷 연결을 사용하는 경우/LAN의 우리는이 문제가되지 않는 것을 발견했다. 이 문제는 우리가 10Gb/s 이더넷 LAN에 물건을 마운트하려고 할 때만 발생하는 것으로 보입니다. 우리는 동일한 NFS 서버에서 같은 클라이언트에 같은 클라이언트를 탑재하고 동일한 클라이언트 OS 및 시스템 바이너리를 사용하여 동일한 DNS 서버를 사용하고 예상대로 회전을 마운트했습니다 (또한 많은 온라인 하우투에서 언급했듯이) . 문제는 현재 어떤 이유로 10Gb/s 이더넷을 사용하는 것으로 국한되어있는 것처럼 보입니다.

답변

0

필자가 아는 한, 요구 사항 없음은 조회를 위해 반환 된 여러 주소를 라운드 로빈 순서로 시도해야한다는 DNS 프로토콜 사양에 명시되어 있습니다.

목록을 가져 와서 무엇을해야할지 결정하는 것은 응용 프로그램의 작업입니다.

+0

NFS에서 "DNS 프로토콜 사양"이 아닌 문제가 있습니다. DNS는 'ping'및 'nslookup'명령에 의해 설명 된 것처럼 순환 순서로 주소를 올바르게보고합니다. 그러나 DNS 시스템에서는 단일 주소를 고정하여 사용하는 것만으로 무언가가 작동하지 않습니다. 나는 이유를 알아 내려고 노력하고있어. 그게 원인이야. 그리고 제대로 작동하도록 수정/변경하는 방법. – AkosPrime

+0

@Akos Prime DNS 프로토콜은 응답이 순환 될 필요조차 없습니다. – Alnitak

+0

아니요,하지만 오늘 우리가 발견 한 문제는 10Gb 이더넷 네트워크에서만 발생하는 것으로 보입니다. 동일한 볼륨을 마운트 할 때 동일한 NFS 서버를 사용하고 동일한 DNS 서버를 사용하며 동일한 OS를 사용하는 동일한 클라이언트에서 NFS 마운트가 예상대로 회전됩니다. – AkosPrime