디스크 드라이브는 스토리지 시스템의 전반적인 성능을 좌우하는 디바이스다.

 

 디스크 서비스 시간(disk service time)은 I/O 요청을 완료하는 데 걸리는 시간이다. 디스크 드라이브의 서비스 시간에 영향을 주는 요소에는 탐색 시간과 회전 지연 시간, 데이터 전송 속도가 있다.

 

 탐색 시간(seek time[액세스 시간 access  time이라고도 함])은 R/W 헤드를 지름 방향(플래터의 지름을 따라 움직임)으로 움직여 위치시키는 것을 말한다. 다시 말해 암(arm)과 헤드를 올바른 트랙에 옮기는 시간을 말한다. 따라서 탐색 시간이 낮을수록 I/O 연산은 빨라진다. 디스크 제작사는 다음과 같은 탐색 시간 스펙을 발표한다.

 

- 풀 스트로크 (full stroke)

R/W 헤드를 가장 안쪽 트랙에서 가장 바깥쪽 트랙으로 전체 디스크의 길이만큼 움직이는 데 걸리는 시간

 

- 평균

랜덤 트랙 간에 R/W 헤드를 이동하는 데 걸리는 시간으로, 보통 풀 스트로크의 1/3이다.

 

- 트랙에서 트랙

인접한 트랙으로 R/W 헤드를 이동하는 데 걸리는 시간

 

 각 스펙은 밀리초 단위로 측정한다. 디스크의 탐색 시간은 보통 드라이브 제작사가 명시한다. 최신 디스크의 평균 탐색 시간은 3~15밀리초다. 탐색 시간은 인접 트랙보다는 랜덤 트랙에 대한 읽기 연산에 좀 더 영향을 끼친다. 탐색 시간을 최소화하려면 가능한 적은 실린더에 데이터를 기록해야 한다. 이 방법은 실제 사용할 수 있는 용량보다 적은 공간을 사용하게 된다. 예를 들어, 500GB 드라이브를 실린더의 40%만 사용하게 설정해 200GB 드라이브가 되게 한다. 이를 드라이브를 숏 스트로킹(short-stroking)한다고 말한다.

 

 데이터에 액세스하기 위해 작동팔은 R/W 헤드를 특정 트랙으로 옮긴다. 이때 플래터가 회전을 하며 R/W 헤드 아래에 요청한 섹터가 오게 된다. 플래터가 회전해 R/W헤드 아래에 요청한 데이터가 오기까지의 시간을 회전 지연 시간(rotational latency)이라고 한다. 이 지연은 스핀들의 회전 속도에 영향을 받으며 밀리초 단위로 측정된다. 평균 지연 시간은 한 바퀴 회전하는 시간의 1/2이다. 탐색 시간과 마찬가지로 회전 지연 시간도 인접한 섹터를 읽는 연산보다는 랜덤 섹터를 읽는 연산에 영향을 더 미친다.

 

 5,400rpm 드라이브의 평균 회전 지연 시간은 대량 5.5ms이고, 15,000rpm(또는 250rps 초당 회전 수) 드라이브의 평균 지연 속도는 다음과 같다.

 

 15,000rpm(250rps) 드라이브의 평균 회전 지연 시간 = 0.5/250 = 2 밀리초

 

 데이터 전송 속도(data transfer rate)는 단위 시간 동안 드라이브가 HBA로 전송할 수 있는 데이터의 양을 말한다. 데이터 전송 속도를 계산하려면 먼저 읽기/쓰기 연산의 프로세스를 이해해야 한다. 읽기 연산에서는 플래터에서 R/W 헤드로 데이터가 이동한다. 그리고 드라이브의 내부 버퍼(buffer)로 이동한다. 마지막으로 데이터는 버퍼에서 인터페이스를 통해 호스트 HBA로 이동한다. 쓰기 연산에서는 HBA에서 드라이브의 인터페이스를 통해 디스크 드라이브의 내부 버퍼로 이동한다. 그 후 버퍼에서 R/W 헤드로 이동하고 마지막으로 R/W 헤드에서 플래터로 이동한다.

 

 R/W 연산 도중의 데이터 전송 속도는 내부와 외부 전송 속도로 측정된다.

 

 내부 전송 속도(Internal transfer rate)는 플래터에서 디스크의 내부 버퍼(캐시)로 데이터가 이동하는 속도다. 내부 전송 속도는 탐색 시간과 회전 지연 시간의 영향을 받는다. 외부 전송 속도(external transfer rate)는 인터페이스를 통해 HBA로 이동하는 속도다. 외부 전송 속도는 일반적으로 ATA의 133MB/s와 같은 인터페이스의 광고된 속도로 볼 수 있다. 실제 외부 전송 속도는 인터페이스 속도보다는 느리다.

 

 디스크 I/O 컨트롤러의 이용도는 I/O 반응 속도에 상당한 영향을 끼친다. 이 영향을 이해하기 위해 디스크를 다음 두 가지 요소로 구성된 블랙박스로 생각하자.

 

- 큐(queue)

I/O 컨트롤러가 I/O 요청을 처리하기 전에 I/O 요청이 대기하는 곳

 

- 디스크 I/O 컨트롤러

큐에서 대기 중인 I/O를 1개씩 처리한다.

 

 I/O 요청은 애플리케이션이 발생시키는 속도로 컨트롤러에 도착한다. 이를 도착 속도(arrival rate)라고 한다. 이 요청은 I/O 큐에서 대기하고, I/O 컨트롤러는 1개씩 요청을 처리한다. I/O 도착 속도와 큐의 길이 I/O 컨트롤러가 각 요청을 처리하는 시간이 I/O 응답 시간을 결정한다. 만일 컨트롤러가 바쁘거나 너무 많은 요청이 몰리는 경우에는 큐의 크기가 길어지고 응답 시간이 길어진다.

 

 디스크 드라이브 성능의 기본 법치에 근거해, 컨트롤러 이용도와 평균 응답 시간은 다음과 같다.

 

 평균 응답 시간(TR) = 서비스 시간 (Ts) / (1 - 이용도)

 

 여기서 Ts는 컨트롤러가 I/O를 처리하는 데 걸린 시간이다.

 

 이용도가 100%가 되면(즉 I/O 컨트롤러가 포화 상태가 되면) 응답 시간은 무한대에 가까워진다. 근본적으로 포화된 컴포넌트나 병목은 I/O 요청을 순차적으로 처리하게 만든다. 즉 각 I/O 요청은 이전 I/O 요청이 끝나야 처리된다.

 

 평균 큐의 크기가 작은 경우에는 응답 시간은 낮게 유지된다. 큐에 부하가 증가하며 응답 시간이 점차 천천히 증가하다가 이용도가 70%를 넘으면 지수적으로 증가한다. 따라서 성능이 중요한 애플리케이션에서는 I/O 처리 능력의 70% 이하만 사용하게 해야 한다.

'IT > Storage' 카테고리의 다른 글

캐시 와 플러시  (0) 2022.08.09
지능형 스토리지 시스템의 컴포넌트  (0) 2022.08.09
디스크 드라이브 컴포넌트  (0) 2022.06.29
인터페이스 프로토콜과 스토리지  (0) 2022.06.29
컴퓨트 가상화와 연결  (0) 2022.06.29

 

 

- 오픈 파일 에이전트 [open file agents]

운영체제와 직접 상호작용하며 열린 파일에 대한 일관성 있는 백업을 만들 수 있다.

 

- 온디맨드 셀프서비스 [on-demand self-service]

사용자가 서비스 제공자와의 상호작용 없이 자동적으로 필요한 만큼 서비스 시간이나 네트워크 스토리지 같은 컴퓨팅 리소스를 일방적으로 공급할 수 있다.

 

- 온라인 백업 [online backup]

백업 중인 데이터를 애플리케이션이 액세스할 수 있는 백업 형태

 

- 온라인 트랜잭션 처리 [OLTP, Online Transaction Processing]

컴퓨터가 트랜잭션을 받아 마스터 파일을 즉시 수정하는 트랜잭션 처리 시스템

 

- 외부 전송 속도 [external transfer rate]

데이터가 인터페이스를 통해 HBA까지 전송되는 속도

 

- 용량 관리 [capacity management]

서비스 레벨 요구에 따라 서비스에 대한 적정한 리소스 할당을 보장한다.

 

- 운영 데이터 [production data]

서버에 운영하는 애플리케이션이 생성하는 데이터

 

- 운영 백업 [operational backup]

데이터를 잃거나 손상되는 시점에 복구하기 위한 목적으로 유지하는 데이터의 묶음

 

- 운영 비용 [OPEX, operational expenditure]

일반 비즈니스 작업을 처리하는 것과 관련된 비용

 

- 운영 환경 [operating environment]

스토리지 어레이의 운영체제를 가리키는 용어

 

- 원격 백업 [remote backup]

주 스토리지에 대한 사본을 다른 사이트에 있는 백업 미디어에 직접 만든다.

 

- 원격 인증 다이얼인 사용자 서비스 [RADIUS, Remote Authentication Dial-in User Service]

네트워크 리소스에 대한 액세스를 제어하기 위한 인증과 권한, 책임 추적 프로토콜

 

- 원격 프로시저 호출 [RPC, Remote Procedure Call]

프로그래머가 명시적으로 원격 상호작용에 대한 세부 사항을 기술하지 않고도 다른 컴퓨터의 서브루틴이나 프로시저를 실행하게 하는 기술

 

- 월드 와이드 네임 [WWN, World Wide Name]

패브릭의 노드와 포트에 할당된 벤더가 지정한 64비트의 글로벌 고유 식별자

 

- 월드 와이드 노드 네임 [WWNN, World Wide Node Name]

패브릭 로그인에 사용하는 64비트 노드 WWN

 

- 월드 와이드 포트 네임 [WWPN, World Wide Port Name]

패브릭 로그인에 사용하는 64비트 포트 WWN

 

- 웹 기반 기업 관리 [WBEM, Web-Based Enterprise Management]

분산 관리 태스크 포스에서 개발한 웹 기반 기술을 사용하는 관리 및 인터넷 표준 아키텍처의 집합

 

- 웹 콘솔 [web console]

SAN에 대해 원격 및 로컬 네트워크 모니터링을 하는 웹 기반 인터페이스

 

- 위험 분석 [risk analysis]

MTTR과 MTBF로 측정하는 컴포넌트 싪패 속도와 평균 수리 시간을 고려한 BC 프로세스의 일부로 수행되는 분석

 

- 위협 [threats]

IT 인프라스트럭처에 행해지는 공격

 

- 유휴 플러싱 [idle flushing]

캐시 활용도가 하이 워터마크와 로우 워터마크 중간일 때 지속적으로 캐시 데이터를 디스크로 옮긴다.

 

- 응답 시간 [response time]

시스템이나 기능 단위가 주어진 입력에 대응하는 데 걸리는 시간

 

- 이기종 [heterogeneous]

각기 다른 하드웨어와 소프트웨어 시스템을 모으고 조직화해 통합돼 존재하게 하는 것

 

- 이진 대형 객체 [BLOB, Binary Large Object]

파일의 실제 컨텐츠를 나타내는 비트 시퀀스로 구성된 사용자 데이터. 이름과 물리적인 파일의 위치는 컨텐츠와는 무관하다.

 

- 익스텐트 [extent]

하나의 가상 디스크 투 멤버 디스크 어레이 매핑의 일부인 연속적인 주소를 갖는 디스크 블록의 집합

 

- 익스포트 [export]

원격 파일 시스템을 마운트하거나 액세스할 수 있는 유닉스 클라이언트에 파일 시스템을 공개한다.

 

- 인밴드 [in-band]

가상 환경 설정이 데이터 경로 내부에 존재하는 구성

 

- 인싱크 [in-sync]

주 논리 디바이스와 세컨더리 논리 디바이스가 동일한 데이터를 갖고 있음을 의미

 

- 인증 [authentication]

통신에서 전송자의 아이덴티티를 집중하는 과정

 

- 인터넷 보안 프로토콜 [IPSec, Internet Protocol Security]

데이터 스트림의 각 패킷을 인증하거나 암호화해 IP 통신을 안전하게 하는 알고리즘과 프로토콜, 프로시저의 모음

 

- 인터넷 소형 컴퓨터 시스템 인터페이스 프로토콜 [iSCSI, Internet Small Computer System Interface protocol]

SCSI 기반의 IP 기반 프로토콜. 전통 IP 네트워크에 블록 레벨 데이터를 전송한다.

 

- 인터넷 스토리지 네임 서비스 [iSNS, Internet Storage Name Service]

IP 네트워크에 있는 스토리지 디바이스를 자동으로 발견할 수 있는 프로토콜

 

- 인터넷 엔지니어링 태스크 포스 [iETF, Internet Engineering Task Force]

TCP/IP 같은 표준 인터넷 운영 프로토콜을 정의하는 곳

'IT > 용어' 카테고리의 다른 글

IT 용어 정리 -10-  (0) 2022.06.13
IT 용어 정리 -9-  (0) 2022.06.13
IT 용어 정리 -8-  (0) 2022.06.13
IT 용어 정리 -7-  (0) 2022.06.08
IT 용어 정리 -6-  (0) 2022.06.08

 

 

 하드 디스크 드라이브는 플래터와 스핀들, 읽기/쓰기 헤드, 작동팔, 컨트롤러 보드로 구성된다.

 

 HDD에서의 I/O 연산은 자기 물질로 코팅된 회전하는 플래터에 작동팔을 빠르게 움직여 수행된다. 작동팔에 부착된 읽기/쓰기(R/W) 헤드를 통해 디스크 컨트롤러와 플래터 사이에 데이터가 전송된다. 데이터는 자기 플래터에 여러 번 기록되고 삭제될 수 있다. 다음 절에서는 디스크 드라이브의 여러 컴포넌트와 데이터를 저장하고 구성하는 방식과 디스크 성능에 영향을 주는 요소를 알아본다.

 

1. 플래터

 

 일반적인 HDD는 플래터(platter)라 불리는 1개 이상의 원형 디스크로 구성된다. 데이터는 이 플래터에 이진 코드(0과 1)로 기록된다. 플래터는 헤드 디스크 어셈블리(HDA, Head Disk Assembly)라 불리는 케이스에 봉인돼 있다. 플래터는 단단한 원형 디스크로 양면이 자기 물질로 코팅돼 있다. 데이터는 디스크 표면의 자기 영역을 극성화해 저장한다. 플래터 양면 모두에 데이터를 기록하고 읽을 수 있다. 플래터의 개수와 각 플래터의 용량이 드라이브의 전체 용량을 결정한다.

 

2. 스핀들

 

 스핀들(spindle)은 모든 플래터를 연결하고 모터에 연결돼 있다. 스핀들 모터는 일정 속도로 회전한다. 디스크 플래터는 분당 수천 번을 회전한다. 일반적인 스핀들 속도는 5,400rpm과 7,200rpm, 10,000rpm, 15,000rpm이 있다. 플래터 속도는 기술 개발로 계속 증가하고 있지만 개선할 수 있는 범위는 제한된다.

 

 읽기/쓰기(R/W) 헤드는 플래터로부터 데이터를 읽고 쓴다. 드라이브는 각 플래터마다 각 면에 대해 하나씩, 2개의 R/W 헤드를 갖는다. R/W 헤드가 데이터를 기록하면 플래터 표면의 자기 극성이 바뀐다. 데이터를 읽을 때엔 플래터 표면의 자기 극성을 판별한다. 읽고 쓰는 도중에는 R/W 헤드가 자기 극성을 인식하기만 하고 표면을 절대 건드리지 않는다. 스핀들이 회전하면 R/W 헤드와 플래터 사이에 헤드 부상 높이(head flying height)라 불리는 미세한 공기 층이 생긴다. 이 공기 층은 플래터가 회전을 멈추고 플래터 근처의 영역에 머물면 없어진다. 이 영역을 랜딩 존(landing zone)이라 한다. 랜딩 존은 헤드와 플래터 간의 마찰을 줄이기 위해 윤활유로 코팅돼 있다.

 

 디스크 드라이브는 헤드가 표면을 건드리기 전에 랜딩 존으로 이동하도록 설계돼 있다. 드라이브가 잘못 동작해 R/W 헤드가 랜딩 존 밖에서 플래터 표면을 건드리면 헤드 크래시(head crash)가 발생한다. 헤드 크래시는 플래터의 자기 코팅을 손상시키고 R/W 헤드를 손상시킬 수 있다. 헤드 크래시는 데이터 손실을 야기한다.

 

 R/W 헤드는 작동팔 어셈블리(actuator arm assembly)에 장착돼 있으며, 데이터를 읽거나 쓸 플래터의 위치로 R/W 헤드를 이동시킨다. 모든 플래터의 R/W 헤드는 1개의 작동팔 어셈블리에 달려 있으며 플래터 위에서 동시에 움직인다.

 

 컨트롤러는 디스크 드라이브 뒷면에 장착된 인쇄 회로 기관이다. 마이크로프로세서와 내부 메모리, 전기 회로망, 펌웨어로 구성돼 있다. 펌웨어는 스핀들 모터의 전력을 조절해 모터의 속도를 제어한다. 또한 드라이브와 호스트 사이의 통신을 관리한다. 또한 작동팔을 조정하고 R/W 헤드를 선택해 데이터 액세스를 최적화한다.

 

 데이터는 디스크 트랙(track)에 기록된다. 트랙은 플래터 위의 스핀들을 중심으로 한 원을 말한다. 트랙은 가장 중심 트랙부터 0으로 시작하는 번호를 갖는다. 인치당 트랙의 개수(TPI, tracks per inch)는 플래터의 트랙 밀도(track density)를 나타낸다.

 

 각 트랙은 좀 더 작은 섹터(sector)로 나뉜다. 섹터는 스토리지에서 주소로 구분할 수 있는 가장 작은 단위다. 트랙과 섹터 구조는 드라이브 제작사에서 로우 레벨 포맷을 통해 플래터에 기록한다. 트랙당 섹터의 개수는 드라이브 유형에 따라 다르다. 초기 개인 컴퓨터는 각 트랙당 17개의 섹터를 가졌다. 최근의 디스크는 훨씬 많은 수의 트랙을 갖는다. 플래터의 물리적 크기와 밀도에 따라 플래터에 수천 개의 트랙이 있을 수 있다.

 

 보통 섹터는 512바이트의 데이터를 저장한다. 물론 더 큰 섹터 크기를 갖도록 포맷할 수 있는 디스크도 있다. 사용자 데이터 외에 섹터 번호나 헤드 번호, 플래터 번호, 트랙 번호 같은 정보를 저장한다. 이 정보는 컨트롤러가 드라이브에서 데이터를 찾는 것을 도와준다.

 

 실린더는 각 드라이브 플래터의 양쪽 면의 같은 트랙의 집합이다. R/W 헤드의 위치는 트랙 번호가 아닌 실린더 번호를 이용해 나타낸다.

 

 광고의 디스크 용량과 실제 용량은 차이가 있다. 예를 들어 500GB 디스크에는 465.7GB의 사용자 데이터를 저장할 수 있다. 이 차이의 원인은 드라이브 제작사가 디스크 용량을 나타낼 때 10을 기저(base)로 사용하기 때문이다. 즉 이 방식에서 1킬로바이트는 1,204바이트가 아닌 1,000 바이트다. 따라서 실제 사용 가능한 용량은 광고에서 말하는 용량보다 적다.

 

 플래터는 동심원 트랙으로 구성된다. 가장 바깥쪽 트랙은 안쪽 트랙보다 길기 때문에 더 많은 데이터를 저장할 수 있다. 예전 디스크 드라이브에서는 바깥쪽 트랙과 내부 트랙의 섹터 수가 같아서 바깥쪽 트랙의 데이터 밀도가 낮았다. 이 경우 저장 공간이 비효율적으로 사용된다.

'IT > Storage' 카테고리의 다른 글

지능형 스토리지 시스템의 컴포넌트  (0) 2022.08.09
디스크 드라이브 성능  (0) 2022.06.30
인터페이스 프로토콜과 스토리지  (0) 2022.06.29
컴퓨트 가상화와 연결  (0) 2022.06.29
파일 시스템 -2-  (0) 2022.06.29

 

 

 IDE/ATA는 디스크 드라이브와 CD-ROM 드라이브 같은 스토리지 디바이스를 연결하는 데 사용하는 인터페이스 프로토콜 표준이다. 이 프로토콜은 병렬 전송을 지원하며, 병렬 ATA(PATA, Parallel ATA)나 간단히 ATA로 불리기도 한다. IDE/ATA는 여러 표준과 이름이 있다. ATA의 Ultra DMA/133 버전은 초당 133MB의 전송량을 지원한다. 마스터/슬레이브 설정에서 ATA 인터페이스는 각 커넥터마다 2개의 스토리지 디바이스를 지원한다. 그러나 드라이브의 성능이 중요한 경우, 포트를 공유하는 것은 좋지 않다.

 

 이 프로토콜의 직렬 버전은 단일 비트 직렬 전송을 지원하며 직렬 ATA SATA(Serial ATA)라 불린다. SATA는 성능이 좋고 가격이 낮기 때문에 PATA를 빠르게 대체하고 있다. SATA 리비전 3.0dms 6GB/s의 전송 속도를 제공한다.

 

 SCSI는 하이엔드(high-end) 컴퓨터에서 선호되는 연결 프로토콜이다. 이 프로토콜은 병렬 전송을 지원하며, ATA에 비해 더 나은 성능과 확장성, 호환성을 제공한다. 그러나 SCSI는 가격이 매우 높아 개인용 데스크톱에서는 잘 사용되지 않는다. 수년간에 걸쳐 SCSI는 개선됐으며 여러 관련 기술과 표준을 포함하고 있다. SCSI는 1개의 버스에 최대 16개의 디바이스를 지원하고 데이터 전송 속도는 640MB/s이다. (Ultra-640 버전)

 

 SAS(Serial attached SCSI)는 포인트 간 직렬 프로토콜로, 병렬 SCSI의 대안이 되고 있다. 새로운 버전의 직렬 SCSI(SAS 2.0)는 6Gb/s의 데이터 속도를 지원한다.

 

 파이버 채널(Fibre Channel)은 스토리지 디바이스에 대한 초고속 통신을 지원하는 프로토콜이다. 파이버 채널은 기가비트 네트워크 속도를 제공한다. 동선과 광섬유를 통한 직렬 데이터 전송을 지원한다. FC 인터페이스의 최신 버전(16 FC)은 16Gb/s의 데이터 속도를 지원한다.

 

 IP는 호스트 간 통신에 사용하는 네트워크 프로토콜이다. 새로운 기술의 등장으로 IP 네트워크를 호스트와 스토리지 간의 통신에 사용할 수 있게 됐다. IP는 비용과 기술의 성숙도 면에서 큰 장점을 지니며, 조직이 갖고 있는 IP 기반 네트워크를 사용할 수 있다는 장점이 있다. iSCSI와 FCIP 프로토콜은 IP를 사용한 호스트와 스토리지 간의 통신 프로토콜이다.

 

 스토리지는 데이터 센터의 핵심 컴포넌트다. 스토리지 디바이스는 자기 또는 광학, 솔리드 스테이트 미디어(solid state media)를 사용한다. 디스크와 테이프, 디스켓은 자기 미디어를 사용하고, CD/DVD는 광학 미디어를 사용한다. 제거 가능한 플래시 메모리나 플래시 드라이브는 솔리드 스테이트 미디어의 예다.

 

 테이프(tape)는 비용이 낮아 백업에 가장 많이 사용됐다. 그러나 테이프는 성능과 관리성 면에서 다음과 같은 한계가 있다.

 

- 테이프를 따라 선형으로 데이터가 기록된다. 데이터 검색과 추출은 순차적으로 수행되고, 데이터 액세스는 수 초가 걸린다. 결과적으로 랜덤 액세스가 느리고 시간이 많이 소요된다. 이로 인해 실시간의 빠른 데이터 액세스를 필요로 하는 애플리케이션에서는 테이프를 사용할 수 없다.

 

- 공유 컴퓨팅 환경인 경우, 테이프에 저장된 데이터는 여러 애플리케이션이 동시에 액세스할 수 없고 한 번에 한 애플리케이션만 사용할 수 있다.

 

- 테이프 드라이브에서는 읽기/쓰기 헤드는 테이프 표면과 직접 접촉하며, 따라서 반복적으로 사용하면 테이프의 품질이 저하된다.

 

- 테이프에 대한 저장 및 추출 요구사항과 테이프 미디어 관리에 수반되는 오버헤드가 상당하다.

 

 이런 한계로 인해 기업용 데이터 센터의 백업 옵션으로 더 이상 테이프를 선호하지 않게 됐다.

 

 광학 디스크 스토리지(optical disc storage)는 소규모의 단일 사용자 컴퓨팅 환경에서 많이 사용된다. 관학 디스크는 사진을 저장하거나 개인용 랩톱 컴퓨터의 백업용으로 많이 사용된다. 또한 게임 같은 애플리케이션의 배포용으로 사용되며, 컴퓨터 시스템 간의 데이터 전송을 위해서도 사용한다. 광학 디스크는 용량과 속도 면에서 제한이 있으며, 이로 인해 비즈니스 데이터 스토리지로는 잘 사용되지 않는다.

 한 번 기록하고 여러 번 읽을 수 있는(WORM, write once and read many) 기능은 광학 디스크의 장점 중 하나다. CD-ROM은 WORM 디바이스의 일종이다. 광학 디스크는 컨텐츠가 바뀌지 않음을 보장한다. 따라서 생성한 후 바뀌지 않을 적은 양의 고정된 컨텐츠를 장기간 저장하는 데 좋은 저렴한 수단이 될 수 있다. 일렬로 광학 디스크를 모아 놓은 쥬크박스(jukebox)는 고정 컨텐츠를 저장하는 데 사용한다. 광학 디스크의 또 다른 예로는 CD-RW와 블루레이(Blu-ray) 디스크, 여러 종류의 DVD가 있다.

 

 디스크 드라이브(disk drive)는 현대 컴퓨터에서 성능이 중요한 온라인 애플리케이션을 위해 데이터를 저장하고 액세스하는 데 가장 많이 사용된다. 디스크는 랜덤 데이터 위치에 대한 빠른 액세스를 지원한다. 이는 많은 수의 사용자나 애플리케이션이 데이터를 빠르게 기록하고 추출할 수 있음을 의미한다. 또한 디스크는 용량이 크다. 여러 디스크로 디스크 스토리지 어레이를 구성해 많은 저장 공간과 개선된 성능을 얻을 수 있다.

'IT > Storage' 카테고리의 다른 글

디스크 드라이브 성능  (0) 2022.06.30
디스크 드라이브 컴포넌트  (0) 2022.06.29
컴퓨트 가상화와 연결  (0) 2022.06.29
파일 시스템 -2-  (0) 2022.06.29
미러링과 패리티  (0) 2022.06.29

 

 

 보통 한 서버에서 수행되는 여러 애플리케이션이 같은 리소스를 요청하면 리소스 충돌 이슈가 발생한다. 예를 들어 같은 레지스트리 엔트리에 다른 값을 필요로 하거나, 같은 DLL의 다른 버전을 필요로 할 수 있다. 결과적으로 서버는 한 번에 한 애플리케이션만을 실행할 수 있다. 결국 조직은 배치하려는 모든 애플리케이션에 대해 물리적 머신을 구매해야 하고, 이로 인해 매우 값비싸고 유연하지 못한 인프라스트럭처를 갖게 된다. 그러나 각 애플리케이션은 할당된 하드웨어를 전부 사용하진 못한다. 따라서 프로세서와 메모리, 스토리지 같은 리소스의 활용도가 떨어진다. 컴퓨트 가상화는 한 물리적 머신에서 여러 운영체제와 애플리케이션을 실행하게 함으로써 이런 문제를 해결할 수 있다. 이 기술은 서버 활용도를 상당히 높이며 서버를 합칠  수 있게 해준다.

 

 서버를 합치면 조직이 더 적은 수의 서버를 갖고 데이터 센터를 운영할 수 있게 해준다. 그러면 새로운 서버의 비용을 낮추고 운영 비용과 데이터 센터 플로어, 랙 공간 등을 절약할 수 있다. VM을 만드는 것은 물리적 서버를 세팅하는 것보다 시간이 적게 걸린다. 조직은 서버를 쉽고 빠르게 공급할 수 있다. 각 VM은 같은 물리 머신의 다른 VM에 영향을 주지 않고 재시작하거나 업그레이드할 수 있으며, 심지어는 중단되는 경우에도 다른 VM에 영향을 미치지 않는다. 또한 애플리케이션 다운타임 없이 VM을 한 물리적 머신에서 다른 머신으로 복사하거나 옮길 수 있다. 물리적 머신 간의 로드 밸런싱과 하드웨어 관리, 가용성 측면에서 중단 없는 VM 마이그레이션이 필요하다.

 

 전통적인 데스크톱에서는 OS와 애플리케이션, 사용자 프로파일은 모두 특정 하드웨어에 종속돼 있었다. 클라이언트 디바이스가 고장 나거나 분실되면 비즈니스 생산성에 매우 악영향을 미친다. 데스크톱 가상화는 하드웨어와 OS, 애플리케이션, 사용자 프로파일, 설정 간의 의존성을 없애준다. 데스크톱 가상화를 사용하면 IT 스태프가 이런 요소들을 독립적으로 변경하고 업데이트, 배치할 수 있다. 데이터 센터의 데스크톱은 가상 머신에서 실행되며, 사용자는 랩톱이나 데스크톱, 모바일 디바이스(씬(thin) 디바이스라 불림) 등의 여러 클라이언트 디바이스에서 원격으로 이 데스크톱에 액세스한다. 애플리케이션 실행이나 데이터 저장은 각 클라이언트 디바이스가 아닌 데이터 센터에서 중앙 집중적으로 처리된다. 조직의 데이터 센터 안에서 가상 머신으로 데스크톱이 운영되기 때문에 데이터 유출이나 도난의 위험을 줄여준다. 또한 중앙화된 백업이 가능하며 규정 절차를 단순화할 수 있다. 가상 데스크톱은 쉽게 패치를 적용할 수 있고, 새로운 애플리케이션과 OS를 간단히 설치할 수 있으며, 사용자를 중앙에서 관리하기 때문에 관리적인 측면에서 이득이 많다.

 

 연결(connectivity)이란 호스트 사이 또는 호스트와 프린터, 스토리지 디바이스 같은 주변 기기와의 연결을 말한다. 여기서는 호스트와 스토리지 디바이스 사이의 연결만 다룬다. 호스트와 스토리지 사이의 연결과 통신은 물리적 컴포넌트와 인터페이스 프로토콜을 통해 이뤄진다.

 

 연결의 물리적 컴포넌트는 호스트와 스토리지를 연결하는 하드웨어 요소다. 여기에는 호스트 인터페이스 디바이스와 포트, 케이블이라는 세 가지 컴포넌트가 있다.

 

 호스트 인터페이스 디바이스(host interface device)나 호스트 어댑터(host adapter)는 호스트와  다른 호스트 또는 호스트와 스토리지 디바이스를 연결한다. 호스트 인터페이스 디바이스의 예로는 호스트 버스 어댑터(HBA, host bus adapter)와 네트워크 인터페이스 카드(NIC, network interface card)가 있다. 호스트 버스 어댑터는 주문형 반도체(ASIC, application-specific integrated circuit) 보드의 일종으로 호스트와 스토리지 사이에 I/O 인터페이스 기능을 수행하며, CPU의 I/O 프로세싱 부담을 덜어준다. 호스트는 여러 개의 HBA를 갖는다.

 

 포트(port)는 호스트와 외부 디바이스를 연결해주는 통로다. HBA는 호스트와 스토리지 디바이스를 연결하는 1개 이상의 포트를 가질 수 있다. 케이블(cable)은 구리 또는 광섬유 미디어를 사용해 호스트와 내부 혹은 외부 디바이스를 연결한다.

 

 프로토콜(protocol)은 호스트와 스토리지 사이의 통신을 가능케 한다. 프로토콜은 인터페이스 디바이스(또는 컨트롤러)를 사용해 양쪽 소스와 목적지에서 구현한다. 많이 사용되는 인터페이스 프로토콜로는 IDE/ATA(Integrated Device Electronics/Advanced Technology Attachment)와 SCSI(Small Computer System Interface), FC(Fibre Channel), IP(Internet Protocol)가 있다.

 

 IDE/ATA는 디스크 드라이브와 CD-ROM 드라이브 같은 스토리지 디바이스를 연결하는 데 사용하는 인터페이스 프로토콜 표준이다. 이 프로토콜은 병렬 전송을 지원하며, 병렬 ATA(PATA, Parallel ATA)나 간단히 ATA로 불리기도 한다. IDE/ATA는 여러 표준과 이름이 있다. ATA의 Ultra DMA/133 버전은 초당 133MB의 전송량을 지원한다. 마스터/슬레이브 설정에서 ATA 인터페이스는 각 커넥터마다 2개의 스토리지 디바이스를 지원한다. 그러나 드라이브의 성능이 중요한 경우, 포트를 공유하는 것은 좋지 않다.

'IT > Storage' 카테고리의 다른 글

디스크 드라이브 컴포넌트  (0) 2022.06.29
인터페이스 프로토콜과 스토리지  (0) 2022.06.29
파일 시스템 -2-  (0) 2022.06.29
미러링과 패리티  (0) 2022.06.29
RAID  (0) 2022.06.29

 

 

 파일 시스템 블록(block)은 데이터를 저장하기 위해 할당하는 가장 작은 단위다. 각 파일 시스템 블록은 물리적 디스크에서의 연속 영역이다. 파일 시스템의 블록 크기는 생성 시 지정한다. 파일 시스템의 크기는 블록의 크기와 블록의 전체 개수로 정해진다. 파일은 블록 크기보다 큰 경우가 대부분이기 때문에 파일 시스템의 여러 블록을 사용한다. 새로운 블록을 추가하거나 삭제하면 연속적인 블록이 파편화될 수 있다. 파일이 점점 커지면 파일 시스템이 점점 파편화된다.

 

 다음은 사용자 파일을 LVM을 사용하는 디스크 스토리지 서브 시스템에 매핑하는 과정이다.

 

1. 사용자와 애플리케이션이 파일을 만들고 관리한다.

2. 이 파일은 파일 시스템에 존재한다.

3. 파일 시스템은 파일 시스템 블록에 매핑된다.

4. 파일 시스템 블록은 논리 볼륨의 논리적 익스텐트로 매핑된다.

5. 논리적 익스텐트는 OS나 LVM에 의해 물리적 익스텐트로 매핑된다.

6. 이 물리적 익스텐트는 스토리지 서브 시스템의 디스크 섹터로 매핑된다.

 

 LVM이 없다면 논리적 익스텐트도 없고, 파일 시스템 블록이 직접 디스크 섹터로 매핑된다.

 

 파일 시스템 트리(file system tree)는 루트 디렉토리(root directory)에서 시작한다. 루트 디렉토리는 여러 서브디렉토리를 갖는다. 파일 시스템은 사용하기 전에 마운트해야 한다. 

 

 fsck 시스템 유틸리티는 유닉스와 리눅스 호스트의 파일 시스템 일관성을 체크하는 데 사용한다. 파일 시스템의 일관성이 깨지는 예로는, 파일 시스템에 상당한 변화가 있고 변경 사항이 디스크에 커밋(commit)되기 전에 컴퓨터 시스템이 중단된 경우가 있다. 부팅 시에 fsck 명령어가 성공적인 부팅을 위해 파일 시스템의 일관성을 체크한다. 파일 시스템이 일관적이면 다른 모든 파일 시스템의 일관성을 체크한다. 비일관적인 상태의 파일 시스템이 있으면 마운트하지 않는다. 이런 파일 시스템은 fsck 명령어가 자동으로 복구하거나 사용자 인터페이스를 통해 복구할 수 있다. CHKDSK 명령어는 DOS와 OS/2, 마이크로소프트 윈도우에서 사용한다.

 

 파일 시스템은 크게 저널링 파일 시스템과 비저널닝 파일 시스템으로 나눌 수 있다. 비저널닝 파일 시스템(nonjournaling file system)은 데이터와 메타데이터를 업데이트할 때 별도의 쓰기 연산을 사용하기 때문에 파일을 잃을 수 있는 잠재적인 위험을 갖고 있다. 쓰기 도중 시스템이 중단되면 메타데이터나 데이터가 깨지거나 잃어버릴 수 있다. 시스템을 다시 부팅하면 파일 시스템은 메타데이터를 조사하고 복구해 메타데이터의 구조를 업데이트하려 한다. 이 작업은 큰 파일 시스템에서는 매우 오래 걸린다. 이전 구조를 복구하는 데 필요한 정보가 없는 경우에는 파일의 위치가 잘못되거나 잃게 돼 파일 시스템이 망가진다.

 

 저널링 파일 시스템(journaling file system)은 로그(log) 또는 저널(journal)이라 불리는 별도의 영역을 사용한다. 이 저널에는 모든 쓰기 연산의 데이터를 저장하거나(물리적 저널) 또는 업데이트된 메타데이터(논리적 저널)만 가질 수 있다. 파일 시스템에 변경 사항을 적용하기 전에 먼저 이 영역에 변경 사항을 기록한다. 저널을 업데이트한 후 파일 시스템에 대한 작업을 수행한다. 작업 도중 시스템이 중단돼도 로그 레코드를 재실행해 작업을 완료할 수 있는 충분한 정보가 로그에 있다. 저널링은 파일 시스템 체크 과정을 빠르게 해준다. 이는 체크 시에 가장 최근에 액세스된 부분만을 체크하면 되기 때문이다. 또한 지연된 작업에 대한 정보도 저장되기 때문에 파일을 잃을 위험도 줄어든다.

 

 저널링 파일 시스템의 단점은 여타 파일 시스템보다 느리다는 점이다. 이 속도 저하는 파일 시스템을 변경할 때마다 저널에 대한 부가적인 작업을 수행해야 하기 때문이다. 그러나 파일 시스템 체크 시간이 줄어들고 파일 시스템의 정합성이 보장된다는 장점이 단점보다 훨씬 크다. 오늘날 거의 대부분의 파일 시스템은 저널링을 사용한다.

 

 전용 파일 서버를 설치해 네트워크를 통해 파일을 관리하고 공유할 수 있다. 이런 파일 서버는 여러 파일 시스템을 지원하며, 운영체제에 특화된 파일 공유 프로토콜을 사용한다. 이런 파일 시스템의 예로는 NFS와 CIFS가 있다.

 

 컴퓨트 가상화는 운영체제로부터 물리적 하드웨어를 감추는 기술이다. 단일 또는 클러스터 머신에서 여러 운영체제를 동시에 운영할 수 있다. 이 기술로 가상 머신(VM, virtual machine)이라 불리는 포터블(portable) 가상 컴퓨트 시스템을 만들 수 있다. 각 VM은 고립된 방식으로 운영체제와 애플리케이션을 실행한다. 하드웨어와 가상 머신 사이의 가상화 레이어를 이용해 컴퓨트 가상화를 실현한다. 이 레이어는 하이퍼바이저(hypervisor)라고도 불린다. 하이퍼바이저는 CPU와 메모리, 네트워크 같은 하드웨어 리소스를 가상 머신에 제공한다. 물리적인 서버의 하드웨어 사양에 따라 한 서버 안에 많은 가상 머신을 만들 수 있다.

 

 가상 머신은 논리적인 요소이지만 운영체제에게는 CPU와 메모리, 네트워크 컨트롤러, 디스크를 가진 물리적 호스트로 인식된다. 그러나 모든 VM은 같은 물리적인 하드웨어를 독립적으로 공유한다. 하이퍼바이저의 관점에서 가상 머신은 VM 설정 파일과 데이터 파일 등의 독립적인 파일의 집합이다.

'IT > Storage' 카테고리의 다른 글

인터페이스 프로토콜과 스토리지  (0) 2022.06.29
컴퓨트 가상화와 연결  (0) 2022.06.29
미러링과 패리티  (0) 2022.06.29
RAID  (0) 2022.06.29
볼륨 매니저와 파일 시스템  (0) 2022.06.29

 

 

 스트라이프 크기는 스트립 크기와 RAID 집합에 있는 데이터 디스크 개수의 곱이다. 예를 들어, 스트라이핑된 RAID에 5개의 디스크가 있고 스트립 크기가 64KB라면, 스트라이프의 크기는 320KB(64KB X 5)가 된다. 스트라이프 너비(stripe width)는 스트라이프 안에 있는 데이터 스트립의 개수를 말한다. 바로 다음에 설명할 패리티나 미러링을 사용하지 않는 경우 스트라이프 RAID 자체는 데이터 보호 기능을 제공하지 않는다.

 

 미러링(mirroring)은 같은 데이터를 2개의 디스크에 저장해 데이터 사본을 2개 만드는 기술이다. 한 디스크 드라이브가 고장 나더라도 살아 있는 디스크 드라이브의 데이터는 손상되지 않고 컨트롤러는 미러 쌍의 살아 있는 디스크를 사용해 호스트의 데이터를 요청을 계속 처리할 수 있다.

 

 고장 난 디스크를 새 디스크로 교환하면 컨트롤러는 미러 쌍의 살아 있는 디스크에서 데이터를 복사한다. 이 작업은 호스트가 알지 못하게 수행된다.

 

 완전한 데이터 중복을 제공하는 거 외에도 미러링은 디스크 고장으로부터 빠르게 복구할 수 있게 해준다. 그러나 디스크 미러링은 데이터 보호를 제공하는 것이지 데이터 백업을 대체하기 위한 것은 아니다. 미러링은 데이터 변경 사항을 계속 감시하는 반면에 데이터 백업은 특정 시간의 데이터를 저장하는 것을 말한다.

 

 미러링은 데이터 중복을 발생시켜, 데이터를 저장하는 데 저장 용량이 두 배가 필요하다. 따라서 미러링은 비용이 많이 들며, 데이터 손실의 위험을 감수할 수 없는 중요한 애플리케이션에서 사용한다. 미러링을 사용하면 두 디스크에서 읽기 요청을 처리할 수 있어 읽기 성능을 향상시킬 수 있다. 그러나 쓰기 요청을 두 디스크에서 수행해야 하기 때문에 쓰기 성능은 약간 저하될 수 있다. 미러링은 스트라이프 RAID와 동일한 수준의 쓰기 성능을 제공하지 못한다.

 

패리티(parity)는 미러링 비용 없이 디스크 드라이브 고장으로부터 스트라이핑된 데이터를 보호하기 위한 방법이다. 손상된 데이터를 복구하기 위한 수학적인 요소인 패리티를 저장할 디스크 드라이브가 1개 추가된다. 패리티는 데이터 전체의 복사본을 유지하지 않고도 데이터를 보호할 수 있는 중복 기술이다. RAID 컨트롤러가 패리티를 계산한다.

 

 패리티 정보는 별도의 전용 디스크 드라이브에 저장되거나 RAID 집합의 모든 드라이브에 분산해 저장할 수 있다. '데이터 디스크'라고 돼 있는 디스크는 데이터를 저장한다. '패리티 디스크'라고 돼 있는 디스크는 패리티 정보를 저장한다. 각 행에 있는 요소의 합을 저장하기도 한다. 이제 한 데이터 디스크가 고장 나면 손상된 값은 패리티 값에서 나머지 요소 값의 합을 빼서 계산할 수 있다. 여기서는 간단히 설명하기 위해 데이터의 합으로 패리티 값의 계산을 표현했다. 그러나 패리티 계산은 XOR 비트 연산을 사용한다.

 

 패리티 기술은 미러링에 비해 저렴한 비용으로 구현할 수 있다. 4개의 데이터 디스크와 1개의 패리티 디스크로 구성된 패리티 RAID를 생각해보자. 100%의 추가 공간을 필요로 하는 미러링에 비해 이런 패리티 구성은 25%의 추가 디스크 공간만을 필요로 한다. 그러나 패리티에도 몇 가지 단점이 있다. 패리티 정보는 데이터 디스크의 데이터를 사용해 만들어진다. 따라서 데이터가 변경될 때마다 패리티를 다시 계산해야 한다. 이 재계산은 시간이 걸리며 RAID 어레이의 성능에 영향을 미친다.

 

 패리티 RAID에서 스트라이프 크기를 계산할 때는 패리티 스트립을 포함하지 않는다. 예를 들어 64KB 스트립 크기의 5개(4 + 1) 디스크 패리티 RAID 집합에서 스트라이프 크기는 256KB(64KB X 4)이다.

 

-RAID 레벨

 

 RAID 레벨을 선택할 때는 애플리케이션 성능과 데이터 가용성 요구 조건, 비용을 고려해야 한다. RAID 레벨은 스트라이핑과 미러링, 패리티 기술로 결정된다. 어떤 RAID 레벨은 한 기술만 사용하는 반면에, 또 어떤 레벨은 여러 기술을 조합해 사용한다.

 

레벨 설명
RAID 0 장애 복구 기능이 없는 스트라이핑된 집합
RAID 1 디스크 미러링
중첩 RAID 레벨의 조합. 예: RAID 1 + RAID 0
RAID 3 병렬 액세스가 가능한 스트라이핑된 집합과 전용 패리티 디스크
RAID 4 독립 디스크 액세스를 사용하는 스트라이핑된 집합과 전용 패리티 디스크
RAID 5 독립 디스크 액세스를 사용하는 스트라이핑된 집합과 분산 패리티
RAID 6 독립 디스크 액세스를 사용하는 스트라이핑된 집합과 듀얼 분산 패리티

 RAID 0은 데이터가 RAID 집합의 모든 디스크에 데이터를 스트라이핑하는 구성이다. 따라서 RAID 집합의 모든 디스크 공간을 사용할 수 있다. 데이터를 읽을 때는 컨트롤러가 모든 스트립을 모으는 역할을 한다. RAID 집합의 드라이브 개수를 늘리면 동시에 읽거나 쓸 수 있는 데이터의 양이 증가하기 때문에 성능이 향상된다. RAID 0은 높은 I/O 처리량이 필요한 애플리케이션에 적합하다. 그러나 디스크 고장 시에도 높은 가용성이 필요한 경우 RAID 0은 데이터 보호나 가용성을 제공하지 못한다.

 

 RAID 1은 미러링 기술을 사용한다. 이 RAID 구성에서는 장애 복구 기능을 제공하기 위해 데이터를 미러링한다. RAID 1 집합은 2개의 디스크 드라이브로 구성되며, 모든 쓰기는 두 디스크에 모두 기록된다. 미러링은 호스트가 알지 못하게 이뤄진다. 디스크 고장이 발생하는 경우 RAID 1은 모든 RAID 구성 중에서 데이터 복구의 부하가 가장 작다. 이는 데이터 복구는 RAID 컨트롤러가 미러 디스크를 사용하는 것으로 이뤄지기 때문이다. RAID 1은 높은 고가용성이 요구되며 비용 제한이 없는 경우에 적합하다.

'IT > Storage' 카테고리의 다른 글

컴퓨트 가상화와 연결  (0) 2022.06.29
파일 시스템 -2-  (0) 2022.06.29
RAID  (0) 2022.06.29
볼륨 매니저와 파일 시스템  (0) 2022.06.29
DBMS와 호스트  (0) 2022.06.29

 

 

 1980년대 후반에 비즈니스 프로세스에 컴퓨터를 많이 사용하면서 새로운 애플리케이션과 데이터베이스가 등장했고, 이에 스토리지 용량과 성능에 대한 수요가 빠르게 증가했다. 그 당시에는 단일 대용량 고비용 드라이브(SLED, Single Large Expensive Drive)라는 크고 비싼 디스크 드라이브 1개를 사용해 데이터를 저장했다. 단일 드라이브는 제한된 수의 I/O를 제공할 수밖에 없기 때문에 필요한 성능 수준을 맞출 수 없었다.

 

 오늘날의 데이터 센터는 수백 개의 디스크 드라이브를 사용한다. 디스크 드라이브는 기계적인 수명과 환경적인 요인으로 인해 장애가 발생하며, 이는 데이터 손실을 의미한다. 스토리지 어레이에 디스크 드라이브의 개수가 늘어날수록 디스크 고장의 확률도 증가한다. 예를 들어 평균 기대 수명이 750,000시간인 디스크 드라이브 100개를 가진 스토리지 어레이를 생각해보자. 이 어레이의 평균 기대 수명은 750,000/100, 즉 7,500시간이다. 이는 이 어레이의 디스크 드라이브 중 1개가 최소 7,000시간 내에 고장 날 것임을 의미한다.

 

 RAID는 디스크 고장으로부터 데이터를 보호하기 위해 여러 드라이브를 집합으로 사용하는 기술이다. 일반적으로 RAID 구성은 여러 디스크로부터 I/O를 동시에 수행해 스토리지 시스템의 성능도 향상시킨다. 최신 플래시 메모리를 사용하는 어레이도 RAID를 사용해 데이터 보호와 성능 향상을 얻고 있다.

 

 1987년 캘리포니아대학교 버클리 캠퍼스의 패터슨(Patterson)과 깁슨(Gibson), 카츠(Katz)는 'A Case for Redundant Arrays of Inexpensive Disks(RAID)'라는 제목의 논문을 발표했다. 이 논문은 작은 용량의 저렴한 디스크 드라이브를 메인프레임에서 많이 사용하는 대용량 드라이브를 대체하는 방법을 제안했다. 그 후 RAID 용어는 최신 스토리지 기술의 발전을 반영하기 위해 독립적인(independent) 디스크로 변경됐다. RAID 기술은 현재 학계의 아이디어에서 산업 표준으로 발전했으며, 오늘날 스토리지 어레이를 구현하는 데 많이 사용된다.

 

 RAID를 구현하는 방법으로 하드웨어와 소프트웨어 두 가지가 있다. 두 방법 모두 각기 장단점이 있다.

 

1. 소프트웨어 RAID

 

 소프트웨어 RAID는 호스트 기반 소프트웨어를 사용해 RAID 기능을 제공한다. 운영체제 레벨에서 구현되며, RAID 어레이를 제어하기 위해 전용 하드웨어 컨트롤러를 사용하지 않는다.

 

 소프트웨어 RAID는 하드웨어 RAID에 비해 비용이 저렴하고 단순하다는 장점이 있다. 그러나 다음과 같은 제한이 있다.

 

- 성능

소프트웨어 RAID는 전체 시스템 성능에 영향을 끼친다. 이는 RAID 계산을 위해 부가적인 CPU 사이클을 사용하기 때문이다.

 

- 기능

소프트웨어 RAID는 모든 RAID 레벨을 지원하진 않는다.

 

- 운영체제 호환성

소프트웨어 RAID는 호스트 운영체제와 긴밀하게 연결돼 있다. 따라서 소프트웨어 RAID나 운영체제를 업그레이드할 때는 호환성을 검증해야 한다. 이는 데이터 프로세싱 환경의 유연성을 떨어뜨린다.

 

2. 하드웨어 RAID

 

 하드웨어 RAID에서는 호스트나 어레이에 전용 하드웨어 컨트롤러를 사용한다. 컨트롤러 카드 RAID는 호스트 기반 하드웨어 RAID로, 전용 RAID 컨트롤러를 호스트에 설치하고 디스크 드라이브를 이곳에 연결한다. 제조사는 RAID 컨트롤러를 마더보드에 통합하기도 한다. 호스트 기반 RAID 컨트롤러는 많은 호스트를 사용하는 데이터 센터에는 효율적이지 않다.

 

 외장 RAID 컨트롤러는 어레이 기반 하드웨어 RAID이다. 이는 호스트와 디스크 사이의 인터페이스로 동작한다. 호스트에 스토리지 볼륨을 제공하며, 호스트는 이 볼륨을 물리적 드라이브로 취급한다. RAID 컨트롤러의 주요 기능은 다음과 같다.

 

 - 디스크 집합(aggregation)의 관리와 제어

 - 논리적 디스크와 물리적 디스크 사이의 I/O 요청 변환

 - 디스크 고장 시 데이터 복구

 

 RAID 어레이(RAID array)는 여러 개의 디스크 드라이브와 RAID를 구현하기 위한 하드웨어로 구성된다. RAID 어레이의 디스크를 그룹화해 RAID 집합 또는 RAID 그룹이라고 하는 논리적 어레이를 형성할 수 있다.

 

 스트라이핑과 미러링, 패리티 같은 RAID 기술은 여러 RAID 레벨을 정의하는 데 기초가 된다. 이 기술은 RAID 집합의 데이터 가용성과 성능을 결정한다.

 

 스트라이핑(striping)은 데이터를 1개 이상의 드라이브에 저장해 드라이브를 병렬로 사용할 수 있게 하는 기술을 말한다. 여러 읽기/쓰기 헤드가 동시에 일을 하기 때문에 1개의 디스크를 사용했을 때보다 데이터를 좀 더 빠르게 처리하고 성능을 향상시킬수 있다.

 

 RAID 집합의 각 디스크에서 정해진 개수의 연속적인 주소 디스크 블록을 스트립(strip)으로 정의한다. RAID 집합에 있는 모든 디스크의 같은 위치의 스트립을 스트라이프(stripe)라고 한다.

 

 스트립 크기(strip size[스트라이프 깊이 stripe depth라고도 함])는 스트립에 있는 블록의 개수를 말하고, 액세스하려는 데이터가 스트립의 시작 위치에 있다고 가정하면 한 디스크에서 읽거나 쓸 수 있는 데이터의 최대량이 된다. 스트라이프의 모든 스트립은 같은 개수의 블록을 갖는다. 스트립의 크기가 작을수록 데이터를 더 작은 크기로 잘라 분산시킨다.

'IT > Storage' 카테고리의 다른 글

파일 시스템 -2-  (0) 2022.06.29
미러링과 패리티  (0) 2022.06.29
볼륨 매니저와 파일 시스템  (0) 2022.06.29
DBMS와 호스트  (0) 2022.06.29
가상화와 클라우드 컴퓨팅  (0) 2022.06.29

+ Recent posts