반응형

안녕하세요.


본 포스팅은 'SAN과 NAS 관리자 가이드 (Using SANs and NAS)'를 스터디하며 정리한 내용입니다.


책에 대한 정보는 지난 포스팅 (http://harryp.tistory.com/591)을 참조해 주세요.


* 특별한 출처를 명시하지 않은 내용은 'SAN과 NAS 관리자 가이드'에 나온 내용입니다.



이번 포스팅에서는 다섯 번째 장, 'NAS 구조' 에 대해 다뤄보겠습니다.



1. 초기 NFS와 CIFS의 문제점


유닉스의 NFS와 윈도우의 CIFS (과거 SMB)는 다음의 문제점을 가지고 있다.



(1) 유용성 (Usability)


NFS와 CIFS를 하나의 시스템에서 동시에 이용이 불가능하다.


유닉스의 애플리케이션은 NFS만, 윈도우의 애플리케이션은 CIFS만 접근 가능하여,


동일한 내용의 파일이 NFS, CIFS 각각의 파일시스템에 위치해야 했다.



(2) 관리성 (Manageability)


(1) 의 문제 때문에 관리도 불편했다.



(3) 성능 (Performance)


NFS와 CIFS는 프로토콜 자체의 설계 문제, 많은 양의 단편화를 유발하는 비효율적인 파일시스템 설계 등으로 성능이 좋지 못함.



(4) 가용성 (Availability)


단일 디스크가 고장 날 경우, 전체 시스템에 문제가 생김.


시스템 감시로 빠른 발견도 어려움.



(5) 확장성 (Scalability)


스토리지 확장 시, 시스템 재부팅, 중단 등의 작업을 동반함.



2. NFS와 CIFS 개선


2.1. NFS 개선


(1) Close-to-open file consistency


초기 네트워크 파일시스템은 한 파일을 여러 사용자가 사용하는 것을 고려하지 않고 설계되었다.


이는 파일 일관성을 깨뜨릴 수 있다.


최근의 NFS는 파일 open 시 시스템콜로 휴리스틱 캐싱된 데이터를 조사하고,


파일 close 시 변경된 데이터를 모두 서버에 쓰는 형태로 구현되어 있다.



(2) 동적 재시도 (Dynamic retry)


서버의 데이터 처리량이 변할 수 있는데,


데이터 처리량 변화를 감지하여 재시도 타임아웃 값을 변동 시켜 서비스 최적화를 한다.



(3) 향상된 재시도 캐시 휴리스틱 (Improved retry cache heuristic)


NFS 서버가 과다한 재시도를 요구하면 그에 대한 응답을 피할 수 있게 한다.



(4) 클라이언트의 디스크 캐싱 (Client-side disk caching)


(5) Large block transfer


NFSv2 까지는 한번에 처리되는 데이터 블록의 사이즈가 최대 8kb 까지 였는데,


NFSv3 부터는 서버와 클라이언트 사이의 대역폭을 기반으로 블록 사이즈 조정이 가능하며,


최대 48kb의 블록을 처리할 수 있다.



(6) 안전한 비동기 쓰기 (Safe asynchronous writes)


데이터가 디스크나 NVRAM에 쓰여지기 전에 write 시스템 콜을 호출할 수 있다.


클라이언트카 파일이 제대로 쓰여졌는지 확인하기 위해 커밋 시스템 콜을 호출한다.


실제 쓰기 속도가 늘어나진 않지만,


클라이언트가 애플리케이션이 다른 작업으로 이동하기 전에 기다려야 했던 시간은 줄어든다.



(7) readdirplus 연산


'ls -l' 명령어 등을 빠르게 처리하기 위해 dir read 연산이 개선되고 있다.



(8) TCP에서 사용


최초의 NFS는 UDP 기반이라 네트워크 혼잡 시 문제가 되었다.


TCP로 변경되고 이러한 문제는 줄어들었다.



(9) 보조 프로토콜 제거


초기 NFS의 파일 Lock 은 네트워크 lock 매니저 프로토콜에 의해 관리되었다.


NFSv4 부터는 단일 포트를 이용하는 단일 프로토콜을 사용하고,


파일 Lock이 프로토콜에 포함되어 있다.



(10) 복합 RPC 프로시져


(11) 열기와 닫기 상태 연산


(12) 기타 연산 향상



2.2. CIFS 개선


CIFS는 네트워크로 파일시스템을 마운트 할 뿐만 아니라 프린터, 원격 제어, 네트워크 인증 등을 위해서도 사용할 수 있다.


(1) 파일 액세스


CIFS는 파일 open, close, read, write, 탐색 등 표준 파일 액세스 시스템 콜을 모두 지원한다.



(2) 파일과 레코드 잠금


(3) 안전한 캐싱


여러 클라이언트가 동시에 한 파일에 write 하려는 상황 이외의 상황에서 캐싱을 통해 성능을 향상시킨다.



(4) 파일 변경 통보


파일이 변경되었을 때 알려주는 별도의 애플리케이션을 등록 가능하다.



(5) 프로토콜 버전 협상


여러 버전의 CIFS간의 상호 호환성을 제공한다.



(6) 확장된 속성


(7) 분산 복제된 가상 볼륨


특정 볼륨의 서브 트리가 다른 서버의 볼륨이 될 수 있다.



(8) 독립적인 서버명 해결


CIFS 서버에 대한 네이밍을 할 수 있어 DNS를 사용할 수 있다.



(9) 일괄 요청


클라이언트-서버 간의 요청 여러개를 단일 메시지로 묶어서 처리가 가능하다.



(10) 유니코드 파일명


(11) 순차적 스캐닝


(12) 네이티브 TCP 지원



3. 시스템 구조 개선


(1) 간소화


커널 간소화를 통해 특정 장비 (NAS)에 최적화된 커널을 개발.



(2) NVRAM 캐시


(3) SAN 백엔드


SAN의 장점인 파이버 채널을 이용하는 NAS가 있다.


SAN과 NAS를 혼용 시 SAN의 파이버 채널 백엔드를 NAS가 사용하면 별도의 구축 비용 없이 고성능의 NAS를 사용할 수 있다.



(4) 고급 파일시스템


특정 밴더는 자체 파일시스템을 NAS에 사용하여 성능을 높였다.



4. 높은 가용성과 확장성


(1) 사전 구성 RAID


(2) NVRAM 캐시


(3) Active/active 페일오버


(4) 사전에 설치된 백업 클라이언트


(5) 스냅샷/체크포인트


(6) Host-to-Host 자동 복제



5. 유지 보수의 편리성


(1) 다중 프로토콜 서버


CIFS, NFS, HTTP, FTP 등의 여러 프로토콜을 동시에 사용 가능



(2) 단순한 관리


ssh, telnet 뿐만 아니라 웹 브라우져를 이용해 관리가 가능하다.



(3) 단순화된 물리적 구조


(4) 쉬운 사용

반응형
Posted by 해리팍
BLOG main image

Chanhyun Park (해리팍)
Software Engineer @ SK hynix

Contact Info.
parkch0708@hanmail.net
chanhyun0708@gmail.com
chanhyun.park@sk.com

카테고리

All (1502)
Profile (2)
Park's Life (600)
Computer System (165)
Computer Programming (39)
Computer Study (54)
Computer Etc. (189)
Scuba Diving (137)
Golf (8)
Traveling (245)
생활 정보 (12)
Pokemon GO (50)