인프라 일기 : Proxmox에 Proxmox 설치하기
개발 일기 1편
[ Proxmox 서버 활용해보기 시작! ]
서론
우리 팀에는 노는 서버(?) 가 한 대 있었다!
해당 서버는 SRE 권한으로 자유롭게 쓸 수 있도록 대표님 승인을 받기는 했다.
물론 허락 받을 때는 아무것도 없긴 했는데..
지금은 AWS에 올린 서버 중 사용자 서비스와 분리된 서비스들 몇 개가 k3s 환경에서 돌아가고 있긴 하지만
애초에 대표님 승인은 받았고 + 인프라 팀장님 승인도 받았으며, + 백엔드 개발자로 SRE 권한도 있는데 ㅎㅎ
애초에 Proxmox를 설치한 것도 나고, k3s는 인프라 팀장님이 하긴 했지만, 기본적으로 어느 정도 선까지 복구는 할 수 있으니까, 약간의 백업을 곁들여 놓고 활용해보고자 한다
[ Devian을 활용한 설치 ]
Devian iso 설치
proxmox는
- proxmox iso 자체를 이용한 운영체제 설치 (쉬움)
- Devian 12를 이용한 내부 구조화 이후 세팅 (복잡함 but 디스크 분리 등 부가 설정 가능)
두가지 방식으로 설치가 가능한데
비교적 간단한 Proxmox를 iso로 설치하는 방식이 아닌 (이건 예전에 해봤으니까)
Devian을 이용하는 방식으로 해보겠다.
- CPU : 8, RAM : 12, disk 32 정도로 놓고!
- 기본적인 machine과 bios는 기본 값을 사용하도록! + SCSI도 기본 Virtl0로!
- Qemu Agent만 설정 해놓은 상태로!
- 이전에 궁금했던, 네트워크 세부 설정이나, local-lvm 등의 기본 설정을 자세히 분석해 보면서
사용하다가, 이 방식은 VM 위에 VM을 띄우는 방식이니까 효율성이 떨어지므로
→ 가상화 구성은 다시 원 서버로 돌아가서 할 생각이다!
참고로 Qemu (Guest) Agent는
HostOS(Proxmox) - QuestOS(Devian) 간의 통신용 demon으로
Host에서 Guest내부 설정 등을
- 보고
- 명령 기반 제어가
가능하도록 하는 백그라운드 프로그램이다!
실제 서버에는 “Golden Image 기반의 템플릿 배포”라고 해서
네트워크 기본 세팅 및 k8s 설치가 완료된 snapshot을 이용해
해당 명령 체계로 초기화된 k8s node설치 + cloud-init을 이용한 네트워크 및 worker 세팅을 함께 사용하여
worker나 control node를 자동화 방식으로 추가 및 삭제 등이 가능했다!
CPU 설정 주의사항
- 중첩 가상화 방식을 사용할 때는 가상 CPU를 사용할 경우 VT-x 같은 하드웨어 내 가속화 기술을 못 사용함
→ host로 설정 변경!
- NUMA(Non-Uniform Memory Access) Architecture
소켓에 따라 메모리에 대한 접근을 나누고, 특정 소켓에 특정 메모리는 접근이 빠른 대신, 다른 소켓에 할당된 메모리를 접근할 때 느림
⇒ total Core = Core x Socket
- 같은 cpu 16을 만들때, 가상화 환경에서는 소켓 수가 적은 1x16이 더 유리!
Disk partition
| 파티션 | 용량 | 용도 및 설명 |
/ (루트) | 12 GB | 데비안 OS + Proxmox 패키지 + ISO 이미지 파일 (적정 용량) |
swap (스왑) | 1 GB | 메모리 부족 시 비상용 공간 (가상 머신 구동 시 필수) |
/home (홈) | 21 GB | VM 데이터 전용 공간 |
/var/lib/vzproxmox 기본 저장 위치
→ 설치 후에 home으로 재배치 필요 /home/vm_data