Storcli: Difference between revisions
Jump to navigation
Jump to search
(Added Knowledge Graph section) |
(Fix: remove --- horizontal lines (12 removed)) |
||
| Line 20: | Line 20: | ||
* 언제 사용하는가? — 데이터센터 서버 RAID 관리 | * 언제 사용하는가? — 데이터센터 서버 RAID 관리 | ||
== Purpose == | == Purpose == | ||
| Line 30: | Line 29: | ||
* Non-goals: MegaCLI 레거시 명령어, 특정 OEM 펌웨어 설정은 별도 문서 | * Non-goals: MegaCLI 레거시 명령어, 특정 OEM 펌웨어 설정은 별도 문서 | ||
== Key Concepts == | == Key Concepts == | ||
| Line 72: | Line 70: | ||
|} | |} | ||
== Architecture == | == Architecture == | ||
| Line 89: | Line 86: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Workflow == | == Workflow == | ||
| Line 119: | Line 115: | ||
|} | |} | ||
== Detailed Explanation == | == Detailed Explanation == | ||
| Line 433: | Line 428: | ||
|} | |} | ||
== Configuration == | == Configuration == | ||
| Line 457: | Line 451: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Examples == | == Examples == | ||
| Line 496: | Line 489: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Best Practices == | == Best Practices == | ||
| Line 509: | Line 501: | ||
* 정기적인 [[smartctl]] 모니터링 | * 정기적인 [[smartctl]] 모니터링 | ||
== Limitations == | == Limitations == | ||
| Line 519: | Line 510: | ||
* 일부 기능은 컨트롤러 모델에 따라 제한됨 | * 일부 기능은 컨트롤러 모델에 따라 제한됨 | ||
== References == | == References == | ||
| Line 526: | Line 516: | ||
* https://www.broadcom.com/support/knowledgebase/1211161499760/ | * https://www.broadcom.com/support/knowledgebase/1211161499760/ | ||
== Related Pages == | == Related Pages == | ||
| Line 536: | Line 525: | ||
* [[BBU]] | * [[BBU]] | ||
[[Category:Linux]] | [[Category:Linux]] | ||
Latest revision as of 11:30, 17 July 2026
Storcli
Overview
StorCLI는 Broadcom(구 LSI/Avago) MegaRAID 컨트롤러를 관리하기 위한 명령줄 도구입니다. MegaCLI의 후속 버전으로, 더 향상된 기능과 호환성을 제공합니다.
Summary
- 무엇인가? — MegaRAID 컨트롤러 관리 CLI 도구
- 왜 필요한가? — RAID 구성, 모니터링, 성능 최적화
- 언제 사용하는가? — 데이터센터 서버 RAID 관리
Purpose
이 문서가 존재하는 이유
- Goal: StorCLI 설치, 명령어, RAID 구성, 모니터링 방법 제공
- Scope: StorCLI 설치, 명령어 요약, RAID 생성/삭제/확장, 핫 스페어 관리
- Non-goals: MegaCLI 레거시 명령어, 특정 OEM 펌웨어 설정은 별도 문서
Key Concepts
| Concept | Description | Related |
|---|---|---|
| MegaRAID | Broadcom RAID 컨트롤러 라인업 | Storcli |
| Virtual Drive | RAID로 구성된 논리 드라이브 | Storcli |
| Physical Drive | 실제 물리적 디스크 | Storcli |
| Hot Spare | 예비 디스크 — 자동 복구 | Storcli |
| Write Policy | Write Back/Through — 성능 vs 안전 | Storcli |
| BBU/CacheVault | 캐시 보호 장치 | HBA/RAID controller |
| Direct Mode | PD 매핑 고정 | Storcli |
| Foreign Config | 이전 서버 구성 이력 | Storcli |
Architecture
StorCLI는 MegaRAID 컨트롤러와 물리적 디스크 간 인터페이스입니다:
graph TD
A[StorCLI] --> B[MegaRAID Controller]
B --> C[Physical Drives]
B --> D[Virtual Drives]
B --> E[BBU/CacheVault]
C --> F[HDD/SSD]
D --> G[OS / Filesystem]
E --> H[Cache Protection]
Workflow
| Stage | Input | Output |
|---|---|---|
| Install | .deb package | storcli64 binary |
| Show | storcli show | Controller info |
| Create RAID | storcli add vd | Virtual Drive |
| Monitor | storcli /c0/vall show | RAID status |
| Replace Disk | storcli /c0/e8/s0 start rebuild | Rebuild in progress |
Detailed Explanation
StorCLI 설치 (Ubuntu)
# 최신 버전 다운로드 (Broadcom 공식 URL)
# storcli_rel 폴더 생성
# Unified_storcli_all_os.zip 추출
# Ubuntu 폴더로 이동
# Debian 패키지 설치
$ sudo dpkg -i storcli_rel/Unified_storcli_all_os/Ubuntu/*.deb
# 설치 확인
$ dpkg -l | grep -i storcli
# 기본 설치 경로: /opt/MegaRAID/storcli/storcli64
# 심볼릭 링크 생성 (권장)
$ sudo ln -s /opt/MegaRAID/storcli/storcli64 /usr/local/bin/storcli
StorCLI vs MegaCLI
StorCLI는 MegaCLI의 후속 버전이지만, **명령어 구문이 호환되지 않습니다**. Broadcom의 크로스 레퍼런스 페이지에서 차이점을 확인할 수 있습니다.
StorCLI 명령어 사용
- StorCLI는 루트 권한으로 실행해야 합니다.** (권한 없으면 에러 없이 실패)
# 권한 없이 실행 (실패)
$ storcli show
Number of Controllers = 0
# 권한 있고 실행 (성공)
$ sudo storcli show
Number of Controllers = 1
시스템 개요
$ sudo storcli show
System Overview :
===============
------------------------------------------------------------------------------------
Ctl Model Ports PDs DGs DNOpt VDs VNOpt BBU sPR DS EHS ASOs Hlth
------------------------------------------------------------------------------------
0 AVAGOMegaRAIDSAS9361-8i 8 6 0 0 0 0 N/A On 1&2 Y 3 Opt
------------------------------------------------------------------------------------
- 기호 설명:**
- Ctl: Controller Index
- DGs: Drive Groups
- VDs: Virtual Drives
- PDs: Physical Drives
- Fld: Failed
- DNOpt: Array NotOptimal
- VNOpt: VD NotOptimal
- Opt: Optimal
- Msng: Missing
- Dgd: Degraded
- sPR: Scheduled Patrol Read
- DS: DimmerSwitch
- EHS: Emergency Spare Drive
- Hlth: Health
RAID 생성
# RAID6 생성 (6개 HDD)
$ sudo storcli /c0 add vd r6 name=RAID6 drives=0:0-5
# RAID1 생성 (OS용)
$ sudo storcli /c0 add vd type=raid1 drives=0:0-1 name=OS
# RAID10 생성
$ sudo storcli /c0 add vd type=raid10 drives=0:0-3 name=RAID10
# RAID5 생성
$ sudo storcli /c0 add vd type=raid5 drives=0:0-5 name=RAID5
- RAID 생성 옵션:**
- `strip=<8|16|32|64|128|256|512|1024>` — 스트라이프 크기
- `pdcache=on|off|default` — 물리적 드라이브 캐시
- `wt|wb` — Write Through/Back
- `nora|ra` — Read Ahead
- `Spares=[e:]s|[e:]s-x` — 핫 스페어
RAID 삭제
# 가상 드라이브 삭제
$ sudo storcli /c0/v0 del
# 모든 가상 드라이브 삭제
$ sudo storcli /c0/vall del
디스크 캐시 정책
# 가상 드라이브 캐시 정책 설정
$ sudo storcli /c0/v0 set pdcache=on
$ sudo storcli /c0/v0 set rdcache=nora
$ sudo storcli /c0/v0 set wrcache=wb
- LSI 권장사항:**
- 모든 RAID 레벨 → Direct I/O 권장
- RAID 0/1/10 (스트리밍) → Write Through 권장
- RAID 0/1/10 (랜덤) → Write Back 권장
- RAID 5/6 → Write Back 권장
Write Policy
| Write Policy | Description | Recommendation |
|---|---|---|
| Write Back (WB) | 컨트롤러 캐시에 데이터 수신 시 완료 신호 | "bursty" 쓰기 환경에 효율적 |
| Write Through (WT) | 드라이브에 데이터 수신 시 완료 신호 | RAID 0/1/10 스트리밍 데이터에 권장 |
| Always Write Back (AWB) | BBU 부재 시에도 Write Back 강제 | BBU 필수 (데이터 손실 위험) |
디스크 정보 확인
# 사용 가능한 디스크 확인
$ sudo storcli /c0/eall/sall show
# 출력 예시
# EID:Slt DID State DG Size Intf Med SED PI SeSz Model Sp Type
# 0:0 4 UGood - 10.913 TB SAS HDD N N 512B HUH721212AL5200 U -
- 디스크 상태:**
- UGood: Unconfigured Good
- GHS: Global Hot Spare
- DHS: Dedicated Hot Spare
- Onln: Online
- Fld: Failed
Foreign Configuration 처리
# Foreign Configuration 삭제
$ sudo storcli /c0/fall delete
# Foreign Configuration 확인
$ sudo storcli /c0/fall show
핫 스페어 관리
| Type | Description | Example |
|---|---|---|
| Global Hot Spare | 모든 RAID 그룹에 자동 할당 | `storcli /cx/ex/sx add hotsparedrive` |
| Dedicated Hot Spare | 특정 RAID 그룹에 할당 | `storcli /cx/ex/sx add hotsparedrive dgs=N` |
| Emergency Hot Spare | SMART 오류 시 자동 할당 | `storcli /cx set eghs eug=on` |
- 핫 스페어 제거:**
# 핫 스페어 상태 제거
$ sudo storcli /c0/e65/s11 delete hotsparedrive
# 디스크 오프라인
$ sudo storcli /c0/e65/s11 set offline
디스크 위치 찾기
# 디스크 깜빡이기 (물리적 위치 확인)
$ sudo storcli /c0/e0/s2 start locate
# 깜빡임 중지
$ sudo storcli /c0/e0/s2 stop locate
디스크 교체
# 실패한 디스크 교체
$ sudo storcli /c0/e8/s0 insert dg=0 array=0 row=0
# 수동 리빌드 시작
$ sudo storcli /c0/e8/s0 start rebuild
디스크 직렬 번호 확인
$ sudo storcli /c0/eALL/sALL show all | egrep 'Device attributes|SN = '
디스크 상태 확인 (smartctl)
# 디바이스 ID 확인
$ sudo storcli /c0/eall/sall show
# smartctl로 디스크 테스트
$ smartctl -d megaraid,1 -a /dev/sda
Direct Mode vs Persistent Mode
| Mode | Description | Use Case |
|---|---|---|
| Persistent (default) | device IDs 변경 가능, expanders에 적합 | 기본값 |
| Direct | device IDs 고정, phy 번호와 일치 | 직접 연결 디스크 |
# 현재 설정 확인
$ sudo storcli /c0 show directpdmapping
# Direct Mode 활성화
$ sudo storcli /c0 set directpdmapping=on
# Direct Mode 비활성화
$ sudo storcli /c0 set directpdmapping=off
RAID 확장
# 기존 RAID5에 디스크 추가
$ sudo storcli /c0/v0 start migrate type=raid5 option=add drives=8:0
※ RAID 00, 10, 50, 60은 이 방식으로 확장 불가
StorCLI 명령어 요약
| Type | Description | Example |
|---|---|---|
| System | 시스템 상태 확인 | `storcli show` `storcli show ctrlcount` `storcli -v` |
| Controller | 컨트롤러 속성 | `storcli /cx show` `storcli /cx set rebuildrate=50` |
| Drive | 물리적 드라이브 | `storcli /cx/ex/sx show` `storcli /cx/ex/sx set good` |
| Virtual Drive | 가상 드라이브 | `storcli /cx/vx show init` `storcli /cx/vx start init full` |
| Consistency Check | 일관성 검사 | `storcli /cx/vx start cc` `storcli /cx/vx pause cc` |
| Background Init | 백그라운드 초기화 | `storcli /cx/vx start bgi` `storcli /cx/vx stop bgi` |
| Foreign Config | 외부 구성 | `storcli /c0/fall import` `storcli /c0/fall delete` |
| BBU/CV | 캐시 보호 | `storcli /cx/cv show all` `storcli /cx/bbu show status` |
| Hot Spare | 핫 스페어 | `storcli /cx/ex/sx add hotsparedrive` `storcli /cx/ex/sx delete hotsparedrive` |
Configuration
# StorCLI 설치
$ sudo dpkg -i storcli_rel/Unified_storcli_all_os/Ubuntu/*.deb
$ sudo ln -s /opt/MegaRAID/storcli/storcli64 /usr/local/bin/storcli
# RAID 구성
$ sudo storcli /c0 add vd type=raid6 drives=0:0-5 name=DATA
# RAID 상태 확인
$ sudo storcli /c0/vall show
# 디스크 상태 확인
$ sudo storcli /c0/eall/sall show
# 캐시 정책 설정
$ sudo storcli /c0/v0 set wrcache=wb
$ sudo storcli /c0/v0 set rdcache=nora
$ sudo storcli /c0/v0 set pdcache=on
Examples
Example 1: RAID6 생성 및 마운트
# RAID6 생성
$ sudo storcli /c0 add vd r6 name=RAID6 drives=0:0-5
# RAID6 확인
$ sudo storcli /c0/vall show
# 파티션 생성
$ sudo parted -s -a optimal /dev/sda mklabel gpt mkpart primary 0% 100%
# 파일시스템 생성
$ sudo mkfs.ext4 /dev/sda1
# 마운트
$ sudo mount /dev/sda1 /mnt/data
Example 2: 디스크 교체
# 실패한 디스크 확인
$ sudo storcli /c0/eall/sall show
# 디스크 교체
$ sudo storcli /c0/e8/s0 insert dg=0 array=0 row=0
# 리빌드 시작
$ sudo storcli /c0/e8/s0 start rebuild
# 리빌드 진행률 확인
$ sudo storcli /c0 show rebuild
Best Practices
- StorCLI는 항상 루트 권한으로 실행
- Write Back + BBU/CacheVault 조합 사용 (성능 최적화)
- 핫 스페어 구성 (자동 복구)
- 정기적인 Consistency Check 실행
- Foreign Configuration 처리 (교체 서버 디스크)
- Direct Mode 활성화 (직접 연결 디스크)
- 디스크 직렬 번호 기록 (물리적 위치 추적)
- 정기적인 smartctl 모니터링
Limitations
- StorCLI는 MegaCLI와 명령어 호환 안됨
- RAID 00/10/50/60은 확장 불가
- Write Back은 BBU 필수 (데이터 손실 위험)
- StorCLI는 루트 권한 필요
- 일부 기능은 컨트롤러 모델에 따라 제한됨
References
- https://docs.broadcom.com/doc/12352476
- https://www.broadcom.com/support/knowledgebase/1211161499760/
Related Pages
Knowledge Graph
Related