<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>swap arşivleri | BURAK AKTAŞ</title>
	<atom:link href="https://www.burakaktas.com/etiket/swap/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.burakaktas.com/etiket/swap/</link>
	<description>Virtualization Technologies Blog</description>
	<lastBuildDate>Fri, 26 Jun 2026 05:26:36 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://www.burakaktas.com/wp-content/uploads/2020/04/cropped-vm_favicon-32x32.png</url>
	<title>swap arşivleri | BURAK AKTAŞ</title>
	<link>https://www.burakaktas.com/etiket/swap/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Proxmox VE + Ceph HCI: Swap Sorunu ve Kalıcı Çözüm v9.x</title>
		<link>https://www.burakaktas.com/proxmox-ve-ceph-hci-swap-sorunu-ve-kalici-cozum-v9-x/</link>
		
		<dc:creator><![CDATA[Burak AKTAŞ]]></dc:creator>
		<pubDate>Thu, 25 Jun 2026 21:38:46 +0000</pubDate>
				<category><![CDATA[Proxmox]]></category>
		<category><![CDATA[ceph]]></category>
		<category><![CDATA[kvm]]></category>
		<category><![CDATA[proxmox]]></category>
		<category><![CDATA[swap]]></category>
		<category><![CDATA[virtualization]]></category>
		<guid isPermaLink="false">https://www.burakaktas.com/?p=4341</guid>

					<description><![CDATA[<p>Proxmox + Ceph HCI ortamında swap dolduğunda ne olur, neden tehlikelidir ve nasıl kalıcı olarak çözülür adım adım. Swap Dolarsa Ne Olur? Ceph OSD&#8217;ler yavaşlar. OSD swap&#8217;a düştüğünde RAM↔disk I/O yerine RAM↔swap I/O yapıyor. Heartbeat&#8217;e geç cevap verir, cluster HEALTH_WARN alır, uzarsa OSD down olarak işaretlenir ve rebalance başlar. VM&#8217;ler etkilenir. QEMU process&#8217;i swap&#8217;a düşünce VM içindeki uygulama yavaşlar, &#8220;disk [&#8230;]</p>
<p>The post <a href="https://www.burakaktas.com/proxmox-ve-ceph-hci-swap-sorunu-ve-kalici-cozum-v9-x/">Proxmox VE + Ceph HCI: Swap Sorunu ve Kalıcı Çözüm v9.x</a> appeared first on <a href="https://www.burakaktas.com">BURAK AKTAŞ</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><a href="https://www.burakaktas.com/wp-content/uploads/2026/06/swap_pic.jpeg"><img fetchpriority="high" decoding="async" width="2096" height="996" src="https://www.burakaktas.com/wp-content/uploads/2026/06/swap_pic.jpeg" alt="" class="wp-image-4345"/></a></figure>



<!-- WordPress Custom HTML Block — Copy & Paste -->
<style>
.pxswap-wrap { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; color: #1a1a2e; line-height: 1.7; max-width: 860px; }
.pxswap-wrap h2 { font-size: 1.45rem; font-weight: 700; color: #1a1a2e; margin: 2.5rem 0 1rem; border-left: 4px solid #e85d04; padding-left: 12px; }
.pxswap-wrap h3 { font-size: 1.1rem; font-weight: 700; color: #e85d04; margin: 1.8rem 0 0.6rem; }
.pxswap-wrap p { margin: 0 0 1rem; }
.pxswap-wrap strong { color: #1a1a2e; }

/* Info / Note box */
.pxswap-note {
  background: #fff8f0;
  border-left: 4px solid #e85d04;
  border-radius: 0 6px 6px 0;
  padding: 14px 18px;
  margin: 1.2rem 0;
  font-size: 0.95rem;
  color: #5a3e28;
}
.pxswap-note strong { color: #c44d00; }

/* Warning box */
.pxswap-warn {
  background: #fff3cd;
  border-left: 4px solid #f0a500;
  border-radius: 0 6px 6px 0;
  padding: 14px 18px;
  margin: 1.2rem 0;
  font-size: 0.95rem;
  color: #5a4000;
}

/* Step header */
.pxswap-step {
  display: flex;
  align-items: center;
  gap: 14px;
  background: #1a1a2e;
  color: #fff;
  border-radius: 8px;
  padding: 14px 20px;
  margin: 2rem 0 1rem;
}
.pxswap-step-num {
  background: #e85d04;
  color: #fff;
  font-weight: 800;
  font-size: 1.1rem;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.pxswap-step-title { font-weight: 700; font-size: 1.05rem; }

/* Code block */
.pxswap-code-wrap { position: relative; margin: 1rem 0 1.5rem; }
.pxswap-code-label {
  background: #e85d04;
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 4px 4px 0 0;
  display: inline-block;
}
.pxswap-code-label.output { background: #3a3a5c; }
.pxswap-code-wrap pre {
  background: #0d0d1a;
  color: #e2e8f0;
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
  font-size: 0.85rem;
  line-height: 1.65;
  padding: 18px 20px;
  margin: 0;
  border-radius: 0 6px 6px 6px;
  overflow-x: auto;
  white-space: pre;
}
.pxswap-copy-btn {
  position: absolute;
  top: 28px;
  right: 12px;
  background: #e85d04;
  color: #fff;
  border: none;
  border-radius: 4px;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 4px 10px;
  cursor: pointer;
  transition: background 0.2s;
}
.pxswap-copy-btn:hover { background: #bf4a00; }
.pxswap-copy-btn.copied { background: #2d9e6b; }

/* Özet tablo */
.pxswap-table { width: 100%; border-collapse: collapse; margin: 1.2rem 0 1.5rem; font-size: 0.95rem; }
.pxswap-table th { background: #1a1a2e; color: #fff; padding: 10px 14px; text-align: left; }
.pxswap-table td { padding: 10px 14px; border-bottom: 1px solid #e5e5f0; }
.pxswap-table tr:last-child td { border-bottom: none; }
.pxswap-table tr:nth-child(even) td { background: #f8f8ff; }
.pxswap-badge-yes { color: #2d9e6b; font-weight: 700; }
.pxswap-badge-no  { color: #e85d04; font-weight: 700; }
.pxswap-badge-na  { color: #999; }

/* FAQ / neden kutuları */
.pxswap-faq { background: #f4f4fb; border-radius: 8px; padding: 16px 20px; margin: 1rem 0; }
.pxswap-faq-q { font-weight: 700; color: #1a1a2e; margin-bottom: 6px; }
.pxswap-faq-a { color: #444; font-size: 0.95rem; }

/* Inline code */
.pxswap-wrap code {
  background: #f0f0ff;
  color: #c44d00;
  font-family: 'JetBrains Mono', 'Fira Code', monospace;
  font-size: 0.88em;
  padding: 2px 6px;
  border-radius: 3px;
}
</style>

<div class="pxswap-wrap">

  <p>Proxmox + Ceph HCI ortamında swap dolduğunda ne olur, neden tehlikelidir ve nasıl kalıcı olarak çözülür adım adım.</p>

  <!-- SWAP DOLARSA NE OLUR -->
  <h2>Swap Dolarsa Ne Olur?</h2>

  <p><strong>Ceph OSD&#8217;ler yavaşlar.</strong> OSD swap&#8217;a düştüğünde RAM↔disk I/O yerine RAM↔swap I/O yapıyor. Heartbeat&#8217;e geç cevap verir, cluster <code>HEALTH_WARN</code> alır, uzarsa OSD down olarak işaretlenir ve rebalance başlar.</p>

  <p><strong>VM&#8217;ler etkilenir.</strong> QEMU process&#8217;i swap&#8217;a düşünce VM içindeki uygulama yavaşlar, &#8220;disk yavaş&#8221; gibi görünür asıl sorun host memory&#8217;dir.</p>

  <p><strong>En kötü senaryo: OOM Killer.</strong> Swap tamamen dolarsa kernel en fazla memory kullanan process&#8217;i öldürür. Bu <code>ceph-osd</code> veya bir QEMU process olabilir. OSD ölürse <code>HEALTH_ERR</code>, QEMU ölürse VM aniden kapanır.</p>

  <!-- NEDEN OLDU -->
  <h2>Neden Oldu?</h2>

  <p>Linux kernel&#8217;inin varsayılan <code>vm.swappiness</code> değeri <strong>60&#8217;tır.</strong> Bu &#8220;RAM dolmasa bile idle sayfaları swap&#8217;a at&#8221; demek. Proxmox kurulumunda Debian bu değere dokunmaz. Uzun uptime boyunca küçük küçük biriken swap kullanımı %90&#8217;ı aşabilir sistem çalışıyor çünkü RAM hala bol, ama tetikleyici bir olay (backup, recovery, yoğun I/O) gelince patlama noktasına dönüşür.</p>

  <p>Proxmox staff&#8217;ın HCI ortamları için önerisi: <strong>swappiness = 10.</strong></p>

  <div class="pxswap-note">
    <strong>PVE 9 Notu:</strong> <code>/etc/sysctl.conf</code> artık yok. Tüm ayarlar <code>/etc/sysctl.d/</code> altına yazılıyor.
  </div>

  <!-- ADIM 1 -->
  <div class="pxswap-step">
    <div class="pxswap-step-num">1</div>
    <div class="pxswap-step-title">Mevcut Durumu Gör</div>
  </div>

  <p>Başlamadan önce ne durumda olduğunu belge altına al.</p>

  <div class="pxswap-code-wrap">
    <span class="pxswap-code-label">bash</span>
    <button class="pxswap-copy-btn" onclick="pxCopy(this)">Kopyala</button>
    <pre>echo "=== SWAP DURUMU ===" &amp;&amp; free -h
echo "=== SWAPPINESS ===" &amp;&amp; cat /proc/sys/vm/swappiness
echo "=== EN FAZLA SWAP KULLANANLAR ==="
cat /proc/*/status 2&gt;/dev/null | \
  awk '/^Name/{name=$2} /^VmSwap/{if($2&gt;0) print $2" kB --&gt; "name}' | \
  sort -rn | head -10</pre>
  </div>

  <p>Beklenen çıktı:</p>

  <div class="pxswap-code-wrap">
    <span class="pxswap-code-label output">çıktı</span>
    <pre>=== SWAP DURUMU ===
Swap:          8.0Gi       7.4Gi     614Mi

=== SWAPPINESS ===
60

=== EN FAZLA SWAP KULLANANLAR ===
2854288 kB --&gt; kvm
808100 kB  --&gt; kvm
254860 kB  --&gt; ceph-mgr
101072 kB  --&gt; ceph-osd</pre>
  </div>

  <!-- ADIM 2 -->
  <div class="pxswap-step">
    <div class="pxswap-step-num">2</div>
    <div class="pxswap-step-title">Swap&#8217;ı Güvenli Temizle</div>
  </div>

  <p>Swap&#8217;taki tüm sayfalar RAM&#8217;e geri çekilir. Önce yeterli RAM olduğunu doğrula:</p>

  <div class="pxswap-code-wrap">
    <span class="pxswap-code-label">bash</span>
    <button class="pxswap-copy-btn" onclick="pxCopy(this)">Kopyala</button>
    <pre>awk '/MemAvailable/{avail=$2} /SwapTotal/{total=$2} /SwapFree/{free=$2}
     END{
       used=total-free;
       print "RAM Available : " avail/1024/1024 " GiB";
       print "Swap Used     : " used/1024/1024 " GiB";
       if(avail &gt; used)
         print "SONUC: Guvenli, devam edebilirsin";
       else
         print "SONUC: UYARI - Yeterli RAM yok!";
     }' /proc/meminfo</pre>
  </div>

  <p><strong>&#8220;Güvenli, devam edebilirsin&#8221;</strong> yazıyorsa swap&#8217;ı temizle:</p>

  <div class="pxswap-code-wrap">
    <span class="pxswap-code-label">bash</span>
    <button class="pxswap-copy-btn" onclick="pxCopy(this)">Kopyala</button>
    <pre>swapoff -a &amp;&amp; swapon -a</pre>
  </div>

  <div class="pxswap-warn">
    ⚠️ Birkaç dakika sürebilir, disk IO artar. Mesai saati dışında yap.
  </div>

  <p>Temizlendi mi kontrol et:</p>

  <div class="pxswap-code-wrap">
    <span class="pxswap-code-label">bash</span>
    <button class="pxswap-copy-btn" onclick="pxCopy(this)">Kopyala</button>
    <pre>free -h
# Swap: used → 0 olmalı</pre>
  </div>

  <!-- ADIM 3 -->
  <div class="pxswap-step">
    <div class="pxswap-step-num">3</div>
    <div class="pxswap-step-title">Kalıcı Çözüm — swappiness 10 Yap</div>
  </div>

  <p>Swap temizlendi ama swappiness hala 60 ise birkaç ay sonra aynı yere dönersin.</p>

  <div class="pxswap-code-wrap">
    <span class="pxswap-code-label">bash</span>
    <button class="pxswap-copy-btn" onclick="pxCopy(this)">Kopyala</button>
    <pre>echo "vm.swappiness=10" &gt; /etc/sysctl.d/99-proxmox-hci-tuning.conf
sysctl -p /etc/sysctl.d/99-proxmox-hci-tuning.conf
cat /proc/sys/vm/swappiness
# Çıktı: 10</pre>
  </div>

  <!-- ADIM 4 -->
  <div class="pxswap-step">
    <div class="pxswap-step-num">4</div>
    <div class="pxswap-step-title">Son Kontrol</div>
  </div>

  <div class="pxswap-code-wrap">
    <span class="pxswap-code-label">bash</span>
    <button class="pxswap-copy-btn" onclick="pxCopy(this)">Kopyala</button>
    <pre>echo "=== SWAPPINESS ===" &amp;&amp; cat /proc/sys/vm/swappiness
echo "=== SWAP DURUMU ===" &amp;&amp; free -h | grep Swap
echo "=== AYAR DOSYASI ===" &amp;&amp; cat /etc/sysctl.d/99-proxmox-hci-tuning.conf</pre>
  </div>

  <p>Beklenen çıktı:</p>

  <div class="pxswap-code-wrap">
    <span class="pxswap-code-label output">çıktı</span>
    <pre>=== SWAPPINESS ===
10

=== SWAP DURUMU ===
Swap:   8.0Gi    0B    8.0Gi

=== AYAR DOSYASI ===
vm.swappiness=10</pre>
  </div>

  <!-- TOPLU SCRIPT -->
  <h2>Tüm Cluster İçin Toplu Script</h2>

  <p>MacBook veya Linux bir OS üzerinden çalıştırılır. <code>sshpass</code> ile root şifresi kullanır, tüm node&#8217;lara sırayla bağlanır.</p>

  <div class="pxswap-note">
    <strong>Gereksinim:</strong> <code>brew install sshpass</code>
  </div>

  <p>Script&#8217;i oluştur:</p>

  <div class="pxswap-code-wrap">
    <span class="pxswap-code-label">bash</span>
    <button class="pxswap-copy-btn" onclick="pxCopy(this)">Kopyala</button>
    <pre>cat &gt; ~/swap-fix.sh &lt;&lt; 'SCRIPT'
#!/bin/bash
# ============================================================
# Proxmox VE + Ceph HCI — Swap Tuning Script
# Cluster : prx-test (10 node)
# Tarih   : 2026-06-23
# Yazar   : Burak
# ============================================================

ROOT_PASS="buraya_root_sifresini_yaz"

NODES=(
  prx-test-01
  prx-test-02
  prx-test-03
  prx-test-04
  prx-test-05
  prx-test-06
  prx-test-07
  prx-test-08
  prx-test-09
  prx-test-10
)

GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'

ok()   { echo -e "${GREEN}[OK]${NC}   $1"; }
err()  { echo -e "${RED}[ERR]${NC}  $1"; }
warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
inf()  { echo -e "${BLUE}[INFO]${NC} $1"; }

apply_node() {
  local NODE=$1
  echo ""
  echo "============================================"
  inf "Node: $NODE"
  echo "============================================"

  sshpass -p "$ROOT_PASS" ssh \
    -o StrictHostKeyChecking=no \
    -o ConnectTimeout=10 \
    root@"$NODE" bash &lt;&lt; 'REMOTE'

HOST=$(hostname)
SWAP_TOTAL=$(awk '/SwapTotal/{print $2}' /proc/meminfo)
SWAP_FREE=$(awk '/SwapFree/{print $2}'   /proc/meminfo)
MEM_AVAIL=$(awk '/MemAvailable/{print $2}' /proc/meminfo)
SWAP_USED=$((SWAP_TOTAL - SWAP_FREE))

echo "[$HOST] Mevcut swappiness : $(cat /proc/sys/vm/swappiness)"
echo "[$HOST] Swap used         : $((SWAP_USED/1024)) MiB"
echo "[$HOST] RAM available     : $((MEM_AVAIL/1024)) MiB"

echo "vm.swappiness=10" &gt; /etc/sysctl.d/99-proxmox-hci-tuning.conf
sysctl -p /etc/sysctl.d/99-proxmox-hci-tuning.conf &gt; /dev/null
echo "[$HOST] swappiness -&gt; $(cat /proc/sys/vm/swappiness)"

if [ "$SWAP_USED" -eq 0 ]; then
  echo "[$HOST] Swap zaten temiz, atlanıyor."
elif [ "$MEM_AVAIL" -gt "$SWAP_USED" ]; then
  echo "[$HOST] Swap temizleniyor..."
  swapoff -a &amp;&amp; swapon -a
  NEW_USED=$(awk '/SwapFree/{f=$2}/SwapTotal/{t=$2}END{print (t-f)/1024}' /proc/meminfo)
  echo "[$HOST] Swap temizlendi. Kalan: ${NEW_USED} MiB"
else
  echo "[$HOST] UYARI: RAM yetersiz, swap temizlenemedi!"
fi

echo "[$HOST] SONUÇ | swappiness: $(cat /proc/sys/vm/swappiness) | swap used: $(awk '/SwapFree/{f=$2}/SwapTotal/{t=$2}END{print (t-f)/1024}' /proc/meminfo) MiB"
REMOTE

  if [ $? -eq 0 ]; then
    ok "Node $NODE tamamlandı."
  else
    err "Node $NODE — bağlantı hatası!"
  fi

  if [ "$NODE" != "${NODES[-1]}" ]; then
    warn "30 saniye bekleniyor..."
    sleep 30
  fi
}

if ! command -v sshpass &amp;&gt; /dev/null; then
  err "sshpass yok. Kur: brew install sshpass"
  exit 1
fi

echo ""
echo "============================================"
inf "Swap Tuning Script başlıyor"
inf "Toplam node: ${#NODES[@]}"
echo "============================================"

for NODE in "${NODES[@]}"; do
  apply_node "$NODE"
done

echo ""
echo "============================================"
ok "TÜM NODE'LAR TAMAMLANDI"
echo "============================================"
SCRIPT

chmod +x ~/swap-fix.sh</pre>
  </div>

  <p>Şifreyi yaz, çalıştır:</p>

  <div class="pxswap-code-wrap">
    <span class="pxswap-code-label">bash</span>
    <button class="pxswap-copy-btn" onclick="pxCopy(this)">Kopyala</button>
    <pre>nano ~/swap-fix.sh
# ROOT_PASS satırını düzenle

bash ~/swap-fix.sh</pre>
  </div>

  <!-- ÖZET TABLO -->
  <h2>Özet</h2>

  <table class="pxswap-table">
    <thead>
      <tr>
        <th>Adım</th>
        <th>İşlem</th>
        <th>Kalıcı mı?</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>1</td>
        <td>Mevcut durumu gör</td>
        <td class="pxswap-badge-na">—</td>
      </tr>
      <tr>
        <td>2</td>
        <td><code>swapoff -a &amp;&amp; swapon -a</code></td>
        <td class="pxswap-badge-no">✗ Tek seferlik</td>
      </tr>
      <tr>
        <td>3</td>
        <td><code>vm.swappiness=10</code> yaz</td>
        <td class="pxswap-badge-yes">✓ Reboot sonrası da geçerli</td>
      </tr>
      <tr>
        <td>4</td>
        <td>Son kontrol</td>
        <td class="pxswap-badge-na">—</td>
      </tr>
    </tbody>
  </table>

  <div class="pxswap-faq">
    <div class="pxswap-faq-q">Neden swap tamamen kapatılmadı?</div>
    <div class="pxswap-faq-a">Nadir de olsa OSD veya QEMU anlık memory spike yaşayabilir. Swap bu durumda OOM kill yerine zaman kazandırır. HCI ortamında swap&#8217;ı tamamen kaldırmak önerilmez.</div>
  </div>

  <div class="pxswap-faq">
    <div class="pxswap-faq-q">Neden 10?</div>
    <div class="pxswap-faq-a">Proxmox staff&#8217;ın HCI ortamları için önerdiği değer. &#8220;Gerçekten mecbur kalmadıkça gitme&#8221; anlamına gelir. 0 yapmak modern kernel&#8217;de swap&#8217;ı tamamen kapatmaz, sadece ağırlığı düşürür.</div>
  </div>

</div>

<script>
function pxCopy(btn) {
  var pre = btn.closest('.pxswap-code-wrap').querySelector('pre');
  navigator.clipboard.writeText(pre.innerText).then(function() {
    btn.textContent = 'Kopyalandı!';
    btn.classList.add('copied');
    setTimeout(function() {
      btn.textContent = 'Kopyala';
      btn.classList.remove('copied');
    }, 2000);
  });
}
</script>



<p class="has-medium-font-size wp-block-paragraph">Bu makale gerçek bir production ortamında uygulanan operasyon adımları esas alınarak hazırlanmıştır.</p>



<p class="has-medium-font-size wp-block-paragraph">Bir sonraki yazımızda görüşmek üzere. Faydalı olması dileğiyle.</p>
<p><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Fwww.burakaktas.com%2Fproxmox-ve-ceph-hci-swap-sorunu-ve-kalici-cozum-v9-x%2F&amp;linkname=Proxmox%20VE%20%2B%20Ceph%20HCI%3A%20Swap%20Sorunu%20ve%20Kal%C4%B1c%C4%B1%20%C3%87%C3%B6z%C3%BCm%20v9.x" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fwww.burakaktas.com%2Fproxmox-ve-ceph-hci-swap-sorunu-ve-kalici-cozum-v9-x%2F&amp;linkname=Proxmox%20VE%20%2B%20Ceph%20HCI%3A%20Swap%20Sorunu%20ve%20Kal%C4%B1c%C4%B1%20%C3%87%C3%B6z%C3%BCm%20v9.x" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Fwww.burakaktas.com%2Fproxmox-ve-ceph-hci-swap-sorunu-ve-kalici-cozum-v9-x%2F&amp;linkname=Proxmox%20VE%20%2B%20Ceph%20HCI%3A%20Swap%20Sorunu%20ve%20Kal%C4%B1c%C4%B1%20%C3%87%C3%B6z%C3%BCm%20v9.x" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Fwww.burakaktas.com%2Fproxmox-ve-ceph-hci-swap-sorunu-ve-kalici-cozum-v9-x%2F&amp;linkname=Proxmox%20VE%20%2B%20Ceph%20HCI%3A%20Swap%20Sorunu%20ve%20Kal%C4%B1c%C4%B1%20%C3%87%C3%B6z%C3%BCm%20v9.x" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Fwww.burakaktas.com%2Fproxmox-ve-ceph-hci-swap-sorunu-ve-kalici-cozum-v9-x%2F&amp;linkname=Proxmox%20VE%20%2B%20Ceph%20HCI%3A%20Swap%20Sorunu%20ve%20Kal%C4%B1c%C4%B1%20%C3%87%C3%B6z%C3%BCm%20v9.x" title="Email" rel="nofollow noopener" target="_blank"></a></p><p>The post <a href="https://www.burakaktas.com/proxmox-ve-ceph-hci-swap-sorunu-ve-kalici-cozum-v9-x/">Proxmox VE + Ceph HCI: Swap Sorunu ve Kalıcı Çözüm v9.x</a> appeared first on <a href="https://www.burakaktas.com">BURAK AKTAŞ</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
