DRBD(Distributed Replicated Block Device) 란..
DRBD(Distributed Replicated Block Device)
DRBD를 쉽게 설명하자면 네트워크 기반의 raid 1(Mirroring)을 구현해 놓은 것이라고 보면 된다.
고가용 시스템에 관심이 많아 이것 저것 찾아 다니다가 우연찮게 DRBD 를 알게 되었다.
국내에는 불행히도 자료가 잘 없어 drbd.org 사이트의 메뉴얼을 참고하여 익히게 되었다.
사용을 해보니 생각보다 괜찮은 솔루션인것 같아 널리 알리기로 생각을 하고 문서를 만들기 시작 했다.
LVS는 여러번 만들어 보았으나 항상 걸리는 문제가 있었다.
Load Balancer 서버 두대 정도 두고 실제 서비스를 하는 서버(보통 웹서버)들은 부하 분산을 위해서 여러대 구성을 해서 lc 혹은 wlc 방식으로 부하를 분산을 시켜서 사용을 하다가 노드 한 두개 죽더라도 다른 노드가 그 부하를 커버를 하면 되는 방식인데 데이너 동기화 및 스토리지 용 서버가 죽으면 끝이 나게 된다.
물론 돈을 많이 들여서 스토리지 두개 사서 이중화 솔루션 구매하여 사용할 수 도 있지만 소프트웨어적으로 한번 처리를 해 볼 수 있는 방법을 찾아 볼 수도 있다. 그 해답중의 하나로 DRBD 를 사용 할 수 있다.
DRBD 는 스토리지 이중화라고 생각해도 된다.
이게 파일 베이스로 움직이는게 아니라 블럭 레벨에서 복제가 된다.
심플한 구성을 생각해 보면,
DRBD를 이용하여 스토리지용으로 하드 용량이 큰 서버 두대를 사용하는데 Heartbeat 를 이용하여 Active/Standby 형태로 구성을 한다. DRBD script 제어를 Heartbeat 에게 맞겨 두고 가상 아이피를 한개 사용하여 외부에서는 가상 아이피로 접근을 한다. 그리고 여기 데이타에 접근을 위해 NFS 를 이용하여 외부에서는 사용을 하게한다. 물론 추후 퍼포먼스등을 고려하여 open-iscsi, gnbd 등 상황에 맞게 사용을 하게 될 것이다. 이렇게 만들어 놓으면 최소한 스토리지 서버가 한대 죽더라도 다른 한대의 서버가 복제된 동일한 내용의 컨텐츠를 가지고 지속적인 서비스가 가능하게 된다. 물론 최소의 비용으로 말이다.
DataBase 의 경우도 과연 문제가 없이 잘 될 것인가에 대한 의문의 해답은 생각보다 간단하게 풀렸었다.
Mysql 의 경우 DRBD를 공식적으로 지원을 하고 있었다.
http://mysql.com/drbd
Mysql Enterprise 용으로 HA 구성시 하나의 방법으로 사용을 하고 있었다.
DRBD 는 linbit 회사에서 공식 기술 지원을 유료로 하고 있다.
http://www.linbit.com/en/products-services/drbd/drbd-support/drbd-support/
노드당 1년에 최소 300만원 이상의 비용이다. 보통 silver 정도 받고 한대로는 운영이 안되므로 두 대의 서버를 사용한다고 하였을때 600*2 하여 1200만원이다. 고 부가가치 기술 지원이다.
다음번에는 직접 설치하여 보자.