[홈서버] Proxmox VE 9.0 Update

1. Prerequisites

Upgrade from 8 to 9 – Proxmox VE

Proxmox VE 9.0 버전으로 업그레이드하기 전에 다음 사항을 반드시 충족해야 한다.

  • 모든 노드에서 Proxmox VE 8.4의 최신 버전으로 업그레이드
  • Proxmox Backup Server 4로 업그레이드
  • 루트 마운트 포인트에 최소 5GB, 이상적으로는 10GB 이상의 여유 공간을 확보.
  • Ceph Quincy 또는 Ceph Reef 클러스터를 Ceph 19.2 Squid로 미리 업그레이드

Ceph는 사용하지 않으므로 넘어간다.


가. VM, Container

PBS를 사용하므로 본격적으로 업데이트하기 전에 한 번만 백업을 실행한다.

PBS를 사용하지 않는 경우 vzdump를 사용해서 데이터를 백업할 수 있다.

백업을 마치면 모든 VM과 container를 종료한다.


나. Proxmox VE 8.4.X

echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" | tee /etc/apt/sources.list.d/pve-no-subscription.list
Code language: PHP (php)

개인들이 일반적으로 많이 사용하는 pbs-no-subscription을 먼저 추가한다.

sudo sed -i 's/^deb/#deb/' /etc/apt/sources.list.d/pve-enterprise.list
sudo sed -i 's/^deb/#deb/' /etc/apt/sources.list.d/ceph.list
Code language: PHP (php)

혹시 기존에 /etc/apt/sources.list.d/ 아래에 존재하는 모든 파일에 pve-enterprise 저장소가 남아 있다면 주석 처리(또는 삭제)한다.

apt update && apt dist-upgrade

Debian Bookworm 저장소가 설정된 상태에서 아래 명령어로 업그레이드한다.

일단 Yes을 선택해 기존 설정을 덮어쓰라고 하고 업데이트가 마무리된 후 보안상 위험한 PasswordAuthenticationPermitRootLogin 옵션만 껐다.

pveversion -v

8.4.14 또는 더 높은 버전이 출력되면 된다.

reboot

한번 리부팅한다.


다. 디스크 공간 확인

df -h /

루트 마운트 포인트에 최소 10GB의 여유 공간이 있는지 확인한다.


2. PVE 설정 백업

가. PVE 세팅

/etc/pve, /etc/passwd, /etc/network/interfaces, /etc/resolv.conf, /etc/apt/sources.list를 백업한다.

만약 위에서 나열한 것들을 제외하고도 수정한 파일이 있다면 백업해 두자.

보안상의 이유로 root 계정의 ssh 사용을 막아뒀다.

때문에 다른 계정을 이용한다.

# PVE SHELL
mkdir ~/pve_setting_backup

sudo cp -r /etc/pve ~/pve_setting_backup/
sudo cp /etc/passwd ~/pve_setting_backup/
sudo cp /etc/network/interfaces ~/pve_setting_backup/
sudo cp /etc/resolv.conf ~/pve_setting_backup/
sudo cp /etc/apt/sources.list ~/pve_setting_backup/

sudo chown -R tiredi:tiredi ~/pve_setting_backup
Code language: PHP (php)

해당 계정은 파일에 대한 권한이 부족하기 때문에 다운로드 전에 미리 복사한다.

# down
# server to local download file
scp -P <port 번호> <username>@<ip>:<path> <local file path>

# server to local download directory
scp -r -P <port 번호> <username>@<ip>:<path> <local file path>
Code language: HTML, XML (xml)

SCP를 활용해서 PVE의 주요 설정파일들을 다운로드한다.

# CLIENT SHELL

# PVE_Settings 디렉터리 생성
mkdir ~/Desktop/PVE_Settings

# /etc/pve 디렉토리 전체 다운로드
scp -r -P 22 tiredi@<pve-ip>:~/pve_setting_backup/pve ~/Desktop/PVE_Settings/

# /etc/passwd 파일 다운로드
scp -P 22 tiredi@<pve-ip>:~/pve_setting_backup/passwd ~/Desktop/PVE_Settings/

# /etc/network/interfaces 파일 다운로드
scp -P 22 tiredi@<pve-ip>:~/pve_setting_backup/interfaces ~/Desktop/PVE_Settings/

# /etc/resolv.conf 파일 다운로드
scp -P 22 tiredi@<pve-ip>:~/pve_setting_backup/resolv.conf ~/Desktop/PVE_Settings/

# /etc/app/sources.list 파일 다운로드
scp -P 22 tiredi@<pve-ip>:~/pve_setting_backup/sources.list ~/Desktop/PVE_Settings/
Code language: PHP (php)

다운로드한 파일은 혹시 모를 상황을 대비해서 보관해 두면 된다.

# PVE SHELL
rm -rf ~/pve_setting_backup/
Code language: PHP (php)

다운로드가 끝나고 불필요한 파일은 삭제한다.


3. PVE 9.0 업데이트

https://svrforum.com/svr/2654710


가. 체크리스트

 pve8to9 --full

WARNINGSFAILURES가 없으면 된다.


나. 주의사항

  • /etc/issue
    : 기본값인 “No” (keep your currently-installed version)를 선택
  • /etc/lvm/lvm.conf
    : 확신이 없다면, “Yes” (install the package maintainer’s version)를 선택하는 것이 좋다.
  • /etc/ssh/sshd_config
    : 일단 Yes을 선택해 기존 설정을 덮어쓰라고 하고 업데이트가 마무리된 후 보안상 위험한 PasswordAuthentication과 ****PermitRootLogin 옵션만 껐다.
  • /etc/default/grub
    : 확신이 없다면 “No” (keep your currently-installed version)를 선택하십시오.
  • /etc/chrony/chrony.conf
    : 직접 수정하지 않았고 확신이 없다면, “Yes” (install the package maintainer’s version)를 선택하십시오. 만약 로컬 변경 사항이 있다면 공식문서를 참고.

다. APT 저장소 업데이트

sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/pve-no-subscription.list
Code language: PHP (php)

/etc/apt/sources.list/etc/apt/sources.list.d/ 아래 모든 파일에 대하여 bookwormtrixie로 변경하자.

복잡하면 그냥 sources.listsources.list.d 아래 모든 파일을 지우면 된다.~~어차피 9.0부터는 .source로 확장자가 변한다.

아…. 지우면 안 된다. 바꾸기만 하자.

cat > /etc/apt/sources.list.d/proxmox.sources << EOF
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF
Code language: JavaScript (javascript)

trixie 버전의 리포지터리를 추가한다.

apt update && apt upgrade -y
apt autoremove

proxmox 9에서 더 이상 사용되지 않는 패키지 삭제.

reboot

라. 시스템 업그레이드

apt update && apt dist-upgrade
pveversion -v

정상적으로 업그레이드 됐는지 확인한다.

reboot

재부팅.


4. 업데이트 후

모든 VM과 컨테이너가 정상적으로 동작하는지 확인한다.

또 백업도 문제없이 잘 되는지 확인한다.

보안을 강화하기 위해서 /etc/ssh/sshd_config를 수정한다.

보안상 위험한 PasswordAuthenticationPermitRootLogin 옵션을 비활성화한다.

 

댓글 남기기