서로 다른 두개의 장비에서 DB가 각각 구축되고, 이 둘을 CLUSTER로 묶으려고 하는데
클러스터를 묶는 이 네트워크라인은 서로간에만 통신이 가능하게 하고싶다. 또 이 클러스터 라인 이외 외부와 통신할 수 있는 라인도 하나 더 필요!
(**이 두개 장비는 서로 라인이 연결되어있어야 한다. 나같은 경우 하나의 PC에서 가상머신을 돌릴 것 이기 때문에 가능)
이유는 클러스터 라인 단절 시, split brain현상을 방지를 위한 glocator, gagent 유틸리티는 UDP통신으로 소통하는데
이 UDP는 ip에서 a,b,c클래스가 같으면 그냥 같다고 생각하고(?) 열려있는 아무데로나 붙어버려서
내가 원하는 정확한 라인으로 붙지가 않았다!
그래서 클러스터 라인은 10.10.10.xxx로 통신하게 하고,
glocator, gagent가 붙어있는 외부 네트워크라인은 192.168.0.xxx로 만들고자 함.
vmware에서 진행한다.
CentOS 7.4 환경.
두개의 머신은 vmware 셋팅에서 네트워크 카드 두개를 꼽아주고 bridge로 설정. 참고☞ http://heni.tistory.com/27
현 상태를 살펴보면 두개의 카드에 자동으로 ip가 지정되어 있다.
# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.152 netmask 255.255.255.0 broadcast 192.168.0.255
(생략)
ens34: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.157 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::403a:111e:3be7:e00d prefixlen 64 scopeid 0x20<link>
(생략)
<시나리오>
ip를 자동에서 고정으로 변경하여 내가 원하는 xxx숫자로 고정.
클러스터 라인(내부통신)으로 쓸 ens33카드는 10.10.10.xxx로 고정.
외부와 소통하고자하는 ens34카드는192.168.0.xxx로 고정하고, 게이트웨이와 DNS 설정.
네트워크 설정을 위해 관리자 접속
$ su root
Password:
이후 아래 경로로 들어간다
# cd /etc/sysconfig/network-scripts/
요 경로에 보면 아래와 같은 애들이 쭉 있는데, 분홍표시한 파일 두개가 수정할 파일!
이 파일들을 꼭.. 백업해두길. 특히 내 블로그를 보고 따라하는 사람이라면 꼭 원복할 수 있게 백업하길.. 난 네트워크 전문가가 아니다 ㅠ0ㅠ 필요할때만 만져보는 따라쟁이 일 뿐.
[root@heninet3 network-scripts]# ls
ifcfg-ens33 ifdown-ipv6 ifdown-tunnel ifup-isdn ifup-TeamPort
ifcfg-ens34 ifdown-isdn ifup ifup-plip ifup-tunnel
ifcfg-lo ifdown-post ifup-aliases ifup-plusb ifup-wireless
ifdown ifdown-ppp ifup-bnep ifup-post init.ipv6-global
ifdown-bnep ifdown-routes ifup-eth ifup-ppp network-functions
ifdown-eth ifdown-sit ifup-ib ifup-routes network-functions-ipv6
ifdown-ib ifdown-Team ifup-ippp ifup-sit
ifdown-ippp ifdown-TeamPort ifup-ipv6 ifup-Team
먼저 클러스터라인(내부통신)으로 쓸 ens33카드를 설정해보자. pure한 cent7에서의 설정파일은 아래와 같다.
# cat ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=어쩌고 저쩌고 카드만의 키가 들어있다
DEVICE=ens33
ONBOOT=no
이 상태에서 표시한 부분들만 변경/추가해주면 된다.
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp" ▶ "none"으로 변경하면 고정ip
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="요기 만지면 안됨"
DEVICE="ens33"
ONBOOT="yes"
<고정ip 지정>
IPADDR=192.168.0.xxx
PREFIX=24
<외부 통신 가능한 라인 시 설정>
GATEWAY=192.168.0.1
DNS1=168.xxx.xxx.1
DNS2=168.xxx.xxx.2
ens33같은 경우에는 외부와도 통신 가능한 라인으로 설정하였고
[root@heninet2 network-scripts]# cat ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="요기 만지면 안됨"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.0.xxx
PREFIX=24
GATEWAY=192.168.0.1
DNS1=168.xxx.xxx.1
DNS2=168.xxx.xxx.2
ens34같은 경우에는 외부통신 필요없이 내부에서만 통신 가능하면 되기 때문에, 고정ip 설정하는 프로퍼티만 넣어줬다.
[root@heninet2 network-scripts]# cat ifcfg-ens34
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens34"
UUID="요기 만지면 안됨"
DEVICE="ens34"
ONBOOT="yes"
IPADDR=10.10.10.xxx
PREFIX=24
**
꼭 10.10.10으로 할 필요는 없음. 33.33.33으로 변경해도 내부통신 잘 됨.
( 왜 통신되냐면 라인이 서로 연결되어있거나, 같은 컴퓨터 하여튼 라인이 있으니깐 ㅋ 앞의 abc클래스만 같으면 됨)
위와같이 설정하고, 아래 구문 순서대로 수행
systemctl restart NetworkManager
systemctl restart network
확인해보면 제대로 적용되어있다!
[root@heninet4 network-scripts]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.xxx netmask 255.255.255.0 broadcast 192.168.0.255
ens34: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.10.10.xxx netmask 255.255.255.0 broadcast 10.10.10.
[참고] 가끔씩 오류가 나면서 systemctl restart network이 안될때가 있는데,
# systemctl restart network
Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details.
ifcfg-xxx 파일에서 문제가 있을 때 그러했다. "쌍따옴표를 끝내지 않았던지 DEVICE명에 오타있던지 등...
이도저도 아니면 재부팅을 한번 해보면 잘 됨 ^_^...
'IT Engineer > Linux' 카테고리의 다른 글
linux - firewall-cmd (0) | 2019.02.13 |
---|---|
linux - pstack (0) | 2019.02.13 |
[Linux] 호스트 키가 로컬 호스트 키 데이터베이스에 저장된 키와 다릅니다. 호스트 키가 변경되었거나 연결이 누군가에 의해 감청되었을 수 있습니다. 확실하지 않다면 이 연결을 취소하기를 .. (0) | 2018.01.30 |
[Linux] 가상머신에서 물리적 네트워크 카드 추가하는 방법 - VMware, network adapter, bridge, NAT (0) | 2018.01.26 |
[Linux] nmap, root계정에서와 일반계정에서 사용시 차이 (0) | 2018.01.23 |