먼지 쌓인 NXG8과 신형 G9의 기묘한 동거: 이기종 신규 클러스터 구축기

Nutanix 장비는 벤더만 맞으면 장비 세대 간 클러스터를 구성할 수 있습니다. 오늘은  고객사에서 상황에 맞추어 혼합모델로 구성했던 경험을 공유하겠습니다. 

창고에 박혀있던 고철과 최신형 서버를 묶으라고요?

장애가 터진 게 아니었다. 이번 미션은 전산실 구석에서 반년 넘게 전원이 꺼진 채 먼지만 맞고 있던 유휴 장비 NXG8 2노드를 랙에서 끄집어내는 것부터 시작됐다. 경영진 지시는 늘 기상천외하지. "이번에 새로 산 G9 노드만으로 클러스터 구성하기엔 리소스가 아까우니까, 저기 노는 G8 두 대 섞어서 빵빵하게 새 클러스터 하나 올려라." 주니어 시절이었다면 눈앞이 캄캄해졌을 거다. 그냥 케이블 꽂고 파운데이션(Foundation) 툴 돌리면 짠하고 새 집이 지어질 줄 아는데 절대 아니다. 몇 달 방치된 구형 노드와 갓 공장에서 출하된 신형 노드를 아무 준비 없이 엮으면 화면에 시뻘건 에러만 미친 듯이 쏟아진다. 이 더러운 믹스매치 상황을 어떻게 뚫고 뼈대를 올렸는지 내 경험을 다 까발려 주겠다. ㅋ

상황을 보면 한숨부터 푹푹 쉴 거다. 서버실 바닥에 널브러진 박스들, 그리고 전원 올리는 것조차 불안한 구형 장비의 모습. 물리적으로 랙에 장비를 마운트하고 케이블 타이를 묶는 건 솔직히 아무나 하는 막노동이다. 진짜 피 말리는 싸움은 전원을 올린 직후 소프트웨어 레벨, 즉 버전과 펌웨어의 아다리를 맞추는 과정에서 벌어진다. 방치된 G8 내부에 꼬여있는 옛날 설정들을 싹 날려버리고 G9의 눈높이에 맞춰 영혼까지 개조하지 않으면 새 클러스터 생성은 시작조차 못 하고 튕겨 나간다.


파운데이션(Foundation) 지옥: 펌웨어 레벨의 숨 막히는 줄다리기

유휴 장비를 재활용할 때 가장 무서운 것은 바로 '버전 파편화'다. G8은 반년 전 AOS 버전에 머물러 있고 펌웨어는 썩어있다. 반면 G9은 최신 공장 초기화 이미지를 달고 나온다. 이 두 놈을 한 네트워크에 물려놓고 무지성으로 클러스터 생성 툴을 돌리면, 버전 불일치로 노드 디스커버리(Discovery) 단계에서부터 서로를 외계인 취급하며 뱉어낸다. 진짜 독하게 마음먹고 G8 노드에 IPMI로 콘솔 붙어서 공장 초기화를 때린 다음, G9과 똑같은 AOS 및 하이퍼바이저 버전으로 수동 이미징을 하는 고통스러운 선행 작업을 버텨내야 한다.


스위치 단에서 벌어지는 환장할 네트워크 삽질

펌웨어 다 맞췄다고 안심하는 순간, 네트워크 스위치에서 뒤통수를 세게 얻어맞는다. G8과 G9은 태생이 다르다 보니 기본적으로 물고 올라오는 업링크 포트 설정이나 LACP(Link Aggregation Control Protocol) 기본 타이머 값이 묘하게 다를 때가 있다. 예전에 구형 장비 설정만 믿고 신형 노드를 같은 스위치 포트에 무지성으로 꽂았다가, VLAN 태깅이 꼬이면서 CVM끼리 핑은 나가는데 하이퍼바이저 통신은 단절되는 기괴한 반신불수 현상을 겪었다. 물리적인 케이블을 꽂기 전에 TOR 스위치의 포트 본딩 정책이 이기종 노드 전체에 완벽히 동일하게 먹혀들어가는지 네트워크 팀 멱살을 잡고서라도 확실히 검증해 둬야 한다.


현장 선배만 아는 피와 땀의 꿀팁: CVM 리소스와 CPU 마스킹

버전 싹 다 맞췄다고 한숨 돌리고 끝난 줄 알았지? 여기서 신입들이 제일 많이 치는 대형 사고가 성능 밸런스 붕괴랑 호환성 설정을 멍청하게 까먹는 거다.

공식 문서에는 친절하게 안 나오는 현장 꿀팁: G8과 G9은 태생부터 물리적인 CPU 칩셋 세대가 완전 다르다. 이런 이기종 노드를 하나로 묶어 새 클러스터를 짤 때 CPU 마스킹(EVC) 설정을 미리 안 해두면 나중에 대참사가 벌어진다. VM들이 살겠다고 G8 노드에서 G9 노드로 라이브 마이그레이션(Live Migration) 넘어가려는 순간, CPU 명령어 셋이 안 맞아서 커널 패닉 띄우고 그대로 즉사한다. 게다가 CVM(컨트롤러 VM) 메모리도 치명적인 문제다. 신형 G9은 기본 32GB를 물고 올라오는데 구형 G8이 과거 설정 그대로 24GB만 먹고 있으면, 나중에 스토리지 I/O 성능 밸런스가 한쪽으로 쏠리며 박살난다. 반드시 클러스터 생성 직후 G8의 CVM 메모리를 G9과 동일하게 강제로 늘려주는 튜닝을 거쳐야 한다.

 

명령어 한 줄에 담긴 무게: 신규 이기종 클러스터 창조 작전

펌웨어 싹 엎어서 맞추고, 네트워크 결선 확인하고, CVM 스펙까지 동일하게 세팅할 준비가 끝났다면 이제 진짜 심판의 시간이다. 각 노드들이 IP를 정상적으로 물고 통신 포트가 열린 걸 확인한 뒤, 마스터 역할을 할 CVM 하나에 SSH로 접속해야 한다. 여기서 마스터 CVM은 가급적 하드웨어 상태가 가장 쌩쌩한 신형 G9 노드 중 하나로 잡아라. 그리고 제발 그냥 기본 터미널 창만 덜렁 열고 작업하지 마라. 클러스터 생성 중에 백그라운드에서 가상 스위치 본딩이 재설정되면서 SSH 세션이 툭 끊어질 수 있는데, 이때 프로세스가 같이 죽어버리면 클러스터가 반쯤 만들어지다 만 끔찍한 좀비 상태로 굳어버린다. 무조건 서버에 들어가자마자 tmuxscreen 같은 터미널 멀티플렉서 세션부터 띄우고, 그 안전한 공간 안에서 클러스터 창조 명령어를 무자비하게 때려 넣어야 한다.

cluster -s G8_IP1,G8_IP2,G9_IP1,G9_IP2 --dns_servers=8.8.8.8 --ntp_servers=10.0.0.1 create

이 명령어 치기 전에 숨 한 번 크게 쉬어라. 파라미터로 밀어넣는 IP 리스트(-s) 콤마 사이에 띄어쓰기나 오타가 없는지, 구형 2대와 신형 2대의 IP가 전부 빠짐없이 들어갔는지 세 번, 네 번 확인해야 한다. 뒤에 붙는 --dns_servers--ntp_servers 옵션을 대충 넘기거나 빼먹으면 나중에 노드 간 시간 동기화(Time Sync)가 틀어지면서 카산드라 DB가 미쳐 날뛰고 갓 만든 클러스터가 이틀 만에 그대로 붕괴한다. 엔터를 치는 순간 백그라운드에서는 수백 개의 유효성 검사가 미친 듯이 굴러가며 4대 간의 핑을 때려보고 버전을 심문한다. 만약 진행률 20% 구간에서 화면이 멈춰버렸다? 십중팔구 네트워크 스위치 MTU 사이즈 삑사리 났거나 아까 고생해서 맞춘 버전이 꼬인 거다. 커피 마시러 도망가지 말고 화면 뚫어지게 보면서 tail -f ~/data/logs/genesis.out 명령어로 로그 꼬리물기하며 실시간 모니터링하는 독종이 돼야 한다.

이기종 신규 구축 전날 밤의 필수 체크리스트

작업 당일 서버실에서 식은땀 흘리며 허둥지둥하지 않으려면, 아래 표에 있는 항목들을 무조건 하늘이 두 쪽 나도 작업 전날 엑셀로 정리하고 검증해야 한다. 

체크 항목 검증 방법 및 기준 실패 시 맞이할 지옥 (영향도)
유휴 장비 펌웨어/AOS 초기화 G8 노드를 신규 G9과 100% 동일한 패치 레벨로 수동 설치 클러스터 생성 명령어 1초 만에 거부됨 (진행 불가)
CVM 메모리 밸런싱 구형 G8 노드의 CVM RAM 할당량을 신형 G9과 동일하게 상향 특정 노드에 I/O 병목 현상 발생 및 레이턴시 폭주
NTP(시간 동기화) 서버 가용성 내부 NTP 서버 IP 방화벽 오픈 및 핑 테스트 클러스터 메타데이터 링 붕괴로 인한 영구 장애

지옥을 탈출한 후배들에게 전하는 생존 수칙

창고에 처박힌 유휴 장비를 꺼내서 완전히 스펙이 다른 최신 노드와 섞어 새 집을 짓는 건, 낡은 벽돌과 새 철근을 억지로 이어 붙여 고층 빌딩을 올리는 것만큼 살 떨리는 짓이다. 이건 단순 하드웨어 조립이 아니라 인프라 아키텍처 자체를 쥐어짜는 대공사다. 현장에서 렌치 돌리는 시간보다 사전 펌웨어 검증과 리소스 튜닝 계획을 짜는 데 90%의 시간을 쏟아부어야 살아남는다.

  • 방치된 유휴 장비는 깡통이라고 생각해라. 무조건 공장 초기화하고 신형 버전에 맞춰라.
  • 세대 간 CPU 호환성(EVC)과 CVM 메모리 밸런스 튜닝을 놓치면 조만간 대형 사고 터진다.
  • 클러스터 create 명령어 칠 때 NTP 옵션 빼먹는 건 폭탄 스위치 누르는 것과 같다.

마지막에 이 깨끗한 깡통 대시보드 화면을 띄워야 오늘 무사히 집에 갈 수 있다. 4개의 이기종 노드가 하나의 거대한 스토리지 풀로 묶여 모든 LED에 정상(OK) 표시를 띄우는 걸 보는 순간. 그제야 막혔던 숨이 탁 터지면서 등줄기에 식은땀이 쭉 흐르는 걸 느낄 거다. 폐급 취급받던 유휴 장비에 새 생명을 불어넣고 최신 장비와 어깨를 나란히 하게 만드는 그 짜릿함. 우리가 이 바닥에서 서버팬 소음 들어가며 계속 키보드를 두드리는 이유 아니겠나. 시작 전 뼈대 설계만 정확히 잡고 있으면 다음부터는 절대 쫄지 않고 해낼 수 있다. 명심하고, 내일도 무사히 서버실에서 살아남자.

그럼 오늘도 조금만 고생하길 바랍니다 ~ 

댓글 쓰기

0 댓글

이 블로그 검색

태그

신고하기

프로필

이미지alt태그 입력