Understand different OS Concepts/Virtualization

Proxmox란?

Somaz 2024. 5. 24. 12:59
728x90
반응형

Overview

Proxmox에 대해서 알아본다.

출처 : https://www.24x7serversecurity.com/blog/proxmox-servermanagement/

 


 

Proxmox란?

Proxmox VE(가상 환경)는 기업 가상화를 위한 포괄적인 오픈 소스 플랫폼이다. 가상 머신용 KVM(커널 기반 가상 머신)과 컨테이너용 LXC(Linux 컨테이너)라는 두 가지 가상화 기술을 단일 관리 인터페이스에 통합한다.

 

Proxmox VE의 주요 기능

 

가상화 기술

  • KVM : Linux, Windows 등을 포함한 다양한 게스트 운영 체제를 실행하기 위한 전체 가상화 솔루션
  • LXC : 격리된 컨테이너에서 Linux 운영 체제 환경을 실행할 수 있는 경량 컨테이너화 플랫폼을 제공

 

웹 기반 관리 인터페이스

  • Proxmox는 사용자가 가상 머신과 컨테이너를 생성, 구성, 관리할 뿐만 아니라 스토리지와 네트워킹도 관리할 수 있는 통합 웹 기반 관리 인터페이스를 제공

 

고가용성 클러스터

  • 플랫폼은 고가용성 클러스터링을 지원하므로 VM과 컨테이너를 가동 중지 시간 없이 호스트 간에 마이그레이션할 수 있다. 또한 자동 장애 조치 기능을 제공하여 높은 수준의 복원력과 안정성을 제공

 

백업 및 복원

  • Proxmox에는 VM 및 컨테이너 백업 및 복원에 대한 기본 지원이 포함되어 있다. 이는 GUI 또는 CLI를 통해 예약 및 관리할 수 있으므로 데이터 무결성과 오류로부터의 빠른 복구가 보장된다.

 

스토리지 시스템

  • 로컬 스토리지(LVM, 디렉터리, ZFS), SAN, iSCSI, 파이버 채널, NFS 등을 갖춘 네트워크 기반 스토리지와 같은 여러 스토리지 시스템을 지원

 

네트워킹

  • 브리지, 본딩, VLAN을 포함한 다양한 네트워킹 구성을 제공한다. Proxmox는 인터페이스에서 복잡한 네트워크 설정을 관리할 수 있다.

 

통합 방화벽

  • 가상 머신과 컨테이너 간 네트워크 트래픽을 세부적으로 제어할 수 있는 유연한 통합 방화벽을 통해 보안을 강화할 수 있다.

 

2단계 인증(MFA)

  • Proxmox는 이중 인증을 지원하여 사용자 로그인 프로세스에 추가 보안 계층을 추가

 


 

Proxmox VE 설치

Proxmox VE는 Ceph Cluster와도 연동시킬 수 있다. 따라서 Promox에서 공용으로 사용할 Ceph Storage는 이미 구성되어있다.

[clex@ceph-farm-01 ~]$ sudo ceph -s
  cluster:
    id:     94b49042-6e27-48a8-b5dd-fe21631a0cd9
    health: HEALTH_WARN
            12 pool(s) have no replicas configured
            mons are allowing insecure global_id reclaim

  services:
    mon: 3 daemons, quorum ceph-farm-01,ceph-farm-02,ceph-farm-03 (age 20h)
    mgr: ceph-farm-02(active, since 24h), standbys: ceph-farm-01, ceph-farm-03
    osd: 24 osds: 24 up (since 24h), 24 in (since 24h)
    rgw: 3 daemons active (ceph-farm-01.rgw0, ceph-farm-02.rgw0, ceph-farm-03.rgw0)

  task status:

  data:
    pools:   12 pools, 1064 pgs
    objects: 660 objects, 1.6 GiB
    usage:   26 GiB used, 84 TiB / 84 TiB avail
    pgs:     1064 active+clean

 

sudo ceph df
RAW STORAGE:
    CLASS     SIZE       AVAIL      USED        RAW USED     %RAW USED
    hdd       84 TiB     84 TiB     1.9 GiB       26 GiB          0.03
    TOTAL     84 TiB     84 TiB     1.9 GiB       26 GiB          0.03

POOLS:
    POOL                          ID     PGS     STORED      OBJECTS     USED        %USED     MAX AVAIL
    kube                           1     128         0 B           0         0 B         0        80 TiB
    images                         2     256         0 B           0         0 B         0        80 TiB
    volumes                        3     256         0 B           0         0 B         0        80 TiB
    backups                        4       8         0 B           0         0 B         0        80 TiB
    vms                            5      16         0 B           0         0 B         0        80 TiB
    .rgw.root                      6      32     3.5 KiB           8     512 KiB         0        80 TiB
    default.rgw.control            7      32         0 B           8         0 B         0        80 TiB
    default.rgw.buckets.index      8      16         0 B           0         0 B         0        80 TiB
    default.rgw.meta               9      32         0 B           0         0 B         0        80 TiB
    default.rgw.buckets.data      10     128         0 B           0         0 B         0        80 TiB
    default.rgw.log               11      32         0 B         207         0 B         0        80 TiB
    proxmox                       13     128     1.6 GiB         437     1.6 GiB         0        80 TiB

# cluster 상태 확인
pvesm status
Name             Type     Status           Total            Used       Available        %
ceph-rbd          rbd     active     85474777145         1660985     85473116160    0.00%
local             dir     active        98559220         3690584        89819088    3.74%
local-lvm     lvmthin     active       794079232               0       794079232    0.00%
  • kube ~ default.rgw.log 까지 기존에 사용하는 11개 pool 공용 사용
  • proxmox pool 생성, proxmox control server pool로 사용
  • proxmox ceph-rbd 스토리지 사용

 

1. Proxmox Version

아래의 Site에서 원하는 Version을 설치하면 된다.

 

2. Network

 

2-1. Summary

    

  Mgmt Tenant Ceph pub Ceph Cluster Provider
Bond bond0.162 bond0.153 bond0.154 bond0.155 bond0.209
Bridge vmbr0 vmbr1 vmbr2 - vmbr3
CIDR 192.168.162.0/24 192.168.153.0/24 192.168.154.0/24 192.168.155.0/24 192.168.209.0/24

 

      

Host Mgmt Tenant Provider Ceph pub Ceph Cluster
control-farm-01 192.168.162.227
(keeaplived vip
192.168.162.230,
cluster HA 용도)
192.168.153.227 192.168.209.227 192.168.154.227 -
control-farm-02 192.168.162.228 192.168.153.228 192.168.209.228 192.168.154.228 -
control-farm-03 192.168.162.229 192.168.153.229 192.168.209.229 192.168.154.229 -
ceph-farm-01 192.168.162.201
(keepalived vip
192.168.162.200,
rgw HA 용도)
    192.168.154.151 192.168.155.151
ceph-farm-02 192.168.162.202     192.168.154.152 192.168.155.152
ceph-farm-03 192.168.162.203     192.168.154.153 192.168.155.153

  

Host OS Roles
control-farm-01 debian 10.9 proxmox-ve (control server hypervisor), ceph client
control-farm-02 debian 10.9 proxmox-ve (control server hypervisor), ceph client
control-farm-03 debian 10.9 proxmox-ve (control server hypervisor), ceph client
ceph-farm-01 CentOS 7.8 (2003) ceph mon, osd, mgr, rgw
ceph-farm-02 CentOS 7.8 (2003) ceph mon, osd, mgr, rgw
ceph-farm-03 CentOS 7.8 (2003) ceph mon, osd, mgr, rgw

 

 

2-2. Bonding

cat /proc/net/bonding/bond0
...
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: ens1f0np0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 200
Down Delay (ms): 200
Peer Notification Delay (ms): 0

Slave Interface: ens1f0np0
MII Status: up
Speed: 25000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: bc:97:e1:73:1c:60
Slave queue ID: 0

Slave Interface: ens2f0np0
MII Status: up
Speed: 25000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: bc:97:e1:73:6c:10
Slave queue ID: 0
  • ens1f0np0(active), ens2f0np0 → bond0
  • bonding mode : active-backup
  • bandwidth : 25G

 

2-3. Network Config

cat /proc/net/bonding/bond0
...
auto ens1f0np0
iface ens1f0np0 inet manual
...
auto ens2f0np0
iface ens2f0np0 inet manual
...
auto bond0
iface bond0 inet manual
        bond-slaves ens1f0np0 ens2f0np0
        bond-miimon 100
        bond-mode active-backup
        bond-downdelay 200
        bond-updelay 200

# mgmt net
auto bond0.162
iface bond0.162 inet manual

# openstack tenant net
auto bond0.153
iface bond0.153 inet manual

# ceph public net
auto bond0.154
iface bond0.154 inet manual

# openstack provider net
auto bond0.209
iface bond0.209 inet manual

auto vmbr0
iface vmbr0 inet static
        address 192.168.162.227/24
        gateway 192.168.162.1
        bridge-ports bond0.162
        bridge-stp off
        bridge-fd 0

auto vmbr1
iface vmbr1 inet static
        address 192.168.153.227/24
        bridge-ports bond0.153
        bridge-stp off
        bridge-fd 0

auto vmbr2
iface vmbr2 inet static
        address 192.168.154.227/24
        bridge-ports bond0.154
        bridge-stp off
        bridge-fd 0

auto vmbr3
iface vmbr3 inet static
        address 192.168.209.227/24
        bridge-ports bond0.209
        bridge-stp off
        bridge-fd 0

 

 

3. 주요 설치 과정

 

3-1. promox cluster 구성 (control server farm)

 

proxmox cluster nodes

  • control-farm-01
  • control-farm-02
  • control-farm-03

 

cluster 구축 시 주의사항

  • corosync cluster enginx 을 사용 (UDP 5404, 5405 Port 통신 필요)
  • 날짜, 시간 동기화 필요
  • 노드 간 TCP 22, SSH 터널이 사용
  • 모든 노드의 버전이 동일

 

 

3-1-1 create cluster

pvecm create server-farm
...
Corosync Cluster Engine Authentication key generator.
Gathering 2048 bits for key from /dev/urandom.
Writing corosync key to /etc/corosync/authkey.
Writing corosync config to /etc/pve/corosync.conf
Restart corosync and cluster filesystem

pvecm status
...
Cluster information
-------------------
Name:             server-farm
Config Version:   1
Transport:        knet
Secure auth:      on

Quorum information
------------------
Date:             Fri Jul 23 15:09:08 2021
Quorum provider:  corosync_votequorum
Nodes:            1
Node ID:          0x00000001
Ring ID:          1.5
Quorate:          Yes

Votequorum information
----------------------
Expected votes:   1
Highest expected: 1
Total votes:      1
Quorum:           1
Flags:            Quorate

Membership information
----------------------
    Nodeid      Votes Name
0x00000001          1 192.168.162.227 (local)

 

 

3-2-2. join cluster

pvecm add 192.168.162.227
...
Please enter superuser (root) password for '192.168.162.227': *********
Establishing API connection with host '192.168.162.227'
The authenticity of host '192.168.162.227' can't be established.
X509 SHA256 key fingerprint is 26:F3:44:E8:B7:A4:C8:70:A3:BD:AC:03:05:5A:17:5C:F0:61:48:BC:27:59:F9:FB:AD:96:B8:7C:4E:01:03:4A.
Are you sure you want to continue connecting (yes/no)? yes
Login succeeded.
check cluster join API version
No cluster network links passed explicitly, fallback to local node IP '192.168.162.228'
Request addition of this node
Join request OK, finishing setup locally
stopping pve-cluster service
backup old database to '/var/lib/pve-cluster/backup/config-1627020747.sql.gz'
waiting for quorum...OK
(re)generate node files
generate new node certificate
merge authorized SSH keys and known hosts
generated new node certificate, restart pveproxy and pvedaemon services
successfully added node 'control-farm-02' to cluster.

pvecm status
...
Cluster information
-------------------
Name:             server-farm
Config Version:   2
Transport:        knet
Secure auth:      on

Quorum information
------------------
Date:             Fri Jul 23 15:12:50 2021
Quorum provider:  corosync_votequorum
Nodes:            2
Node ID:          0x00000002
Ring ID:          1.9
Quorate:          Yes

Votequorum information
----------------------
Expected votes:   2
Highest expected: 2
Total votes:      2
Quorum:           2
Flags:            Quorate

Membership information
----------------------
    Nodeid      Votes Name
0x00000001          1 192.168.162.227
0x00000002          1 192.168.162.228 (local)

pvecm add 192.168.162.227
...
Membership information
----------------------
    Nodeid      Votes Name
0x00000001          1 192.168.162.227
0x00000002          1 192.168.162.228
0x00000003          1 192.168.162.229 (local)

 

 

3-2. proxmox ceph rbd backend 사용 설정

주의할점은 Ceph 설치시에 Clients로 Proxmox Node들을 넣어서 같이 설치해줘야 한다.

 

 

3-2-1. storage.conf 수정

sudo vi /etc/pve/storage.cfg
...
rbd: ceph-rbd
        content images
        krbd 0
        monhost 192.168.154.151 192.168.154.152 192.168.154.153
        pool proxmox
        username admin

 

 

3-2-2. ceph admin key 생성

cp /etc/ceph/ceph.client.admin.keyring /etc/pve/priv/ceph/ceph-rbd.keyring

 

 

3-2-3. ceph storage 연동 확인

pvesm status
...
Name             Type     Status           Total            Used       Available        %
ceph-rbd          rbd     active     85474777145         1660985     85473116160    0.00%
local             dir     active        98559220         3691608        89818064    3.75%
local-lvm     lvmthin     active       794079232               0       794079232    0.00%

 

 

4. Promxox Web 접속

아래의 IP로 접속이 잘된다면 성공적으로 설치된 것 이다.

 

주의할점

중첩 가상화를 실행할 Worker Node는 Enable Nested Virtualization IN KVM In Linux 설정을 해야 한다.

2022.09.02 - [Understand different OS Concepts/Virtualization] - Enable Nested Virtualization IN KVM In Linux

 

Enable Nested Virtualization IN KVM In Linux

Overview Enable Nested Virtualization in Kvm Linux 에 대해서 알아보자. https://ostechnix.com/how-to-enable-nested-virtualization-in-kvm-in-linux/ How To Enable Nested Virtualization In KVM In Linux - OSTechNix Nested virtualization is a feature tha

somaz.tistory.com

 

그리고, CPU를 `Processors 32 (4 socket, 8 cores) [host]` 로 변경해준뒤 만들어주면 된다.

 

 


Reference

None.

728x90
반응형

'Understand different OS Concepts > Virtualization' 카테고리의 다른 글

Xen Orchestra란?  (0) 2024.05.21
Enable Nested Virtualization IN KVM In Linux  (0) 2022.09.02
libvirt 자주 쓰는 명령어 정리 virsh  (0) 2022.08.12
libvirt란?  (0) 2022.08.08
KVM와 Qemu  (0) 2022.08.08