๐Ÿ๏ธ ์˜ค์•„ํ›„ | ๋‚ ์”จ.. | ์‹œ๊ฐ„..
๐Ÿ™๏ธ ์„œ   ์šธ | ๋‚ ์”จ.. | ์‹œ๊ฐ„..

Proxmox at HomeLab

ํ˜„์žฌ ๋ณธ ์‚ฌ์ดํŠธ๋Š” Proxmox๋กœ ๊ตฌ์„ฑํ•œ HomeLab์—์„œ ์šด์˜์ค‘์ž…๋‹ˆ๋‹ค . HomeLab์•ˆ ์—์„œ ์›นํ˜ธ์ŠคํŒ…, NAS server, Python app ๋“ฑ ๋‹ค์–‘ํ•œ ์„œ๋น„์Šค๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Inroduction

About HomeLab

๋žฉ(Homelab)์€ ํ•™์Šต๊ณผ ์‹คํ—˜, ๊ทธ๋ฆฌ๊ณ  ๊ฐ์ข… ์„œ๋น„์Šค๋ฅผ ์ง์ ‘ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด ์ง‘์•ˆ์— ๊ตฌ์ถ•ํ•˜๋Š” ์†Œ๊ทœ๋ชจ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค์™€ ์œ ์‚ฌํ•œ ๊ฐœ์ธ IT ํ™˜๊ฒฝ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๊ทœ๋ชจ๋Š” ์ž‘์€ ๋ผ์ฆˆ๋ฒ ๋ฆฌ ํŒŒ์ด ํ•œ ๋Œ€๋ถ€ํ„ฐ ์ „๋ฌธ์ ์ธ ์„œ๋ฒ„ ๋ž™ ์ „์ฒด์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ์‚ฌ์šฉ์ž์˜ ๋ชฉ์ ์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•˜๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Home Lab

์ด ๊ณต๊ฐ„์€ ๊ฐ€์ƒํ™”, ๋„คํŠธ์›Œํฌ, ์Šคํ† ๋ฆฌ์ง€ ๊ด€๋ฆฌ ๋“ฑ์˜ ํ•ต์‹ฌ ๊ธฐ์ˆ ์„ ์ตํžˆ๋Š” ์‹ค์Šต์žฅ์ด ๋˜๋ฉฐ, ๋ฏธ๋””์–ด ์„œ๋ฒ„๋‚˜ ๊ด‘๊ณ  ์ฐจ๋‹จ๊ธฐ(Pi-hole), ํ™ˆ ์˜คํ† ๋ฉ”์ด์…˜(Home Assistant)๊ณผ ๊ฐ™์€ ์‹ค์ œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ง์ ‘ ๊ตฌ๋™ํ•ด ๋ณด๋Š” ๋ฐ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ฌด์—‡๋ณด๋‹ค ํ™ˆ๋žฉ์€ ์‹ค์ œ ์—…๋ฌด ์‹œ์Šคํ…œ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์œผ๋ฉด์„œ ๋งˆ์Œ๊ป ๊ธฐ์ˆ ์„ ๊ตฌ์ถ•ํ•˜๊ณ , ๊ณ ์žฅ ๋‚ด๊ณ , ๋‹ค์‹œ ๊ณ ์ณ๋ณผ ์ˆ˜ ์žˆ๋Š” ์•ˆ์ „ํ•œ ‘์ƒŒ๋“œ๋ฐ•์Šค’ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ IT ์ „๋ฌธ๊ฐ€์™€ ๊ธฐ์ˆ  ์• ํ˜ธ๊ฐ€ ๋ชจ๋‘์—๊ฒŒ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ๊ธฐ์ˆ ๊ณผ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๊ท€์ค‘ํ•œ ์‹ค๋ฌด ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๋Š” ๊ณต๊ฐ„์ด๋ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชฉ์ ์— ๋”ฐ๋ผ ํ•˜๋“œ์›จ์–ด ๊ตฌ์„ฑ๋ฐฉ๋ฒ•์€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ€์ƒํ™” ์‹ค์Šต๊ณผ ๊ทธ ๊ฐ€์ƒํ™” ๊ณต๊ฐ„์—์„œ์˜ ๊ฐ์ข… ์„œ๋ฒ„, ์„œ๋น„์Šค์˜ ์šด์˜ ์‹ค์Šต์ด HomeLab์˜ ์ฃผ ๋ชฉ์ ์œผ๋กœ ํ•œ๋‹ค๋ฉด ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์€ ๋น„์Šทํ•˜๊ฑฐ๋‚˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์˜ ํ™•์žฅํ˜• ๊ตฌ์„ฑ์ด ๋ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋กœ ์ œ๊ฐ€ Proxmox๋กœ ๊ตฌ์„ฑํ•œ Home Lab/Small server๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

ย 

Minimum Requirements (Host OS / Proxmox)

  • CPU: 64bit Intel 64 / AMD 64 with Intel VT/AMD-V for virtualizaion
  • RAM: 2GB for OS + guest VM
  • Storage: ~ 16GB for OS (HDD/SSD) + space for VMs
  • Network: 1x Gigabit NIC

My Components

  • PC: DELL OptiPlex 9020 (2013)
  • CPU:ย Intel i5-4590 (4 cores)
  • RAM:ย 32Gb
  • HDD(OS): 2x320Gb (RAID 1)
  • HDD(Data): 1x3TB (NAS Storage)
  • Network: 1Gib
  • DVD:ย Removed for Data HDDย 
My servers
My Proxmox

Monitoring

Docker container๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ํ•˜๊ธฐ์œ„ํ•ด์„œ Prometheus ์™€ Grafana๋ฅผ ์„ค์น˜ํ•˜์—ฌ ์„œ๋ฒ„ ์ „์ฒด๋ฅผ ๋ถ„์„ ๋ฐ ๊ฐ์‹œํ•ฉ๋‹ˆ๋‹ค.

  • CPU Average16%16%
  • Disk Usage18%18%
  • Memory13%13%
My Grafana

Installation

Step 1

์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ตฌํ˜• PC์ธ Dell OptiPlex 9020์—์„œ SATA port๊ฐ€ 3๊ฐœ ๋ฟ์ด๋ผ HDD๋ฅผ ์ถ”๊ฐ€ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ DVD๋ฅผ ์ œ๊ฑฐ ํ•˜๊ณ , ํ•„์š”ํ•œ HDD์™€ RAM์„ ์ถ”๊ฐ€ ์„ค์น˜ํ•จ.ย 

Step 2

๊ฐ€์ƒํ™”๋ฅผ ์œ„ํ•˜์—ฌ Proxmox๋ฅผ ๊ตฌํ˜• PC์ธ Dell OptPlex 9020์— ์„ค์น˜ ํ•จ.

Step 3

์„ค์น˜ํ•œ Proxmox ์„œ๋ฒ„์— ์›น ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค๋ฅผ ์œ„ํ•˜์—ฌ Debian container๋ฅผ ์„ค์น˜ํ•˜๊ณ  Nginx๋ฅผ ์„ค์น˜ํ•จ.

Step 4

Debian VM์„ Proxmox์„œ๋ฒ„์— ์„ค์น˜ํ•˜๊ณ  docker์˜ ์ตœ์‹  ๋ฒ„์ „์„ ์„ค์น˜ํ•จ.

Step 5

์„ค์น˜๋œ Docker์—์„œ WordPress๋ฅผ ์„œ๋น„์Šคํ•  php, nginx, redis(optional)๋“ฑ์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌ ๋ฐ ์—…๋ฐ์ดํŠธ๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ compose ํ™”์ผ์„ ์ž‘์„ฑํ•˜์—ฌ upํ•˜๊ณ  ๊ด€๋ฆฌํ•จ.

Step 6

Proxmox์— container๋กœ ์„ค์น˜ํ•œ Nginx์—์„œ docker container๋กœ ์„ค์น˜ํ•œ nginx๋ฅผ proxy reverse ์„œ๋น„์Šค๋ฅผ ์„ค์ •์„ ํ•จ.

My Homelab design

[๋ณด์•ˆ ๋ฐ ์•ˆ์ •์„ฑ ์ด์ ] ๋ณธ ์•„ํ‚คํ…์ฒ˜๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ๊ฒฉ๋ฆฌ(Isolation)๋ฅผ ํ†ตํ•ด ๋ณด์•ˆ ์‚ฌ๊ณ  ๋ฐœ์ƒ ์‹œ ํ”ผํ•ด ๋ฒ”์œ„๋ฅผ ์ตœ์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค. ํŠน์ • ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ณต๊ฒฉ๋ฐ›๋”๋ผ๋„ ๋‹ค๋ฅธ ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค์˜ ๊ฐ€์šฉ์„ฑ์€ ์œ ์ง€๋˜๋ฏ€๋กœ, ๋‹ค์ค‘ ์„œ๋น„์Šค ์šด์˜ ํ™˜๊ฒฝ์—์„œ ๋†’์€ ์•ˆ์ •์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

โ€ป ์ฃผ์˜: ํ˜ธ์ŠคํŠธ ์„œ๋ฒ„ ์ž์ฒด์˜ ๋ณด์•ˆ ์ทจ์•ฝ์ ์ด๋‚˜, ํŠน์ • ์ปจํ…Œ์ด๋„ˆ์˜ ๋ฆฌ์†Œ์Šค ๊ณ ๊ฐˆ(Resource Exhaustion)๋กœ ์ธํ•œ ์ „์ฒด ์‹œ์Šคํ…œ ์žฅ์• ๋Š” ๋ณ„๋„์˜ ๋ณด์•ˆ ๋ฐ ์ž์› ๊ด€๋ฆฌ ์ •์ฑ…์œผ๋กœ ๋Œ€์‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋Œ€๋žต์ ์ธ HomeLab์˜ ๊ตฌ์„ฑ์— ๊ด€ํ•˜์—ฌ ์•ˆ๋‚ดํ•ด๋“œ๋ ธ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ์„œ๋น„์Šค ์„ค์น˜, ๊ตฌ์„ฑ, ์šด์˜ ํŒ๋“ฑ์€ ์ถ”ํ›„ ์‹œ๊ฐ„์ด ๋‚ ๋•Œ๋งˆ๋‹ค ํฌ์ŠคํŒ… ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.