블로그를 보시면 알겠지만, 저는 메일쪽을 관련하는 일을 하고 있는 엔지니어입니다.
메일 (simple mail transfer protocol) 이라고 하면 정말 단순 명확했으면 좋겠지만,
전혀 심플하지도 않고, 복잡하기만 합니다. (는 잡설이구요...)

자 오늘 해볼 이야기는 HA를 구성하면 가장 문제가 되어질수 있는 스토리지단입니다.
(흠 오늘글은 조금 즉흥적인글이니 양해를 부탁 드리겠습니다)

일본 헤테나를 예를 들면 NFS를 통해서 스토리지 공유를 한다...(라고 써 있더군요)
근데 이 스토리지라는게 정말 광범위해서 어떻게 쓰이느냐에 따라서 어떻게 구성을 해야할지가 정말 중요합니다.

만약! db서버 이중화를 한다면 db이중화도 결국은 스토리지를 이중화 할것이냐 (물론 db이중화가 스토리지:파일시스템 으로 이중화가 되어질수만 있다면 정말 획기적이겠지만 그렇지 못합니다) 이부분은 차츰 나중에 이야기를 해보도록 하겠습니다 (갑자기 db이중화 이야기가 나오니 어려워지는군요)

저는 엔지니어 커뮤니티 사이트를 운영하고 있습니다.
이것은 엔지니어들만의 공간으로 많은 자료를 담고 있는데 이제 운영을 하다보니 상당히 중요한 위치에 서게 되었습니다. 그러다보니, 자연스럽게 이중화 이야기가 나왔습니다.

자 서버는 있습니다. 하지만 A서버가 죽었을때 B서버에서 어떻게 해당 내용을 전달할것이냐가 문제입니다.

방법은 여러가지가 있습니다.
1. rsync로 주기적으로 동기화를 시킨다던지
2. lsync로 실시간으로 동기화를 시킨다던지....(rsync의 변형형태로 좁은범위내에서는 상당히 유용합니다. 단! rsync와 비슷하므로 100% 동기화라고 보장하지 못합니다)
3. 디스크를 공유시키던지 (NFS던 GFS던...무엇이든 파일 시스템을 만든다면)

여기서 가장 중요한건 A서버가 죽었을때 B서버는 놀고 있다는 의미입니다.
이런경우에는 1/2번이 가장 저렴한 방법으로 HA를 구성할수 있는 방법일것입니다.

하지만, A/B서버가 동시에 job을 처리한다면 2번과 3번을 예의 주시해야합니다.
2번과 같은경우는 network상황이나, 서버의 상황에 따라 틀리지만, 1분 이내 (사이즈가 작고 사용량이 없다면) 2번케이스를 사용이 가능할것입니다.

하지만 진심으로 한다면 무엇인가 다른 File System이 필요하다는 결론입니다.
HA가 Active-Stand by의 구조도 있지만 정말 고가용성이 되어지는 active-active구조가 되어질것입니다.

앞단 두대의 서버에는 레알(?) 서비스 데몬들만 올라가고 최소한의 디스크로 서비스가 되어집니다. (앞단 장비 퍼포먼스가 빵빵하겠지요? 저같으면 SSD넣겠습니다.) 그리고 이 서버들은 SAN, NAS등의 디스크를 서로 공유하여 사용합니다.

3번의 경우가 발생되었습니다.
이러한 경우에 파일시스템 선택과, 공유스토리지운영 방법이 이슈가 되어질것입니다.
그리고 앞서 말했던 DB이중화 이야기도 슬슬 나올수가 있습니다.

디스크는! 단순 데이터를 저장하는 매체입니다.
하지만 앞단 서비스가 단순 apache를 통해서 html만 보여주는것이라면 상관이 없겠지만, 뭔가를 양쪽 서버에서 동시 다발적 한 파일에 write를 해야합니다.

"응? 그까이꺼 그냥 write하면 되지?"

라고 생각하시면 안됩니다.
nfs서버에는 nfslock라는 데몬이 있습니다. 이것이 바로 file lock을 컨트롤 하는 녀석입니다. (NAS역시 동일하기때문에 생략합니다, 단 SAN은 네트워크 스토리이지 공유스토리지가 아님을 명심해야합니다)

그럼...............
A서버에서 서로 다른 데몬이 a.out의 파일에 write하는 경우의 kernel이 하는짓과
A서버 B서버에서 서로 다른 데몬이 공유스토리지에 a.out의 파일에 write하는짓의 차이점중 둘중 하나만 이해하시면 제가 말하고자 하는 스토리지와 파일 시스템의 정의가 무엇인지 알게 되어질것입니다.

(To Be continue)
저작자 표시 비영리 변경 금지
신고
Posted by 신머루군

고가용성을 확인하면서 여러가지를 고민을 했습니다.
사실 고가용성....말부터가 야리꾸리 한것이 쉽게 접근할수 없는것이 사실이고...

장비도 비싸면서 평소때에는 개뿔도 없고...(응?)
장애 터지면 더 단일서버보다 더 골치 아픈것이 고가용성입니다.

안정화가 되어진 시스템에 고가용성을 도입한답시고, 더 큰장애를 일이키는곳을 보아온지라, 만약 단일장비로도 충분한 여유가 있다면 단일장비로 버티는것이 어떨까하는 의견입니다...
(이 부분은 개인적인 견해이므로 무시하셔도 됩니다. 그냥 제 경험이 그렇다는것이니까요)

고가용성 cata.는 Network, Kernel, Application, Prog. 등 여러가지가 복합적으로 결합되어져 나타는 부분인지라, 카타를 설정을 해두고, 실제 운용글들은 각각에 맞는 Cata.에 넣을것입니다.

그 중 몇가지 사전 지식을 확인을 하는 차원입니다.

1. Network 지식 (L4, L7이 무슨짓을 하는녀석인지)
2. Linux Network를 주무를수 있는지 (VIP)
3. demon setting가능 여부 (IPVS, keepalivecd 등과 같은것들) - 아파치, 삼바, mysql, Java등도 포함됩니다.
4. 그리고 잡식 (....잡다한 지식....이건 답이 없네요...낄낄)

등의 지식을 알고 진행이 되어집니다.

첫번째로, Network부분부터 진행이 되어질것이며, 네트워크로부터 모든 고가용성이 시작이 되어진다고 생각하여도 과언이 아닐것으로 판단이 되어집니다.

두번째로, config수정 부분 (각종 프로그램 설치 가이드는 제공여부가 확실치 않습니다. 저도 테스트 환경이 부족한것은 사실이며, 이 부족한 테스트 환경을 벗어날수가 없기에)

세번째로, 잡식입니다.
사실 위 두가지를 진행하다보면 Kernel을 수정해야하는 경우도 생길것이고 (튜닝이던 혹은 프로그램 수정이던간에), 꼬우면 프로그램도 짜야합니다. (script language던 C이던) 에러코드에 대한 정확한 원인 분석도 해야합니다. 이 에러코드를 찾다보면 또 다시 원점으로 돌아가 Kernel을 뜯어본다던지 하는 불행한 경우가 생기거나, Network Packet를 분석해야할일도 분명 생길것입니다.

순서는 랜덤으로 진행을 하며 저도 "서버/인프라를 지탱하는 기술"과 제 잡식을 섞어가면서 글을 올릴수 있도록 하겠습니다. 진행은 총 3~6개월정도가 되어질것으로 보여집니다.
저작자 표시 비영리 변경 금지
신고
Posted by 신머루군

고가용성으로 넘어가면서 이중화 구성이니(?), HA구성이니(?), L4가 어쩌구 저쩌구......

사실 실전으로 투입되어지기 전까지는 알기가 어려운 내용이기도 이중화와 관련되어진 이야기는 여러군데에서 나온다

1. 장비 이중화 (H/W)
2. 어플리케이션 이중화 (APP)
3. data이중화 (...? mysql이나 oracle과 같은?)

HA구성역시도 마찬가지이다..

여러가지 구성방안이 있고, 사실 실습전에는 뭐라고 이야기하기도 어려운 내용인지라 어찌 풀어나가야할지 고민스럽기도 한 부분이지만, 내가 아는 범위 ~ 혹은 책자를 통해서 이중화 이야기를 써 내려가볼려고 한다.

아직 분류도 없어서 뭐라고 쓰기에 어렵지만..
요즘 다들 고가용성에 눈을 돌리다보니 한번 읆어 내려가봐야겠다.

어떤 이중화 방법이 있는지와, 어떤 구성이 가능한지에 대해서
(사실 나도 책을 보고 공부를 하면서 하는부분이라...-_-;)
저작자 표시 비영리 변경 금지
신고
Posted by 신머루군

티스토리 툴바