8. 구축 — 초기 설정과 호스트 연결
물리 설치 체크리스트, 초기 설정 8단계의 이유와 주의사항, FC/iSCSI/NFS 각각의 호스트 연결 절차와 트러블슈팅, 벤더별 multipath 차이, fio 결과 해석법, As-Built 문서화까지. 설계를 현실로 바꾸는 구축 실무.
- 11. 스토리지, 왜 어렵고 왜 중요한가
- 22. 스토리지 아키텍처 기초 — DAS / NAS / SAN / Object Storage
- 33. 병렬 파일 시스템과 분산 스토리지 — Lustre, GPFS, HDFS
- 44. 프로토콜 깊이 파기 — FC / iSCSI / NFS / SMB / S3
- 55. RAID와 데이터 보호 — 전통 RAID부터 이레이저 코딩까지
- 66. 도입 검토 — 요구사항 분석과 벤더 선정
- 77-1. 설계 — 인프라 편 (이중화, 플랫폼, Tier)
- 87-2. 설계 — 데이터 편 (LUN 배치, 스냅샷, DR)
- 98. 구축 — 초기 설정과 호스트 연결
장비가 데이터센터에 도착했다. 박스를 뜯고, 랙에 올리고, 케이블을 꽂는다. 설계 문서대로 설정하고, 서버에 연결하고, 마운트가 되는 걸 확인한다. 이 과정이 구축이다.
구축은 설계를 현실로 바꾸는 단계다. 설계가 아무리 좋아도 구축에서 실수하면 소용없다. 케이블을 잘못 꽂으면 이중화가 깨지고, 펌웨어 버전이 안 맞으면 기능이 안 되고, multipath 설정을 빼먹으면 경로 하나 끊겼을 때 IO가 멈춘다.
스토리지 구축 전체 흐름:
① 물리 설치 → ② 초기 설정 → ③ 펌웨어 확인
→ ④ 호스트 연결 → ⑤ multipath/마운트
→ ⑥ 성능 테스트 → ⑦ As-Built 문서화
→ 다음: 인수시험 (9편)물리 설치 — 기본을 지키면 된다
랙 설치 체크리스트:
┌──────────────────────────────────────────────────────┐
│ □ 전원 이중화 │
│ PSU A → PDU A (분전반 A 계통) │
│ PSU B → PDU B (분전반 B 계통) │
│ ⚠ 같은 PDU에 두 전원 꽂으면 이중화 의미 없음 │
│ ⚠ 전원 용량(KVA) 초과하면 브레이커가 내려간다 │
│ │
│ □ 케이블 레이블링 │
│ 양쪽 끝에 라벨 부착. 안 붙이면 6개월 뒤 추적 불가. │
│ 형식: STG01-FC0a ↔ SWA-Port03 │
│ │
│ □ FC 케이블링 │
│ SFP 호환성 확인 (벤더 호환 목록 필수!) │
│ → 비호환 SFP: 링크 불안정, 간헐적 CRC 에러 │
│ OM4 (100m) vs OM3 (70m). 32Gbps는 OM4 권장. │
│ 이중화: Ctrl A → Switch A, Ctrl B → Switch B │
│ ⚠ 같은 Switch에 두 컨트롤러 다 연결하면 안 됨 │
│ │
│ □ 네트워크 케이블링 │
│ 관리: 1GbE 전용 VLAN / 데이터: 10G~100G 전용 VLAN │
└──────────────────────────────────────────────────────┘ 올바른 FC 이중화 케이블링:
[스토리지] [FC Switch]
Ctrl A ── Port 0a ──────────────── Switch A (Fabric A)
Ctrl A ── Port 0c ──────────────── Switch B (Fabric B)
Ctrl B ── Port 0a ──────────────── Switch A (Fabric A)
Ctrl B ── Port 0c ──────────────── Switch B (Fabric B)
[서버]
HBA Port 0 ────────────────────── Switch A (Fabric A)
HBA Port 1 ────────────────────── Switch B (Fabric B)
→ 경로 최소 4개. Switch 1개 죽어도, Ctrl 1개 죽어도 접근 가능.물리 설치는 보통 벤더 SE가 하지만, 케이블이 설계대로 꽂혔는지 확인하는 건 우리 몫이다. 포트 맵핑 테이블과 대조하는 걸 빠뜨리면 안 된다.
초기 설정 — 순서에는 이유가 있다
초기 설정 순서:
┌──────────────────────────────────────────────────────┐
│ 1. 관리 IP / DNS / NTP │
│ → 관리 접속 없이는 이후 설정 불가 │
│ ⚠ NTP 필수! 시간 안 맞으면 로그 시간이 뒤죽박죽, │
│ 장애 분석 시 "뭐가 먼저였는지" 추적 불가. │
│ 복제/스냅샷 시각도 부정확해짐. │
├──────────────────────────────────────────────────────┤
│ 2. 클러스터 구성 (듀얼 컨트롤러 결합) │
│ HA Pair 구성. HA Interconnect 링크 상태 확인. │
│ ⚠ HA 케이블 빠져있으면 페일오버가 안 된다. │
├──────────────────────────────────────────────────────┤
│ 3. 디스크 확인 / 스토리지 풀 생성 │
│ 디스크 전수 확인 (수량, 용량, 상태). RAID 설정. │
│ 벤더별: NetApp=aggregate, Dell=자동 풀, Pure=자동 │
├──────────────────────────────────────────────────────┤
│ 4. 네트워크 인터페이스 설정 │
│ FC 포트 속도, iSCSI IP/MTU, NFS/SMB 데이터 LIF │
├──────────────────────────────────────────────────────┤
│ 5. 볼륨/LUN 프로비저닝 (설계 문서 기준) │
├──────────────────────────────────────────────────────┤
│ 6. 관리자 계정 / RBAC │
│ ⚠ 기본 admin 비밀번호 변경 필수 │
│ ⚠ RBAC 없으면 "누가 뭘 했는지" 추적 불가 │
├──────────────────────────────────────────────────────┤
│ 7. 알림 설정 (SNMP Trap, Email, AutoSupport) │
│ ⚠ 알림 안 하면 디스크 죽은 걸 모르고 두 번째가 │
│ 나가서야 발견 │
├──────────────────────────────────────────────────────┤
│ 8. 스냅샷/복제 정책 적용 │
└──────────────────────────────────────────────────────┘펌웨어 확인 — 호환 매트릭스가 법이다
출하 시 펌웨어가 호스트 OS/HBA 드라이버와 호환되는지 반드시 확인한다.
벤더별 호환 매트릭스 도구:
NetApp → IMT (mysupport.netapp.com/matrix)
Dell → SolVe / E-Lab
HPE → SPOCK
Pure → support.purestorage.com
┌──────────────────────────────────────────────────────┐
│ 초기 구축 시 최신 펌웨어를 적용할 것인가? │
├─────────────────────────────┬────────────────────────┤
│ 출하 펌웨어가 안정 버전이고 │ 그대로 유지. │
│ 호환 매트릭스에 문제 없음 │ │
├─────────────────────────────┼────────────────────────┤
│ 알려진 버그가 있거나 │ 업그레이드. │
│ 호스트 OS와 비호환 │ │
├─────────────────────────────┼────────────────────────┤
│ 최신 GA 버전이 나옴 │ GA 직후는 숨은 버그 │
│ │ 가능. 벤더 권장 확인. │
└─────────────────────────────┴────────────────────────┘
⚠ 호환 매트릭스에 없는 조합으로 운영하면, 장애 시
벤더가 "호환되지 않는 구성" 이라며 지원을 거부할 수 있다.호스트 연결 — FC, iSCSI, NFS 각각 다르다
프로토콜에 따라 연결 절차가 완전히 다르다. 4편에서 다룬 프로토콜 지식이 여기서 실무로 연결된다.
FC 연결
FC 호스트 연결 절차:
Step 1: FC Switch에서 Zoning 설정
─────────────────────────────────
# Brocade FC Switch CLI 예시
# Alias 생성 (WWPN에 이름 붙이기)
alicreate "srv_prd_erp_db01_hba0", "10:00:00:00:c9:xx:xx:01"
alicreate "stg_netapp01_0a", "50:00:0a:xx:xx:xx:xx:0a"
# Zone 생성 (서버 HBA ↔ 스토리지 포트)
zonecreate "z_erp_db01_netapp01", \
"srv_prd_erp_db01_hba0; stg_netapp01_0a"
# Zoneset에 추가 후 활성화
cfgadd "cfg_production", "z_erp_db01_netapp01"
cfgenable "cfg_production"
cfgsave
⚠ cfgenable 실행 순간에 Zoning이 적용된다.
잘못된 Zoneset을 활성화하면 기존 서비스가 끊길 수 있다.
→ 변경 전 cfgshow 결과를 반드시 백업
→ "cfgclear"는 전체 Zoning이 날아간다. 프로덕션에서 금지.
Step 2: 스토리지에서 LUN Masking
────────────────────────────────
# NetApp ONTAP
igroup create -vserver svm01 -igroup ig_erp_db01 \
-protocol fcp -ostype linux
igroup add -vserver svm01 -igroup ig_erp_db01 \
-initiator 10:00:00:00:c9:xx:xx:01
lun map -vserver svm01 -path /vol/prd_erp_data/lun01 \
-igroup ig_erp_db01 -lun-id 0
# Dell PowerStore — Host 생성 → WWPN 등록 → Volume 매핑
# Pure Storage — Host 생성 → WWPN 등록 → Volume connect
⚠ OS Type(linux/windows)을 잘못 설정하면
LUN 사이즈가 다르게 보이거나 ALUA가 오동작한다.
Step 3: 서버에서 LUN 인식
─────────────────────────
$ echo "1" > /sys/class/fc_host/host0/issue_lip
$ echo "- - -" > /sys/class/scsi_host/host0/scan
$ multipath -ll
LUN이 안 보일 때 확인 순서:
┌──────────────────────────────────────────────────────┐
│ 1. FC Switch: Zoning에 WWPN이 제대로 들어갔는가? │
│ $ zoneshow | grep "erp_db01" │
│ │
│ 2. FC Switch: 서버/스토리지 둘 다 FLOGI 됐는가? │
│ $ fcns database │
│ │
│ 3. 스토리지: igroup에 WWPN 등록됐는가? │
│ LUN이 igroup에 매핑됐는가? │
│ │
│ 4. 서버: HBA 링크 상태가 Online인가? 속도 맞는가? │
│ $ systool -c fc_host -v │
│ │
│ 위에서 아래로 순서대로 확인하면 대부분 원인이 잡힌다. │
└──────────────────────────────────────────────────────┘iSCSI 연결
iSCSI 호스트 연결 절차:
# 서버 IQN 확인
$ cat /etc/iscsi/initiatorname.iscsi
# 스토리지에서: IQN 등록 + 볼륨 매핑 (벤더 CLI/GUI)
# 타겟 검색
$ iscsiadm -m discovery -t st -p 10.10.1.100:3260
# 타겟 로그인
$ iscsiadm -m node -T iqn.1992-08.com.netapp:sn.xxxx -l
# 자동 로그인 설정 (재부팅 대비)
$ iscsiadm -m node -T iqn... \
--op update -n node.startup -v automatic
iSCSI 주의사항:
┌──────────────────────────────────────────────────────┐
│ · 전용 VLAN 필수. 서비스 트래픽과 섞으면 성능 불안정 │
│ │
│ · Jumbo Frame 쓸 거면 경로 전체 MTU 확인 │
│ $ ping -M do -s 8972 10.10.1.100 │
│ 실패하면 어딘가 MTU가 안 맞는 거다 │
│ │
│ · 세션 타임아웃(replacement_timeout) 벤더 권장값으로 │
│ 변경. 기본 120초면 경로 장애 시 2분간 IO 멈춤. │
│ │
│ · FC보다 경로 장애 감지가 느리다 (TCP 타임아웃 의존). │
│ 미션 크리티컬 환경에서는 이 점을 감안해야 한다. │
└──────────────────────────────────────────────────────┘NFS 연결
NFS 호스트 연결 절차:
# 스토리지에서 Export 설정 (NetApp 예시)
export-policy rule create -vserver svm01 \
-policyname exp_erp -clientmatch 10.10.0.0/24 \
-rorule sys -rwrule sys -superuser sys
# 서버에서 마운트
$ mount -t nfs -o rw,hard,rsize=1048576,wsize=1048576,\
tcp,vers=3,bg 10.10.1.100:/vol_share /mnt/share
# fstab 등록
10.10.1.100:/vol_share /mnt/share nfs \
rw,hard,rsize=1048576,wsize=1048576,tcp,vers=3,\
_netdev,nofail,bg 0 0
NFS 마운트 옵션 — 핵심만:
┌──────────────┬───────────────────────────────────────┐
│ rsize/wsize │ 1MB로 올려야 처리량 개선. │
│ │ 기본값이 작은 경우가 많다. │
├──────────────┼───────────────────────────────────────┤
│ hard │ 서버 응답까지 무한 대기. 데이터 무결성│
│ │ 위해 권장. 단, NFS 서버 장애 시 │
│ │ 프로세스가 hang에 빠질 수 있다. │
├──────────────┼───────────────────────────────────────┤
│ bg │ 마운트 실패 시 백그라운드 재시도. │
│ │ 없으면 NFS 서버 안 될 때 부팅 멈춤. │
├──────────────┼───────────────────────────────────────┤
│ _netdev │ 네트워크 활성화 후 마운트. │
│ nofail │ 마운트 실패해도 부팅 계속. │
│ │ ⚠ 둘 다 빠뜨리면 스토리지 장애 시 │
│ │ 서버 부팅이 영원히 멈춘다. │
├──────────────┼───────────────────────────────────────┤
│ actimeo │ 속성 캐시. DB용=0, 일반=60. │
│ │ 0이면 메타데이터 요청 많아져 NAS 부하.│
└──────────────┴───────────────────────────────────────┘multipath — 벤더별로 다르다
멀티패스 설정은 벤더마다 권장값이 다르다. "기본값으로 써도 되겠지"하면 경로 장애 시 예상과 다르게 동작한다.
벤더별 multipath.conf 핵심 차이:
┌──────────────┬──────────────────────────────────────────┐
│ NetApp ONTAP │ prio: ontap (전용 모듈) │
│ │ no_path_retry: queue │
│ │ → 모든 경로 끊겨도 IO를 큐에 보관. │
│ │ 장점: IO 유실 방지 │
│ │ 단점: 경로 안 돌아오면 프로세스 hang │
├──────────────┼──────────────────────────────────────────┤
│ Dell │ prio: alua │
│ PowerStore │ no_path_retry: 벤더 문서 확인 │
├──────────────┼──────────────────────────────────────────┤
│ Pure Storage │ multipath.conf를 거의 안 건드려도 됨 │
│ │ 장점: 단순함. 단점: 세밀한 제어 제한적. │
├──────────────┼──────────────────────────────────────────┤
│ HPE Alletra │ prio: alua │
│ │ 벤더 제공 설치 스크립트 사용 권장 │
└──────────────┴──────────────────────────────────────────┘ multipath -ll 출력 읽는 법:
$ multipath -ll
3600a09803831...(dm-0) NETAPP,LUN
size=500G features='3 queue_if_no_path pg_init_retries 50'
├─ policy='round-robin' prio=50 status=active
│ ├─ 1:0:0:0 sda 8:0 active ready running ← Optimized
│ └─ 2:0:0:0 sdb 8:16 active ready running ← Optimized
└─ policy='round-robin' prio=10 status=enabled
├─ 1:0:1:0 sdc 8:32 active ready running ← Non-Optimized
└─ 2:0:1:0 sdd 8:48 active ready running ← Non-Optimized
┌──────────────────────────────────────────────────────┐
│ prio=50 │ ALUA Optimized 경로 (우선) │
│ prio=10 │ Non-Optimized 경로 (대기) │
│ active ready │ 정상 │
│ faulty │ ← 경로 장애! 원인 확인 필요 │
└──────────────────────────────────────────────────────┘
정상: 4개 모두 active ready running
경고: 1~2개 faulty → 이중화 중이지만 원인 확인
위험: 전부 faulty → IO 중단! 즉시 대응
faulty일 때: Switch 포트 → 케이블 → 스토리지 컨트롤러 순으로 확인파일시스템 선택
┌──────────────┬───────────────────┬───────────────────┐
│ │ ext4 │ XFS │
├──────────────┼───────────────────┼───────────────────┤
│ 대용량 성능 │ 보통 │ 우수 │
├──────────────┼───────────────────┼───────────────────┤
│ 온라인 축소 │ O (가능) │ X (불가!) │
├──────────────┼───────────────────┼───────────────────┤
│ 복구 속도 │ fsck 빠름 │ xfs_repair 느릴 수│
├──────────────┼───────────────────┼───────────────────┤
│ 권장 │ 소~중규모, 부트 │ 대용량(1TB+), DB │
└──────────────┴───────────────────┴───────────────────┘
스토리지 볼륨용은 XFS가 주류 (RHEL 7+ 기본).
XFS는 축소 불가이므로, 줄일 가능성 있으면 ext4 고려.
$ mkfs.xfs /dev/mapper/3600a09803831...
$ mkdir -p /data/erp
# fstab
/dev/mapper/3600a09803831... /data/erp xfs _netdev,nofail 0 0성능 기본 테스트
구축 후 반드시 기본 성능을 측정한다. 이 숫자가 인수시험(9편)의 Baseline이 된다.
$ fio --name=randread --filename=/data/erp/fio_test \
--ioengine=libaio --direct=1 --bs=4k \
--iodepth=32 --rw=randread --size=1G \
--runtime=60 --time_based --group_reporting
결과 읽는 법:
┌──────────────────────────────────────────────────────┐
│ read: IOPS=85.2k, BW=333MiB/s │
│ lat (usec): avg=372.15 │
│ clat percentiles: 99.00th=[ 1172] │
│ │
│ → IOPS=85,200, 평균 0.37ms, p99=1.17ms │
│ │
│ 기대보다 낮으면: │
│ 1. direct=1 확인 (OS 캐시 우회 여부) │
│ 2. multipath 경로 수 확인 (1개면 절반 성능) │
│ 3. 컨트롤러 CPU 확인 / 네트워크 대역폭 확인 │
└──────────────────────────────────────────────────────┘
⚠ 쓰기 테스트는 빈 볼륨에서만! 프로덕션 데이터를 덮어쓴다.
⚠ 씬 프로비저닝 환경에서 대량 쓰기 → 물리 공간 급소비. 테스트 후 삭제.As-Built 문서 — 안 만들면 6개월 뒤 후회한다
설계 문서와 실제 구축은 항상 차이가 있다. 그 차이를 기록한 게 As-Built 문서다.
As-Built 문서 필수 항목:
┌──────────────────────────────────────────────────────┐
│ 1. 장비 정보 (모델, 시리얼, 펌웨어, 디스크 구성) │
│ 2. 네트워크 (관리IP, 데이터IP, FC WWPN, VLAN) │
│ 3. 포트 맵핑 (스토리지↔스위치↔서버 연결 테이블) │
│ 4. Zoning 테이블 (Zone명, Alias, WWPN, Zoneset) │
│ 5. 볼륨 할당 현황 (이름, 크기, Tier, 호스트, 마운트) │
│ 6. 관리 도구 접속 정보 (URL, SSH, 계정) │
│ 7. 초기 성능 측정 결과 (fio Baseline) │
│ 8. 벤더 지원 정보 (계약번호, SE 연락처) │
│ 9. 설계 대비 변경 사항 + 변경 사유 │
└──────────────────────────────────────────────────────┘
안 만들면 벌어지는 일:
· 담당자 퇴사 시 인수인계 불가
· 장애 시 구성 파악에만 30분~1시간 소요
· 벤더 서포트 콜에서 "구성이 어떻게 되나요?"에 못 답함
· 증설/마이그레이션 시 현재 상태 전수 조사부터 다시 벤더별 관리 도구:
┌──────────────┬──────────────────────────────────────┐
│ NetApp │ CLI(ssh) + System Manager(GUI) │
│ │ + Active IQ(클라우드) │
│ │ CLI가 강력. 학습 곡선 높음. │
├──────────────┼──────────────────────────────────────┤
│ Dell │ PowerStore Manager(GUI) + CLI │
│ │ + CloudIQ(클라우드) │
│ │ GUI가 직관적. │
├──────────────┼──────────────────────────────────────┤
│ Pure Storage │ Pure1(클라우드 기반 GUI) + CLI │
│ │ 관리가 매우 단순. 세밀한 튜닝 제한적. │
├──────────────┼──────────────────────────────────────┤
│ HPE Alletra │ Management Console + InfoSight │
│ │ InfoSight 예측 분석이 강점. │
└──────────────┴──────────────────────────────────────┘구축이 끝나면 바로 운영에 들어가는 게 아니다. 다음 단계는 인수시험(9편)이다. 제대로 됐는지 검증하고, 성능 Baseline을 잡고, 이중화가 실제로 동작하는지 확인하는 과정이다. 이걸 빼먹으면 나중에 "원래 이랬나요?"라는 질문에 답할 수 없게 된다.
이 글이 어떠셨나요?
관련 포스트
4. 프로토콜 깊이 파기 — FC / iSCSI / NFS / SMB / S3
FC Zoning과 ALUA, iSCSI 네트워크 설계, NFS 마운트 옵션, SMB 멀티채널, S3 API까지. 스토리지 프로토콜의 동작 원리와 실무 설정 포인트를 아스키 도표와 함께 정리한다.
2026. 04. 20. PM 10:00Infrastructure7-2. 설계 — 데이터 편 (LUN 배치, 스냅샷, DR)
스토리지 설계의 데이터 편. LUN 분리 장단점, 네이밍 컨벤션, 스냅샷 동작 원리와 리스크, DR 동기/비동기 복제 트레이드오프, Active-Active 메트로 클러스터의 Split-Brain 리스크까지. 인프라 위에 데이터를 배치하고 보호하는 설계의 후반부.
2026. 05. 18. PM 10:00Infrastructure7-1. 설계 — 인프라 편 (이중화, 플랫폼, Tier)
스토리지 설계의 인프라 편. FC/iSCSI 네트워크 이중화와 장애 시나리오, VMware 데이터스토어 선택(VMFS/NFS/vVols)과 장애 리스크, K8s PV/PVC/CSI 설계, Tier 구조와 자동 티어링 리스크까지. 물리적 뼈대를 먼저 세우는 설계의 전반부.
2026. 05. 11. PM 10:00뉴스레터 구독
새 글이 올라오면 이메일로 알려드려요.