Ana içeriğe geç

Depolama sunucusu

Bu makalede

Linux'ta NFS üzerinden depolama sunucusunu ağ sürücüsü/klasörü olarak kullanma

Bilgi

Ağ Dosya Sistemi (NFS) protokolü, istemcilerin uzaktaki bir sunucudaki dosyalara yerelmiş gibi ağ üzerinden erişmesine olanak tanıyan bir uygulama katmanı protokolüdür. NFS, sunucunun bir veya daha fazla dizini dışa aktardığı ve istemcilerin bunları dosya sistemlerine bağladığı bir istemci-sunucu modeli kullanır. NFS protokolü, yapılandırma kolaylığı, platformlar arası uyumluluk, şeffaf dosya erişimi, veri önbellekleme, ölçeklenebilirlik, hata toleransı ve güvenlik gibi özelliklere sahiptir; bu özellikler birlikte NFS'yi depolama sunucularına bağlanmak için çok uygun bir protokol haline getirerek, farklı işletim sistemlerinden kullanıcıların ağ tabanlı depolama üzerindeki verilerle kolay ve verimli bir şekilde çalışmasına olanak tanır.

Linux'ta NFS üzerinden bir depolama sunucusunu ağ sürücüsü/klasörü olarak kullanmak için şunları yapmanız gerekir:

  1. NFS sunucusunu yükleyin. nfs-kernel-server ve rpcbind paketlerini yükleyin:

    sudo apt install nfs-kernel-server rpcbind
    
  2. Dizin dışa aktarmalarını yapılandırın. Paylaşılan dizinleri /etc/exports yapılandırma dosyasında belirtin:

    /data 192.168.1.0/24(rw,sync,no_root_squash)
    

    Bu işlem, belirtilen alt ağdan /data dizinine okuma ve yazma erişimine izin verir.

  3. NFS sunucusunu aşağıdaki komutla yeniden başlatın:

    sudo systemctl restart nfs-kernel-server
    
  4. Yerel cihazı bağlayın:

    sudo mount 192.168.1.1:/data /mnt/nfs
    
  5. Başlangıçta otomatik bağlamayı yapılandırın. Bu satırı /etc/fstab dosyasına ekleyin:

    192.168.1.1:/data /mnt/nfs nfs defaults 0 0
    

    Alan kullanımını kontrol etmek için bu komutu kullanabilirsiniz:

    df -h /mnt/nfs
    
  6. rsync aracını kullanarak otomatik yedeklemeyi yapılandırmak için, uygun komutu crontab (cron ayarlar dosyası) dosyasına eklemeniz gerekir:

    0 1 * * * rsync -avz /mnt/nfs /backup/nfs
    
  7. Bir MySQL veritabanının yedeğini (dump) oluşturmak için mysqldump aracını kullanabilirsiniz:

    mysqldump -u root -p mydb > /mnt/nfs/dump.sql
    

    Bu komut, mydb veritabanının tam yedeğini /mnt/nfs/dump.sql yolundaki dump.sql dosyasına kaydeder. -u parametresi MySQL'e bağlanmak için kullanıcı adını belirtir, -p şifre istemini tetikler. Otomatik modda yedeklemeler oluşturmak için, cron aracını kullanarak bu komutun zamanlanmış olarak çalışmasını yapılandırabilirsiniz.

Windows İşletim Sisteminde Samba protokolünü kullanarak depolama sunucusunu ağ sürücüsü/klasörü olarak kullanma

Bilgi

Samba, Linux/Unix ve Windows sistemlerinin dosya ve yazıcı düzeyinde bir ağda iletişim kurmasına olanak tanıyan ücretsiz dağıtılan bir yazılımdır. Samba, Windows'ta dosya paylaşımı için kullanılan SMB/CIFS protokollerini uygular. Bu, Linux ve Windows bilgisayarları arasında dosya ve yazıcı paylaşımını kolayca organize etmeyi mümkün kılar.

Windows'ta Samba protokolünü kullanarak bir depolama sunucusunu ağ sürücüsü/klasörü olarak kullanmak için şunları yapmanız gerekir:

  1. Depolama sunucusuna samba ve smbclient paketlerini yükleyin:

    sudo apt install samba smbclient
    
  2. Ağ erişimi için açık olacak bir klasör oluşturun, örneğin /mnt/share:

    sudo mkdir /mnt/share
    
  3. Bu klasörü samba yapılandırma dosyanıza ekleyin:

    sudo nano /etc/samba/smb.conf
    

    Yapılandırma dosyasının sonuna ekleyin:

    [share]
       comment = Network Share
       path = /mnt/share
       browsable = yes
       guest ok = yes
       read only = no
       create mask = 0755
    

  4. Samba hizmetini yeniden başlatın:

    sudo service smbd restart
    
  5. Yerel Windows cihazınızda Explorer'ı açın ve Map network drive sekmesini seçin:

  6. Depolama sunucusunun ve Share ağ klasörünün yolunu girin:

    Ardından sunucuya bağlanmak ve bağlantıyı tamamlamak için kimlik bilgilerini girmeniz istenecektir:

    Bağlantı başarılı olursa, ağ klasörü Network locations altında Explorer'da görünecektir:

    Yetki eksikliği nedeniyle bir ağ klasörüyle çalışırken sorun yaşıyorsanız, klasörle çalışma izinlerini kontrol etmelisiniz. Bunu WinSCP gibi SFTP ve SCP protokolleri için herhangi bir grafiksel istemci kullanarak yapabilirsiniz:

    Kullanıcı gerekli haklara sahip olduğunda, ağ klasörü yazılabilir hale gelecektir.

  7. Sürücüyü bağlamak için komutu kullanın:

    sudo mount /dev/sdb1 /mnt/share
    
  8. Bağlantıyı kaldırmak için:

    sudo umount /mnt/share 
    
  9. İşgal edilen alanı izlemek için df komutunu kullanın:

    df -h /mnt/share
    

  1. Verileri otomatik olarak kopyalamak için crontab içinde bir iş yapılandırın:

    0 0 * * * rsync -av /source/dir /mnt/share
    
  2. Bir MSSQL veritabanını yedeklemek için komutu kullanın:

    mysqldump -u root -p mydb > /mnt/share/mssql_backup.sql
    

Rsync ve SCP araçlarını kullanarak terminalden depolama sunucusunu kullanma

Bilgi

Rsync ve SCP, Linux ve diğer Unix benzeri sistemlerde dosyaları ağ üzerinden aktarmak için kullanılan komut satırı araçlarıdır. Rsync ve SCP ile diğer araçları kullanarak terminalden uzak bir depolama sunucusundaki dosyalarla çalışmak, birçok görevi gerçekleştirmenize olanak tanır:

  • Sunucular arasında dosya aktarımını ve senkronizasyonunu otomatikleştirme
  • Depolama üzerindeki verilerin yedeklenmesi;
  • Dosya depolama ve yönetiminin merkezileştirilmesi;
  • Grafik arayüz olmadan hızlı ve esnek dosya manipülasyonu;
  • Çeşitli veri işleme görevlerinin betiklendirilmesi ve toplu işleme.

SCP ve FTP'ye kıyasla Rsync kullanmanın avantajları:

  • Rsync, artımlı dosya aktarımı nedeniyle daha hızlıdır, yalnızca değişiklikler aktarılır;
  • Sıkıştırma desteği ve trafik tasarrufu;
  • Senkronizasyon parametrelerini esnek bir şekilde yapılandırabilme;
  • Kesintiye uğrayan dosya aktarımının devam ettirilmesi desteği;
  • Uzak dizin aynalama.

Yedekleme, senkronizasyon ve otomasyon görevleri için Rsync genellikle optimal çözümdür ve sistem yöneticileri tarafından tercih edilir. Uzak depolama üzerindeki dosyaları yönetmek için güçlü ve esnek bir araçtır.

Rsync

Rsync, bir ağdaki düğümler arasında dosya ve dizinleri senkronize etmek için kullanılan bir araçtır. Rsync'in özellikleri:

  • Tüm dizin yapısını ve ayrıca bireysel dosyaları senkronize eder.
  • Yeniden senkronizasyon sırasında yalnızca dosyaların değiştirilmiş kısımlarını aktarır.
  • Deflate veri sıkıştırma algoritmasını ve zlib kitaplığını kullanır.
  • Kanal bant genişliğini tasarruflu kullanır.
  • Dosya izinlerini çoğaltır.
  • Çalışması için root ayrıcalıkları gerektirmez.
  • Yedekleme ve kurtarma için uygundur.

Not

Bu kılavuzda kullanılan kural user@storage-server şeklindedir. Uzak bir sunucuyla çalışırken, SSH bağlantısı root gibi bir kullanıcı adı ve sunucunun IP adresi gerektirir. Bu nedenle, aşağıdaki örneklerdeki komutları girerken, kimlik bilgilerinizi user@IP-address formatında girmeniz gerekir, örneğin [email protected]. Sunucunun IP adresi Invapi sayfasındaki Network sekmesinde bulunabilir:

Terminalden bir depolama sunucusundaki dosyalarla çalışmak için Rsync nasıl kullanılır:

Not

Örneklerimizde Debian/Ubuntu dağıtımlarında kullanılmak üzere tasarlanmış apt paket yöneticisini kullanıyoruz. Red Hat tabanlı dağıtımlar için yum paket yöneticisi kullanılır.

  1. Yerel makineye Rsync'i yükleyin:

    sudo apt install rsync
    
  2. Depolama sunucusuna bağlanın. SSH bağlantısı için anahtar tabanlı kimlik doğrulama yapılandırmak daha iyidir. SSH anahtarı oluşturmak için komutu kullanabilirsiniz:

    ssh-keygen -t rsa
    

    Ardından anahtarı depolama sunucusuna kopyalayın:

    ssh-copy-id user@storage-server
    
  3. Dizinleri senkronize edin. Örneğin, /data dizinini depolama sunucusuyla senkronize etmek için:

    rsync -avz /data user@storage-server:/backup/data
    

    Seçeneklerin açıklaması:

    • avz:
      • a - arşiv modu. Sembolik bağlantıları, sahipleri, grupları, izinleri ve zaman damgalarını saklar;
      • v - ayrıntılılığı artırır. Dosya kopyalama süreci hakkında mesajlar gösterir;
      • z - trafiği azaltmak için aktarım sırasında dosya verilerini sıkıştırır;
    • /data - yerel kaynak dizini;
    • user@storage-server:/backup/data - uzak sunucudaki hedef klasör.

    Bu komut, /data dizinini yerel bilgisayardan uzak depolama sunucusuna arşiv modunda kopyalar. Süreç ayrıntılı çıktı ile birlikte gerçekleşir ve veriler kullanıcı için /backup/data dizinine sıkıştırılır.

    Kopyalama, tüm dosya öznitelikleri korunarak ağ üzerinden gerçekleştirilir.

  4. Bir dizinin tam aynalanması için, gereksiz dosyaları silmek için gerekli olan isteğe bağlı --delete seçeneğini kullanabilirsiniz:

    rsync -avz --delete /data user@storage-server:/backup/data
    

    Seçeneklerin açıklaması:

    • avz:
      • a - arşiv modu. Sembolik bağlantıları, sahipleri, grupları, izinleri ve zaman damgalarını saklar;
      • v - ayrıntılılığı artırır. Dosya kopyalama süreci hakkında mesajlar gösterir;
      • z - trafiği azaltmak için aktarım sırasında dosya verilerini sıkıştırır;
    • -delete - kaynak dizin /data içinde olmayan hedef dizin /backup/data içindeki dosyaları siler; /data - yerel kaynak dizini; user@storage-server:/backup/data - uzak sunucudaki hedef klasör.
  5. --backup seçeneğini kullanarak yedekleme yapın:

    rsync -avz --backup --delete /data user@storage-server:/backup/data
    

    Bu komutu çalıştırmak, değiştirilen dosyaların eski sürümlerini kaydedecektir. Örneğin

    rsync --archive --backup --compress /home/user/documents user@storage-server:/backup/documents
    

    Bu komut, depolama sunucusunda /backup/documents içinde /home/user/documents dizininin arşivlenmiş bir kopyasını oluşturur. Dosyalar sıkıştırılmış biçimde kopyalanır. Kopya, .1 uzantısına sahip mevcut dosyaları yedekleyecektir.

SCP ve FTP: dosya aktarım protokolleri

Terminalden uzak bir depolama sunucusundaki dosyalarla çalışmak için çeşitli veri aktarım protokolleri kullanılabilir.

SCP (Secure Copy)

SCP, ana bilgisayarlar arasında dosyaların şifrelenmiş kopyalanmasına olanak tanır. Bir dosyayı depolama sunucusuna kopyalamak için komutu kullanın:

scp file.txt user@storage-server:/path/to/destination 

Sunucudan bir dosya indirmek için:

scp user@storage-server:/path/to/file /local/path

FTP (File Transfer Protocol)

FTP üzerinden bağlanmak için ftp komutunu kullanın:

ftp storage-server

Dosyayı sunucuya yükleyin:

put file.txt

Dosyayı indirin:

get file.txt

SFTP ve FTP istemcileriyle depolama sunucusunu kullanma

Depolama sunucuları veri depolamak ve paylaşmak için kullanılır. Ancak avantajlarından yararlanmak için, üzerinde depolanan dosyalara kolay ve güvenli erişim gerekir.

  • SFTP (Secure File Transfer Protocol) ve FTP (File Transfer Protocol), bilgisayarlar arasında ağ üzerinden dosya aktarmak için kullanılan protokollerdir.
  • SFTP, SSH protokolünün bir uzantısıdır ve şifrelenmiş ve güvenli dosya aktarımı sağlar. FTP, şifreleme olmadan düz metin kullanır. Gizlilik ve veri bütünlüğünün gerektiğinde SFTP tercih edilir.
  • SFTP ve FTP istemcileri, bir kullanıcının SFTP veya FTP sunucularına bağlanmasına ve bu sunuculardaki dosyaları yönetmesine olanak tanıyan programlardır. Popüler SFTP istemcileri arasında FileZilla, WinSCP, CyberDuck bulunur. Popüler FTP istemcileri: FileZilla, SmartFTP, WinSCP.

Not

SFTP ve FTP arasındaki temel fark şifrelemenin kullanılmasıdır. SFTP tüm bağlantıları şifreleyerek veri güvenliğini sağlar. FTP verileri düz metin olarak iletir, bu da kesilmeye ve değiştirilmeye açık hale getirir. Ayrıca, SFTP kimlik doğrulama için SSH kullanırken, FTP ayrı şifreler kullanır.

WinSCP

Windows'ta WinSCP'yi kullanmak için şunları yapmanız gerekir:

  1. Yerel bir Windows cihazına WinSCP istemcisini indirin ve yükleyin.

  2. WinSCP'yi başlatın. Login penceresinde aşağıdaki ayrıntıları girin:

    • Host name: uzak sunucu IP adresi veya alan adı;
    • Port number: 22;
    • User name: sunucu oturum açma adı;
    • Password: sunucu şifresi.

  3. Sunucuya bağlanmak için Login düğmesine basın.

  4. Sol panel yerel cihazdaki dosyaları, sağ panel uzak sunucudaki dosyaları içerir:

  5. Bir dosyayı bilgisayardan sunucuya kopyalamak için, fare ile sol panelden sağ panele sürükleyin.

  6. Sunucu ile yerel cihaz arasında dosya aktarmak için, dosyaları bir panelden diğerine sürüklemeniz yeterlidir.

  7. İşinizi bitirmek için Close düğmesine tıklayın veya programı kapatın.

  8. Tüm dosya kopyaları SFTP protokolü kullanılarak şifrelenir. İsterseniz bağlantı için başka bir protokol seçebilirsiniz.

Linux'ta FileZilla

Linux'ta FileZilla'yı kullanmak için şunları yapmanız gerekir:

  1. FileZilla'yı kullandığınız Linux dağıtımının depolarından yükleyin. Örneğin, Ubuntu'da:

    sudo apt install filezilla
    
  2. FileZilla'yı başlatın. Quickconnect çubuğuna ayrıntıları girin:

    • Host: protokol (SFTP) ve depolama sunucusunun IP adresi veya alan adı (örneğin sftp://31.45.10.34);
    • Port: 22;
    • Username: sunucu oturum açma adı;
    • Password: sunucu şifresi.
  3. Quickconnect düğmesine basın. Bağlantı başarılı olduğunda, yerel cihazın ana dizini solda görüntülenir.

  4. Sunucu ile yerel cihaz arasında dosya aktarmak için, dosyaları bir panelden diğerine sürükleyip bırakmanız yeterlidir.

  5. Çıkmak için Disconnect düğmesine basın.