(하드웨어 진단 → 커널 튜닝 → 스토리지/네트워크 → HA/DR까지, 운영자가 바로 쓰는 체크리스트 중심)
목차
- [서론] 왜 지금도 HP-UX 운영 역량이 중요할까
- [본론]
- 하드웨어 아키텍처/무결성 진단: machinfo / ioscan / cstm
- 커널 파라미터 최적화: kctune + “수학적 모델링” 실전 적용
- 스토리지/LVM/VxFS: vgdisplay / lvdisplay / vxfsstat / bdf
- SAN/FC 진단: fcmsutil / scsimgr
- 메모리 병목 분석: vmstat + dbc_max_pct
- 네트워크 진단: nwmgr / lanadmin 에러 카운터 해석
- 성능 모니터링: glance(gpm) / sar 로 병목 분해
- 고가용성/재해복구: cmviewcl / make_tape_recovery
- 로그 기반 장애 예측: syslog 패턴 운영
- [결론] 운영 철학 3요소 + 3줄 요약
- [치트 시트] 한 장으로 끝내는 명령어/정상기준/이상징후
[서론] 왜 지금도 HP-UX 운영 역량이 중요할까
이 장이 왜 중요한지: 운영자의 판단이 곧 다운타임 비용을 좌우해요.
HP-UX는 RAS(신뢰성·가용성·서비스 용이성)를 목표로 설계됐습니다.
그래서 “명령어를 아는 수준”을 넘어서, 출력값의 행간을 읽고 선제 대응하는 운영 방식이 중요해요.
- HP-UX 11i v1(11.11) → v2(11.23) → v3(11.31)로 오면서
Native Multipathing, 동적 커널 튜닝, 통합 네트워크 관리가 강화됐습니다. - 이 글은
진단 → 해석 → 조치가 이어지는 “운영자 플레이북”입니다.
[본론]
1) 하드웨어 아키텍처/무결성 진단 (machinfo / ioscan / cstm)
이 장이 왜 중요한지: 하드웨어가 흔들리면 커널/스토리지/네트워크 튜닝은 의미가 없고, 장애는 결국 물리 계층에서 터져요.
1-1. 플랫폼 정체성 확인: uname/model/machinfo
가장 먼저 “내가 뭘 운영 중인지”를 확인합니다.
유지보수 계약, 패치 레벨, 호환성 검증의 시작점이에요.
uname -a model machinfo
uname -amodelmachinfo
- uname -a: OS/커널/노드 기본값 확인
- model: 서버 모델명 확인(자산/계약/호환성)
- machinfo: CPU/메모리/펌웨어까지 디테일 확인(특히 Integrity/IA64 계열)
🧠 엔지니어의 한 끗 차이 노하우
machinfo “Memory” 섹션은 ‘장착 용량’이 아니라 ‘OS가 신뢰하는 용량’이에요.
표시 용량이 물리 장착보다 작으면, 특정 DIMM이 펌웨어 레벨에서 Deconfigured(PDT 기반 비활성화) 됐을 가능성이 높습니다.
👉 조치: “OS 튜닝”부터 하지 말고, 즉시 하드웨어 교체/점검 플로우로 전환하세요.
1-2. I/O 디바이스 트리/경로 확인: ioscan
I/O는 HP-UX 운영에서 자주 무너지는 축입니다.
디스크, HBA, FC, NIC 모두 여기서 출발해요.
ioscan -fn
ioscan -fn
-f: Full listing-n: 디바이스 파일 노드까지 출력
Legacy View vs Agile View 핵심 비교
운영 난이도를 크게 바꾸는 포인트라 표로 고정해두는 게 좋아요.
| 기능 | Legacy View (ioscan -f) | Agile View (ioscan -N) |
|---|---|---|
| 디바이스 파일 형식 | /dev/dsk/cXtXdX | /dev/disk/diskX |
| 경로 의존성 | 물리 HW 경로에 종속 | 물리 경로와 무관(영구적) |
| 다중 경로 | PVLinks 수동 구성 | Native Multipathing |
| 운영 안정성 | HW 변경 시 파일명 변경 위험 | HW 변경에도 파일명 유지 |
ioscan -N
ioscan -N
- LUN 재할당, HBA 교체 후에는 커널 인식 상태를 다시 확인합니다.
- 특수 디바이스 파일 노드 동기화가 필요하면 아래를 씁니다.
insf -e
insf -e
1-3. STM(cstm)로 “OS 밖의 디테일”을 긁어오기
OS 명령에서 안 보이는 저수준 신호는 STM이 잡습니다.
echo "map; wait; info; wait; infolog" | cstm
echo "map; wait; info; wait; infolog" | cstm
map: 하드웨어 맵 생성info: 장치 정보 수집wait: 단계 완료 대기(여기서 안정성 갈립니다)infolog: 로그 형태 출력
주의사항(실수 포인트)
- 운영 중 과도한 진단은 지연(Latency)을 만들 수 있어요.
- 특히 I/O 부하가 큰 시간대면,
wait없이 연쇄 실행하는 습관이 사고로 이어집니다.
2) 커널 파라미터 최적화 (kctune) + 수학적 모델링
이 장이 왜 중요한지: HP-UX 성능은 “커널 테이블의 크기”에서 무너지고, 그 신호는 장애로 먼저 나타나요.
2-1. 동적 튜닝의 기본: kctune
11i v3에서 운영 난이도가 내려간 이유가 동적 변경이에요.
kctune -v maxfiles
kctune -v maxfiles
예시 출력에서 꼭 봐야 하는 줄:
Current ValueValue at Next BootCapabilities: dynamic(즉시 적용 가능)
동적 vs 정적 파라미터 운영 규칙(요약 표)
| 구분 | 특징 | 운영 포인트 |
|---|---|---|
| dynamic | 즉시 반영 | 변경 이력/근거 기록 필수 |
| static | 재부팅 후 반영 | 변경은 “점검 창구”에 맞춰 계획 |
2-2. “수학적 모델링”을 운영 언어로 번역하기
값을 크게 잡는다고 안정적이지 않습니다.
커널 메모리를 태워서 다른 병목을 만들 수 있어요.
🧠 엔지니어의 한 끗 차이 노하우
커널 튜닝은 “희망값”이 아니라 워크로드 기반 추정값이어야 해요.
nproc만 보고 끝내지 말고, Java/WAS라면 nkthread가 먼저 병목이 됩니다.
또한 ncallout 부족은 성능 저하가 아니라 패닉으로 튀기 때문에 우선순위가 높아요.
(1) 프로세스/스레드: nproc, nkthread
- 멀티스레드 워크로드는 nkthread가 먼저 부족해집니다.
- 가이드라인(운영자용 표현):
- “프로세스 수 × 평균 스레드 수 + 시스템 오버헤드” 정도는 확보해야 안전합니다.
- nkthread 부족 시:
fork()실패"Resource temporarily unavailable"류의 오류가 등장합니다.
(2) 파일 디스크립터: maxfiles, maxfiles_lim, nfile
웹/소켓 중심 워크로드는 파일 디스크립터가 곧 연결 수입니다.
- maxfiles: 프로세스당 소프트 제한
- maxfiles_lim: 하드 제한
- nfile: 시스템 전체 오픈 파일 테이블
운영 감각:
- maxfiles는 최소 4096 이상을 기본선으로 보고,
- nfile은 nproc에 비례해 충분히 크게 잡습니다.
(3) 타이머 테이블: ncallout
- 스레드/네트워크/I/O가 많을수록 타이머가 늘어납니다.
- 부족하면:
"Callout Table Overflow"- 커널 패닉으로 이어질 수 있어요.
즉시 점검 체크리스트
- ( ) 장애 로그에 fork 실패/FD 부족/Callout overflow가 있는가
- ( ) kctune로 현재값/부팅값/동적 여부를 분리해 확인했는가
- ( ) 변경 근거(트래픽/접속수/스레드 수)를 숫자로 남겼는가
2-3. 구성 문서화: print_manifest
튜닝 시스템은 “기억”으로 운영하면 복구가 늦습니다.
문서가 곧 DR(재해복구) 속도예요.
print_manifest # 결과 예시 경로: # /var/opt/ignite/local/manifest/manifest.html
print_manifest# 결과 예시 경로:# /var/opt/ignite/local/manifest/manifest.html
3) 스토리지/LVM/VxFS 엔지니어링
이 장이 왜 중요한지: 스토리지는 “느림”으로 시작해서 “데이터 손상”으로 끝나기 때문에, 상태 기준을 고정해야 해요.
3-1. VG 건강 상태: vgdisplay -v
vgdisplay -v vg00
vgdisplay -v vg00
- VG Status: 반드시
available - Act PV:
Total PV보다 작으면 장애/접근 불가 PV가 있다는 뜻
3-2. LV 미러링 상태: lvdisplay -v
lvdisplay -v /dev/vg00/lvolX
lvdisplay -v /dev/vg00/lvolX
- Mirror copies: 1 이상(미러링 구성 시)
- Stale extents: 반드시 0
- 0이 아니면 데이터 불일치/동기화 이슈 가능
필요 시:
lvsync /dev/vg00/lvolX
lvsync /dev/vg00/lvolX
3-3. VxFS 성능/메타데이터 튜닝: vxfsstat + bdf/bdf -i
vxfsstat -v /mount_point bdf bdf -i
vxfsstat -v /mount_pointbdfbdf -i
- bdf: 공간(%)만 보지 마세요.
- bdf -i: 아이노드 고갈은 “공간 남았는데 파일 생성 실패”로 터집니다.
🧠 엔지니어의 한 끗 차이 노하우
“디스크가 남아있는데도 장애”는 대개 아이노드/메타데이터 쪽이에요.
작은 파일이 많은 워크로드(메일/웹)는 VxFS inode 캐시가 병목이 됩니다.
vx_iget 계열 overflow가 보이면, 커널 파라미터(vx_ninode 등)를 의심하세요.
4) SAN/FC 진단 (fcmsutil / scsimgr)
이 장이 왜 중요한지: SAN은 “링크 UP”만 보고 안심하면, 간헐 오류가 데이터/성능을 같이 갉아먹어요.
4-1. HBA 상태 확인: fcmsutil
fcmsutil /dev/fcd0 fcmsutil /dev/fcd0 stat
fcmsutil /dev/fcd0fcmsutil /dev/fcd0 stat
정상 기준(운영자 기준):
- Topology:
FABRIC또는PUBLIC_LOOP - Link State:
UP - 에러 카운터:
Loss of Signal,Link Failures가 증가 추세면 위험
의심 우선순위:
- 광케이블 오염/벤딩
- SFP 불량
- 스위치 포트 이슈
4-2. Active-Passive 환경의 path thrashing 방지: scsimgr
- Active-Passive 스토리지는 경로 전환이 잦으면 성능이 급락합니다.
- 레거시 디바이스 파일의 멀티패스 속성은 scsimgr로 제어합니다.
5) 메모리 병목 분석 (vmstat) + dbc_max_pct 튜닝
이 장이 왜 중요한지: 메모리 병목은 CPU를 “일하는 시간”이 아니라 “페이지 교체”에 쓰게 만들어요.
5-1. vmstat로 스래싱을 숫자로 판단하기
vmstat 1 10
vmstat 1 10
핵심 컬럼:
- sr(Scan Rate)
- 0이면 여유
- 수백~수천이면 스래싱 가능성
- po(Page Out)
- sr이 높고 po가 지속되면 증설/구조 조정이 급합니다.
5-2. DB 서버의 이중 캐싱 방지: dbc_max_pct
DB는 자체 캐시(SGA 등)가 있습니다.
OS 버퍼 캐시가 과하면 메모리 효율이 깨져요.
- dbc_max_pct를 10~20% 이하로 낮춰
DB가 쓸 메모리를 확보하는 전략이 자주 유효합니다.
6) 네트워크 진단 (nwmgr/lanadmin) “에러 카운터 해석”
이 장이 왜 중요한지: 네트워크 문제는 ping으로 안 잡히고, 카운터는 거짓말을 안 해요.
6-1. 관리 도구의 진화: lanadmin → nwmgr
nwmgr --st -c lan0 # 예시 설정: nwmgr -s -A speed=1000FD -c lan0
nwmgr --st -c lan0# 예시 설정:nwmgr -s -A speed=1000FD -c lan0
- nwmgr은 NIC/VLAN/APA 등을 통합 관리합니다.
- 설정 지속성(재부팅 후 유지)도 운영 포인트예요.
6-2. 물리 장애를 말해주는 에러 카운터
- FCS Errors(CRC): 케이블/커넥터/EMI 의심
- Alignment Errors: 물리 매체 결함 강력 의심
- Late Collisions: 듀플렉스 미스매치/규격 초과/설정 불일치 의심
🧠 엔지니어의 한 끗 차이 노하우
“간헐적 느림”은 대부분 **카운터의 ‘증가 추세’**로 잡아요.
스냅샷 1번이 아니라, 5~10분 간격으로 3회 이상 비교하세요.
증가 추세가 확인되면, 상위 계층(라우팅/앱)으로 뛰지 말고 물리/듀플렉스부터 정리하는 게 가장 빠릅니다.
7) 성능 모니터링: glance(gpm) / sar로 병목 분해
이 장이 왜 중요한지: “느리다”는 불만을 수치로 쪼개야, 원인과 책임이 분리됩니다.
7-1. CPU 병목: sar -q (run queue)
sar -q 1 10
sar -q 1 10
runq-sz는 CPU를 기다리는 큐입니다.- 코어당 1 초과면 병목이 시작된다고 보는 운영 감각이 유효합니다.
7-2. glance(gpm): Top을 넘어서는 운영자 도구
- CPU(c 키): user/system/wait 분해
- Disk(d 키): 큐 대기 vs 처리 시간 분리
판단 기준(예시):
- system 비중이 비정상적으로 높으면
스핀락 경합, 시스템콜 과다, 드라이버 비효율 등을 의심합니다.
8) 고가용성/재해복구: Serviceguard + Ignite-UX
이 장이 왜 중요한지: 장애는 발생합니다. 중요한 건 복구 속도와 재현 가능성이에요.
8-1. 클러스터 상태 점검: cmviewcl -v
cmviewcl -v
cmviewcl -v
- Node Status: 모두 Up
- Package Status: Up + Primary에서 구동 중인지 확인
- Policy Violation: 예비 노드에서 구동 중이면 과거 failover 흔적입니다.
원인 파악 후 failback 계획이 필요해요.
8-2. 베어메탈 복구 백업: make_tape_recovery
make_tape_recovery -Av -x inc_entire=vg00 -a /dev/rmt/0mn
make_tape_recovery -Av -x inc_entire=vg00 -a /dev/rmt/0mn
-x inc_entire=vg00은 누락하면 사고로 이어질 수 있어요.- 완료 후 로그 검증이 “백업의 끝”입니다.
cat /var/opt/ignite/recovery/latest/recovery.log # "Make_sys_image completed successfully" 확인
cat /var/opt/ignite/recovery/latest/recovery.log# "Make_sys_image completed successfully" 확인
9) 로그 기반 장애 예측: syslog를 운영 루틴으로 만들기
이 장이 왜 중요한지: HP-UX는 장애가 예고 없이 오는 게 아니라, 운영자가 신호를 놓치는 경우가 많아요.
로그 루틴:
/var/adm/syslog/syslog.log정기 점검- 키워드 기준 탐색:
error,warning,panic,failure
주의 신호 예시:
vmunix: SCSI: Reset detected→ 스토리지 연결 불안정 의심LVM: pvnum=0 is POWERFAILED→ 디스크 접근 실패/전원/경로 문제 가능
[결론]
이 장이 왜 중요한지: HP-UX 운영은 “명령어”가 아니라 “선제 진단 + 형상 관리 + 백업 검증”의 반복이에요.
운영 철학 3요소만 고정해도 사고 확률이 크게 줄어듭니다.
- 선제 진단: 카운터/로그/추세 기반으로 “문제 되기 전”에 조치
- 형상 관리: 튜닝/변경을 문서(print_manifest)와 이력으로 남김
- 백업 검증: 백업은 성공 로그까지 확인해야 완료
3줄 요약
- HP-UX는 출력값 해석과 선제 대응이 핵심이에요.
- 병목은 하드웨어 → 커널 → 스토리지/네트워크 순으로 분해해서 봐야 해요.
- DR은 “백업 수행”이 아니라 “복구 재현”까지가 목표입니다.
[치트 시트] HP-UX 운영자용 핵심 명령어/정상 기준/이상 징후
| 영역 | 명령어 | 언제 쓰나 | 정상 기준 | 이상 징후 | 1차 조치 |
|---|---|---|---|---|---|
| 플랫폼 | uname -a, model | 서버 정체성 확인 | 버전/모델 일치 | 자산 정보 불일치 | 자산/패치 기준 재정렬 |
| 하드웨어 | machinfo | CPU/메모리/펌웨어 확인 | 메모리 용량 합리적 | Memory가 장착보다 작음(Deconfigured 의심) | 하드웨어 점검/교체 플로우 |
| I/O | ioscan -fn | 디바이스 인식 확인 | 필요한 클래스/노드 존재 | 누락/Unknown/NO_HW | 케이블/HBA/스토리지 확인 |
| Agile | ioscan -N | PDSF 기반 운영 | 디바이스 파일 유지 | 경로/식별자 혼선 | Agile 기준으로 문서화 |
| 디바이스 노드 | insf -e | /dev 동기화 | 노드 생성 정상 | 노드 누락 지속 | 재스캔/설정 점검 |
| STM | cstm | 저수준 진단 | 센서값 정상 | RPM/전압/온도 이상 | 부품/팬/PSU 점검 |
| 커널 | kctune -v | 파라미터 조회/변경 | dynamic/static 인지 | 부팅값만 바뀜(정적) | 재부팅 계획 수립 |
| LVM | vgdisplay -v | VG 상태 점검 | VG Status=available | Act PV < Total PV | PV 장애/경로 확인 |
| LVM | lvdisplay -v | 미러링 상태 | Stale extents=0 | Stale extents>0 | lvsync/복구 절차 |
| FS | bdf, bdf -i | 공간/아이노드 | 둘 다 여유 | 공간 여유인데 inode 100% | 정리/확장/설계 변경 |
| VxFS | vxfsstat -v | 메타데이터 병목 | 캐시 오버플로우 없음 | inode overflow 계열 | 파라미터/구조 튜닝 |
| SAN/FC | fcmsutil, stat | 링크/에러 카운터 | Link UP + 카운터 안정 | Loss of Signal 증가 | 케이블/SFP/포트 점검 |
| 네트워크 | nwmgr, lanadmin | 상태/에러 확인 | 에러 카운터 안정 | FCS/Alignment 증가 | 물리/듀플렉스부터 해결 |
| 메모리 | vmstat 1 10 | 스래싱 판단 | sr=0 근접 | sr 수백~수천 + po 지속 | 증설/dbc 조정/워크로드 조정 |
| 성능 | sar -q, sar -d | CPU/디스크 병목 | 큐/응답시간 안정 | runq/avque 상승 | 병목 축 분리 대응 |
| 모니터링 | glance/gpm | 실시간 병목 분해 | 자원 균형 | system 과다/IO wait 과다 | 드라이버/디스크/락 경합 분석 |
| 클러스터 | cmviewcl -v | SG 상태 확인 | 노드/패키지 Up | policy violation | failover 원인 분석 |
| 백업/DR | make_tape_recovery | 베어메탈 백업 | 로그 성공 | 경고/누락 | 로그 검증 후 재수행 |
| 로그 | /var/adm/syslog/syslog.log | 장애 예측 | 경고 패턴 없음 | SCSI reset / POWERFAILED | ioscan/fcmsutil/sar 연계 진단 |

