Nutanix AHV 네트워크 삭제 오류 해결

평화로운 뉴타닉스 클러스터에서 갑자기 네트워크 삭제가 안 되면 당황스럽죠? 오늘은 AHV 네트워크 삭제 오류에 대해 한번 알아보겠습니다. 


Nutanix AHV 네트워크 안 지워진다고? 'InUse' 에러 해결법

서버 가상화 운영하다 보면 안 쓰는 VLAN이나 네트워크를 정리해야 할 때가 꼭 옵니다. 보통 이런 작업은 모두가 퇴근한 고요한 새벽, 숨 막히는 유지보수 시간(Downtime)에 진행되곤 하죠. 마음속으로는 '버튼 하나 누르면 1초 컷이겠지?'라며 가벼운 마음으로 삭제 버튼을 누릅니다. 그런데 멀쩡히 잘 돌아가는 것 같던 시스템이 갑자기 'Error occurred while deleting network' 같은 새빨간 팝업을 띄우며 우리를 괴롭힙니다. 식은땀이 쫙 흐르는 순간이죠. 특히 AOS 버전이 6.5.1 이상으로 올라가면서 Request failed when completing remote operation networkDelete: InUse: Network <UUID> has address assignments라는 아주 길고 불친절한 메시지를 뱉기도 합니다. 도대체 뭐가 문제일까요?

NIC 삭제 시 발생하는 InUse Error 장면
NIC 삭제 시 발생하는 InUse Error 장면


범인은 이 안에 있어, '유령 NIC'를 찾아라

하이퍼바이저 입장에서는 나름 논리적입니다. "야, 이 네트워크에 연결된 랜카드(NIC)가 아직 있는데 이걸 지우면 어떡해?"라고 소리치는 거니까요. 문제는 어떤 VM이 이 네트워크를 물고 있는지 프리즘(Prism) UI 화면에서는 한눈에 안 보일 때가 많다는 겁니다. 우리는 CVM(Controller VM)에 접속해서 직접 수사관이 되어야 합니다.

nutanix@cvm$ acli net.delete VLAN_102
kInUse: InUse: Network ae0f3cb... has address assignments

쉘에서 지워봐도 이런 에러가 떴다면 이미 게임은 시작된 겁니다. 저 길쭉한 UUID가 바로 우리가 추적해야 할 타겟이죠.


일단 족보부터 따져봅시다 (UUID 추출)

삭제하려는 네트워크의 이름이 VLAN_102라고 가정해 볼게요. 우선 이 녀석의 고유 번호인 UUID를 알아내야 합니다. 프리즘 기어 아이콘에서 봐도 되지만, 현장에서는 쉘에서 끝내는 게 빠릅니다.

acli net.get VLAN_102를 입력하면 주르륵 네트워크 구성 정보가 나옵니다. 거기서 uuid: "..." 부분을 복사해 두세요. 이게 있어야 다음 단계인 '범인 VM 찾기'가 가능해집니다.

이 경험을 통해 알게 된 AHV 네트워크 삭제 꿀팁

  • 무조건 백업 NIC 확보: VM에서 NIC를 지우는 순간 네트워크 연결은 가차 없이 끊깁니다. 작업 전에 다른 정상적인 네트워크로 새 NIC를 미리 추가해 두는 게 정신 건강에 좋습니다.
  • MAC 주소 대조 필수: VM 하나에 랜카드가 두세 개씩 붙어있는 경우가 흔합니다. 엉뚱한 거 지웠다가는 네트워크 장애로 이어져 야근 확정입니다. MAC 주소를 두 번 확인하세요.
  • UUID는 복사/붙여넣기: 30자리가 넘는 UUID를 직접 치는 분은 없겠죠? 한 글자라도 틀리면 헛수고입니다. 마우스 드래그를 생활화 합시다! 

노가다 방지용 마법의 스크립트 공유

VM이 수백 대라면 일일이 뒤져볼 순 없잖아요? 그럴 때 쓰는 꼼수가 바로 이겁니다. CVM 쉘에서 아래 명령어를 한 줄로 슥 긁어서 넣어보세요. (대괄호 안의 UUID 부분은 본인이 복사한 것으로 바꿔야 합니다)

for VM in $(acli vm.list | awk '{print $NF}' | grep -v UUID); do acli vm.get $VM | grep -B10 [내_네트워크_UUID] | grep -E 'name:|mac_addr'; done

이 한 줄의 쉘 스크립트가 도대체 무슨 마법을 부리는 건지 전문가의 시선으로 살짝 뜯어볼까요? 먼저 acli vm.list로 전체 VM 목록을 텍스트로 쭉 뽑아낸 다음, awk '{print $NF}'를 통해 맨 마지막 열에 있는 VM UUID만 깔끔하게 추려냅니다. grep -v UUID로 제일 윗줄에 있는 쓸데없는 헤더 글자도 날려버리죠.

그다음 반복문(for)을 빙글빙글 돌면서 각 VM의 상세 정보(acli vm.get)를 샅샅이 뒤집니다. 여기서 핵심은 grep -B10 옵션이에요! 우리가 찾고 있는 타겟 네트워크 UUID가 발견되면, 그 위치로부터 딱 10줄 위까지만 거슬러 올라가서 검색하라는 뜻입니다. 보통 해당 네트워크에 연결된 랜카드의 이름과 MAC 주소가 그 10줄 반경 안에 예쁘게 옹기종기 모여 있거든요. 마지막으로 grep -E 'name:|mac_addr'를 써서 진짜 우리에게 필요한 VM 이름과 MAC 주소만 화면에 띄워주는 겁니다.

이렇게 엔터 한 번 치면 해당 네트워크를 사용 중인 VM 이름과 MAC 주소가 딱 튀어나옵니다. 수십, 수백 대의 VM 구성을 일일이 클릭해 보는 엄청난 노가다에서 완벽하게 해방된 겁니다.


잠깐! 그래도 지워지지 않는 '스냅샷'의 저주

만약 위에서 알려드린 대로 유령 NIC를 전부 날렸는데도 여전히 똑같은 에러가 발생한다면? 숨을 깊게 들이쉬고 '스냅샷(Snapshot)'을 의심해 봐야 합니다. 과거에 해당 네트워크를 물고 있던 상태로 찍어둔 VM 스냅샷이나 Protection Domain 백업본이 어딘가에 조용히 숨어있을 확률이 매우 높거든요.

하이퍼바이저는 그 스냅샷 상태로 언제든 롤백될 미래의 가능성까지 전부 계산하기 때문에 네트워크 삭제를 끈질기게 막아섭니다. 이럴 때는 눈물을 머금고 불필요해진 과거 스냅샷을 정리하거나, 도저히 찾을 수 없을 땐 뉴타닉스 지원팀(Support)의 도움을 받아 백엔드에서 강제로 연결 고리를 끊어내야 합니다. 삭제 전에는 스냅샷 의존성을 항상 체크하는 게 베테랑의 기본기입니다.


마지막 일격, 그리고 깔끔한 삭제

이제 끈질기게 버티던 원인들을 모두 찾아냈으니 가차 없이 집행할 차례입니다. 스크립트로 찾아낸 VM 이름과 MAC 주소를 들고 가서 아래 명령어로 연결을 싹둑 끊어주세요.

acli vm.nic_delete [VM이름] [MAC주소]

터미널 창에 "NicDelete: complete"라는 반가운 메시지가 떴나요? 축하합니다. 가장 힘든 고비를 넘기셨어요.

이제 처음 여러분을 좌절하게 만들었던 그 네트워크 삭제 명령을 다시 내려보세요. 프리즘 UI에서 마우스로 지우셔도 되고, 쉘에서 acli net.delete [네트워크이름]을 입력하셔도 됩니다. 아까와는 다르게 오류 없이 기분 좋게 슥 사라지는 걸 볼 수 있을 겁니다.

마무리 하기 전에 딱 하나만 더 챙기죠. acli net.list를 쳐서 정말로 목록에서 영원히 사라졌는지 두 눈으로 똑똑히 확인하는 센스! 우리 엔지니어의 세계에서 두 번 확인하는 건 의심이 아니라 미덕이니까요. ㅎ

자, 이제 깨끗해진 클러스터를 보며 가벼운 마음으로 퇴근해 봅시다! 새벽 공기가 참 달콤하네요. ㅋ 

댓글 쓰기

0 댓글

이 블로그 검색

태그

신고하기

프로필

이미지alt태그 입력