Recent Posts
Recent Comments
Link
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Tags more
Archives
Today
Total
관리 메뉴

일상과 여행 사이, 작은 발견들을 기록합니다

[Solaris 11.4] OS 날아갔다고요? rpool split으로 완벽 복구 본문

Oracle_Unix_Server

[Solaris 11.4] OS 날아갔다고요? rpool split으로 완벽 복구

kerasi 2026. 3. 13. 13:26
반응형
20년차 솔라리스 장인의 ZFS rpool Split 비급서 (데몬 복구 포함)
Solaris OS Survival Guide

"OS 날아갔다고요? rpool split으로 완벽 복구"

20년 차 솔라리스 엔지니어가 알려주는 미러(Mirror) 구성부터 백업, SPARC 부팅, 그리고 가장 중요한 데몬(SMF) 정상화까지의 풀코스 가이드.

1. 시작은 근본부터: rpool 미러(Mirror) 구성하기

split(분리)을 하려면 쪼갤 대상이 있어야겠죠? 현재 rpool이 싱글 디스크라면, 먼저 여분의 디스크(예: c1d5)를 붙여서 거울(Mirror) 상태로 만들어야 합니다.

root@solaris:~
# 원본 디스크(c1d4)에 새로운 빈 디스크(c1d5)를 붙여 미러링을 시작합니다.
root@cl1:~# zpool attach -f rpool c1d4 c1d5
# 리실버링(Resilvering)이 100% 완료될 때까지 느긋하게 기다려줍니다.
root@cl1:~# zpool status rpool

2. 디스크 쪼개기 (백업 생성)

작업 전 zpool status -x로 디스크가 모두 정상(ONLINE)인지, 미러(Mirror) 구성인지 확인하세요. 확인이 끝났다면 바로 분열 시작합니다.

root@solaris:~
# rpool의 거울(Mirror) 구성 중 특정 디스크(c1d5)를 떼어내어 spool 이라는 새로운 풀을 만듭니다.
root@cl1:~# zpool split rpool spool c1d5
# 확인해볼까요? spool이 무사히 생성되었습니다.
root@cl1:~# zpool status spool
pool: spool
state: ONLINE
...
# 데이터 꼬임 방지를 위해 생성된 풀을 시스템에서 일단 내려(export) 줍니다. (권장)
root@cl1:~# zpool export spool

3. 대참사! spool로 부팅하기 (SPARC 전용)

OS가 패닉에 빠졌습니다! 떼어놓은 spool 디스크로 부팅하여 타임머신을 탑시다.

SPARC OBP (ok prompt)

시스템을 내리고 ok 프롬프트 상태에서 쪼개놓은 디스크(spool)의 물리적 경로로 부팅합니다.

{0} ok boot alt_disk_path

4. [핵심] 부팅 직후 뻗어버린 데몬(SMF) 복구하기

부팅에 성공했다고 기뻐하기엔 이릅니다. svcs -xv를 쳐보면 새빨간 maintenance 지옥이 펼쳐져 있을 겁니다. 이는 기존 rpool을 기준으로 설정되어 있던 Swap과 Dump 디바이스 경로를 찾지 못해서 데몬들이 기동을 거부하는 현상입니다. 원본 매뉴얼의 절차대로 싹 다 고쳐봅시다!

1단계: Swap 및 Dump 디바이스 재설정

root@solaris:~
# 1. 덤프(Dump) 디바이스 설정을 새로운 spool 볼륨으로 변경합니다.
root@cl1:~# dumpadm -d /dev/zvol/dsk/spool/dump
# 2. 기존(rpool)에 잡혀있던 스왑(Swap) 디바이스를 목록에서 제거합니다. (에러가 나도 무시)
root@cl1:~# swap -d /dev/zvol/dsk/rpool/swap
# 3. 새로운 스왑 디바이스를 시스템에 추가합니다.
root@cl1:~# swap -a /dev/zvol/dsk/spool/swap

2단계: IPS 패키지 저장소(repo114, sru87) 복구

root@solaris:~
# 1. 기존 rpool에 잡혀있던 퍼블리셔(Origin) 경로를 모두 삭제합니다.
root@cl1:~# pkg set-publisher -G file:///rpool/repo114/ -G file:///rpool/sru87/ solaris
# 2. 새로운 spool 경로로 퍼블리셔를 새로 추가(생성)합니다.
root@cl1:~# pkg set-publisher -g file:///spool/repo114/ -g file:///spool/sru87/ solaris
# 패키지 서버 데몬(SMF)이 바라보는 디렉터리 경로(inst_root)도 spool로 변경합니다.
root@cl1:~# svccfg -s svc:/application/pkg/server:repo114 setprop pkg/inst_root = /spool/repo114
root@cl1:~# svccfg -s svc:/application/pkg/server:sru87 setprop pkg/inst_root = /spool/sru87
# 변경된 SMF 설정을 리프레시하고 데몬을 확실하게 내렸다가 다시 올립니다. (어설픈 restart 대신 disable/enable 사용!)
root@cl1:~# svcadm refresh svc:/application/pkg/server:repo114
root@cl1:~# svcadm disable svc:/application/pkg/server:repo114
root@cl1:~# svcadm enable svc:/application/pkg/server:repo114
root@cl1:~# svcadm refresh svc:/application/pkg/server:sru87
root@cl1:~# svcadm disable svc:/application/pkg/server:sru87
root@cl1:~# svcadm enable svc:/application/pkg/server:sru87

5. 망가진 원본 디스크 덮어쓰기 (미러 복원)

데몬까지 완벽하게 살려냈다면, 이제 망가졌던 원래 디스크를 새 풀(spool)에 갖다 붙여서 다시 든든한 Mirror 상태로 만들 차례입니다.

root@solaris:~
# 현재 부팅된 디스크(c1d5)에 망가진 예전 디스크(예: c1d4)를 강제(-f)로 붙입니다.
root@cl1:~# zpool attach -f spool c1d5 c1d4
# 리실버링(Resilvering)이 완료될 때까지 상태를 모니터링합니다.
root@cl1:~# zpool status spool
# [매우 중요] 새로 붙인 디스크에도 부트섹터를 심어주어야 나중에 장애 시 부팅이 가능합니다.
root@cl1:~# bootadm install-bootloader

여기까지 오셨다면 당신은 완벽하게 시스템을 심폐소생술 해낸 겁니다.
SMF 데몬 복구까지 깔끔하게 처리하는 엔지니어가 진짜 프로죠.
수고하셨습니다. 데이터센터의 영웅이시여! 🚀

반응형