본문 바로가기

IT-Consultant

NAS 장비를 사용하여 이중화할 경우 무엇이 문제인가?

여기서 이중화는 Active-Active일 경우이다. 2대 이상의 서버에서 하나의 스토리지를 공유해서 검색 서비스를 할 경우 무엇이 문제가 될수 있는가? 한대의 서버에서만 색인하고 다른 서버에서는 검색할 경우 문제가 발생할까? 이 상황에서 발생할 수 있는 일들에 대해서 생각해보자. 

1. OS에서 데이터를 Write하는 원리 
   OS에서 데이터를 디스크에 쓸때 바로 디스크로 데이터가 가는 것이 아니라 중간에 메모리에 쌓였다가 디스크로 보내진다. 그래서 갑작스런 시스템 종료로 파일이 깨질 수 있다. 

2. A,B 두대의 장비가 같은 디스크를 NFS로 공유할 경우 A 장비에서 Write한 데이터가 B 장비에서 인식하는 과정을 생각해보자. 
   A장비의 메모리 - A장비의 버퍼 - NAS 장비의 Write Cache - NAS 장비의 디스크 - NAS 장비의 Read Cache - B장비의 Read Cache 

3. 이렇게 복잡한 과정을 거쳐야 B 장비에서 A 장비의 변화를 알 수 있다. 이 시간이 짧을것 같으나 실제 측정해본 결과 3초정도 걸렸다. 이 긴 시간동안 A장비와 B장비는 데이터 동기가 안된다는 것이다. 이런 문제가 있다면 여러장비에서 같은 파일을 Write하면 문제가 생길 것이다. 그런데 현재 봉착한 문제는 한쪽만 Write하고 다른쪽에서는 Read만 한다는 것이다. 이경우라면 문제가 안 생길것이라 판단된다. 

4. 과연 Read만 하면 Write는 하지 않는 것인가? 또는 inode단위로 lock을 거는 것일까? 
   자 그럼 Read System Call에 대해서 세부적으로 알아보자. 그럼 답이 나올 것이다.

'IT-Consultant' 카테고리의 다른 글

RAMDirectory 얼마나 효과적인가?  (0) 2012.03.14
Lucene에서 사용하는 quickSort 코드  (0) 2012.03.14
sar 결과 분석  (0) 2012.03.14
vmstat 결과 분석  (0) 2012.03.14
bigram analyzer 구현  (0) 2012.03.14