Blogchevron_rightSunucu Yönetimichevron_rightDocker Swarm Veri Saklama ve Paylaşım Rehberi

Docker Swarm Veri Saklama ve Paylaşım Rehberi

S
Serversium
calendar_today16 Temmuz 2026
schedule5 dk okuma
Docker Swarm Veri Saklama ve Paylaşım Rehberi

Docker Swarm Üzerinde Gelişmiş Veri Saklama ve Paylaşım Rehberi

Docker Swarm, konteyner orkestrasyonunun en popüler çözümlerinden biri olarak, birden fazla sunucu üzerinde çalışan konteynerlerin ortak veri erişimi için güçlü mekanizmalar sunar. Bu rehberde, Docker Swarm ortamında veri saklama ve paylaşımının tüm yönlerini detaylı şekilde inceleyeceğiz.

Docker Swarm Volume Mimarisi

Docker Swarm'da veri yönetimi, konteynerlerin kalıcı verileri saklayabilmesi ve bu verilere birden fazla node'dan erişilebilmesi için kritik öneme sahiptir. Docker volume sürücüleri, yerel disklerden ağ tabanlı depolama çözümlerine kadar geniş bir yelpazede seçenekler sunar.

Swarm mode'da volume oluştururken dikkat edilmesi gereken en önemli faktör, volume'ün driver tipidir. Yerel driver'lar tek node üzerinde çalışırken, ağ tabanlı driver'lar tüm cluster genelinde erişilebilir volume'ler oluşturur.

Yerel Volume'ler ve Bind Mount'lar

Basit kullanım senaryolarında yerel volume'ler yeterli olabilir. Ancak Swarm ortamında, bir node'da oluşturulan yerel volume'lere diğer node'lardan erişim mümkün değildir.

docker volume create --driver local --name swarm-data
docker service create --mount type=volume,source=swarm-data,target=/data myservice

Bind mount'lar ise host dosya sistemindeki belirli dizinleri konteyner içine bağlar. Bu yöntem, geliştirme ortamlarında ve basit yapılandırma dosyaları için idealdir.

Ağ Tabanlı Paylaşımlı Depolama Çözümleri

Gerçek bir Swarm cluster'ında, birden fazla node'un aynı verilere erişmesi için ağ tabanlı depolama çözümleri gereklidir. Aşağıdaki tablo, en popüler çözümleri karşılaştırmaktadır:

Çözüm Tip Performans Kurulum Karmaşıklığı Kullanım Alanı
NFS Network File System Orta Düşük Küçük-orta ölçekli
GlusterFS Distributed File System Yüksek Orta Orta-büyük ölçekli
Ceph Software-Defined Storage Çok Yüksek Yüksek Enterprise
MinIO Object Storage (S3) Yüksek Orta Object storage ihtiyacı

NFS Volume Yapılandırması

NFS, Docker Swarm için en yaygın kullanılan paylaşımlı depolama çözümüdür. Kurulumu oldukça basittir ve çoğu senaryo için yeterli performans sunar.

Öncelikle NFS sunucusu kurulumu yapılmalıdır:

# NFS sunucusu kurulumu (Debian/Ubuntu)
apt-get update
apt-get install -y nfs-kernel-server

# Paylaşılacak dizin
mkdir -p /var/nfs/swarm-data
chmod 777 /var/nfs/swarm-data

# /etc/exports dosyasına ekleme
echo "/var/nfs/swarm-data *(rw,sync,no_subtree_check,no_root_squash)" >> /etc/exports

# Export et
exportfs -a
systemctl restart nfs-kernel-server

Ardından Docker Swarm'da NFS volume driver yapılandırması:

# NFS volume plugin kurulumu
docker plugin install --grant-all-permissions vieux/sshfs

# NFS volume oluşturma
docker volume create --driver vieux/sshfs \
  --opt type=nfs \
  --opt o=addr=192.168.1.100,rw \
  --opt device=:/var/nfs/swarm-data \
  nfs-swarm-volume

NFS kullanımının en büyük avantajı, kurulum kolaylığı ve yaygın destektir. Ancak tek NFS sunucusu kullanıldığında single point of failure oluşturabilir. Bu nedenle yüksek kullanılabilirlik için RAID yapılandırması ve yedekleme stratejileri uygulanmalıdır.

GlusterFS Kurulumu ve Yapılandırması

GlusterFS, dağıtık dosya sistemi olarak Docker Swarm için mükemmel bir seçenektir. Herhangi bir merkezi meta veri sunucusu gerektirmeden çalışır ve yatay ölçeklenebilirlik sunar.

GlusterFS cluster'ı kurulumu için öncelikle tüm node'lara kurulum yapılır:

# GlusterFS kurulumu
apt-get install -y glusterfs-server

# Node'larda servis başlatma
systemctl enable glusterd
systemctl start glusterd

# Probe komutu ile node'ları birbirine bağlama
gluster peer probe gluster-node2
gluster peer probe gluster-node3

# Volume oluşturma
gluster volume create swarm-data replica 3 \
  gluster-node1:/data/gluster \
  gluster-node2:/data/gluster \
  gluster-node3:/data/gluster

gluster volume start swarm-data

Docker'da GlusterFS volume kullanımı için glusterfs fuse driver kullanılır:

docker volume create --driver local \
  --opt type=glusterfs \
  --opt o=addr=gluster-node1,volname=swarm-data \
  --opt device=:/ \
  gluster-docker-data

GlusterFS'in en büyük avantajı, verilerin otomatik olarak çoğaltılması (replication) ve yük dengeleme özellikleridir. Bu özellik, üretim ortamlarında veri güvenliği için kritik öneme sahiptir.

Docker Swarm Volume Driver Plugin'leri

Docker, çeşitli storage backend'ler için plugin desteği sunar. İşte en popüler volume driver'lar:

  1. Rex-Ray: EMC, Amazon EBS, Google Persistent Disk gibi birçok cloud ve on-premise çözümü destekler.
  2. Portworx: Enterprise sınıfı storage çözümü olarak yüksek performans ve güvenlik sunar.
  3. Convoy: Basit NFS ve GlusterFS backend desteği ile kolay kurulum sağlar.
  4. VMWare vSphere Storage: VMware ortamları için native entegrasyon sunar.

Swarm Service'lerde Volume Kullanımı

Docker service oluştururken volume mount etmek, replicated service'lerde önemli hususlar gerektirir. Aynı volume'e birden fazla replica yazma yaptığında, veri tutarsızlıkları oluşabilir.

# Global service için volume mount
docker service create \
  --mount type=volume,source=shared-data,target=/app/data \
  --mode global \
  myapp:latest

# Replicated service için (dikkatli kullanın)
docker service create \
  --mount type=volume,source=app-logs,target=/var/log/app \
  --replicas 3 \
  --update-parallelism 1 \
  myapp:latest

kritik nokta: Birden fazla konteyner aynı volume'e yazma yapıyorsa, uygulama seviyesinde kilitleme (locking) mekanizması kullanılmalıdır. Aksi takdirde veri bozulması riski oluşur.

Object Storage: MinIO Entegrasyonu

Dosya sistemi yerine object storage gereksinimleri için MinIO, S3 uyumlu çözüm olarak Docker Swarm'da mükemmel performans sunar. Özellikle medya dosyaları, yedeklemeler ve büyük veri objeleri için idealdir.

MinIO cluster kurulumu için Docker Compose kullanılabilir:

version: '3.8'
services:
  minio:
    image: minio/minio
    volumes:
      - minio-data1:/data1
      - minio-data2:/data2
    environment:
      MINIO_ROOT_USER: minioadmin
      MINIO_ROOT_PASSWORD: minioadmin
    command: server http://minio/data{1...2}
    deploy:
      replicas: 4
      placement:
        constraints:
          - node.role == worker

MinIO kullanımı, özellikle dosya paylaşım sistemleri ve yedekleme çözümleri için tercih edilir.

Veri Yedekleme ve Disaster Recovery

Docker Swarm'da veri güvenliği için düzenli yedekleme stratejisi oluşturmak kritik öneme sahiptir. Aşağıdaki yöntemler uygulanabilir:

  • Volume Snapshot: Docker volume dump/restore mekanizması
  • RSYNC: Artımlı yedekleme için
  • Cloud Backup: AWS S3, Google Cloud Storage entegrasyonu
  • GlusterFS Snapshot: Distribütü dosya sistemi snapshot özellikleri

Yedekleme script örneği:

# Volume yedekleme
docker run --rm \
  -v my-volume:/data \
  -v /backup:/backup \
  alpine tar czf /backup/volume-backup.tar.gz -C /data .

# Volume geri yükleme
docker run --rm \
  -v my-volume:/data \
  -v /backup:/backup \
  alpine tar xzf /backup/volume-backup.tar.gz -C /data

Güvenlik Hususları

Docker Swarm volume'lerinde güvenlik, birçok katmanda sağlanmalıdır:

  1. Volume İzleri: Sadece gerekli service'lere volume mount yetkisi verilmeli
  2. Network İzolasyonu: Storage trafiği ayrı network'te izole edilmeli
  3. Encryption: GlusterFS ve Ceph için TLS/SSL şifreleme aktif edilmeli
  4. Access Control: RBAC politikaları uygulanmalı

Ağ güvenliği için WAF ve güvenlik duvarı yapılandırmaları da değerlendirilmelidir.

Performans Optimizasyonu

Swarm volume performansını artırmak için:

  • Cache Katmanı: Redis veya Memcached ile sık erişilen veriler önbelleğe alınmalı
  • SSD Kullanımı: Metadata ve write-intensive workload'lar için SSD tercih edilmeli
  • Network Bandwidth: 10Gbps veya üzeri ağ altyapısı kullanılmalı
  • Volume Driver Seçimi: İş yüküne uygun driver belirlenmeli

Performans izleme için docker stats komutu ve Prometheus metrikleri kullanılabilir.

Özet ve En İyi Uygulamalar

Docker Swarm'da veri saklama ve paylaşımı için en iyi uygulamalar:

  1. İş yüküne uygun storage çözümü seçin (NFS basit, GlusterFS dağıtık)
  2. Volume'leri ayrı partition'larda tutun
  3. Replication faktörünü en az 3 tutun
  4. Düzenli yedekleme scheduleları oluşturun
  5. Monitoring ve alerting kurun
  6. Storage network'ünü production network'ten izole edin

Docker Swarm veri yönetimi, doğru strateji ve araçlarla güvenli ve yüksek performanslı bir altyapı oluşturulabilir. Enterprise ortamlar için GlusterFS veya Ceph gibi çözümler, küçük projeler için NFS yeterli olacaktır. Unutmayın ki veri yönetimi, başarılı bir konteyner orkestrasyonunun temel taşıdır.

library_booksBenzer İçerikler

Cloud Sunucu Nedir? Avantajları ve Detaylı Rehber
Sunucu Yönetimi
calendar_today5 Nisan 2026
schedule5 dk

Cloud Sunucu Nedir? Avantajları ve Detaylı Rehber

Cloud sunucular, dinamik kaynak dağıtımıyla işletmelerin kesintisiz büyümesini sağlar. Avantajlardan karşılaştırmalara tüm detaylar bu rehberde yer alıyor.

S
Serversiumarrow_forward
Linux vs Windows Sunucu: Hangisi Projeye Uygun?
Sunucu Yönetimi
calendar_today6 Nisan 2026
schedule5 dk

Linux vs Windows Sunucu: Hangisi Projeye Uygun?

Linux ve Windows Sunucu arasındaki teknik farkları, maliyet avantajlarını ve proje uyumluluğunu detaylı olarak karşılaştırıyoruz. Yazılım stack'inize en uygun işletim sistemini seçmek için kapsamlı rehberimizle doğru altyapı kararını verin.

S
Serversiumarrow_forward
Plesk Kurulumu - Ubuntu 24 Üzerinde Adım Adım Rehber
Sunucu Yönetimi
calendar_today16 Nisan 2026
schedule5 dk

Plesk Kurulumu - Ubuntu 24 Üzerinde Adım Adım Rehber

Ubuntu 24 üzerinde Plesk kurulumunu adım adım öğrenin. Bu rehberde sistem gereksinimleri, kurulum adımları ve temel yapılandırma ayarlarını bulabilirsiniz.

S
Serversiumarrow_forward