서버 동기화 문제
글쓴이: gmlsehf / 작성시간: 화, 2009/07/07 - 4:08오후
안녕하세요..
혼자 고민하다 다양한 의견을 여쭤보고자 글 올립니다.
같은 일을 하는 여러 대의 서버가 있고, 하나의 디렉토리를 공유하고 있습니다.
서버들은 공유 디렉토리 안의 파일에 대한 처리를 하게 되는데
문제는 크게 파일에 대한 접근 동기화와 서버가 살아있는지에 대한 문제입니다.
파일에 대한 동시 접근을 막기위해 파일 lock이나 시간을 다르게 지정하게 하려고 하는데요..
로컬이 아닌 nfs에 마운트된 파일에도 lock을 걸 수 있나요?
그리고 살아 있는 서버들 중에 하나를 선택해서 서비스를 하려고 하는데요.
실시간으로 서버들이 살아 있는지 갱신하기 위해
주기적으로 서버 이름으로 디렉토리를 만들어 디렉토리가 존재하면 그 중에서 하나 골라서 처리하게 하고
서비스가 끝나면 다시 서버 이름의 디렉토리를 다 지우고 다시 만들고..하는 식으로 할려고 하는데요..
좀 더 좋은 아이디어가 없을까요???/
답변 부탁드려요
Forums:
1. nfs 에 마운트된
1. nfs 에 마운트된 파일도 lock 을 걸 수가 있는 것으로 알고 있으나 확실하지는 않습니다. ㅡ.ㅡ;;;
2. 자금이 충분하다면 L4 로드밸런싱을 이용하셔도 되구요.
오픈소스로는 LVS 등이 있으며, apache 나 nginx 등의 L7 proxy 등을 이용하여도 됩니다.
답변 감사합니다.
이미 L4 로그밸런싱이 되어 있습니다만
공유 디렉토리의 파일에 동시적으로 접근될 수 있는 문제가 남아있어서요.
좀 더 좋은 생각이 안떠오르네요 ㅠㅠ
...
쉽게 접근하자면, 마스터-슬레이브 모델로 가보는게 어떨지요.
예를 들어, 스케쥴(티켓?) 서버를 하나 두시는게 어떤지.
1) 공유파일시스템의 파일 리스트(목록)를 관리하는 서버가 있다고 가정
2) 워커들은 이 서버에게 파일목록(경로?)을 받아
3) 워커들은 처리 후 결과보고
4) 보고 받은 서버는 해당 파일에 대한 처리결과 갱신 및 파일을 삭제(필요하다면?)
5) 그외, 스케쥴 서버는 워커들의 상태(live)와 성능을 모니터링
* 락은 사용하지 않음
* 공유된 파일에 대한 접근 동기화는 스케쥴(티켓? 하여간...)에 의하며,
* 워커들이 특정 시간동안 스케쥴 서버에게 요청 없을 경우, 스케쥴서버 이상징후로 판단하고, 상세판단위한 처리돌입
- 소설쓰자면 이 정도가 될텐데요, 스케쥴 서버가 공유자원에 대한 모니터 및 워커들을 모니터하게 한다는 취지입니다.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
nfs 지만.. 로컬
nfs 지만.. 로컬 파일시스템과 별차이없이 사용할수 있습니다.
로컬이라 생각하시고 구현하시면 될듯합니다.
user 나 group id(번호할당) 에관해서만 조금조심하면 됩니다.
댓글 달기