초록
ftScalable™ 스토리지 및 ftScalable 스토리지 G2 어레이는 매우 유연하고 확장 가능한 하드웨어 스토리지 하위 시스템입니다. 다양한 RAID 유형과 구성 옵션의 장점과 단점, 특히 OpenVOS 운영 체제와의 상호작용 방식을 이해하면 최적의 디스크 토폴로지를 구축할 수 있습니다.
이 백서는 ftScalable Storage가 지원하는 다양한 RAID 유형을 상세히 설명하며, 각 유형의 장단점, 일반적인 사용 사례, 그리고 OpenVOS 애플리케이션에 가장 적합한 디스크 토폴로지를 설계하는 방법을 제시합니다.
용어
다음 용어집은 본 문서에서 사용되는 일반적인 저장 산업 용어들을 정의합니다.
저하 모드. VDISK의 물리적 디스크 드라이브 중 하나가 고장난 후, 그러나 복구 작업이 시작되기 전의 VDISK 작동 모드입니다. 이 작동 모드에서는 VDISK가 완전히 중복되지 않으며, 이후 물리적 드라이브 고장으로 인해 해당 VDISK를 잃을 수 있습니다.
HBA 또는 호스트 버스 어댑터. 서버와 저장 장치 간 입출력(I/O) 처리 및 물리적 연결을 제공하는 PCI-X 또는 PCI-e 회로 기판 또는 집적 회로 어댑터.
논리 디스크. 하나 이상의 구성원 디스크를 포함하는 OpenVOS 논리 볼륨입니다. 각 구성원 디스크는 D910 파이버 채널 디스크 인클로저 내의 단일 물리 디스크, ftScalable Storage 어레이 내의 LUN, 또는 두 유형 중 하나 또는 둘 모두의 이중화 쌍일 수 있습니다.
LUN 또는 논리적 단위. ftScalable Storage 어레이 내의 VDISK 전체 또는 그 하위 단위입니다.
다중 구성원 논리 디스크. 최소 두 쌍의 이중화 구성원 디스크로 구성되며, 데이터가 모든 구성원 디스크 쌍에 걸쳐 스트라이핑되는 OpenVOS 논리 볼륨 .
RAID 오버헤드. 특정 RAID 유형에서 중복성을 제공하기 위해 사용되는 물리적 드라이브 용량의 양 . 예를 들어, RAID1 VDISK의 경우, 각 드라이브의 데이터가 미러링된 파트너 드라이브에 복제되므로 VDISK를 구성하는 물리적 드라이브의 총 용량의 50%가 됩니다.
복구 모드. 드라이브 장애 발생 후 VDISK가 재구축되는 동안의 작동 모드입니다. 이 작동 모드에서는 VDISK가 완전히 중복되지 않으며, 이후 물리적 드라이브 장애가 발생할 경우 해당 VDISK를 손실할 수 있습니다.
스트라이핑. 데이터를 블록으로 분할하여 여러 물리 디스크에 걸쳐 블록을 기록함으로써 I/O 성능을 향상시키는 방법.
VDISK 또는 가상 디스크. ftScalable Storage 어레이 내 하나 이상의 물리 디스크 드라이브 그룹으로, 특정 RAID 유형을 사용하여 구성되며, 정의된 LUN 수에 따라 운영 체제에 하나 이상의 디스크로 인식됩니다.
본 문서에서는 Stratus의 VOS 및 OpenVOS 운영 체제를 지칭할 때 "VOS"와 "OpenVOS"라는 용어를 상호 교환하여 사용합니다.
1.0 RAID 유형
ftScalable 스토리지 어레이는 다양한 RAID 유형을 지원합니다. 여기에는 오류 허용형이 아닌 RAID 유형(RAID-0, NRAID), 패리티 기반 RAID 유형(RAID-3, RAID-5 및 RAID-6), 미러링 RAID 유형(RAID-1) 및 조합 RAID 유형(RAID-10, RAID-50)이 포함됩니다. 각 VDISK 생성 시 RAID 유형을 반드시 지정해야 합니다.
각 RAID 유형은 고유한 가용성, 비용, 성능, 확장성 및 서비스 가능성 특성을 지닙니다. 이를 이해하면 어레이 디스크 토폴로지를 구성할 때 정보에 기반한 선택을 할 수 있습니다.
1.1 비내결함성 RAID 유형
ftScalable Storage에서는 두 가지 비내결함성 RAID 유형인 RAID-0 및 NRAID를 사용할 수 있습니다.
1.1.1 RAID-0
RAID-0 VDISK는 최소 두 개의 물리적 디스크 드라이브로 구성되며, 데이터는 세트 내 모든 물리적 디스크 드라이브에 걸쳐 스트라이핑됩니다. 이는 최고 수준의 I/O 성능을 제공하지만, 장애 허용 기능을 제공하지 않습니다. 물리적 디스크 드라이브 하나라도 손실되면 이 VDISK의 데이터가 완전히 손실됩니다.
RAID-0은 오류 허용 기능이 없는 RAID 유형이므로, ftScalable Storage 어레이는 한계 상태이거나 고장난 물리적 디스크 드라이브를 자동으로 서비스에서 제외하고 사용 가능한 예비 디스크 드라이브를 사용하여 데이터를 사전 예방적으로 재구성할 수 없습니다. 대신 복구는 이중화된 디스크를 통한 기존 OpenVOS 시스템의 오류 허용 기능에 완전히 의존합니다.
결과적으로, RAID-0 VDISK를 재구성하고 복구하려면 일련의 수동 서비스 작업(고장난 VDISK 삭제, 불량 물리 디스크 물리적 제거, 교체용 물리 드라이브 설치, VDISK 재구성, 논리 디스크 재포맷, VOS를 통한 재듀플렉싱)이 필요합니다. 이러한 복구 작업이 모두 완료될 때까지 데이터는 심플렉스 상태로 유지됩니다. 물리 드라이브 삽입 또는 제거가 I/O 처리에 미치는 영향에 대한 자세한 내용은 섹션 11.0, "물리 디스크 드라이브 삽입 및 제거: I/O 성능에 미치는 영향"을 참조하십시오 .
Stratus는 OpenVOS에서 제공하는 소프트웨어 기반 미러링을 함께 사용하지 않고 이 RAID 유형을 사용하는 것을 권장하지 않습니다. OpenVOS 미러링을 사용하더라도, 수동 서비스 작업과 데이터의 완전한 중복성을 복원하는 데 필요한 관련 시간을 고려할 때 데이터 손실 가능성을 반드시 고려해야 합니다.
1.1.2 NRAID
NRAID VDISK는 기본적으로 장애 허용 기능이 전혀 없는 단일 물리 디스크 드라이브입니다. 스트라이핑을 제공하지 않으므로 단일 물리 디스크 드라이브의 성능 특성을 가집니다. NRAID VDISK는 RAID-0 VDISK와 동일한 가용성 및 서비스 가능성 특성을 모두 갖추고 있습니다.
1.2 패리티 기반 RAID 유형: RAID-3, RAID-5, RAID-50 및 RAID-6
ftScalable Storage 어레이는 RAID-3, RAID-5, RAID-50 및 RAID-6의 네 가지 유형의 패리티 기반 VDISK를 지원합니다. RAID-3 및 RAID-50의 사용 빈도가 낮은 점을 고려하여, 본 백서는 보다 일반적으로 사용되는 RAID-5 및 RAID-6 유형에 중점을 둡니다.
이러한 RAID 유형은 패리티 기반 알고리즘과 스트라이핑을 사용하여 미러링에 비해 비용을 절감하면서도 높은 가용성을 제공합니다. RAID-5 VDISK는 XOR 생성 패리티 데이터 저장을 위해 물리적 디스크 드라이브 1개 분량의 용량을 사용합니다. 반면 RAID-6 VDISK는 XOR 및 리드-솔로몬 패리티 데이터를 모두 생성하여 저장하므로 물리적 디스크 드라이브 2개 분량의 용량을 사용합니다. RAID-5 및 RAID-6 VDISK 모두 패리티와 데이터 블록을 세트 내 모든 물리적 디스크 드라이브에 분산 저장합니다.
패리티 기반 RAID 유형을 사용하는 VDISK는 미러링 RAID 유형에 비해 RAID 오버헤드에 필요한 저장 용량이 적습니다. RAID-5 VDISK를 생성하는 데 필요한 최소 물리 디스크 드라이브 수는 3개이며, RAID-6의 경우 최소 4개가 필요합니다.
RAID-5 VDISK는 단일 디스크 드라이브 장애 시 데이터 손실 없이 생존할 수 있으며, RAID-6 VDISK는 두 개의 드라이브 장애를 견딜 수 있습니다. ftScalable 스토리지 어레이는 데이터 가용성에 영향을 주지 않고 VDISK에서 성능이 저하되거나 고장난 물리적 디스크 드라이브를 사전 예방적으로 제거할 수 있습니다. 또한 예비 드라이브가 사용 가능한 경우, 운영 체제에 투명하게 처리되므로 운영자의 개입, 물리적 드라이브 삽입 또는 OpenVOS에서 논리 디스크의 듀플렉스 재설정이 필요 없이 복구 모드가 자동으로 시작됩니다. 이후 고장난 디스크 드라이브 교체 및 새 예비 드라이브 생성 일정을 조정할 수 있습니다. 단, 물리적 드라이브 제거 및 삽입이 I/O 처리에 미치는 영향에 대한 자세한 내용은 섹션 11.0, "물리적 디스크 드라이브 삽입 및 제거: I/O 성능에 미치는 영향"을 참조하십시오.
두 유형 모두 우수한 읽기 성능을 제공하지만, 쓰기 성능은 데이터 블록뿐만 아니라 패리티 블록(들)에 필요한 계산 및 읽기/수정/재작성 작업까지 수행해야 하기 때문에 영향을 받습니다. 단일 물리 디스크 드라이브 장애 후 열악 모드에서 실행되는 RAID-5 또는 RAID-6 VDISK는 처리량에 중간 정도의 영향을 미칩니다. 그러나 데이터가 재구축 중인 복구 모드의 VDISK는 처리량에 큰 영향을 미칩니다.
두 개의 물리 디스크 드라이브 고장으로 인해 저하 모드에서 실행 중인 RAID-6 VDISK는 처리량에 중간에서 높은 수준의 영향을 미치며, 두 개의 드라이브가 재구축 중인 복구 모드에서 실행 중인 VDISK는 처리량에 극히 높은 수준의 영향을 미칩니다.
표 1을 참조하여 RAID-5 또는 RAID-6 VDISK를 저하 모드 또는 복구 모드로 실행할 때 예상되는 I/O 영향도를 확인하십시오.
참고: 이는 예상치이며, 실제 영향은 구성, 워크로드 및 애플리케이션 I/O 프로필에 따라 달라질 수 있습니다.
표 1. I/O 성능에 대한 추정 열화 정도
| RAID 5 / RAID 6 저하 모드 단일 드라이브 장애 |
RAID 5 / RAID 6 복구 모드 단일 드라이브 장애 |
RAID 6 저하 모드 이중 드라이브 장애 |
RAID 6 복구 모드 듀얼 드라이브 장애 |
|
| 퍼포먼스 읽기 | 40 – 50% | 50 – 60% | 50 – 60% | 60 – 70% |
| 퍼포먼스 작성 | 10 – 15% | 15 – 25% | 20 – 25% | 25 – 35% |
1.3 미러링 RAID 유형: RAID-1 및 RAID-10
ftScalable Storage를 사용하면 두 가지 유형의 미러링 RAID VDISK(RAID-1 및 RAID-10)를 생성할 수 있습니다.
1.3.1 RAID-1:
RAID-1 가상 디스크는 미러링된 물리 디스크 드라이브 한 쌍으로 구성됩니다. 우수한 읽기 및 쓰기 성능을 제공하며, 단일 물리 디스크 드라이브 손실 시에도 데이터 가용성에 영향을 주지 않고 작동합니다. 읽기 작업은 두 물리 드라이브 중 어느 쪽에서나 처리될 수 있지만, 쓰기 작업은 반드시 두 드라이브 모두에 기록되어야 합니다. RAID-1 가상 디스크에서는 모든 데이터가 미러링되므로, 패리티 기반 RAID 유형에 비해 높은 수준의 RAID 오버헤드가 발생합니다.
물리적 디스크 드라이브 장애 복구는 생존한 파트너로부터 미러링을 재구성하기만 하면 되는 간단한 작업입니다. ftScalable Storage 어레이는 데이터 가용성에 영향을 주지 않으면서 RAID-1 VDISK에서 성능이 저하되거나 고장난 물리적 디스크 드라이브를 선제적으로 제거할 수 있습니다. 패리티 기반 RAID 유형과 마찬가지로, 예비 드라이브가 사용 가능한 경우 복구 모드가 자동으로 시작됩니다. 운영자 개입, 물리적 드라이브 삽입 또는 OpenVOS에서 논리 디스크의 듀플렉스 재설정이 필요하지 않으며, 이는 운영체제에 투명하게 처리됩니다. 이후 고장난 디스크 드라이브 교체 및 새 예비 드라이브 생성 일정을 계획할 수 있습니다. 단, 물리적 드라이브 제거 및 삽입이 I/O 처리에 미치는 영향에 대한 자세한 내용은 11.0절 "물리적 디스크 드라이브 삽입 및 제거: I/O 성능에 미치는 영향"을 참조하십시오.
저하 모드나 복구 모드로 실행 중일 때 일반적으로 성능에 미미한 영향이 발생합니다.
1.3.2 RAID-10:
RAID-10 가상 디스크(VDISK)는 두 개 이상의 RAID-1 디스크 쌍으로 구성되며, 데이터 블록이 이들 전체에 걸쳐 스트라이핑됩니다. RAID-10 VDISK는 높은 성능과 확장성을 제공하며, 데이터 손실 없이 여러 개의 물리적 드라이브 장애를 견딜 수 있는 잠재력을 지닙니다. 서비스 가능성, RAID 오버헤드, 그리고 성능 저하 모드 또는 복구 모드에서 실행 시 성능에 미치는 영향은 RAID-1 VDISK와 유사합니다.
1.3.3 RAID 유형 특성 요약
표 2는 논의된 RAID 유형의 특성을 요약합니다. 각 유형의 VDISK를 여러 범주에서 0(매우 나쁨)부터 5(매우 좋음)까지의 척도로 평가합니다. 각 행 내의 값만 비교해야 하며, 행 간 비교는 유효하지 않습니다.
표 2. RAID 유형 특성
| 카테고리 | NRAID | RAID-0 | RAID-1 | RAID-10 | RAID‑5 | RAID-6 |
| 가용성 | 0 | 0 | 3 | 5 | 4 | 5 |
| RAID 오버헤드 | 5 | 5 | 0 | 0 | 3 | 2 |
| 읽기 성능 | 3 | 5 | 4 | 5 | 4 | 4 |
| 작성 성능 | 3 | 5 | 3 | 4 | 2 | 2 |
| 저하 모드 성능 | 해당 없음 | 해당 없음 | 3 | 5 | 2 | 1 |
| 복구 모드 성능 | 해당 없음 | 해당 없음 | 3 | 5 | 2 | 1 |
2.0 RAID 유형 선택
각 RAID 유형에는 고유한 장점과 단점이 있습니다. 이를 이해함으로써 환경에 가장 적합한 RAID 유형을 선택할 수 있습니다. ftScalable Storage 어레이에서 지원하는 모든 RAID 유형을 사용하는 여러 VDISK를 생성할 수 있으므로, 애플리케이션 및 시스템 환경에 최적화된 RAID 레이아웃을 설계할 수 있다는 점을 명심하십시오. ftScalable Storage 어레이의 모든 VDISK에 동일한 RAID 유형을 사용할 필요는 없습니다.
참고: Stratus가 OpenVOS 시스템 볼륨에 특정 RAID 유형 및 LUN 토폴로지를 사용한다고 해서, 그것이 귀하의 애플리케이션이나 데이터에 최적의 RAID 유형임을 의미하지는 않습니다.
쓰기 처리량이나 지연 시간이 중요하지 않은 데이터 및 애플리케이션(예: 배치 처리)이나 쓰기보다 읽기에 크게 치우친 경우 RAID-5가 적합합니다. 낮은 쓰기 처리량 성능과 높은 지연 시간을 감수하는 대신, 주어진 용량에 대해 더 적은 수의 물리적 디스크 드라이브를 사용하면서도 높은 수준의 내결함성을 달성할 수 있습니다. 그러나 VDISK가 손상 상태 또는 복구 모드로 운영될 경우 애플리케이션에 미칠 수 있는 영향도 반드시 고려해야 합니다. 전체 I/O 성능과 지연 시간은 미러링 RAID 유형에 비해 패리티 기반 RAID 유형에서 손상 및 복구 모드 중 더 큰 저하를 보입니다.
최소 지연 시간으로 최적의 쓰기 처리량이 필요한 데이터 및 애플리케이션(예: 온라인 트랜잭션 처리 시스템)의 경우, 읽기보다 쓰기 작업이 더 많거나 물리적 드라이브 장애 시 성능 저하를 허용할 수 없는 경우 미러링 RAID 유형(RAID-1 또는 RAID-10)이 더 나은 솔루션을 제공합니다. 이러한 RAID 유형은 RAID-5 또는 RAID-6의 패리티 데이터에 대한 쓰기 전 읽기 페널티로 인한 추가 I/O를 제거하므로 데이터 쓰기는 간단한 작업입니다. RAID-10은 일반적으로 RAID-1보다 더 나은 선택입니다. 여러 물리적 드라이브에 데이터를 스트라이핑할 수 있어 전체 읽기 및 쓰기 성능을 크게 향상시킬 수 있기 때문입니다. 그러나 OpenVOS I/O 큐잉, LUN 개수 및 스트라이핑 고려 사항에 대한 추가 정보는 섹션 5.0, "OpenVOS 다중 멤버 논리 디스크 대 ftScalable RAID-10 VDISK" 및 섹션 6.0, "OpenVOS 큐 깊이와 ftScalable 스토리지"를 참조하십시오.
드라이브 장애 발생 후 단순화된 데이터 상태로 장시간 운영이 허용되거나, 높은 지연 시간에 민감하지 않은 데이터 및 애플리케이션의 경우, OpenVOS 미러링과 함께 사용될 때에만 NRAID 및 RAID-0 VDISK를 고려할 수 있습니다. 이러한 RAID 유형 중 하나를 선택하면 주어진 용량 기준에서 최소한의 물리적 디스크 드라이브를 사용할 수 있지만, 가용성이 저하되는 대가를 치르게 됩니다. 이러한 제한 사항과 가용성 영향으로 인해 Stratus는 이러한 RAID 유형 사용을 권장하지 않습니다.
패리티 기반 RAID 유형과 미러링 RAID 유형 중 선택을 결정할 수 없다면, 대부분의 애플리케이션에서 최상의 성능과 가용성 특성을 제공하므로 미러링 RAID 유형 중 하나를 사용하는 것이 현명한 선택입니다.
3.0 VDISK를 LUN으로 분할하기
OpenVOS에서 VDISK를 사용하기 전에 먼저 하나 이상의 LUN으로 파티션해야 합니다. 각 LUN은 특정 VOS 멤버 디스크에 할당됩니다. 하나 이상의 멤버 디스크가 하나의 OpenVOS 논리 디스크로 결합됩니다.
ftScalable Storage 어레이는 VDISK를 여러 LUN으로 분할할 수 있지만, 이로 인해 해당 VDISK의 모든 LUN에 대해 I/O 처리량과 지연 시간 모두에 영향을 미치는 상당한 성능 저하가 발생할 수 있습니다. 따라서 Stratus는 고객 데이터에 대해 VDISK당 여러 LUN을 사용하는 구성을 권장하지 않습니다.
다중 LUN VDISK 구성에서 발생하는 성능 저하의 원인은 여러 가지가 있으나, 기본적으로는 디스크 경합과 헤드 탐색 때문입니다. ftScalable Storage 어레이가 다중 LUN VDISK 구성 내 LUN 중 하나에 대한 I/O 요청을 처리할 때마다 물리적 디스크 드라이브 헤드를 탐색해야 합니다. VDISK를 구성하는 LUN이 많을수록 헤드 이동이 더 많이 발생합니다. 헤드 이동이 많을수록 디스크 경합이 증가하여 지연 시간이 더 커집니다. 모든 I/O는 결국 VDISK를 구성하는 물리적 디스크 드라이브에서 처리되어야 하며, 어레이의 캐시 메모리는 이 물리적 I/O를 대체할 수 없다는 점을 기억하십시오.
Stratus는 벤치마크를 수행하여 4-LUN VDISK의 총 I/O 처리량이 단일 LUN으로 구성된 동일한 VDISK의 처리량보다 약 절반 수준이며, 평균 지연 시간은 4배 이상 길어질 수 있음을 입증했습니다.
차트 1과 2는 VDISK당 다중 LUN 사용이 성능에 미치는 영향을 보여줍니다. 이 차트들은 1개, 2개 또는 3개의 LUN으로 구성된 4개 드라이브 RAID-5 VDISK 사용 시 관측된 초당 쓰기 I/O(IOPS) 및 최대 지연 시간(밀리초, ms)의 집계를 나타냅니다.
참고: 본 차트는 통제된 조건 하에서 Stratus 내부 실험실 테스트 결과를 기반으로 합니다. 실제 결과는 다를 수 있습니다.
차트 1과 2. VDISK당 다중 LUN 성능 영향
4.0 OpenVOS 논리 디스크를 LUN에 할당하기
가장 간단한 방법은 OpenVOS 논리 디스크 내의 각 구성원 디스크를 LUN에 할당하는 것입니다. 단일 LUN보다 큰 VOS 논리 디스크가 필요하거나 스트라이핑의 성능 이점을 원할 경우, 각 구성원 디스크가 단일 LUN인 VOS 다중 구성원 논리 디스크를 생성할 수 있습니다.
그림 1은 ftScalable 스토리지 어레이 상의 물리 디스크 드라이브, VDISK 및 LUN과 OpenVOS 논리 디스크 간의 관계를 보여줍니다. 이는 두 개의 구성원 디스크로 구성된 간단한 OpenVOS 논리 디스크의 예시이며, 각 구성원 디스크는 ftScalable 스토리지 어레이 상의 단일 RAID1 VDISK/LUN입니다.
5.0 OpenVOS 다중 구성원 논리 디스크 대 ftScalable RAID-10 VDISK
OpenVOS에서 스트라이핑을 구현하는 다양한 방법이 존재합니다. ftScalable Storage 출시 이전에는 여러 물리 디스크 드라이브를 VOS 다중 구성원 논리 디스크로 구성하는 방법만이 유일했습니다. ftScalable Storage의 등장으로 RAID-10 VDISK를 생성할 수 있게 되었으며, 이 경우 어레이가 모든 스트라이핑을 처리합니다. 또는 두 방법을 결합하여 각각 VDISK인 여러 LUN을 단일 VOS 다중 구성원 논리 디스크로 통합할 수도 있습니다.
스트라이핑을 사용하려면 Stratus는 스트라이핑이 적용되지 않은 RAID 유형 VDISK(예: RAID-1 또는 RAID-5)를 사용하도록 권장합니다. 각 VDISK당 단일 LUN을 구성하고, 이를 VOS 다중 구성원 논리 디스크로 결합하십시오. 이렇게 하면 OpenVOS가 각 LUN에 대해 별도의 디스크 큐를 유지하여 처리량을 극대화하고 지연 시간을 최소화할 수 있습니다. 다만, 할당된 LUN 수와 잠재적 성능 영향에 관한 고려 사항은 6.0절 "OpenVOS 큐 깊이와 ftScalable 스토리지" 를 참조하십시오.
6.0 OpenVOS 큐 깊이 및 ftScalable 스토리지
모든 스토리지 어레이, 물리적 디스크 드라이브, 파이버 채널 HBA 및 최신 운영 체제는 I/O 요청을 위한 다양한 크기의 큐를 보유하고 있습니다. 큐 깊이는 기본적으로 특정 장치에 대해 주어진 시점에 대기(큐에 등록) 상태로 유지될 수 있는 고유한 I/O 요청의 수를 정의합니다.
큐 포화 상태는 장치가 극도로 바빠져 큐에 추가 I/O 요청을 더 이상 추가할 수 없을 때 발생합니다. 큐 포화 상태가 존재할 경우, 새로운 I/O 요청은 중단되고 큐에 공간이 생길 때까지 재시도됩니다. 이로 인해 I/O 지연 시간이 증가하고, 애플리케이션 응답 시간이 길어지며, I/O 처리량이 감소합니다.
OpenVOS는 각 LUN에 대해 기본 큐 깊이가 12인 별도의 큐를 유지합니다. ftScalable 스토리지 어레이의 각 호스트(파이버 채널) 포트에는 깊이가 128인 단일 큐가 있습니다.
OpenVOS 환경에서 LUN 수가 많은 경우, 상대적으로 적은 수의 매우 바쁜 LUN들로 인해 ftScalable 스토리지 어레이의 호스트 포트 큐가 가득 차게 될 수 있습니다. 이로 인해 다른 LUN에 대한 I/O 요청이 큐 가득 상태를 받아 지연되며, 이는 애플리케이션의 지연으로 이어집니다. 구성에서 사용하는 LUN 수를 신중하게 균형 잡아야 하며, 필요한 경우 Stratus와 협의하여 OpenVOS 큐 깊이 설정을 적절히 조정해야 합니다.
7.0 VOS 논리 디스크에 파일 할당하기
가능한 경우, 랜덤 액세스 파일과 순차 액세스 파일을 별도의 논리 디스크에 할당하십시오. 동일한 논리 디스크에 두 가지 유형의 파일 액세스 방식을 혼합하면 랜덤 액세스 파일에 접근하는 데 필요한 최악의 경우 시간(최대 지연 시간)이 증가하고 순차 액세스 파일의 최대 가능한 처리량이 감소합니다. 또한 각 논리 디스크에 서로 다른 RAID 유형을 사용하여 I/O 액세스 유형에 가장 잘 맞출 수 있다는 점도 유념하십시오.
8.0 스토리지 컨트롤러 간 VDISK 균형 조정
ftScalable Storage 어레이는 활성-활성 스토리지 컨트롤러 설계를 채택하여 두 개의 컨트롤러가 I/O를 능동적으로 처리합니다 . 그러나 모든 VDISK는 할당 시 특정 스토리지 컨트롤러(컨트롤러 A 또는 컨트롤러 B) 에 할당됩니다 . 특정 VDISK에 대한 모든 I/O는 할당된 스토리지 컨트롤러에서 처리됩니다 . 특정 VDISK에 할당할 컨트롤러를 명시하지 않을 경우, ftScalable Storage 어레이는 두 컨트롤러를 번갈아 가며 순환하는 방식으로 할당합니다.
이 방법은 두 스토리지 컨트롤러 간 VDISK 수를 균등하게 분배할 수는 있으나, I/O 작업 부하가 균등하게 분할되도록 보장하지는 못할 수 있습니다. 예를 들어, 구성에 VDISK1부터 VDISK6까지 총 6개의 VDISK가 있다고 가정해 보겠습니다. VDISK1과 VDISK3은 모든 주요 온라인 데이터를 처리하며 둘 다 I/O 집약적입니다. 반면 나머지 VDISK들은 오프라인 아카이브 데이터를 처리하며 훨씬 덜 바쁩니다.
VDISK를 컨트롤러에 명시적으로 할당하지 않은 경우, VDISK1, VDISK3, VDISK5는 컨트롤러 A에 할당되고 VDISK2, VDISK4, VDISK6는 컨트롤러 B에 할당됩니다. 이로 인해 두 스토리지 컨트롤러 간에 I/O 부하 불균형이 발생하게 됩니다.
VDISK 할당 시 예상 I/O 워크로드를 고려해야 하며, 필요한 경우 VDISK 생성 과정에서 특정 VDISK를 컨트롤러에 수동으로 할당할 수 있습니다. 워크로드가 변경되거나 I/O 할당이 불균형하다고 판단되면 기존 VDISK를 새로운 스토리지 컨트롤러로 재할당할 수 있습니다.
주의: VDISK의 컨트롤러 소유권을 변경하는 작업은 중단을 초래하는 작업으로, VDISK가 두 컨트롤러 간에 이동되고 LUN 번호가 재할당되는 동안 데이터 접근에 일시적인 영향을 미치지 않고 수행할 수 없습니다. 이 작업은 온라인 상태의 OpenVOS 논리 디스크에는 적용할 수 없습니다. 이 작업을 수행하기 전에 Stratus에 문의하여 지원을 받으십시오.
9.0 단일 VDISK 구성
ftScalable Storage 어레이에서 단일 대형 VDISK를 생성하는 것은 가능하지만, 이는 성능에 영향을 미치는 결과를 초래하므로 Stratus에서 권장하지 않으므로 피해야 합니다.
앞서 설명한 바와 같이, 각 ftScalable Storage 어레이에는 활성-활성 모드로 작동하는 두 개의 스토리지 컨트롤러가 있습니다. 각 VDISK는 특정 스토리지 컨트롤러에 할당되며, 해당 컨트롤러가 해당 VDISK의 모든 I/O 처리를 소유하고 실행합니다. 단일 VDISK 구성에서는 두 스토리지 컨트롤러 중 하나만 모든 I/O 요청을 처리하게 되므로, ftScalable Storage 어레이의 총 사용 가능 성능이 절반으로 줄어듭니다.
OpenVOS 구성에서는 각 LUN마다 별도의 I/O 디스크 요청 큐가 존재합니다. 단일 VDISK만 사용하면 OpenVOS가 ftScalable 스토리지 어레이에 병렬 I/O 요청을 전송하는 능력을 최소화하게 되어, 전체 I/O 처리량과 지연 시간이 다시 한번 저하됩니다.
10.0 OpenVOS에서의 VDISK/LUN 크기 설정 시 고려사항
10.1 원용량 대 사용 가능 용량
OpenVOS 운영체제는 디스크 데이터에 대해 최고 수준의 데이터 무결성을 보장하기 위해 메타데이터를 활용합니다. 이 메타데이터는 데이터 자체와는 별도의 물리적 섹터로 저장됩니다. 그 결과 OpenVOS는 사용 가능한 데이터 8섹터마다 9개의 물리적 섹터를 저장 공간으로 사용합니다.
ftScalable VDISK 및 LUN을 구성할 때, OpenVOS에 표시되는 크기는 RAW 용량을 나타내며 메타데이터 오버헤드를 반영하지 않음을 유의하십시오. 사용 가능한 용량은 VDISK/LUN의 물리적 원본 크기의 약 8/9(88%)입니다. 또한 OpenVOS는 파티셔닝 오버헤드를 위해 약 1.1GB의 공간을 추가로 예약합니다.
OpenVOS는 일반적으로 LUN의 스토리지를 가장 가까운 5GB 경계로 반올림하여 사용합니다. 이는 크기가 약간 다른 LUN을 페어링할 수 있게 합니다. 이 반올림 규칙의 유일한 예외는 특정 레거시 OpenVOS 디스크 유형(예: D913 또는 D914)의 크기와 정확히 일치하는 LUN입니다.
10.2 OpenVOS 디스크 세그먼트, LUN 크기 지정 및 LUN 개수
OpenVOS는 VOS 모듈당 최대 254개의 주소 지정 가능 디스크 세그먼트를 지원하며, 각 디스크 세그먼트는 약 34GB의 저장 공간을 주소 지정할 수 있습니다. 이로 인해 OpenVOS에서는 최대 약 8.6TB(테라바이트)의 이중화 주소 지정 가능 저장 공간을 확보할 수 있습니다. 모든 OpenVOS 논리 디스크는 최소 한 개의 디스크 세그먼트를 사용합니다.
VDISK/LUN의 크기와 개수를 할당할 때 이 두 가지 제약 조건을 고려해야 합니다. 각 논리 디스크는 최소 한 개의 세그먼트를 필요로 하므로, 많은 수의 작은 VDISK/LUN을 사용하면 OpenVOS 시스템에 구성 가능한 전체 최대 저장 용량이 크게 감소할 수 있습니다. OpenVOS 시스템의 구성 가능 저장 용량을 극대화하려면, 특정 논리 디스크에 필요한 디스크 세그먼트 수를 최소화하기 위해 사용 가능 용량 34GB(원시 용량 38.6GB)의 정수 배수로 LUN을 생성하십시오.
10.3 논리적 디스크 크기에 대한 POSIX 제한 사항
디스크 멤버 수와 VOS 논리 디스크의 총 크기는 POSIX 애플리케이션에서 사용하는 생성된 inode 번호의 크기를 결정합니다. 현재 VOS 릴리스에서는 해당 값이 32비트로 제한되어 있으며, 이는 약 545GB의 논리 디스크 크기를 허용합니다. 이 한도를 초과할 경우 VOS initialize_disk 명령어는 기존 POSIX 애플리케이션에 호환성 문제가 발생할 수 있다는 경고를 생성합니다.
논리 디스크에 접근하는 모든 POSIX 애플리케이션이 OpenVOS 17.1에서 전처리기 심볼 _VOS_LARGE_INODE를 정의하여 재컴파일되고, 32비트 및 64비트 아이노드 번호를 모두 지원하는 OpenVOS 17.1 POSIX 런타임 루틴으로 재결합된 경우, 문제는 발생하지 않습니다. 해당 디스크에 대한 경고 메시지는 OpenVOS 17.1 이상 버전에서 initialize_disk 명령에 -no_check_legacy_inodes 옵션을 추가하여 무시하거나 억제할 수 있습니다.
자세한 내용은 소프트웨어 릴리스 공보: OpenVOS 릴리스 17.1(R622-01) 및 OpenVOS 시스템 관리: 디스크 및 테이프 관리(R284-12) 문서를 참조하십시오.
11.0 물리 디스크 드라이브 삽입 및 제거: I/O 성능에 미치는 영향
ftScalable Storage 어레이는 어레이의 전원을 끄거나 호스트 및/또는 애플리케이션을 중지하지 않고도 물리적 디스크 드라이브를 온라인 상태에서 삽입 및 제거할 수 있습니다. 하나 이상의 드라이브가 삽입되거나 제거된 후, ftScalable Storage 어레이는 재배치된, 제거된 또는 새로 삽입된 물리적 디스크 드라이브가 있는지 확인하기 위해 기본 물리적 디스크 토폴로지를 재매핑하는 과정을 거쳐야 합니다. 이를 "재스캔(rescan)"이라고 합니다.
이러한 재스캔 작업은 ftScalable Storage 어레이에 의해 자동으로 수행되며, 운영자의 수동 명령이 필요하지 않습니다. 이 재스캔 프로세스가 진행되는 동안, 모든 대기 중인 I/O 요청은 해당 프로세스가 완료될 때까지 일시적으로 지연될 수 있습니다.
1세대 ftScalable 스토리지 어레이에서 드라이브 삽입 시 약 40초 동안 4~7초 범위의 I/O 지연이 여러 차례 발생할 수 있습니다. 드라이브 제거 시에는 일반적으로 약 15초 동안 3~11초 범위의 I/O 지연이 두 차례 발생합니다.
최신 세대의 ftScalable Storage G2 어레이를 통해 드라이브 삽입 또는 제거로 인한 I/O 지연 시간이 이제 3초 이하로 단축되었습니다.
참고: 본 결과는 최신 펌웨어 버전 및 최대 물리 디스크 구성(1세대 ftScalable Storage 어레이의 경우 어레이당 3개의 인클로저에 36개 드라이브, ftScalable Storage G2 어레이의 경우 72개 드라이브) 하에 통제된 환경에서 Stratus 내부 실험실 테스트를 통해 얻은 것입니다. 실제 결과는 특정 구성 및 워크로드에 따라 달라질 수 있습니다.
재스캔 처리 중 발생하는 I/O 지연이 지연에 민감한 애플리케이션에 미칠 수 있는 영향을 최소화하기 위한 몇 가지 권장 사항이 있습니다.
- 적어도 하나의 물리적 디스크 드라이브를 예비 드라이브로 구성하고 내결함성 RAID 유형의 VDISK를 사용하십시오. 예비 드라이브를 할당하고 내결함성 RAID 유형을 사용함으로써, ftScalable Storage 어레이는 VDISK에서 한계 상태이거나 고장난 물리적 디스크를 자동으로 제거하고 드라이브 삽입 또는 제거 없이 복구 프로세스를 시작할 수 있습니다. 이로써 재스캔을 피할 수 있습니다. 고장난 드라이브는 중요도가 낮은 시간대에 교체할 수 있습니다.
- 오류 허용 기능이 없는 RAID 유형 VDISK(RAID-0, NRAID)를 사용하는 경우, SRA는 추가 VDISK를 예비 스페어로 생성할 것을 권장합니다. 이 예비 VDISK를 교체용 멤버 디스크로 사용하여 OpenVOS 미러링을 통해 재복제함으로써 중복성을 제공할 수 있습니다. 이를 통해 중요도가 낮은 시간대에 고장 난 드라이브를 교체할 수 있습니다.
- 서비스 작업 후 특정 인클로저 슬롯 위치를 유지하기 위해 물리적 드라이브를 이동하지 마십시오. ftScalable Storage 어레이 설계는 VDISK의 물리적 드라이브가 할당 당시와 동일한 인클로저 슬롯 위치에 유지될 것을 요구하지 않습니다.
- 대체 드라이브를 수령하여 동시에 설치할 준비가 될 때까지 성능이 저하되거나 고장난 디스크 드라이브를 물리적으로 제거하지 마십시오. 물리적 드라이브 제거 및 삽입을 조정함으로써, 하나의 재스캔 프로세스 내에서 여러 드라이브 토폴로지 변경이 발생할 수 있으므로 재스캔 프로세스가 수행되는 횟수를 최소화할 수 있습니다.
요약
OpenVOS 운영체제와 ftScalable 스토리지 어레이의 결합은 가장 중요한 애플리케이션을 호스팅할 수 있는 강력하고 확장 가능하며 유연한 스토리지 환경을 제공합니다. 다양한 RAID 유형, LUN 토폴로지 및 구성 옵션의 장단점을 이해함으로써 비즈니스, 성능 및 가용성 요구 사항을 충족하는 최적의 스토리지 레이아웃을 구축할 수 있습니다.
