Storcli

From HPCWIKI
Revision as of 12:52, 15 July 2026 by Clara (talk | contribs) (Phase 6.1: LLM-Optimized Wiki Template 적용 (Storcli))
Jump to navigation Jump to search

Storcli

Template:Status

Template:TOC

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

---

Related Pages

---