본문 바로가기
Network & Server

[Server] 서버 이중화 HA(High Availability), OPS(Oracle Parallel Server), RAC(Real Application Cluster) 비교

by 스파이디웹 2021. 2. 3.
728x90

#HA와,OPS,RAC 모두 DB 서버의 구성에 관한 것이고, 고가용성을 위해 만들어진 구성이라는 것

HA(High Availability)

-2개의 서버를 이용하여 하나는 Active 상태, 나머지 하나는 Standby 상태로 정해놓는다.

 

-거의 모든 부하는 Active에서 부담하고 Standby 상태의 서버는 Active 서버가 장애가 발생하지 않는 이상, 거의 가동하지 않는다.

 

-실제 서비스를 운영하는 Active 서버가 어떠한 장애로 정상적인 작동이 불가능해진다면, 곧바로 Standby 서버가 Active 되면서 다시 서비스를 정상 작동할 수 있게 하는 구성이다.

 

-이해하기 쉬운만큼 구조도 단순하고 따라서 구축 비용도 저렴하다. 또한, 서버 하나만 가동되면 되므로 유지비 역시 저렴하다는 장점이 있다.

 

-하지만, 몇가지 문제점이 있다. 각 서버 별로 별도의 storage를 가지고 있기 때문에 수시로 동기화가 이루어져야 하고, 따라서 성능 저하를 야기할 수 있다.

또한 이런 특성 때문에 각 서버간 데이터 싱크가 맞지 않는 상황도 존재할 수 있다.

마지막으로 굉장히 큰 문제인데, Active 서버가 동작을 멈추면 Standby 서버가 활성화 될 때까지의 트랜잭션을 모두 유실하게 된다는 것이다. 이는 실시간 트랜잭션량이 많은 서비스에서는 치명적인 문제이다.

OPS(Oracle Parallel Server)

-HA구성은 Active, Standby 구성이지만 OPS구성은 인스턴스가 모두 Active 상태로 동작하기에 이론적으로는 부하를 50% 분산할 수 있고, 서비스 속도도 두배 빨라질 수 있다. 하나의 스토리지를 사용하므로 동기화에 문제가 없다.

장점 : 부하 방지, 서비스 속도 향상, 동기화 문제 없음, 하나의 서비스가 중단되는 경우 예방

단점 : RAC Ping 

 

* RAC Ping

 : 같은 사용자가 각각의 서버에 동시접속 하였을 경우 인스턴스1에서 변경완료된 데이터를 인스턴트2로 가져오기위해서는 디스크에 저장 후 복사하여야함. 서로 다른 인스턴스에서 참조하기위해서는 disk에 저장한 후 다시 불러와야 하는 문제가 발생.

 

RAC(Real Application Cluster)

-2개, 혹은 그 이상의 인스턴스가 하나의 storage를 바라보고 있는 구성이다.

 

-각각의 인스턴스를 서버라고 생각하고 HA와 비교한다면 Active, Standby가 아닌 모두 Active 상태라고 할 수 있다.

 

-그리고 모두 하나의 storage를 바라보는 상황이므로 별도의 동기화로 인한 성능 저하는 없다.

 

-또, 하나의 인스턴스에서 장애가 발생해도 곧바로 다음 인스턴스에서 처리해줄 수 있으므로 데이터 유실에 대한 우려도 없다.

 

-HA에서는 하나의 서버가 모든 처리를 해야했으므로 상대적으로 큰 부하가 발생하지만, RAC 구성에서는 균형있게 분산되어 처리할 수 있다.

 

-하지만, 이 역시도 단점이 존재한다. 우선 Oracle RAC가 매우 고가의 제품이라는 것이다.

또한 매우 복잡한 환경 구성으로 인해 유지보수 절차 역시도 복잡하며, 운영 인력은 RAC에 대한 충분한 이해도 필수이다.

HA구조보다 빠른 복구 시간을 보장하지만, 실제로는 RAC 구조를 다루는데 미숙해서 복구시간을 연장시킬 가능성도 있다.

-RAC Ping 문제가 개선되어 성능이 크게 향상된 것으로 oracle9i 버전부터 서로 다른 인스턴스에서 변경된 데이터를 디스크를 거치지 않고 바로 인스턴스로 가져올 수 있는 기능인 Cache Fusion이라는 기능이 사용된다.

* public network(public 망): ip 3개 중 관리자가 유지, 보수할 때 쓰는것으로, public망에 붙어쓰는게 vip인데, service ip임.

* inter connect = private network(private망): instance1과 instance2를 연결하는 망.

* cache fusion: instance1에 있는 데이터와 instance2에 있는 데이터를 서로 즉시 볼 수 있고, 어떤 물리적인 instance에서 작업을 하든지 내용이 구분없이 섞여 있으므로 cache fusion이라고 부릅니다.

 

출처:

greatepig.tistory.com/14

yoo-hyeok.tistory.com/120

728x90

댓글