HBA/RAID controller: Difference between revisions

From HPCWIKI
Jump to navigation Jump to search
(Fix: remove --- horizontal lines (12 removed))
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
== HBA, RAID and SAS Expander ==
= HBA/RAID Controller =


* HBA is just a controller that provides an expansion of SAS/SATA ports. What manages the drives is up to the OS.
{{Status
* A RAID Controller is like an HBA but has the onboard functionality to create a array which is then presented to the OS as a singular drive
|status=Draft
* SAS Expanders can be used to maximize the # of storage capability of your HBA or SAS controller card. SAS expanders can be used with RAID controllers and SAS HBAs.
|owner=Knowledge Agent
|last_update=2026-07-15
|review=Pending
}}


== Native and Maximum supported disks ==
{{TOC}}
There is a concept in RAID controller, that are '''Native Supported Disks and Maximum Supported Disks.'''


* Native [[support]]<nowiki/>ed disk # means the number of disks that can be direct connected to the RAID controller using brakeout cable
== Overview ==
* Maximum supported disks # means  when to use of port expanders such as Intel RES2SV240


== Controller Interface<ref>https://sp.ts.fujitsu.com/dmsp/Publications/public/wp-raid-controller-performance-2021-ww-en.pdf</ref> ==
HBA(Host Bus Adapter)와 RAID Controller는 서버의 저장 장치를 연결하고 관리하는 확장 카드입니다. HBA는 OS에 디스크를 직접 노출하고, RAID Controller는 온보드 RAID 기능을 제공하여 여러 디스크를 단일 가상 드라이브로 통합합니다.
The RAID controller has an interface that connects to the storage drive and an interface that connects to the


CPU. The drive interfaces are Serial Attached SCSI (SAS), Serial Advanced Technology Attachment (SATA),
=== Summary ===


and Non-Volatile Memory Express (NVMe). NVMe is a communication protocol designed for flash storages
* 무엇인가? — 서버 저장 장치 연결 및 관리용 확장 카드
* 왜 필요한가? — 다수 디스크 연결, RAID 구성, 성능 최적화
* 언제 사용하는가? — 데이터센터, 스토리지 서버, HPC 클러스터
 
 
== Purpose ==
 
이 문서가 존재하는 이유
 
* Goal: HBA/RAID Controller 기본 개념, 인터페이스, RAID 레벨, 성능, 캐시 보호 기능 제공
* Scope: HBA vs RAID vs SAS Expander, 인터페이스 대역폭, RAID 레벨별 성능, BBU/CacheVault/CacheCade
* Non-goals: RAID 컨트롤러 펌웨어 업그레이드, 특정 제조사(LSI/Broadcom/Adaptec) 상세 설정은 별도 문서
 
 
== Key Concepts ==


that use Peripheral Component Interconnect Express ([[PCIe]]) for connectivity.
{| class="wikitable"
{| class="wikitable"
|+
! Concept
!Storage drive side interface
! Description
!Communication
! Related
band
|-
!Theoretical throughput
| HBA
!Effective throughput (90%)
| Host Bus Adapter — OS에 디스크 직접 노출
| [[HBA/RAID controller]]
|-
| RAID Controller
| 온보드 RAID 기능 제공
| [[HBA/RAID controller]]
|-
| SAS Expander
| SAS 포트 확장 장치
| [[HBA/RAID controller]]
|-
| RAID 0
| 스트라이핑 — 성능 최적화
| [[HBA/RAID controller]]
|-
|-
|SATA 6G
| RAID 1
|6 Gbps
| 미러링 — 내구성 최적화
|572 MiB/s
| [[HBA/RAID controller]]
|515 MiB
|-
|-
|SAS 12G
| RAID 5
|12 Gbps
| 단일 패리티 — 균형
|1,144 MiB/s
| [[HBA/RAID controller]]
|1,030 MiB/s
|-
|-
|NVMe Gen3
| RAID 6
|8 Gbps x4
| 이중 패리티 — 높은 내구성
|3,756 MiB/s
| [[HBA/RAID controller]]
|3,380 MiB/s
|-
|-
|NVMe Gen4
| BBU
|16 Gbps x4
| Battery Backup Unit — 캐시 보호
|7,512 MiB/s
| [[HBA/RAID controller]]
|6,760 MiB/s
|}
|}
== Architecture ==
RAID 컨트롤러는 CPU 인터페이스와 저장 장치 인터페이스로 구성됩니다:
<syntaxhighlight lang="mermaid">
graph TD
    A[RAID Controller] --> B[CPU Side - PCIe/DMI]
    A --> C[Drive Side - SAS/SATA/NVMe]
    B --> D[PCIe Gen3 x8/x16]
    B --> E[PCIe Gen4 x8/x16]
    C --> F[SATA 6G]
    C --> G[SAS 12G]
    C --> H[NVMe Gen3/Gen4]
    A --> I[Cache - BBU/CacheVault]
    A --> J[RAID Virtual Drive]
    J --> K[OS]
</syntaxhighlight>
== Workflow ==
{| class="wikitable"
{| class="wikitable"
|+
! Stage
!CPU side
! Input
Interface
! Output
!Number
of lanes
!Communication
band 
!Theoretical throughput
!Effective throughput (90%)
|-
|-
|DMI Gen3
| Selection
|x4
| [[Workload]] requirements
|8 Gbps x4
| HBA/RAID controller model
|3,756 MiB/s
|3,380 MiB/s
|-
|-
|PCIe Gen3
| Configuration
|x8
| RAID level + Drives
|8 Gbps x8
| Virtual Drive
|7,512 MiB/s
|6,760 MiB/s
|-
|-
|PCIe Gen3
| Monitoring
|x16
| lspci / /proc/scsi/scsi
|8 Gbps x16
| Controller status
|15,024 MiB/s
|13,520 MiB/s
|-
|-
|PCIe Gen4
| Cache Protection
|x8 
| BBU/CacheVault/CacheCade
|16 Gbps x8
| Write cache safety
|15,024 MiB/s
|}
|13,520 MiB/s
 
 
== Detailed Explanation ==
 
=== HBA vs RAID Controller vs SAS Expander ===
 
{| class="wikitable"
! 장치
! 설명
! 관리 주체
|-
| HBA
| SAS/SATA 포트 확장 카드. 디스크 관리는 OS 담당.
| OS (예: [[Linux]] mdadm, ZFS)
|-
| RAID Controller
| HBA + 온보드 RAID 기능. 가상 드라이브를 OS에 제공.
| RAID 카드 펌웨어
|-
| SAS Expander
| HBA/RAID 컨트롤러의 포트 수를 확장하는 장치.
| —
|}
 
=== Native 및 Maximum 지원 디스크 수 ===
 
* **Native Supported Disks** — 브레이크아웃 케이블로 RAID 컨트롤러에 직접 연결 가능한 디스크 수
* **Maximum Supported Disks** — 포트 익스팬더(예: Intel RES2SV240) 사용 시 최대 지원 디스크 수
 
=== Controller Interface ===
 
==== 저장 장치 측 인터페이스 ====
 
{| class="wikitable"
! Storage Drive Side Interface
! Communication Band
! Theoretical Throughput
! Effective Throughput (90%)
|-
| SATA 6G
| 6 Gbps
| 572 MiB/s
| 515 MiB/s
|-
| SAS 12G
| 12 Gbps
| 1,144 MiB/s
| 1,030 MiB/s
|-
| NVMe Gen3
| 8 Gbps x4
| 3,756 MiB/s
| 3,380 MiB/s
|-
|-
|PCIe Gen4  
| NVMe Gen4
|x16
| 16 Gbps x4
|16 Gbps x16
| 7,512 MiB/s
|30,048 MiB/s
| 6,760 MiB/s
|27,040 MiB/s
|}
|}
<nowiki>*</nowiki>The theoretically achievable throughput is calculated by subtracting 1.54% redundancy with 128b/130b coding.


The actual achievable throughput can be estimated by multiplying this value by 0.90.
==== CPU 측 인터페이스 ====


== Expected Performance  by RAID type ==
{| class="wikitable"
{| class="wikitable"
|+
! CPU Side Interface
!RAID level
! Lanes
!Type
! Communication Band
!Random read
! Theoretical Throughput
!Random write
! Effective Throughput (90%)
!Sequential read
|-
transfer
| DMI Gen3
| x4
| 8 Gbps x4
| 3,756 MiB/s
| 3,380 MiB/s
|-
| PCIe Gen3
| x8
| 8 Gbps x8
| 7,512 MiB/s
| 6,760 MiB/s
|-
| PCIe Gen3
| x16
| 8 Gbps x16
| 15,024 MiB/s
| 13,520 MiB/s
|-
| PCIe Gen4
| x8
| 16 Gbps x8
| 15,024 MiB/s
| 13,520 MiB/s
|-
| PCIe Gen4
| x16
| 16 Gbps x16
| 30,048 MiB/s
| 27,040 MiB/s
|}


performance
※ 이론적 대역폭 = 128b/130b 인코딩 오버헤드(1.54%) 차감
!Sequential write
※ 실제 대역폭 = 이론적 × 0.90
transfer


performance
=== RAID 레벨별 예상 성능 ===
!Features<ref>https://www.cisco.com/c/dam/en/us/td/docs/unified_computing/ucs/3rd-party/lsi/mrsas/userguide/LSI_MR_SAS_SW_UG.pdf</ref>
 
{| class="wikitable"
! RAID Level
! Type
! Random Read
! Random Write
! Seq Read
! Seq Write
! Features
|-
| RAID 0
| Stripe
| 1
| 1
| N × SR
| N × SW
| 높은 대역폭, 내구성 없음
|-
|-
|RAID0
| RAID 1
|Stripe
| Mirror
|1
| 1
|1
| 2
|N x SR
| N × SR
|N x SW
| N × SW / 2
|Ideal for applications that require high
| 내구성 우수, 최소 용량
bandwidth but do not require fault tolerance
|-
|-
|RAID1
| RAID 10
|Mirror
| Mirror + Stripe
|1
| 1
|2
| 2
|N x SR
| N × SR
|N x SW / 2
| N × SW / 2
|Ideal for any application that requires fault tolerance and minimal capacity.
| 내구성 + 성능 균형
|-
|-
|RAID10
| RAID 5
|Mirror + Stripe
| Single Parity
|1
| 1
|2
| 4
|N x SR
| N × SR
|N x SW / 2
| (N-1) × SW
|Ideal for fault tolerance
| 내구성 + 낮은 오버헤드
|-
|-
|RAID5
| RAID 50
|Single Parity
| RAID 5 + Stripe
|1
|
|4
|
|N x SR
|
|(N-1) x SW
|
|Idle for  fault tolerance with limited overhead
| RAID 5 그룹당 1드라이브 실패 허용
|-
|-
|RAID50
| RAID 6
|
| Double Parity
|
| 1
|
| 6
|
| N × SR
|
| (N-2) × SW
|support to sustain one drive failure per RAID 5 drive group and still maintain data integrity
| 높은 내구성, 쓰기 많음에 부적합
|-
| RAID 60
| RAID 6 + Stripe
|
|
|
|
| RAID 6 그룹당 2드라이브 실패 허용
|}
 
※ N: 드라이브 수, SR: 단일 읽기 성능, SW: 단일 쓰기 성능
 
=== RAID 구성 전략 ===
 
{| class="wikitable"
! 목적
! 전략
! Hot Spare
|-
|-
|RAID6
| 가용성 (내구성)
|Double Parity
| RAID 1 (미러링) — 우수한 내구성, 중복 드라이브 필요
|1
| rowspan="3" | Hot Spare가 자동으로 교체 및 재빌드. RAID 1/5/6/10/50/60 지원.
|6
|N x SR
|(N-2) x SW
|Idle for fault tolerance with limited overhead
Not well suited to tasks requiring lot of writes due to two sets of parity data for each write operation.
|-
|-
|RAID60
| 성능
|
| RAID 0 (스트라이핑) — 우수한 성능<br>RAID 00 (스팬드 스트라이핑) — 우수한 성능<br>RAID 5 — 대용량 파일 높은 처리량<br>RAID 6 — 높은 신뢰성, 높은 요청률, 높은 전송
|
|
|
|
|support to sustain two drive failures per RAID6 drive group and still maintain data integrity
|-
|-
| colspan="6" |Where, N: Number of drives, SR: Single read performance, SW: Single write 
| 용량
|
| RAID 0 — 주어진 드라이브 세트 최대 용량
|}
|}


== RAID Configuration Strategies ==
=== 성능 지표 ===
You cannot configure a virtual drive that optimizes all three factors, but it is easy to choose a virtual drive configuration that maximizes one factor at the expense of another factor
 
{| class="wikitable"
{| class="wikitable"
|+
! 지표
!Purpose
! 단위
!Strategies
! 설명
!Spare drives
|-
|-
|Virtual drive availability (fault tolerance)
| Throughput
|RAID 1 (mirroring) provides excellent fault tolerance, but
| MiB/s
requires a redundant drive
| 초당 데이터 전송량 (메가바이트)
| rowspan="3" |The hot spare automatically takes its place and the data on the failed drive is rebuilt on the hot spare.
Hot spares can be used for RAID levels 1, 5, 6, 10, 50, and 60.
|-
|-
|Virtual drive performance
| Transaction
|
| IO/s
* RAID 0 (striping) offers excellent performance
| 초당 IO 처리량
* RAID 00 (striping in a spanned drive group) offers excellent performance
* RAID 5 provides high data throughput, especially for large files
* RAID 6 works best when used with data that requires high reliability, high request rates, and high data transfer. It provides high data throughput, data redundancy, and very good performance. However, RAID 6 is not well suited to tasks requiring a lot of writes.
|-
|-
|Virtual drive capacity
| Latency
|RAID 0 provides maximum storage capacity for a given set of drives
| ms
| 평균 응답 시간 (밀리초)
|}
|}
[[File:RAID table.png|center|frameless|528x528px|RAID_table<ref>https://www.pitsdatarecovery.net/raid-redundancy-over-performance/</ref>]]


== Performance Index - Throughput / Transaction ==
**계산 공식:**
* Data throughput [KiB/s] = Transaction rate [IO/s] × Block size [KiB]
* Transaction rate [IO/s] = Data throughput [KiB/s] / Block size [KiB]
 
※ 시퀀셜 액세스 패턴 → Throughput, 랜덤 액세스 패턴 → Transaction Rate


* Throughput [MiB/s] - Data transfer amount per second (in megabytes)
=== Linux에서 컨트롤러 정보 확인 ===
* Transaction [IO/s] - IO processing per second
* Latency [ms] - Average response time (in milliseconds)


"Data Throughput” value used to load profiles with '''sequential access pattern''', while “Transaction Rate”
<syntaxhighlight lang="bash">
# 컨트롤러 정보 찾기
$ sudo lspci -vv | grep -i raid


value used to load profiles with '''random access pattern'''. Throughput and transaction are in direct
# RAID 구성 확인
$ cat /proc/scsi/scsi
</syntaxhighlight>


proportion to each other and can be calculated mutually using the follow
=== BBU vs CacheVault vs CacheCade ===


* Data throughput [KiB/s] = Transaction rate [IO/s] x Block size
{| class="wikitable"
* Transaction rate [IO/s] = Data throughput [KiB/s] / Block size [KiB]
! 기능
! 설명
! 데이터 유지 기간
|-
| BBU (Battery Backup Unit)
| 전원 중단 시 캐시 데이터 보존. 전원 복구 시 디스크에 기록.
| 최대 72시간
|-
| CacheVault
| DRAM → NAND 플래시 이동. BBU 차세대 기술.
| 최대 3년
|-
| CacheCade
| SSD 기반 읽기/쓰기 캐시. HDD 어레이 성능 최적화.
| 재부팅 시 유지
|}
 
**BBU 중요성:**
* Write Cache가 "Write Through" 또는 "Off"이면 BBU 불필요
* Write Cache가 "On"일 때만 BBU 필요 (성능 최적화)
* BBU 미설치 시 Write Cache가 자동으로 Off될 수 있음
* 데이터 무결성이 중요한 경우 BBU 필수
 
 
== Configuration ==
 
<syntaxhighlight lang="bash">
# 컨트롤러 정보 확인
$ sudo lspci -vv | grep -i raid
 
# RAID 구성 확인
$ cat /proc/scsi/scsi
 
# SAS 디바이스 확인
$ sudo lspci -vv | grep -i sas
 
# NVMe 디바이스 확인
$ nvme list
</syntaxhighlight>
 
 
== Examples ==
 
=== Example 1: RAID 컨트롤러 정보 확인 ===
 
<syntaxhighlight lang="bash">
# RAID 컨트롤러 정보
$ sudo lspci -vv | grep -i raid
 
# SAS 컨트롤러 정보
$ sudo lspci -vv | grep -i sas
 
# 전체 PCI 디바이스 목록
$ lspci
</syntaxhighlight>
 
=== Example 2: RAID 구성 확인 ===


== Controller information on Linux ==
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
# Find controller information
# SCSI 디바이스 목록
$sudo lspci -vv | grep -i raid
$ cat /proc/scsi/scsi


# Find raid has been configured or not and check the output
# NVMe 디바이스 목록
$cat cat /proc/scsi/scsi
$ nvme list


# NVMe 스마트 로그
$ nvme smart-log /dev/nvme0
</syntaxhighlight>
</syntaxhighlight>


== BBU vs CacheVault vs CacheCade<ref>https://www.hostdime.com/blog/bbu-vs-cachevault-vs-cachecade/</ref> ==


=== Battery Backup Unit (BBU) ===
== Best Practices ==
The BBU’s job is to remember the data that hasn’t been synced to disk yet, usually up to 72 hours without power. When the machine powers back up, the BBU will write the cache contents on the disk.
 
* 워크로드에 맞는 RAID 레벨 선택 (읽기 중심 → RAID 0/5, 쓰기 중심 → RAID 10)
* BBU 또는 CacheVault 설치 — Write Cache 활성화 시 필수
* Hot Spare 구성 — 장애 시 자동 복구
* SAS Expander 활용 — 디스크 수 확장
* PCIe Gen4 x16 사용 — 최대 대역폭 확보
* 정기적인 RAID 상태 모니터링
* NVMe SSD 사용 — 높은 [[IOPS]] 및 낮은 지연 시간


If your “write cache” option is set to “write through” or “off”, then you should be fine without a BBU on your raid card. The downside to having “write cache” turned off is the RAID performance will be sub-optimal. Many RAID cards will have the write cache setting “on” only if the BBU is installed. This is very important for users who frequently save their database from certain types of corruption or need high data integrity.


=== CacheVault Cache Protection ===
== Limitations ==
CV does exactly what the BBU does, but is a newer technology that enables other features. What makes CacheVault superior in this aspect is the ability for that data to be moved from DRAM to NAND flash. When the data is moved from DRAM to NAND flash, it can be stored there for up to 3 years!  When the server turns back on, data is moved from NAND back to DRAM and then written to the disks.  Operations then continue as if nothing ever happened.<ref>https://www.youtube.com/watch?v=mMFcLQWPX5g&t=2s</ref>


=== CacheCade SSD Cache ===
* RAID 레벨 간 트레이오프 존재 (내구성 vs 성능 vs 용량)
While BBU and CacheVault are both physical module add-ons, CacheCade is a RAID controller software that enables an SSD Read/Write cache for the array. It allows you to optimize the existing HDD arrays with the SSD-based flash cache.
* RAID 6는 쓰기 작업에 부적합 (이중 패리티 오버헤드)
* BBU는 수명 제한 있음 (배터리 교체 필요)
* CacheCade는 SSD 용량 제한 있음
* RAID 재구성은 데이터 손실 위험 있음


CacheCade will create a front-side flash cache for the “hottest” array. This flash cache reads/writes to the SSD which is much more efficient than reading/writing to the HDD array. CacheCade content remains intact upon reboot.


== References ==
== References ==
<references />


[[Category: storage]]
* https://sp.ts.fujitsu.com/dmsp/Publications/public/wp-raid-controller-performance-2021-ww-en.pdf
* https://www.cisco.com/c/dam/en/us/td/docs/unified_computing/ucs/3rd-party/lsi/mrsas/userguide/LSI_MR_SAS_SW_UG.pdf
* https://www.hostdime.com/blog/bbu-vs-cachevault-vs-cachecade/
 
 
== Related Pages ==
 
* [[SSD]]
* [[NVMe]]
* [[PCIe]]
* [[SAS]]
* [[Storage]]
 
 
[[Category:Hardware]]
== Knowledge Graph ==
 
Related
 
→ [[Storcli]]
→ [[SSD]]
→ [[Hardware RAID information on Linux]]
→ [[MegaCLI]]
 
[[Category:Reference]]

Latest revision as of 11:28, 17 July 2026

HBA/RAID Controller

Template:Status

Template:TOC

Overview

HBA(Host Bus Adapter)와 RAID Controller는 서버의 저장 장치를 연결하고 관리하는 확장 카드입니다. HBA는 OS에 디스크를 직접 노출하고, RAID Controller는 온보드 RAID 기능을 제공하여 여러 디스크를 단일 가상 드라이브로 통합합니다.

Summary

  • 무엇인가? — 서버 저장 장치 연결 및 관리용 확장 카드
  • 왜 필요한가? — 다수 디스크 연결, RAID 구성, 성능 최적화
  • 언제 사용하는가? — 데이터센터, 스토리지 서버, HPC 클러스터


Purpose

이 문서가 존재하는 이유

  • Goal: HBA/RAID Controller 기본 개념, 인터페이스, RAID 레벨, 성능, 캐시 보호 기능 제공
  • Scope: HBA vs RAID vs SAS Expander, 인터페이스 대역폭, RAID 레벨별 성능, BBU/CacheVault/CacheCade
  • Non-goals: RAID 컨트롤러 펌웨어 업그레이드, 특정 제조사(LSI/Broadcom/Adaptec) 상세 설정은 별도 문서


Key Concepts

Concept Description Related
HBA Host Bus Adapter — OS에 디스크 직접 노출 HBA/RAID controller
RAID Controller 온보드 RAID 기능 제공 HBA/RAID controller
SAS Expander SAS 포트 확장 장치 HBA/RAID controller
RAID 0 스트라이핑 — 성능 최적화 HBA/RAID controller
RAID 1 미러링 — 내구성 최적화 HBA/RAID controller
RAID 5 단일 패리티 — 균형 HBA/RAID controller
RAID 6 이중 패리티 — 높은 내구성 HBA/RAID controller
BBU Battery Backup Unit — 캐시 보호 HBA/RAID controller


Architecture

RAID 컨트롤러는 CPU 인터페이스와 저장 장치 인터페이스로 구성됩니다:

graph TD
    A[RAID Controller] --> B[CPU Side - PCIe/DMI]
    A --> C[Drive Side - SAS/SATA/NVMe]
    B --> D[PCIe Gen3 x8/x16]
    B --> E[PCIe Gen4 x8/x16]
    C --> F[SATA 6G]
    C --> G[SAS 12G]
    C --> H[NVMe Gen3/Gen4]
    A --> I[Cache - BBU/CacheVault]
    A --> J[RAID Virtual Drive]
    J --> K[OS]


Workflow

Stage Input Output
Selection Workload requirements HBA/RAID controller model
Configuration RAID level + Drives Virtual Drive
Monitoring lspci / /proc/scsi/scsi Controller status
Cache Protection BBU/CacheVault/CacheCade Write cache safety


Detailed Explanation

HBA vs RAID Controller vs SAS Expander

장치 설명 관리 주체
HBA SAS/SATA 포트 확장 카드. 디스크 관리는 OS 담당. OS (예: Linux mdadm, ZFS)
RAID Controller HBA + 온보드 RAID 기능. 가상 드라이브를 OS에 제공. RAID 카드 펌웨어
SAS Expander HBA/RAID 컨트롤러의 포트 수를 확장하는 장치.

Native 및 Maximum 지원 디스크 수

  • **Native Supported Disks** — 브레이크아웃 케이블로 RAID 컨트롤러에 직접 연결 가능한 디스크 수
  • **Maximum Supported Disks** — 포트 익스팬더(예: Intel RES2SV240) 사용 시 최대 지원 디스크 수

Controller Interface

저장 장치 측 인터페이스

Storage Drive Side Interface Communication Band Theoretical Throughput Effective Throughput (90%)
SATA 6G 6 Gbps 572 MiB/s 515 MiB/s
SAS 12G 12 Gbps 1,144 MiB/s 1,030 MiB/s
NVMe Gen3 8 Gbps x4 3,756 MiB/s 3,380 MiB/s
NVMe Gen4 16 Gbps x4 7,512 MiB/s 6,760 MiB/s

CPU 측 인터페이스

CPU Side Interface Lanes Communication Band Theoretical Throughput Effective Throughput (90%)
DMI Gen3 x4 8 Gbps x4 3,756 MiB/s 3,380 MiB/s
PCIe Gen3 x8 8 Gbps x8 7,512 MiB/s 6,760 MiB/s
PCIe Gen3 x16 8 Gbps x16 15,024 MiB/s 13,520 MiB/s
PCIe Gen4 x8 16 Gbps x8 15,024 MiB/s 13,520 MiB/s
PCIe Gen4 x16 16 Gbps x16 30,048 MiB/s 27,040 MiB/s

※ 이론적 대역폭 = 128b/130b 인코딩 오버헤드(1.54%) 차감 ※ 실제 대역폭 = 이론적 × 0.90

RAID 레벨별 예상 성능

RAID Level Type Random Read Random Write Seq Read Seq Write Features
RAID 0 Stripe 1 1 N × SR N × SW 높은 대역폭, 내구성 없음
RAID 1 Mirror 1 2 N × SR N × SW / 2 내구성 우수, 최소 용량
RAID 10 Mirror + Stripe 1 2 N × SR N × SW / 2 내구성 + 성능 균형
RAID 5 Single Parity 1 4 N × SR (N-1) × SW 내구성 + 낮은 오버헤드
RAID 50 RAID 5 + Stripe RAID 5 그룹당 1드라이브 실패 허용
RAID 6 Double Parity 1 6 N × SR (N-2) × SW 높은 내구성, 쓰기 많음에 부적합
RAID 60 RAID 6 + Stripe RAID 6 그룹당 2드라이브 실패 허용

※ N: 드라이브 수, SR: 단일 읽기 성능, SW: 단일 쓰기 성능

RAID 구성 전략

목적 전략 Hot Spare
가용성 (내구성) RAID 1 (미러링) — 우수한 내구성, 중복 드라이브 필요 Hot Spare가 자동으로 교체 및 재빌드. RAID 1/5/6/10/50/60 지원.
성능 RAID 0 (스트라이핑) — 우수한 성능
RAID 00 (스팬드 스트라이핑) — 우수한 성능
RAID 5 — 대용량 파일 높은 처리량
RAID 6 — 높은 신뢰성, 높은 요청률, 높은 전송
용량 RAID 0 — 주어진 드라이브 세트 최대 용량

성능 지표

지표 단위 설명
Throughput MiB/s 초당 데이터 전송량 (메가바이트)
Transaction IO/s 초당 IO 처리량
Latency ms 평균 응답 시간 (밀리초)
    • 계산 공식:**
  • Data throughput [KiB/s] = Transaction rate [IO/s] × Block size [KiB]
  • Transaction rate [IO/s] = Data throughput [KiB/s] / Block size [KiB]

※ 시퀀셜 액세스 패턴 → Throughput, 랜덤 액세스 패턴 → Transaction Rate

Linux에서 컨트롤러 정보 확인

# 컨트롤러 정보 찾기
$ sudo lspci -vv | grep -i raid

# RAID 구성 확인
$ cat /proc/scsi/scsi

BBU vs CacheVault vs CacheCade

기능 설명 데이터 유지 기간
BBU (Battery Backup Unit) 전원 중단 시 캐시 데이터 보존. 전원 복구 시 디스크에 기록. 최대 72시간
CacheVault DRAM → NAND 플래시 이동. BBU 차세대 기술. 최대 3년
CacheCade SSD 기반 읽기/쓰기 캐시. HDD 어레이 성능 최적화. 재부팅 시 유지
    • BBU 중요성:**
  • Write Cache가 "Write Through" 또는 "Off"이면 BBU 불필요
  • Write Cache가 "On"일 때만 BBU 필요 (성능 최적화)
  • BBU 미설치 시 Write Cache가 자동으로 Off될 수 있음
  • 데이터 무결성이 중요한 경우 BBU 필수


Configuration

# 컨트롤러 정보 확인
$ sudo lspci -vv | grep -i raid

# RAID 구성 확인
$ cat /proc/scsi/scsi

# SAS 디바이스 확인
$ sudo lspci -vv | grep -i sas

# NVMe 디바이스 확인
$ nvme list


Examples

Example 1: RAID 컨트롤러 정보 확인

# RAID 컨트롤러 정보
$ sudo lspci -vv | grep -i raid

# SAS 컨트롤러 정보
$ sudo lspci -vv | grep -i sas

# 전체 PCI 디바이스 목록
$ lspci

Example 2: RAID 구성 확인

# SCSI 디바이스 목록
$ cat /proc/scsi/scsi

# NVMe 디바이스 목록
$ nvme list

# NVMe 스마트 로그
$ nvme smart-log /dev/nvme0


Best Practices

  • 워크로드에 맞는 RAID 레벨 선택 (읽기 중심 → RAID 0/5, 쓰기 중심 → RAID 10)
  • BBU 또는 CacheVault 설치 — Write Cache 활성화 시 필수
  • Hot Spare 구성 — 장애 시 자동 복구
  • SAS Expander 활용 — 디스크 수 확장
  • PCIe Gen4 x16 사용 — 최대 대역폭 확보
  • 정기적인 RAID 상태 모니터링
  • NVMe SSD 사용 — 높은 IOPS 및 낮은 지연 시간


Limitations

  • RAID 레벨 간 트레이오프 존재 (내구성 vs 성능 vs 용량)
  • RAID 6는 쓰기 작업에 부적합 (이중 패리티 오버헤드)
  • BBU는 수명 제한 있음 (배터리 교체 필요)
  • CacheCade는 SSD 용량 제한 있음
  • RAID 재구성은 데이터 손실 위험 있음


References


Related Pages

Knowledge Graph

Related

StorcliSSDHardware RAID information on LinuxMegaCLI