SlideShare a Scribd company logo
1 of 12
Download to read offline
무정지 웹서비스 구성
https://blog.zeroidle.com
무정지 웹서비스 구성
서비스 개요 및 하드웨어 선정1
서비스 개요 41.1
하드웨어 선정 61.2
네트워크 인터페이스 이중화2
CARP설정 82.1
웹서비스 설치 및 테스트3
NginX 설치 103.1
무정지 웹서비스 구성 - 3
서비스 개요 및 하드웨어 선정
무정지 웹서비스 구성 - 4
서비스 개요
서비스 구성
두 대의 서버를 이용하여 Active/Standby 무정지 웹서비스를 구성하도록 합니다.
구성
L2스위치 하단에 두 대의 서버가 물리적으로 연결되어 있으며 각각 IP가 할당되어 있습니다.
또한 각 서버에는 125.141.148.230(이하 VIP)가 공통적으로 셋팅되어 있는데,
평소에는 Oper-KR-LB-1(이하 LB-1)이 VIP를 가지고 있다가
장애가 나게되면 Oper-KR-LB-2(이하 LB-2)가 VIP를 가져오게 됩니다.
즉, 두 서버 모두 살아 있을 경우 LB-1이 Active상태이며 LB-2는 Standby상태라 지칭합니다.
만약 LB-1이 장애가 나게되면 LB-2가 VIP를 가지게 되며 이러한 전환과정을 Fail-over라 합니다.
이후 LB-1이 정상화되면 VIP를 다시 가져오는데 이 과정을 Fail-back이라 합니다.
무정지 웹서비스 구성 - 5
LB-1, LB-2의 장애와 상관없이
두 서버중 한대만 살아있더라도 VIP로 접속이 가능하므로
이러한 구성을 HA(High Availability)라 부릅니다.
무정지 웹서비스 구성 - 6
하드웨어 선정
(주)윈퍼스트(http://winfirst.co.kr/)에서 판매하는 Intel WR1302 서버 2대로 구성하였으며
상세 스펙은 아래와 같습니다.
Intel Server Board S1200BTL
Intel Processor E3-1230v2 (8M Cache, 3.3Ghz, Max Turbo Freq. 3.6Ghz)
DDR 3 Unbuffered ECC 4GB * 2EA
SSD 120GB * 1EA
SATA 2TB * 2EA
350W Single PSU
하드웨어 스펙
* 구매비용을 줄이기 위해 고가의 레이드컨트롤러를 구매하지 않고 Software RAID기능을 사용하도록 합니다.
무정지 웹서비스 구성 - 7
네트워크 인터페이스 이중화
무정지 웹서비스 구성 - 8
CARP설정
서비스구성에서 보았던 VIP를 셋팅해보도록 하겠습니다.
CARP 설정
LB-1에 접속하여 /etc/rc.conf 파일을 에디터로 열어서 아래 내용을 추가해 줍니다.
cloned_interfaces="carp0"
ifconfig_carp0="vhid 230 advskew 50 pass P@ssw0rd 125.141.148.230/27"
LB-2에도 동일하게 셋팅해줍니다.
cloned_interfaces="carp0"
ifconfig_carp0="vhid 230 advskew 100 pass P@ssw0rd 125.141.148.230/27"
설정내용중 vhid(Virtual Host IDentification) 값과 P@ssw0rd로 셋팅된 pass값은 두 서버가 동일해야 하며,
이렇게 이중화된 여러개의 Pool이 있을 경우 vhid는 충돌나지 않게 정해아합니다.
저는 임의로 VIP 끝자리인 230으로 정했습니다.
그리고 advskew가 의미하는 것은 해당 서버들이 살아있을 때 작은 값으로 셋팅된 서버가 MASTER상태에 대한
우선순위를 갖는다는 뜻입니다.
즉, 두 서버 모두 정상상태 일경우 50으로 셋팅된 LB-1이 MASTER역할을 하게됩니다.
셋팅이 완료됐으면 저장후 리부팅을 하거나 네트웍인터페이스를 재시작해주세요
CARP 동작확인
CARP가 잘 동작중인지 ifconfig carp0 명령으로 확인해봅시다.
LB-2의 advskew값이 100으로, LB-1의 50보다 숫자가 크므로 우선순위가 낮겠죠?
그러므로 carp상태가 BACKUP으로 나오는게 정상입니다.
만약 LB-1이 죽어있다면 LB-2의 carp상태가 자동으로 MASTER로 바뀌고
125.141.148.230 VIP또한 LB-2가 사용하게 됩니다.
무정지 웹서비스 구성 - 9
웹서비스 설치 및 테스트
무정지 웹서비스 구성 - 10
NginX 설치
portsnap fetch extract
portsnap fetch update
위 명령을 통해 FreeBSD의 ports를 최신으로 업그레이드 합니다.
NginX 설치
cd /usr/ports/www/nginx 로 디렉토리를 옮겨,
make config install clean 으로 설치합니다.
무정지 웹서비스 구성 - 11
NginX 시작
/usr/local/etc/rc.d/nginx start 명령으로 NginX를 시작합니다.
이런... 시작할 수 없다고 나오네요
/etc/rc.conf에 nginx_enable="YES" 행을 추가한 후 시작합니다.
Index 페이지 만들기
LB-1에서
mkdir -p /usr/local/www/nginx
echo "LB-1" > /usr/local/www/nginx/index.html
위 명령으로 인덱스 페이지를 만듭니다.
LB-2 서버에서는
echo "LB-2" > /usr/local/www/nginx/index.html
위 명령처럼 인덱스 페이지를 다르게 만들어준다면 Fail-over가 잘 되는지 쉽게 확인할 수 있겠죠?
웹페이지 접속확인
LB-1이라고 적혀나오는걸보니 LB-1이 MASTER상태이군요
그럼 Fail-over가 잘 되는지 확인해봅시다.
LB-1을 리부팅합니다.
Fail-over 확인
LB-1이 리부팅되었으므로 LB-2가 MASTER상태가 되었음을 확인할 수 있습니다.
ifconfig carp0 명령으로 확인 할 수 있습니다.
무정지 웹서비스 구성 - 12
웹페이지 접속확인
LB-2가 MASTER가 되었으므로 페이지 또한 LB-2로 바뀌었네요
어렵지 않죠?
저렴한 비용으로 웹서버를 이중화해보았습니다.
감사합니다.

More Related Content

What's hot

Apache tomcat 로드밸런싱 김태호-20140808
Apache tomcat 로드밸런싱 김태호-20140808Apache tomcat 로드밸런싱 김태호-20140808
Apache tomcat 로드밸런싱 김태호-20140808Taeho Kim
 
[오픈소스컨설팅]Tomcat6&7 How To
[오픈소스컨설팅]Tomcat6&7 How To[오픈소스컨설팅]Tomcat6&7 How To
[오픈소스컨설팅]Tomcat6&7 How ToJi-Woong Choi
 
Redis Overview
Redis OverviewRedis Overview
Redis Overviewkalzas
 
[2018] MySQL 이중화 진화기
[2018] MySQL 이중화 진화기[2018] MySQL 이중화 진화기
[2018] MySQL 이중화 진화기NHN FORWARD
 
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?Opennaru, inc.
 
톰캣 #08-웹서버 연동
톰캣 #08-웹서버 연동톰캣 #08-웹서버 연동
톰캣 #08-웹서버 연동GyuSeok Lee
 
02.실전! 시스템 관리자를 위한 Ansible
02.실전! 시스템 관리자를 위한 Ansible02.실전! 시스템 관리자를 위한 Ansible
02.실전! 시스템 관리자를 위한 AnsibleOpennaru, inc.
 
Ch9,10. Deployments and Statefulsets
Ch9,10. Deployments and StatefulsetsCh9,10. Deployments and Statefulsets
Ch9,10. Deployments and StatefulsetsHongmin Park
 
초보자를 위한 네트워크/VLAN 기초
초보자를 위한 네트워크/VLAN 기초초보자를 위한 네트워크/VLAN 기초
초보자를 위한 네트워크/VLAN 기초Open Source Consulting
 
JVM과 톰캣 튜닝
JVM과 톰캣 튜닝JVM과 톰캣 튜닝
JVM과 톰캣 튜닝Mungyu Choi
 
500.JBoss Troubleshooting Essential
500.JBoss Troubleshooting Essential500.JBoss Troubleshooting Essential
500.JBoss Troubleshooting EssentialOpennaru, inc.
 
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)Ji-Woong Choi
 
[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMX
[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMX[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMX
[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMXJi-Woong Choi
 
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020Ji-Woong Choi
 
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3Ji-Woong Choi
 
[오픈소스컨설팅]초간단 Cubrid HA구성
[오픈소스컨설팅]초간단 Cubrid HA구성[오픈소스컨설팅]초간단 Cubrid HA구성
[오픈소스컨설팅]초간단 Cubrid HA구성Ji-Woong Choi
 
톰캣 운영 노하우
톰캣 운영 노하우톰캣 운영 노하우
톰캣 운영 노하우jieunsys
 
Tomcat 마이그레이션 도전하기 (Jins Choi)
Tomcat 마이그레이션 도전하기 (Jins Choi)Tomcat 마이그레이션 도전하기 (Jins Choi)
Tomcat 마이그레이션 도전하기 (Jins Choi)삵 (sarc.io)
 
04.웹시스템 이해 하기
04.웹시스템 이해 하기04.웹시스템 이해 하기
04.웹시스템 이해 하기Opennaru, inc.
 

What's hot (20)

Apache tomcat 로드밸런싱 김태호-20140808
Apache tomcat 로드밸런싱 김태호-20140808Apache tomcat 로드밸런싱 김태호-20140808
Apache tomcat 로드밸런싱 김태호-20140808
 
[오픈소스컨설팅]Tomcat6&7 How To
[오픈소스컨설팅]Tomcat6&7 How To[오픈소스컨설팅]Tomcat6&7 How To
[오픈소스컨설팅]Tomcat6&7 How To
 
Redis Overview
Redis OverviewRedis Overview
Redis Overview
 
[2018] MySQL 이중화 진화기
[2018] MySQL 이중화 진화기[2018] MySQL 이중화 진화기
[2018] MySQL 이중화 진화기
 
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
 
톰캣 #08-웹서버 연동
톰캣 #08-웹서버 연동톰캣 #08-웹서버 연동
톰캣 #08-웹서버 연동
 
02.실전! 시스템 관리자를 위한 Ansible
02.실전! 시스템 관리자를 위한 Ansible02.실전! 시스템 관리자를 위한 Ansible
02.실전! 시스템 관리자를 위한 Ansible
 
Ch9,10. Deployments and Statefulsets
Ch9,10. Deployments and StatefulsetsCh9,10. Deployments and Statefulsets
Ch9,10. Deployments and Statefulsets
 
초보자를 위한 네트워크/VLAN 기초
초보자를 위한 네트워크/VLAN 기초초보자를 위한 네트워크/VLAN 기초
초보자를 위한 네트워크/VLAN 기초
 
JVM과 톰캣 튜닝
JVM과 톰캣 튜닝JVM과 톰캣 튜닝
JVM과 톰캣 튜닝
 
500.JBoss Troubleshooting Essential
500.JBoss Troubleshooting Essential500.JBoss Troubleshooting Essential
500.JBoss Troubleshooting Essential
 
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
 
Advanced webpack
Advanced webpackAdvanced webpack
Advanced webpack
 
[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMX
[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMX[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMX
[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMX
 
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
 
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
 
[오픈소스컨설팅]초간단 Cubrid HA구성
[오픈소스컨설팅]초간단 Cubrid HA구성[오픈소스컨설팅]초간단 Cubrid HA구성
[오픈소스컨설팅]초간단 Cubrid HA구성
 
톰캣 운영 노하우
톰캣 운영 노하우톰캣 운영 노하우
톰캣 운영 노하우
 
Tomcat 마이그레이션 도전하기 (Jins Choi)
Tomcat 마이그레이션 도전하기 (Jins Choi)Tomcat 마이그레이션 도전하기 (Jins Choi)
Tomcat 마이그레이션 도전하기 (Jins Choi)
 
04.웹시스템 이해 하기
04.웹시스템 이해 하기04.웹시스템 이해 하기
04.웹시스템 이해 하기
 

Viewers also liked

FreeBSD, ipfw and OpenVPN 2.1 server
FreeBSD, ipfw and OpenVPN 2.1 serverFreeBSD, ipfw and OpenVPN 2.1 server
FreeBSD, ipfw and OpenVPN 2.1 serverTomaz Muraus
 
The Complete FreeBSD
The Complete FreeBSDThe Complete FreeBSD
The Complete FreeBSDjoonatantorga
 
Cisco nexus 7009 overview
Cisco nexus 7009 overviewCisco nexus 7009 overview
Cisco nexus 7009 overviewHamza Al-Qudah
 
Mum Article Recognition for Mohamed Farag
Mum Article Recognition for Mohamed FaragMum Article Recognition for Mohamed Farag
Mum Article Recognition for Mohamed FaragMohammed Farrag
 
Resume for Mohamed Farag
Resume for Mohamed FaragResume for Mohamed Farag
Resume for Mohamed FaragMohammed Farrag
 

Viewers also liked (6)

FreeBSD, ipfw and OpenVPN 2.1 server
FreeBSD, ipfw and OpenVPN 2.1 serverFreeBSD, ipfw and OpenVPN 2.1 server
FreeBSD, ipfw and OpenVPN 2.1 server
 
The Complete FreeBSD
The Complete FreeBSDThe Complete FreeBSD
The Complete FreeBSD
 
FreeBSD Handbook
FreeBSD HandbookFreeBSD Handbook
FreeBSD Handbook
 
Cisco nexus 7009 overview
Cisco nexus 7009 overviewCisco nexus 7009 overview
Cisco nexus 7009 overview
 
Mum Article Recognition for Mohamed Farag
Mum Article Recognition for Mohamed FaragMum Article Recognition for Mohamed Farag
Mum Article Recognition for Mohamed Farag
 
Resume for Mohamed Farag
Resume for Mohamed FaragResume for Mohamed Farag
Resume for Mohamed Farag
 

Similar to Freebsd HA with CARP

서버인프라 구축 입문 basis of composing server and infra
서버인프라 구축 입문 basis of composing server and infra서버인프라 구축 입문 basis of composing server and infra
서버인프라 구축 입문 basis of composing server and infraHwanseok Park
 
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0Ji-Woong Choi
 
ACL - cisco 2811 router
ACL - cisco 2811 router ACL - cisco 2811 router
ACL - cisco 2811 router 준기 홍
 
카산드라를 설치해서 테스트 해보자 with virtualbox
카산드라를 설치해서 테스트 해보자 with virtualbox카산드라를 설치해서 테스트 해보자 with virtualbox
카산드라를 설치해서 테스트 해보자 with virtualbox떠리 이
 
MySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestMySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestI Goo Lee
 
DNS Express
DNS ExpressDNS Express
DNS Expressitian-f5
 
[KAU UMC 컨퍼런스] 네트워크 트래픽 분산 시스템 구축하기 - 김보인
[KAU UMC 컨퍼런스] 네트워크 트래픽 분산 시스템 구축하기 - 김보인 [KAU UMC 컨퍼런스] 네트워크 트래픽 분산 시스템 구축하기 - 김보인
[KAU UMC 컨퍼런스] 네트워크 트래픽 분산 시스템 구축하기 - 김보인 Boin Kim
 
Haeinsa deview _최종
Haeinsa deview _최종Haeinsa deview _최종
Haeinsa deview _최종NAVER D2
 
Pgday bdr gt1000
Pgday bdr gt1000Pgday bdr gt1000
Pgday bdr gt1000정대 천
 
Pgday bdr 천정대
Pgday bdr 천정대Pgday bdr 천정대
Pgday bdr 천정대PgDay.Seoul
 
Solaris 11 network virtualization & Server Virtualization for cloud
Solaris 11 network virtualization & Server Virtualization for cloudSolaris 11 network virtualization & Server Virtualization for cloud
Solaris 11 network virtualization & Server Virtualization for cloudsuk kim
 
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유Kyoungchan Lee
 
Redis trouble shooting
Redis trouble shootingRedis trouble shooting
Redis trouble shootingDaeMyung Kang
 
Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기NeoClova
 

Similar to Freebsd HA with CARP (15)

서버인프라 구축 입문 basis of composing server and infra
서버인프라 구축 입문 basis of composing server and infra서버인프라 구축 입문 basis of composing server and infra
서버인프라 구축 입문 basis of composing server and infra
 
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
 
ACL - cisco 2811 router
ACL - cisco 2811 router ACL - cisco 2811 router
ACL - cisco 2811 router
 
카산드라를 설치해서 테스트 해보자 with virtualbox
카산드라를 설치해서 테스트 해보자 with virtualbox카산드라를 설치해서 테스트 해보자 with virtualbox
카산드라를 설치해서 테스트 해보자 with virtualbox
 
MySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestMySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software Test
 
DNS Express
DNS ExpressDNS Express
DNS Express
 
[KAU UMC 컨퍼런스] 네트워크 트래픽 분산 시스템 구축하기 - 김보인
[KAU UMC 컨퍼런스] 네트워크 트래픽 분산 시스템 구축하기 - 김보인 [KAU UMC 컨퍼런스] 네트워크 트래픽 분산 시스템 구축하기 - 김보인
[KAU UMC 컨퍼런스] 네트워크 트래픽 분산 시스템 구축하기 - 김보인
 
Haeinsa deview _최종
Haeinsa deview _최종Haeinsa deview _최종
Haeinsa deview _최종
 
Pgday bdr gt1000
Pgday bdr gt1000Pgday bdr gt1000
Pgday bdr gt1000
 
Pgday bdr 천정대
Pgday bdr 천정대Pgday bdr 천정대
Pgday bdr 천정대
 
Lena Application Server
Lena  Application ServerLena  Application Server
Lena Application Server
 
Solaris 11 network virtualization & Server Virtualization for cloud
Solaris 11 network virtualization & Server Virtualization for cloudSolaris 11 network virtualization & Server Virtualization for cloud
Solaris 11 network virtualization & Server Virtualization for cloud
 
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
 
Redis trouble shooting
Redis trouble shootingRedis trouble shooting
Redis trouble shooting
 
Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기
 

Recently uploaded

MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 

Recently uploaded (6)

MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 

Freebsd HA with CARP

  • 2. 무정지 웹서비스 구성 서비스 개요 및 하드웨어 선정1 서비스 개요 41.1 하드웨어 선정 61.2 네트워크 인터페이스 이중화2 CARP설정 82.1 웹서비스 설치 및 테스트3 NginX 설치 103.1
  • 3. 무정지 웹서비스 구성 - 3 서비스 개요 및 하드웨어 선정
  • 4. 무정지 웹서비스 구성 - 4 서비스 개요 서비스 구성 두 대의 서버를 이용하여 Active/Standby 무정지 웹서비스를 구성하도록 합니다. 구성 L2스위치 하단에 두 대의 서버가 물리적으로 연결되어 있으며 각각 IP가 할당되어 있습니다. 또한 각 서버에는 125.141.148.230(이하 VIP)가 공통적으로 셋팅되어 있는데, 평소에는 Oper-KR-LB-1(이하 LB-1)이 VIP를 가지고 있다가 장애가 나게되면 Oper-KR-LB-2(이하 LB-2)가 VIP를 가져오게 됩니다. 즉, 두 서버 모두 살아 있을 경우 LB-1이 Active상태이며 LB-2는 Standby상태라 지칭합니다. 만약 LB-1이 장애가 나게되면 LB-2가 VIP를 가지게 되며 이러한 전환과정을 Fail-over라 합니다. 이후 LB-1이 정상화되면 VIP를 다시 가져오는데 이 과정을 Fail-back이라 합니다.
  • 5. 무정지 웹서비스 구성 - 5 LB-1, LB-2의 장애와 상관없이 두 서버중 한대만 살아있더라도 VIP로 접속이 가능하므로 이러한 구성을 HA(High Availability)라 부릅니다.
  • 6. 무정지 웹서비스 구성 - 6 하드웨어 선정 (주)윈퍼스트(http://winfirst.co.kr/)에서 판매하는 Intel WR1302 서버 2대로 구성하였으며 상세 스펙은 아래와 같습니다. Intel Server Board S1200BTL Intel Processor E3-1230v2 (8M Cache, 3.3Ghz, Max Turbo Freq. 3.6Ghz) DDR 3 Unbuffered ECC 4GB * 2EA SSD 120GB * 1EA SATA 2TB * 2EA 350W Single PSU 하드웨어 스펙 * 구매비용을 줄이기 위해 고가의 레이드컨트롤러를 구매하지 않고 Software RAID기능을 사용하도록 합니다.
  • 7. 무정지 웹서비스 구성 - 7 네트워크 인터페이스 이중화
  • 8. 무정지 웹서비스 구성 - 8 CARP설정 서비스구성에서 보았던 VIP를 셋팅해보도록 하겠습니다. CARP 설정 LB-1에 접속하여 /etc/rc.conf 파일을 에디터로 열어서 아래 내용을 추가해 줍니다. cloned_interfaces="carp0" ifconfig_carp0="vhid 230 advskew 50 pass P@ssw0rd 125.141.148.230/27" LB-2에도 동일하게 셋팅해줍니다. cloned_interfaces="carp0" ifconfig_carp0="vhid 230 advskew 100 pass P@ssw0rd 125.141.148.230/27" 설정내용중 vhid(Virtual Host IDentification) 값과 P@ssw0rd로 셋팅된 pass값은 두 서버가 동일해야 하며, 이렇게 이중화된 여러개의 Pool이 있을 경우 vhid는 충돌나지 않게 정해아합니다. 저는 임의로 VIP 끝자리인 230으로 정했습니다. 그리고 advskew가 의미하는 것은 해당 서버들이 살아있을 때 작은 값으로 셋팅된 서버가 MASTER상태에 대한 우선순위를 갖는다는 뜻입니다. 즉, 두 서버 모두 정상상태 일경우 50으로 셋팅된 LB-1이 MASTER역할을 하게됩니다. 셋팅이 완료됐으면 저장후 리부팅을 하거나 네트웍인터페이스를 재시작해주세요 CARP 동작확인 CARP가 잘 동작중인지 ifconfig carp0 명령으로 확인해봅시다. LB-2의 advskew값이 100으로, LB-1의 50보다 숫자가 크므로 우선순위가 낮겠죠? 그러므로 carp상태가 BACKUP으로 나오는게 정상입니다. 만약 LB-1이 죽어있다면 LB-2의 carp상태가 자동으로 MASTER로 바뀌고 125.141.148.230 VIP또한 LB-2가 사용하게 됩니다.
  • 9. 무정지 웹서비스 구성 - 9 웹서비스 설치 및 테스트
  • 10. 무정지 웹서비스 구성 - 10 NginX 설치 portsnap fetch extract portsnap fetch update 위 명령을 통해 FreeBSD의 ports를 최신으로 업그레이드 합니다. NginX 설치 cd /usr/ports/www/nginx 로 디렉토리를 옮겨, make config install clean 으로 설치합니다.
  • 11. 무정지 웹서비스 구성 - 11 NginX 시작 /usr/local/etc/rc.d/nginx start 명령으로 NginX를 시작합니다. 이런... 시작할 수 없다고 나오네요 /etc/rc.conf에 nginx_enable="YES" 행을 추가한 후 시작합니다. Index 페이지 만들기 LB-1에서 mkdir -p /usr/local/www/nginx echo "LB-1" > /usr/local/www/nginx/index.html 위 명령으로 인덱스 페이지를 만듭니다. LB-2 서버에서는 echo "LB-2" > /usr/local/www/nginx/index.html 위 명령처럼 인덱스 페이지를 다르게 만들어준다면 Fail-over가 잘 되는지 쉽게 확인할 수 있겠죠? 웹페이지 접속확인 LB-1이라고 적혀나오는걸보니 LB-1이 MASTER상태이군요 그럼 Fail-over가 잘 되는지 확인해봅시다. LB-1을 리부팅합니다. Fail-over 확인 LB-1이 리부팅되었으므로 LB-2가 MASTER상태가 되었음을 확인할 수 있습니다. ifconfig carp0 명령으로 확인 할 수 있습니다.
  • 12. 무정지 웹서비스 구성 - 12 웹페이지 접속확인 LB-2가 MASTER가 되었으므로 페이지 또한 LB-2로 바뀌었네요 어렵지 않죠? 저렴한 비용으로 웹서버를 이중화해보았습니다. 감사합니다.