Giriş: Proxmox VE ve Yüksek Erişilebilirlik
Proxmox Virtual Environment (VE), KVM ve LXC tabanlı açık kaynaklı bir sanallaştırma platformudur. Kurumsal düzeyde sanallaştırma çözümü sunan Proxmox, web tabanlı yönetim arayüzü, cluster desteği, yazılım tanımlı depolama (Ceph), yedekleme ve geri yükleme gibi özellikleriyle öne çıkar. VMware vSphere, Microsoft Hyper-V ve Nutanix gibi ticari alternatiflere güçlü bir açık kaynak seçenek sunmaktadır.
Yüksek Erişilebilirlik (HA - High Availability), bir sunucu veya donanım arızası durumunda sanal makinelerin (VM) ve containerların otomatik olarak sağlıklı bir node üzerinde yeniden başlatılmasını sağlayan mekanizmadır. Proxmox'un yerleşik HA yöneticisi (ha-manager), Corosync cluster engine ve fencing mekanizması ile birlikte çalışarak bu özelliği sunar.
Bu rehberde, sıfırdan bir Proxmox HA Cluster kurulumunu adım adım gerçekleştireceğiz.
Ön Gereksinimler
Proxmox HA Cluster kurmadan önce aşağıdaki gereksinimlerin karşılanması gerekir:
- En az 3 Proxmox VE node: HA için quorum (çoğunluk) gerekir. 3 node ile 1 node arızasına, 5 node ile 2 node arızasına dayanıklılık sağlanır.
- Paylaşılan depolama: VM diskleri tüm node'lardan erişilebilir bir depolama üzerinde olmalıdır. Ceph, NFS, iSCSI veya GlusterFS kullanılabilir.
- Güvenilir network: Node'lar arası iletişim için düşük gecikmeli, tercihen ayrılmış bir ağ segmenti. Cluster iletişimi için ayrı bir VLAN veya fiziksel ağ önerilir.
- Aynı Proxmox VE sürümü: Tüm node'lar aynı Proxmox VE sürümünü çalıştırmalıdır.
- DNS çözümlemesi: Tüm node'lar birbirlerini hostname ile çözümleyebilmelidir (
/etc/hostsveya DNS). - NTP senkronizasyonu: Tüm node'larda zaman senkronizasyonu sağlanmalıdır.
Örnek altyapımız:
# Node bilgileri
pve1 - 192.168.1.101 (cluster oluşturucu)
pve2 - 192.168.1.102
pve3 - 192.168.1.103
# /etc/hosts dosyası (tüm node'larda aynı)
192.168.1.101 pve1.local pve1
192.168.1.102 pve2.local pve2
192.168.1.103 pve3.local pve3
Cluster Oluşturma
Cluster kurulumu, ilk node üzerinde cluster oluşturup diğer node'ları bu cluster'a ekleyerek gerçekleştirilir.
1. İlk Node Üzerinde Cluster Oluşturma
# pve1 üzerinde cluster oluşturma
pvecm create vekosis-cluster
# Çıktı:
# 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
# Cluster durumunu kontrol etme
pvecm status
# Çıktı:
# Cluster information
# -------------------
# Name: vekosis-cluster
# Config Version: 1
# Transport: knet
# Secure auth: on
#
# Quorum information
# ------------------
# Date: Sun Jul 6 10:00:00 2025
# 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
2. Diğer Node'ları Cluster'a Ekleme
# pve2 üzerinde cluster'a katılma
pvecm add 192.168.1.101
# Sistem sizden pve1'in root şifresini isteyecektir
# The authenticity of host '192.168.1.101' can't be established.
# Are you sure you want to continue connecting (yes/no)? yes
# root@192.168.1.101's password: ********
# copy corosync auth key
# stopping pve-cluster service
# backup old database to '/var/lib/pve-cluster/backup/config-1720263600.sql.gz'
# waiting for quorum...OK
# generating node certificates...
# merge known_hosts file...
# setup ssh keys...
# cluster join successful
# pve3 üzerinde de aynı işlemi tekrarla
pvecm add 192.168.1.101
3. Cluster Durumu Kontrolü
# Herhangi bir node üzerinden cluster durumunu kontrol etme
pvecm status
# Çıktı:
# Cluster information
# -------------------
# Name: vekosis-cluster
# Config Version: 3
# Transport: knet
# Secure auth: on
#
# Quorum information
# ------------------
# Nodes: 3
# Quorate: Yes
#
# Votequorum information
# ----------------------
# Expected votes: 3
# Highest expected: 3
# Total votes: 3
# Quorum: 2
# Node listesini görüntüleme
pvecm nodes
# Çıktı:
# Membership information
# ----------------------
# Nodeid Votes Name
# 1 1 pve1 (local)
# 2 1 pve2
# 3 1 pve3
Shared Storage: Ceph Kurulumu
HA için paylaşılan depolama şarttır. Ceph, Proxmox ile entegre çalışan dağıtık bir depolama sistemidir. Her node'da en az bir OSD (Object Storage Daemon) diski bulunmalıdır.
1. Ceph Paketlerini Kurma
# Tüm node'larda Ceph kurulumu (Proxmox web UI'dan veya CLI'dan)
pveceph install
# Veya belirli bir Ceph sürümü kurma
pveceph install --repository no-subscription
2. Ceph Yapılandırmasını Başlatma
# İlk node üzerinde Ceph'i başlatma
pveceph init --network 192.168.1.0/24
# Bu komut /etc/pve/ceph.conf dosyasını oluşturur
3. Monitor (MON) Oluşturma
# Her node üzerinde bir monitor oluşturma
# pve1 üzerinde:
pveceph mon create
# pve2 üzerinde:
pveceph mon create
# pve3 üzerinde:
pveceph mon create
# Monitor durumunu kontrol etme
ceph mon stat
# Çıktı: e3: 3 mons at {pve1=[v2:192.168.1.101:3300/0,v1:192.168.1.101:6789/0],
# pve2=[v2:192.168.1.102:3300/0,v1:192.168.1.102:6789/0],
# pve3=[v2:192.168.1.103:3300/0,v1:192.168.1.103:6789/0]}
4. Manager Daemon Oluşturma
# Her node üzerinde manager oluşturma
pveceph mgr create
5. OSD (Object Storage Daemon) Oluşturma
# Her node'daki boş diskleri OSD olarak ekleme
# pve1 üzerinde (örn. /dev/sdb)
pveceph osd create /dev/sdb
# pve2 üzerinde
pveceph osd create /dev/sdb
# pve3 üzerinde
pveceph osd create /dev/sdb
# OSD durumunu kontrol etme
ceph osd tree
# Çıktı:
# ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
# -1 2.72998 root default
# -3 0.90999 host pve1
# 0 hdd 0.90999 osd.0 up 1.00000 1.00000
# -5 0.90999 host pve2
# 1 hdd 0.90999 osd.1 up 1.00000 1.00000
# -7 0.90999 host pve3
# 2 hdd 0.90999 osd.2 up 1.00000 1.00000
6. Ceph Pool Oluşturma
# VM diskleri için bir pool oluşturma
pveceph pool create vm-pool --pg_num 128 --size 3 --min_size 2
# Pool durumunu kontrol etme
ceph osd pool ls detail
# veya
rados df
# Ceph genel durumu
ceph status
# Çıktı:
# cluster:
# id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
# health: HEALTH_OK
#
# services:
# mon: 3 daemons, quorum pve1,pve2,pve3
# mgr: pve1(active), standbys: pve2, pve3
# osd: 3 osds: 3 up, 3 in
#
# data:
# pools: 1 pools, 128 pgs
# objects: 0 objects, 0 B
# usage: 3.0 GiB used, 2.7 TiB / 2.7 TiB avail
HA Grubu Oluşturma
HA grupları, VM'lerin hangi node'lar üzerinde çalışabileceğini ve öncelik sırasını belirler.
# HA grubu oluşturma
ha-manager groupadd prod-group --nodes pve1,pve2,pve3 --nofailback 0
# Belirli node'lara öncelik vererek grup oluşturma
# pve1 en yüksek öncelik, pve3 en düşük
ha-manager groupadd prod-group --nodes pve1:2,pve2:1,pve3:1
# Mevcut grupları listeleme
ha-manager groupconfig
# Çıktı:
# group: prod-group
# nodes pve1:2,pve2:1,pve3:1
# nofailback 0
VM'i HA'ya Ekleme
Paylaşılan depolama üzerinde bulunan bir VM'i HA yönetimine ekleyerek, node arızasında otomatik failover sağlayabilirsiniz.
# VM'i HA'ya ekleme (VM ID: 100)
ha-manager add vm:100 --group prod-group --state started --max_restart 3 --max_relocate 3
# Parametrelerin açıklaması:
# --group: VM'in çalışacağı HA grubu
# --state started: VM'in her zaman çalışır durumda olmasını sağla
# --max_restart: Aynı node üzerinde maksimum yeniden başlatma denemesi
# --max_relocate: Farklı node'a taşıma denemesi sayısı
# Birden fazla VM'i HA'ya ekleme
ha-manager add vm:101 --group prod-group --state started
ha-manager add vm:102 --group prod-group --state started
ha-manager add ct:200 --group prod-group --state started # LXC container
# HA durumunu kontrol etme
ha-manager status
# Çıktı:
# quorum OK, master pve1 (active, Mon Jul 6 12:00:00 2025)
# service vm:100 (pve1, started)
# service vm:101 (pve2, started)
# service vm:102 (pve3, started)
# service ct:200 (pve1, started)
Fencing ve Watchdog Yapılandırması
Fencing, arızalı bir node'un cluster kaynaklarına erişimini zorla kesmek için kullanılan kritik bir mekanizmadır. Split-brain durumlarını (iki node'un aynı VM'i çalıştırması) önler ve veri bütünlüğünü korur.
Proxmox, varsayılan olarak yazılım tabanlı watchdog kullanır. Daha güvenilir bir çözüm için donanımsal watchdog veya IPMI tabanlı fencing yapılandırılabilir.
# Watchdog durumunu kontrol etme
# Proxmox varsayılan olarak softdog modülünü kullanır
lsmod | grep softdog
# softdog 16384 1
# Donanımsal watchdog varsa (örn. Intel TCO)
lsmod | grep iTCO_wdt
# Watchdog cihazını kontrol etme
ls -la /dev/watchdog*
# crw------- 1 root root 10, 130 Jul 6 10:00 /dev/watchdog
# crw------- 1 root root 245, 0 Jul 6 10:00 /dev/watchdog0
# IPMI fencing yapılandırması (sunucunuz IPMI destekliyorsa)
# /etc/pve/ha/fence.cfg dosyasını düzenleme
# fence_ipmilan parametreleri:
# node pve1: ipaddr=192.168.1.201 login=admin passwd=secret lanplus=1
# node pve2: ipaddr=192.168.1.202 login=admin passwd=secret lanplus=1
# node pve3: ipaddr=192.168.1.203 login=admin passwd=secret lanplus=1
# HA manager yapılandırmasını kontrol etme
cat /etc/pve/ha/manager_status
Failover Testi
HA yapılandırmasını test etmek, üretim ortamında bir sorunla karşılaşmadan önce sistemin doğru çalıştığını doğrulamak için çok önemlidir.
# Yöntem 1: Node'u kontrollü yeniden başlatma
# pve1 üzerinde (VM:100 burada çalışıyorsa, başka node'a taşınmalı)
sudo reboot
# Diğer node'dan HA durumunu izleme (pve2'den)
ha-manager status
# Çıktı (failover sırasında):
# quorum OK, master pve2 (active, Mon Jul 6 12:05:00 2025)
# service vm:100 (pve2, started) <-- pve1'den pve2'ye taşındı
# service vm:101 (pve2, started)
# service vm:102 (pve3, started)
# Yöntem 2: Watchdog simülasyonu (dikkatli kullanın!)
# Bu komut node'u aniden kapatır, üretimde kullanmayın
# echo 1 > /proc/sysrq-trigger # Kernel panic tetikler
# Yöntem 3: Cluster servisini durdurma
systemctl stop pve-ha-lrm
# HA manager, bu node'daki VM'leri diğer node'lara taşıyacaktır
# Failover sonrası kontrol
pvecm status # Cluster quorum durumu
ha-manager status # HA servislerinin durumu
ceph status # Ceph sağlık durumu
Monitoring ve İzleme
Cluster sağlığını sürekli izlemek, olası sorunları erken tespit etmenizi sağlar.
# Cluster genel durumu
pvecm status
# Detaylı node bilgileri
pvecm nodes
# HA servis durumu
ha-manager status
# Ceph sağlık durumu
ceph health detail
# Ceph performans metrikleri
ceph osd perf
# Corosync ring durumu
corosync-cfgtool -s
# Çıktı:
# Local node ID 1, transport knet
# LINK ID 0 udp
# addr = 192.168.1.101
# status:
# nodeid: 1: localhost
# nodeid: 2: connected
# nodeid: 3: connected
# Cluster log'ları
journalctl -u pve-ha-lrm -f # Local Resource Manager log
journalctl -u pve-ha-crm -f # Cluster Resource Manager log
journalctl -u corosync -f # Corosync log
Proxmox Web UI: Cluster durumunu, node sağlığını, VM konumlarını ve HA durumunu Proxmox web arayüzünden (https://pve1:8006) grafiksel olarak da izleyebilirsiniz. Datacenter > HA menüsünden HA kaynaklarını ve gruplarını yönetebilirsiniz.
Best Practices
- Network Redundancy: Cluster iletişimi için ayrılmış bir ağ kullanın. Mümkünse bonding (LACP) ile ağ yedekliliği sağlayın. Corosync iletişimi için ayrı bir ring (ağ arayüzü) yapılandırın.
- STONITH (Shoot The Other Node In The Head): IPMI veya iLO tabanlı donanımsal fencing yapılandırın. Yazılımsal watchdog yedek çözüm olarak kalmalıdır. Split-brain durumlarını önlemek için fencing kritik öneme sahiptir.
- Tek sayı node kullanın: Quorum hesaplaması için 3, 5 veya 7 node kullanın. Çift sayıda node, split-brain riskini artırır.
- Backup stratejisi: HA, disk arızasına karşı korur ancak veri kaybına karşı yedekleme şarttır. Proxmox Backup Server (PBS) ile düzenli yedekleme yapın. 3-2-1 kuralını uygulayın: 3 kopya, 2 farklı medya, 1 offsite.
- Ceph OSD için SSD kullanın: DB/WAL (journal) için SSD kullanmak Ceph performansını önemli ölçüde artırır. Mümkünse tüm OSD'ler için NVMe SSD tercih edin.
- Yeterli kaynak bırakın: HA failover durumunda kalan node'ların tüm VM'leri barındırabilecek kapasitede olması gerekir. N+1 kapasite planlaması yapın.
- Firmware ve sürüm güncelliği: Proxmox VE, Ceph ve sistem firmware'lerini güncel tutun. Güncellemeleri rolling upgrade yöntemiyle tek tek node'larda uygulayın.
- Test ortamı: Üretim ortamını etkileyen değişiklikleri önce test ortamında deneyin. Failover testlerini periyodik olarak yapın.
- Monitoring ve alerting: Nagios, Zabbix veya Prometheus + Grafana ile cluster metriklerini izleyin. Disk doluluk oranı, Ceph sağlığı, node erişilebilirliği gibi kritik metriklere alarm kurun.
Sonuç
Proxmox VE ile HA Cluster oluşturmak, kurumsal düzeyde yüksek erişilebilirlik sağlamanın uygun maliyetli ve güçlü bir yoludur. Bu rehberde cluster oluşturma, Ceph depolama yapılandırma, HA grupları tanımlama, fencing ve failover test süreçlerini ele aldık.
Doğru planlama, uygun donanım seçimi ve best practice'lere uyum ile Proxmox HA Cluster, ticari alternatiflere rakip olabilecek bir sanallaştırma altyapısı sunar. Üretim ortamına geçmeden önce tüm failover senaryolarını test etmenizi ve dokümantasyonunuzu güncel tutmanızı tavsiye ederiz.
Proxmox HA Cluster kurulumu, Ceph depolama yapılandırması veya sanallaştırma altyapınız hakkında profesyonel destek almak isterseniz VekoSis ekibimizle iletişime geçebilirsiniz.