본문 바로가기
Virtual/VMware

[ESXI] VMware ESXI : VM 복제 및 하드웨어 스펙 업그레이드(SSH CLI)

by Yoon_estar 2025. 4. 2.
728x90

💡 목표

운영 중인 VM의 디스크 용량, CPU 수, 메모리 용량이 부족하여 성능 향상을 위해 스펙을 올려야 할 때가 있습니다.
ESXi에서는 VM을 복제하지 않고도 현재 VM에 직접 스펙을 반영할 수 있으며, 그 과정은 다음과 같습니다.

항목 기존 VM 새 VM
CPU 8cpu 12 cpu(6core X 2Socket)
Memory 4GB 16GB
Disk 256GB 512GB

 

📌 1. 가상머신 종료

먼저, VM이 완전히 종료된 상태여야 디스크 및 사양 변경이 가능합니다.

vim-cmd vmsvc/getallvms       # VM 목록 확인
vim-cmd vmsvc/power.off <VMID>

 

📌 2. 디스크 크기 확장

VM의 디스크가 thin provision 상태라면 기존 디스크에 크기를 직접 확장할 수 있습니다.

cd /vmfs/volumes/<datastore>/<VM 폴더명>/
vmkfstools -X 512G "VM이름.vmdk"

vmkfstools -X 512G "Energy - CentOS 7.6(Node)-111.vmdk"

 

✅ 정상적으로 확장되면 Grow: 100% done. 메시지가 출력됩니다.

 

📌 3. CPU 및 메모리 사양 변경

.vmx 파일을 편집하여 CPU와 메모리 값을 수정합니다.

vi "Energy - CentOS 7.6(Node)-111.vmx"

'''
numvcpus = "12"
numCoresPerSocket = "6"
memSize = "8192"
'''

📌 4. .vmx 설정 적용을 위한 재등록

.vmx 파일을 직접 수정한 경우, ESXi는 해당 변경사항을 자동 인식하지 않기 때문에 재등록이 필요합니다.

 

1) 기존 등록 해제

vim-cmd vmsvc/unregister <VMID>

2) VM 재등록

vim-cmd solo/registervm "/vmfs/volumes/<datastore>/<VM폴더>/<VM이름>.vmx"

3) VM  전원 켜기

vim-cmd vmsvc/power.on <새 VMID>

📌 5. VM 내부에서 디스크 확장 마무리

가상머신을 부팅한 뒤, Linux 내부에서 디스크 용량을 확장해야 완전히 적용됩니다.

LVM이 아닌 경우

growpart /dev/sda 3
xfs_growfs /dev/sda3

 

LVM 사용하는 경우

pvresize /dev/sda3
lvextend -l +100%FREE /dev/centos/root
xfs_growfs /dev/centos/root

 

📌6. Trouble shooting

오류 메시지

"가상 시스템 Energy - CentOS 7.6(Node)-111의 전원을 켜지 못했습니다: 전송(VMDB) 오류 _45: Failed to connect to peer process."

 

❗ 주요 원인

 

  • .vmx 파일 내용 오류
    • 수동으로 수정한 값이 잘못되었거나, 문법이 틀린 경우 발생.
  • VM의 *.lck (lock) 파일이 남아있는 경우
    • 비정상 종료나 강제 종료 후 락 파일이 정리되지 않으면 해당 오류 발생.
  • 디스크 경로 오류 또는 .vmdk와 실제 디스크 이름 불일치
    • .vmdk 파일 이름을 변경했거나 .vmx에서 참조하고 있는 파일이 없음.
  • ESXi에서 디스크 확장이 중간에 실패하거나 .vmdk가 손상된 경우

 

✅ 해결 순서

1️⃣ VM 디렉토리 내 .lck 파일 삭제

cd /vmfs/volumes/DATASTORE1/Energy\ -\ CentOS\ 7.6\(Node\)-111/
rm -rf *.lck

 

 

2️⃣ .vmx 파일 문법 오류 확인

  • numvcpus, numCoresPerSocket, memSize 등이 문자열로 " " 안에 들어갔는지 확인
cat "Energy - CentOS 7.6(Node)-111.vmx"
```
numvcpus = "12"
numCoresPerSocket = "6"
memSize = "8192"
```

 

3️⃣ .vmdk 파일 이름 확인

  • .vmx 파일 내 다음 라인을 확인
  • 그리고 실제 디렉토리에 Energy - CentOS 7.6(Node)-111.vmdk가 존재하는지 확인
scsi0:0.fileName = "Energy - CentOS 7.6(Node)-111.vmdk"

 

4️⃣ VM 재등록

vim-cmd solo/registervm "/vmfs/volumes/DATASTORE1/Energy - CentOS 7.6(Node)-111/Energy - CentOS 7.6(Node)-111.vmx"

 

5️⃣ 전원 다시 켜기

vim-cmd vmsvc/power.on <새로 받은 VMID>