{"id":1084,"date":"2026-10-31T15:50:20","date_gmt":"2026-10-31T15:50:20","guid":{"rendered":"https:\/\/www.vps.tc\/blog\/?p=1084"},"modified":"2026-10-31T15:46:03","modified_gmt":"2026-10-31T15:46:03","slug":"san-ve-nas-farki","status":"publish","type":"post","link":"https:\/\/www.vps.tc\/blog\/tr\/san-ve-nas-farki\/","title":{"rendered":"SAN ve NAS Fark\u0131: Hangi Depolama Yap\u0131s\u0131 Uygun?"},"content":{"rendered":"<div class=\"aiw-summary\" id=\"aiw-ozet\">\n<p class=\"aiw-summary-title\">H\u0131zl\u0131 \u00d6zet &#8211; SAN ve NAS Fark\u0131<\/p>\n<p>NAS, istemcilere dosya payla\u015f\u0131m\u0131; SAN ise blok depolama sunar. Se\u00e7imi cihaz\u0131n ad\u0131 de\u011fil, uygulaman\u0131n veriye nas\u0131l eri\u015fti\u011fi ve altyap\u0131n\u0131n nas\u0131l i\u015fletilece\u011fi belirler.<\/p>\n<ul>\n<li><strong>Dosya eri\u015fimi<\/strong> \u2014 NAS taraf\u0131nda dosya sistemini depolama sunucusu y\u00f6netir; istemciler NFS veya SMB \u00fczerinden dosyalara eri\u015fir.<\/li>\n<li><strong>Blok eri\u015fimi<\/strong> \u2014 SAN taraf\u0131nda iSCSI veya Fibre Channel \u00fczerinden sunulan blok alan\u0131n\u0131n dosya sistemini istemci ya da k\u00fcme katman\u0131 y\u00f6netir.<\/li>\n<li><strong>Ortak yazma<\/strong> \u2014 Ayn\u0131 ext4 LUN&#039;u iki istemcide e\u015fzamanl\u0131 yaz\u0131labilir ba\u011flamak g\u00fcvenli de\u011fildir; ortak dosyalar i\u00e7in NAS veya uygun bir k\u00fcme mimarisi gerekir.<\/li>\n<li><strong>Performans \u00f6l\u00e7\u00fctleri<\/strong> \u2014 IOPS, MiB\/s ve gecikme y\u00fczdeliklerini ayn\u0131 i\u015f y\u00fck\u00fcnde kar\u015f\u0131la\u015ft\u0131r\u0131n; protokol ad\u0131 tek ba\u015f\u0131na h\u0131z s\u0131ralamas\u0131 vermez.<\/li>\n<li><strong>Eri\u015fim g\u00fcvenli\u011fi<\/strong> \u2014 \u00d6rnekte NFSv4.1 i\u00e7in TCP 2049, iSCSI i\u00e7in TCP 3260 eri\u015fimini s\u0131n\u0131rlay\u0131n; AUTH_SYS ve CHAP trafik \u015fifrelemesi sa\u011flamaz.<\/li>\n<li><strong>Ar\u0131za plan\u0131<\/strong> \u2014 Her iki modelde de ba\u011f\u0131ms\u0131z yedek, geri y\u00fckleme provas\u0131 ve hedeflenen RPO\/RTO de\u011ferlerine uygun yedeklilik ayr\u0131ca tasarlanmal\u0131d\u0131r.<\/li>\n<\/ul>\n<\/div>\n<p class=\"aiw-lead\">\u0130ki sunucunun ayn\u0131 veriye ihtiyac\u0131 olmas\u0131, ayn\u0131 diski payla\u015fmalar\u0131 gerekti\u011fi anlam\u0131na gelmez. SAN ve NAS fark\u0131 eri\u015fim modelindedir: NAS dosyalar\u0131 payla\u015f\u0131r, SAN blok ayg\u0131t\u0131 sunar. Ortak dosyalar i\u00e7in NAS genellikle daha do\u011frudan bir se\u00e7imdir; uygulaman\u0131z\u0131n kendi dosya sistemini y\u00f6netmesi gerekiyorsa SAN de\u011ferlendirilebilir. H\u0131z ve eri\u015filebilirlik ise ayr\u0131ca do\u011frulanmal\u0131d\u0131r.<\/p>\n<div class=\"aiw-toc\" style=\"border:1px solid #dbe3ea;border-radius:8px;padding:16px 20px;margin:0 0 28px\">\n<p class=\"aiw-toc-head\"><strong>\u0130\u00e7indekiler<\/strong><span class=\"aiw-toc-meta\"> \u00b7 17 dk okuma<\/span><\/p>\n<ol style=\"margin:10px 0 0;padding-left:22px\">\n<li><a href=\"#iki-sunucu-ayni-veriyi-istiyor-ayni-diski-mi-ayni-dosyayi-mi\">\u0130ki sunucu ayn\u0131 veriyi istiyor; ayn\u0131 diski mi, ayn\u0131 dosyay\u0131 m\u0131?<\/a><\/li>\n<li><a href=\"#san-ve-nas-farki-dosya-sistemini-kimin-yonettiginde-baslar\">SAN ve NAS fark\u0131, dosya sistemini kimin y\u00f6netti\u011finde ba\u015flar<\/a><\/li>\n<li><a href=\"#nas-yolu-nfs-paylasimini-iki-istemciye-acmak\">NAS yolu: NFS payla\u015f\u0131m\u0131n\u0131 iki istemciye a\u00e7mak<\/a><\/li>\n<li><a href=\"#iscsi-ile-san-lun-gorunur-dosya-sistemi-istemcide-kurulur\">iSCSI ile SAN: LUN g\u00f6r\u00fcn\u00fcr, dosya sistemi istemcide kurulur<\/a><\/li>\n<li><a href=\"#hiz-karsilastirmasini-protokol-adi-degil-is-yuku-belirler\">H\u0131z kar\u015f\u0131la\u015ft\u0131rmas\u0131n\u0131 protokol ad\u0131 de\u011fil i\u015f y\u00fck\u00fc belirler<\/a><\/li>\n<li><a href=\"#ariza-yetki-ve-yedekleme-protokolun-cozmedigi-isler\">Ar\u0131za, yetki ve yedekleme: protokol\u00fcn \u00e7\u00f6zmedi\u011fi i\u015fler<\/a><\/li>\n<li><a href=\"#is-yukunuze-gore-secim-dosya-paylasimi-vm-diski-veya-uygulama-verisi\">\u0130\u015f y\u00fck\u00fcn\u00fcze g\u00f6re se\u00e7im: dosya payla\u015f\u0131m\u0131, VM diski veya uygulama verisi<\/a><\/li>\n<li><a href=\"#is-yukunuze-gore-secim-dosya-paylasimi-vm-diski-veya-uygulama-verisi-2\">\u0130\u015f y\u00fck\u00fcn\u00fcze g\u00f6re se\u00e7im: dosya payla\u015f\u0131m\u0131, VM diski veya uygulama verisi<\/a><\/li>\n<li><a href=\"#sik-sorulan-sorular\">S\u0131k Sorulan Sorular<\/a><\/li>\n<li><a href=\"#kaynaklar\">Kaynaklar<\/a><\/li>\n<\/ol>\n<\/div>\n<h2 id=\"iki-sunucu-ayni-veriyi-istiyor-ayni-diski-mi-ayni-dosyayi-mi\">\u0130ki sunucu ayn\u0131 veriyi istiyor; ayn\u0131 diski mi, ayn\u0131 dosyay\u0131 m\u0131?<\/h2>\n<p>Bir kullan\u0131c\u0131n\u0131n y\u00fckledi\u011fi belge <code>app01.example<\/code> \u00fczerinde g\u00f6r\u00fcn\u00fcrken <code>app02.example<\/code> taraf\u0131ndan bulunam\u0131yorsa, ihtiya\u00e7 muhtemelen ortak dosya eri\u015fimidir. Uygulama kendisine ayr\u0131lm\u0131\u015f bir diskte dosya sistemi olu\u015fturmak istiyorsa ba\u015fka bir eri\u015fim modeli gerekir. Ayr\u0131m burada. <strong>SAN ve NAS fark\u0131<\/strong> de\u011ferlendirmesine ka\u00e7 terabayt alaca\u011f\u0131n\u0131zla de\u011fil, uygulaman\u0131n depolamadan ne bekledi\u011fiyle ba\u015flamal\u0131s\u0131n\u0131z.<\/p>\n<p>Varsay\u0131msal laboratuvarda <code>storage.example<\/code> (192.0.2.10) depolamay\u0131 sunacak; <code>app01.example<\/code> (192.0.2.21) ve <code>app02.example<\/code> (192.0.2.22) istemciler olacak. Makineler Ubuntu Server 24.04 LTS ve GA 6.8 \u00e7ekirdek serisini kullanacak. Dok\u00fcmantasyona ayr\u0131lm\u0131\u015f <code>.example<\/code> adlar\u0131 ve <code>192.0.2.0\/24<\/code> adresleri yaln\u0131zca d\u0131\u015f a\u011fa y\u00f6nlendirilmeyen laboratuvarda kullan\u0131lacak. Bunlar uygulanm\u0131\u015f kurulum veya \u00f6l\u00e7\u00fclm\u00fc\u015f performans bulgular\u0131 de\u011fil, se\u00e7im sorununu somutla\u015ft\u0131ran \u00f6rneklerdir.<\/p>\n<p>\u0130lk ihtiya\u00e7, iki istemcinin kullan\u0131c\u0131 belgelerini ortak dizinden okuyup yazmas\u0131d\u0131r. IETF RFC 8881, NFSv4.1 kapsam\u0131nda dosya eri\u015fimini ve kilitleme mekanizmalar\u0131n\u0131 tan\u0131mlar. NAS \u00f6rne\u011finde <code>nfs-kernel-server<\/code> ve <code>nfs-common<\/code> ile NFSv4.1\/TCP kullan\u0131lacak; sunucudaki <code>\/srv\/nfs\/shared<\/code> dizinine istemciler <code>\/mnt\/nas<\/code> \u00fczerinden eri\u015fecek. \u0130ki makine ayn\u0131 dosyalar\u0131 g\u00f6rebilecek, ancak ayn\u0131 belgeyi e\u015fzamanl\u0131 de\u011fi\u015ftiren uygulamalar\u0131n davran\u0131\u015f\u0131n\u0131 ayr\u0131ca do\u011frulamal\u0131s\u0131n\u0131z. Protokol\u00fcn kilitleme sa\u011flamas\u0131, uygulaman\u0131n bu mekanizmay\u0131 do\u011fru kulland\u0131\u011f\u0131n\u0131 g\u00f6stermez.<\/p>\n<p>\u0130kinci ihtiya\u00e7ta yaln\u0131zca <code>app01.example<\/code> kendisine ayr\u0131lm\u0131\u015f blok depolamay\u0131 kullanacak. IETF RFC 7143, iSCSI&#8217;yi SCSI komutlar\u0131n\u0131 TCP \u00fczerinden ta\u015f\u0131yan protokol olarak tan\u0131mlar. Linux LIO, <code>targetcli-fb<\/code> ve <code>open-iscsi<\/code> kullan\u0131lan iSCSI\/TCP \u00f6rne\u011finde istemci bir dosya payla\u015f\u0131m\u0131 yerine LUN g\u00f6recek. <strong>Bu LUN, iki istemcinin birlikte yazaca\u011f\u0131 ortak disk olarak planlanmayacak.<\/strong> Uygulaman\u0131n blok ayg\u0131t\u0131 \u00fczerinde istemcinin y\u00f6netti\u011fi dosya sistemini desteklemesi, se\u00e7im i\u00e7in belirleyici olacak.<\/p>\n<p>Protokol se\u00e7meden \u00f6nce uygulaman\u0131z\u0131n destekledi\u011fi depolama bi\u00e7imini belgelendirin. Payla\u015f\u0131ml\u0131 dizin yeterli mi, belirli bir dosya sistemi gerekiyor mu? Ayn\u0131 dosyaya iki s\u00fcre\u00e7 yazacaksa kilitleme, \u00f6nbellek ve hata sonras\u0131 yeniden deneme davran\u0131\u015flar\u0131n\u0131 kontrol edin. Kapasite hesab\u0131na mevcut verinin yan\u0131nda b\u00fcy\u00fcmeyi, ge\u00e7ici dosyalar\u0131 ve ayr\u0131 tutulacak yedeklerin alan\u0131n\u0131 kat\u0131n; tek bir genel \u00e7arpana g\u00fcvenmeyin.<\/p>\n<p>Her VM i\u00e7in 2 vCPU ve 4 GiB RAM \u00f6rnek tahsistir, \u00fcr\u00fcnlerin asgari gereksinimi de\u011fildir. Depolama VM&#8217;inde i\u015fletim sistemi diskinden ayr\u0131 iki bo\u015f 40 GiB disk bulunacak: <code>\/dev\/vdb<\/code> NAS&#8217;a, <code>\/dev\/vdc<\/code> iSCSI LUN&#8217;a ayr\u0131lacak; i\u015flem \u00f6ncesinde ayg\u0131tlar <code>lsblk<\/code> ile do\u011frulanacak. \u0130ki istemci, tek depolama sunucusunu yedekli yapmaz. <code>storage.example<\/code> durdu\u011funda uygulaman\u0131n kabul edebilece\u011fi bekleme s\u00fcresini dakika cinsinden yaz\u0131n.<\/p>\n<div class=\"aiw-callout aiw-callout-example\">\n<p class=\"aiw-callout-label\">\u00d6rnek<\/p>\n<p>Varsay\u0131msal Ubuntu Server 24.04 LTS laboratuvar\u0131nda app01.example ve app02.example ortak dosyalara NFSv4.1 \u00fczerinden eri\u015fecek; iSCSI LUN ise yaln\u0131zca app01.example taraf\u0131ndan kullan\u0131lacak. Bu bir kurulum plan\u0131d\u0131r, ger\u00e7ekle\u015ftirilmi\u015f test veya m\u00fc\u015fteri deneyimi de\u011fildir. .example adlar\u0131 ve 192.0.2.0\/24 adresleri dok\u00fcmantasyon i\u00e7in ayr\u0131lm\u0131\u015ft\u0131r; burada yaln\u0131zca d\u0131\u015f a\u011fa y\u00f6nlendirilmeyen laboratuvar\u0131 temsil eder.<\/p>\n<\/div>\n<h2 id=\"san-ve-nas-farki-dosya-sistemini-kimin-yonettiginde-baslar\">SAN ve NAS fark\u0131, dosya sistemini kimin y\u00f6netti\u011finde ba\u015flar<\/h2>\n<p>\u0130stemcide bir dizin g\u00f6rmeniz, dosya sistemini o makinenin y\u00f6netti\u011fi anlam\u0131na gelmez. <code>\/mnt\/nas<\/code> alt\u0131nda a\u00e7t\u0131\u011f\u0131n\u0131z dosya, ba\u015fka bir sunucunun y\u00f6netti\u011fi ext4 \u00fczerinde bulunabilir. Ayr\u0131m burada. NAS istemciye dosya eri\u015fimi sunarken SAN, \u00fczerine dosya sistemi kurulabilecek blok depolamay\u0131 eri\u015filebilir k\u0131lar. SAN ve NAS fark\u0131, cihaz\u0131n kasas\u0131ndan \u00e7ok bu sorumluluk s\u0131n\u0131r\u0131nda belirginle\u015fir.<\/p>\n<p>Varsay\u0131msal laboratuvardaki makineler Ubuntu Server 24.04 LTS ve GA 6.8 \u00e7ekirdek serisini kullan\u0131r. NAS taraf\u0131nda <code>storage.example<\/code>, NAS i\u00e7in ayr\u0131lm\u0131\u015f 40 GiB diskin, yani <code>\/dev\/vdb<\/code> ayg\u0131t\u0131n\u0131n \u00fczerindeki ext4 dosya sistemini y\u00f6netir. Payla\u015f\u0131lan dizin <code>\/srv\/nfs\/shared<\/code> olur. <code>app01.example<\/code> ve <code>app02.example<\/code> bu payla\u015f\u0131m\u0131 <code>\/mnt\/nas<\/code> alt\u0131nda ba\u011flar; alttaki diskin bloklar\u0131n\u0131 do\u011frudan y\u00f6netmez.<\/p>\n<p>IETF RFC 8881, NFSv4.1 eri\u015fimini dosya tan\u0131t\u0131c\u0131lar\u0131 ve <code>OPEN<\/code>, <code>READ<\/code>, <code>WRITE<\/code> gibi i\u015flemlerle tan\u0131mlar. \u00d6rnekte <code>nfs-kernel-server<\/code> ve <code>nfs-common<\/code> ile NFSv4.1\/TCP kullan\u0131l\u0131r. \u0130stemci dosyay\u0131 a\u00e7may\u0131 veya okumay\u0131 ister; sunucu iste\u011fi kendi dosya sistemi \u00fczerinden kar\u015f\u0131lar. <a href=\"https:\/\/www.vps.tc\/blog\/tr\/windows-server-smb-dosya-paylasimi-kurulumu\/\">SMB dosya payla\u015f\u0131m\u0131<\/a> da dosya eri\u015fimi kategorisindedir, fakat SMB ve NFS farkl\u0131 protokollerdir. \u0130stemcilerin payla\u015f\u0131m\u0131 yerel bir dizin alt\u0131nda g\u00f6rmesi, bu ayr\u0131m\u0131 de\u011fi\u015ftirmez.<\/p>\n<p>iSCSI yolunda sorumluluk istemciye ge\u00e7er. <code>storage.example<\/code>, ayr\u0131 40 GiB disk olan <code>\/dev\/vdc<\/code> ayg\u0131t\u0131n\u0131 Linux LIO ve <code>targetcli-fb<\/code> arac\u0131l\u0131\u011f\u0131yla ham blok ayg\u0131t\u0131 olarak sunar. <code>app01.example<\/code>, <code>open-iscsi<\/code> ile LUN&#8217;a eri\u015fir; ext4 dosya sistemini bu istemci olu\u015fturur ve y\u00f6netir. Depolama sunucusu ayn\u0131 LUN \u00fczerinde ext4 ba\u011flamaz.<\/p>\n<p>IETF RFC 7143&#8217;e g\u00f6re iSCSI, SCSI komutlar\u0131n\u0131 TCP \u00fczerinden ta\u015f\u0131r. \u0130stemci uzak sunucudan dosya a\u00e7mas\u0131n\u0131 istemek yerine blok ayg\u0131t\u0131na y\u00f6nelik komutlar g\u00f6nderir. Fibre Channel da SAN ortamlar\u0131nda SCSI tabanl\u0131 blok eri\u015fimi i\u00e7in kullan\u0131labilir. <strong>SAN yaln\u0131zca Fibre Channel veya belirli bir cihaz t\u00fcr\u00fc demek de\u011fildir.<\/strong> iSCSI\/TCP de blok eri\u015fimi sa\u011flayan bir se\u00e7enektir.<\/p>\n<p>Linux \u00e7ekirde\u011finin ext4 belgeleri, blok gruplar\u0131 ve inode tablolar\u0131 gibi disk \u00fczerindeki yap\u0131lar\u0131 a\u00e7\u0131klar. NAS \u00f6rne\u011finde bunlar\u0131 <code>storage.example<\/code>, iSCSI \u00f6rne\u011finde <code>app01.example<\/code> y\u00f6netir. LUN&#8217;u ikinci istemciye g\u00f6stermek, ext4&#8217;\u00fc e\u015fzamanl\u0131 ortak ba\u011flamaya uygun hale getirmez; blok eri\u015fimi ile g\u00fcvenli dosya payla\u015f\u0131m\u0131 ayn\u0131 \u015fey de\u011fildir.<\/p>\n<p>Ayn\u0131 depolama sistemi hem NFS veya SMB payla\u015f\u0131m\u0131 hem iSCSI LUN sunabilir. \u0130ki eri\u015fim modeli, iki ayr\u0131 cihaz gerektirmez. Tasar\u0131m \u00e7iziminizde her depolama alan\u0131n\u0131n yan\u0131na dosya sistemini y\u00f6neten makineyi yaz\u0131n; y\u00f6netim s\u0131n\u0131r\u0131 g\u00f6r\u00fcn\u00fcr olsun.<\/p>\n<h2 id=\"nas-yolu-nfs-paylasimini-iki-istemciye-acmak\">NAS yolu: NFS payla\u015f\u0131m\u0131n\u0131 iki istemciye a\u00e7mak<\/h2>\n<p>Ayn\u0131 dosyalara eri\u015fmek i\u00e7in ayn\u0131 diski iki sunucuya ba\u011flaman\u0131z gerekmez. Bu varsay\u0131msal laboratuvarda ext4 dosya sistemini <code>storage.example<\/code> (<code>192.0.2.10<\/code>) y\u00f6netir; <code>app01.example<\/code> (<code>192.0.2.21<\/code>) ve <code>app02.example<\/code> (<code>192.0.2.22<\/code>) NFS istemcisidir. Sistemler Ubuntu Server 24.04 LTS, GA 6.8 \u00e7ekirde\u011fini kullan\u0131r. VM ba\u015f\u0131na 2 vCPU ve 4 GiB RAM \u00f6rnek tahsistir, asgari gereksinim de\u011fildir. Dok\u00fcmantasyona ayr\u0131lm\u0131\u015f <code>.example<\/code> ve <code>192.0.2.0\/24<\/code>, yaln\u0131zca d\u0131\u015f a\u011fa y\u00f6nlendirilmeyen laboratuvarda kullan\u0131lmal\u0131d\u0131r.<\/p>\n<p>Diskleri kar\u0131\u015ft\u0131rmay\u0131n. Depolama sunucusunda i\u015fletim sistemi diskinden ayr\u0131 iki bo\u015f 40 GiB disk bulunur: <code>\/dev\/vdb<\/code> NAS, <code>\/dev\/vdc<\/code> iSCSI i\u00e7indir. \u00d6nce ayg\u0131tlar\u0131 do\u011frulay\u0131n; sonraki <code>mkfs.ext4<\/code> komutu hedefteki veriyi siler.<\/p>\n<pre><code>lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINTS,MODEL<\/code><\/pre>\n<p>Sunucu haz\u0131rl\u0131\u011f\u0131nda payla\u015f\u0131m sahibi olarak <code>2000:2000<\/code> se\u00e7ilmi\u015ftir. Bu UID\/GID de\u011ferlerini kullanmadan \u00f6nce \u00fc\u00e7 makinede ilgili hesaplarla e\u015fle\u015ftirin ve ba\u015fka hesaplarla \u00e7ak\u0131\u015fmad\u0131klar\u0131n\u0131 do\u011frulay\u0131n. Kesin paket revizyonunu <code>dpkg-query<\/code> ile kaydedin.<\/p>\n<pre><code>sudo apt update\nsudo apt install nfs-kernel-server\ndpkg-query -W -f='${Package}\\t${Version}\\n' nfs-kernel-server | tee nas-server-packages.txt\nsudo mkfs.ext4 \/dev\/vdb\nsudo mkdir -p \/srv\/nfs\/shared\nsudo mount \/dev\/vdb \/srv\/nfs\/shared\nsudo chown 2000:2000 \/srv\/nfs\/shared\nsudo chmod 2770 \/srv\/nfs\/shared\nsudo mkdir -p \/etc\/exports.d\nsudo tee \/etc\/exports.d\/shared.exports &gt;\/dev\/null &lt;&lt;'EOF'\n\/srv\/nfs\/shared 192.0.2.21(rw,sync,root_squash,sec=sys) 192.0.2.22(rw,sync,root_squash,sec=sys)\nEOF\nsudo systemctl enable --now nfs-server\nsudo exportfs -rav\nsudo exportfs -v<\/code><\/pre>\n<p><code>exportfs -rav<\/code> yap\u0131land\u0131rmay\u0131 uygular; <code>exportfs -v<\/code> \u00e7\u0131kt\u0131s\u0131nda iki adres ve tan\u0131mlanan se\u00e7enekler beklenir. Ek varsay\u0131lanlar g\u00f6r\u00fcnebilir. Di\u011fer export tan\u0131mlar\u0131nda geni\u015f eri\u015fim bulunmad\u0131\u011f\u0131n\u0131 kontrol edin. <code>rw<\/code> dosya izinlerini a\u015fmaz; <code>2770<\/code> di\u011fer kullan\u0131c\u0131lar\u0131 d\u0131\u015flar, yeni dosyalara dizinin grubunu devrald\u0131r\u0131r. Grup yazma iznini uygulaman\u0131n umask ayar\u0131 da etkiler.<\/p>\n<p>Her iki istemcide a\u015fa\u011f\u0131daki komutlar\u0131 uygulay\u0131n. <code>vers=4.1<\/code> s\u00fcr\u00fcm\u00fc, <code>proto=tcp<\/code> ta\u015f\u0131ma protokol\u00fcn\u00fc a\u00e7\u0131k\u00e7a se\u00e7er; ba\u011flant\u0131 ba\u015fka NFS s\u00fcr\u00fcm\u00fcne d\u00fc\u015fmez.<\/p>\n<pre><code>sudo apt update\nsudo apt install nfs-common\ndpkg-query -W -f='${Package}\\t${Version}\\n' nfs-common | tee nas-client-packages.txt\nsudo mkdir -p \/mnt\/nas\nsudo mount -t nfs -o vers=4.1,proto=tcp,sec=sys 192.0.2.10:\/srv\/nfs\/shared \/mnt\/nas\nfindmnt -T \/mnt\/nas -o TARGET,SOURCE,FSTYPE,OPTIONS<\/code><\/pre>\n<p><code>findmnt<\/code> \u00e7\u0131kt\u0131s\u0131nda hedef <code>\/mnt\/nas<\/code>, kaynak <code>192.0.2.10:\/srv\/nfs\/shared<\/code>, t\u00fcr <code>nfs4<\/code>; se\u00e7eneklerde <code>vers=4.1<\/code> ve <code>proto=tcp<\/code> beklenir. Bunlar \u00e7al\u0131\u015ft\u0131r\u0131lm\u0131\u015f test \u00e7\u0131kt\u0131lar\u0131 de\u011fil, do\u011frulama \u00f6l\u00e7\u00fctleridir.<\/p>\n<p>IETF RFC 8881&#8217;in g\u00fcvenlik a\u00e7\u0131klamalar\u0131na g\u00f6re AUTH_SYS, istemcinin bildirdi\u011fi say\u0131sal UID\/GID de\u011ferlerine g\u00fcvenir; ayn\u0131 kullan\u0131c\u0131 ad\u0131 yeterli de\u011fildir. <code>root_squash<\/code> istemci root kimli\u011fini anonim kimli\u011fe e\u015fler, ancak istemci y\u00f6neticisine kar\u015f\u0131 g\u00fc\u00e7l\u00fc kimlik do\u011frulama sa\u011flamaz. NFSv4.1 tek ba\u015f\u0131na \u015fifreleme garantilemez; buradaki <code>sec=sys<\/code> trafi\u011fi \u015fifrelemez. G\u00fcvenlik duvar\u0131nda TCP 2049&#8217;u yaln\u0131zca iki istemci adresine a\u00e7\u0131n, di\u011fer kaynaklar\u0131 engelleyin. Kal\u0131c\u0131 kullan\u0131m i\u00e7in UUID tabanl\u0131 disk ba\u011flamas\u0131n\u0131 ve NFS servisinin bu ba\u011flamaya ba\u011f\u0131ml\u0131l\u0131\u011f\u0131n\u0131 yap\u0131land\u0131r\u0131n; disk ba\u011flanmad\u0131\u011f\u0131nda alttaki bo\u015f dizinin payla\u015f\u0131lmas\u0131n\u0131 \u00f6nleyin.<\/p>\n<h2 id=\"iscsi-ile-san-lun-gorunur-dosya-sistemi-istemcide-kurulur\">iSCSI ile SAN: LUN g\u00f6r\u00fcn\u00fcr, dosya sistemi istemcide kurulur<\/h2>\n<p>Yeni bir disk g\u00f6r\u00fcnmesi, payla\u015f\u0131lan klas\u00f6r\u00fcn haz\u0131r oldu\u011fu anlam\u0131na gelmez. RFC 7143, iSCSI \u00fczerinden SCSI komutlar\u0131n\u0131n TCP ile ta\u015f\u0131nmas\u0131n\u0131 tan\u0131mlar. Bu varsay\u0131msal laboratuvarda <code>storage.example<\/code> \u00fczerindeki ham <code>\/dev\/vdc<\/code>, yaln\u0131zca <code>app01.example<\/code> i\u00e7in sunulur; dosya sistemi istemcide olu\u015fturulur. NAS diski <code>\/dev\/vdb<\/code> de\u011fi\u015fmez.<\/p>\n<p>Ubuntu Server 24.04 LTS, GA 6.8 \u00e7ekirdek ortam\u0131nda \u00f6nce ba\u015flat\u0131c\u0131y\u0131 haz\u0131rlay\u0131n. A\u015fa\u011f\u0131daki IQN atamas\u0131 yaln\u0131zca yeni laboratuvar kurulumu i\u00e7indir; mevcut oturumlar\u0131 bulunan sistemin kimli\u011fini de\u011fi\u015ftirmeyin. Paket revizyonlar\u0131n\u0131 <code>dpkg-query<\/code> ile kaydedin. Dosyadan okunan IQN, hedefteki ACL kayd\u0131yla birebir e\u015fle\u015fmelidir.<\/p>\n<pre><code># app01.example - yeni laboratuvar kurulumu\nsudo apt-get update\nsudo apt-get install -y open-iscsi\ndpkg-query -W -f='${Package}\\t${Version}\\n' open-iscsi\nprintf '%s\\n' 'InitiatorName=iqn.2026-10.example:app01' | sudo tee \/etc\/iscsi\/initiatorname.iscsi\nsudo cat \/etc\/iscsi\/initiatorname.iscsi\nsudo systemctl restart iscsid\n<\/code><\/pre>\n<p>Depolama sunucusunda <code>\/dev\/vdc<\/code>, bo\u015f 40 GiB disk olmal\u0131d\u0131r. Boyut yetmez. <code>lsblk<\/code> \u00e7\u0131kt\u0131s\u0131n\u0131 VM disk e\u015flemesiyle kar\u015f\u0131la\u015ft\u0131r\u0131n; b\u00f6l\u00fcm, dosya sistemi veya ba\u011flama noktas\u0131 varsa durun. <code>wipefs --no-act<\/code> imzalar\u0131 de\u011fi\u015ftirmeden listeler; bo\u015f \u00e7\u0131kt\u0131 tek ba\u015f\u0131na diskin bo\u015flu\u011funu kan\u0131tlamaz.<\/p>\n<pre><code># storage.example\nsudo apt-get update\nsudo apt-get install -y targetcli-fb\ndpkg-query -W -f='${Package}\\t${Version}\\n' targetcli-fb\nlsblk -o NAME,PATH,SIZE,TYPE,FSTYPE,MOUNTPOINTS,MODEL,SERIAL\nsudo wipefs --no-act \/dev\/vdc\n<\/code><\/pre>\n<p>Portal\u0131 olu\u015fturmadan \u00f6nce g\u00fcvenlik duvar\u0131nda TCP 3260 eri\u015fimini yaln\u0131zca <code>192.0.2.21<\/code> i\u00e7in a\u00e7\u0131n, di\u011fer kaynaklar\u0131 engelleyin. CHAP burada kapal\u0131d\u0131r; \u00f6rnek d\u0131\u015f a\u011fa y\u00f6nlendirilmeyen laboratuvarla s\u0131n\u0131rl\u0131d\u0131r. IQN taklit edilebildi\u011finden ACL, kriptografik kimlik do\u011frulama de\u011fildir. RFC 7143&#8217;te tan\u0131mlanan CHAP kimlik do\u011frular, trafi\u011fi \u015fifrelemez; \u00fcretimde a\u011f izolasyonu ve gerekti\u011finde IPsec ayr\u0131ca planlanmal\u0131d\u0131r.<\/p>\n<p>LIO, diski bi\u00e7imlendirmeden LUN 0 olarak sunar. Otomatik ACL ve LUN e\u015flemesi kapat\u0131larak yaln\u0131zca belirtilen ba\u015flat\u0131c\u0131ya eri\u015fim verilir. <code>targetcli ls<\/code> \u00e7\u0131kt\u0131s\u0131nda <code>\/dev\/vdc<\/code>, <code>192.0.2.10:3260<\/code> portal\u0131 ve tek ba\u015flat\u0131c\u0131 e\u015flemesi beklenir. Yap\u0131land\u0131rma belirtilen JSON dosyas\u0131na kaydedilir.<\/p>\n<pre><code># storage.example - disk kimli\u011fi do\u011fruland\u0131ktan sonra\nsudo targetcli set global auto_add_default_portal=false auto_add_mapped_luns=false\nsudo targetcli \/backstores\/block create name=app01_lun dev=\/dev\/vdc\nsudo targetcli \/iscsi create iqn.2026-10.example:storage.shared\nsudo targetcli \/iscsi\/iqn.2026-10.example:storage.shared\/tpg1 set attribute generate_node_acls=0 authentication=0 prod_mode_write_protect=0\nsudo targetcli \/iscsi\/iqn.2026-10.example:storage.shared\/tpg1\/portals create 192.0.2.10 3260\nsudo targetcli \/iscsi\/iqn.2026-10.example:storage.shared\/tpg1\/luns create \/backstores\/block\/app01_lun lun=0\nsudo targetcli \/iscsi\/iqn.2026-10.example:storage.shared\/tpg1\/acls create iqn.2026-10.example:app01\nsudo targetcli \/iscsi\/iqn.2026-10.example:storage.shared\/tpg1\/acls\/iqn.2026-10.example:app01 create mapped_lun=0 tpg_lun=0\nsudo targetcli saveconfig \/etc\/rtslib-fb-target\/saveconfig.json\nsudo targetcli ls\n<\/code><\/pre>\n<p>\u0130stemcide ke\u015fif hedef IQN&#8217;sini, oturum ayr\u0131nt\u0131lar\u0131 ba\u011fl\u0131 SCSI diskini g\u00f6stermelidir. <code>\/dev\/disk\/by-path\/<\/code> ba\u011flant\u0131s\u0131n\u0131n ayn\u0131 diske \u00e7\u00f6z\u00fcld\u00fc\u011f\u00fcn\u00fc, 40 GiB kapasiteyi ve imzalar\u0131 do\u011frulay\u0131n. Beklenmeyen ayg\u0131tta veya imzada ilerlemeyin.<\/p>\n<pre><code># app01.example\nsudo iscsiadm -m discovery -t sendtargets -p 192.0.2.10:3260\nsudo iscsiadm -m node -T iqn.2026-10.example:storage.shared -p 192.0.2.10:3260 --login\nsudo udevadm settle\nsudo iscsiadm -m session -P 3\nLUN=\/dev\/disk\/by-path\/ip-192.0.2.10:3260-iscsi-iqn.2026-10.example:storage.shared-lun-0\nreadlink -f \"$LUN\"\nlsblk -o NAME,PATH,SIZE,TYPE,FSTYPE,MOUNTPOINTS,MODEL,SERIAL,WWN \"$LUN\"\nsudo wipefs --no-act \"$LUN\"\n<\/code><\/pre>\n<p>A\u015fa\u011f\u0131daki bi\u00e7imlendirme veri siler; yaln\u0131zca kimli\u011fi ve bo\u015flu\u011fu do\u011frulanm\u0131\u015f LUN \u00fczerinde \u00e7al\u0131\u015ft\u0131r\u0131n. Ba\u011flama tamamland\u0131\u011f\u0131nda istemci dosyalar\u0131 <code>\/mnt\/san<\/code> alt\u0131nda y\u00f6netir.<\/p>\n<pre><code># app01.example - kimlik ve bo\u015fluk do\u011frulamas\u0131ndan sonra\nsudo mkfs.ext4 \/dev\/disk\/by-path\/ip-192.0.2.10:3260-iscsi-iqn.2026-10.example:storage.shared-lun-0\nsudo mkdir -p \/mnt\/san\nsudo mount \/dev\/disk\/by-path\/ip-192.0.2.10:3260-iscsi-iqn.2026-10.example:storage.shared-lun-0 \/mnt\/san\n<\/code><\/pre>\n<p>Linux \u00e7ekirde\u011finin ext4 belgelerinde a\u00e7\u0131klanan journal, istemciler aras\u0131nda yazma koordinasyonu sa\u011flamaz. <strong>Ayn\u0131 ext4 LUN&#8217;un iki istemcide e\u015fzamanl\u0131 yaz\u0131labilir ba\u011flanmas\u0131 veri bozulmas\u0131na yol a\u00e7abilir.<\/strong> <code>app02.example<\/code> i\u00e7in ACL eklemeyin; ortak dosya eri\u015fimini NAS payla\u015f\u0131m\u0131nda tutun.<\/p>\n<div class=\"aiw-callout aiw-callout-warn\">\n<p class=\"aiw-callout-label\">Dikkat<\/p>\n<p>Bir LUN&#039;un iki sunucuda g\u00f6r\u00fcnmesi, \u00fczerindeki ext4 dosya sistemine iki sunucunun g\u00fcvenle yazabilece\u011fi anlam\u0131na gelmez. E\u015fzamanl\u0131 yaz\u0131labilir ba\u011flama veri bozulmas\u0131na yol a\u00e7abilir; \u00e7oklu istemci eri\u015fimi i\u00e7in k\u00fcme dosya sistemi, kilitleme ve fencing gibi bile\u015fenler gerekir. Bi\u00e7imlendirmeden \u00f6nce LUN kimli\u011fini ve hedef ayg\u0131t\u0131 lsblk ile do\u011frulay\u0131n.<\/p>\n<\/div>\n<h2 id=\"hiz-karsilastirmasini-protokol-adi-degil-is-yuku-belirler\">H\u0131z kar\u015f\u0131la\u015ft\u0131rmas\u0131n\u0131 protokol ad\u0131 de\u011fil i\u015f y\u00fck\u00fc belirler<\/h2>\n<p>B\u00fcy\u00fck bir dosyay\u0131 h\u0131zl\u0131 kopyalayan depolama, binlerce k\u00fc\u00e7\u00fck dosya a\u00e7\u0131l\u0131rken ayn\u0131 avantaj\u0131 g\u00f6stermeyebilir. IETF RFC 8881, NFSv4.1&#8217;in dosya ve dizin i\u015flemlerini; RFC 7143 ise iSCSI \u00fczerinden SCSI komutlar\u0131n\u0131n ta\u015f\u0131nmas\u0131n\u0131 tan\u0131mlar. Bunlar h\u0131z s\u0131ralamas\u0131 de\u011fildir. SAN ve NAS fark\u0131 de\u011ferlendirilirken k\u00fc\u00e7\u00fck rastgele eri\u015fim, b\u00fcy\u00fck s\u0131ral\u0131 aktar\u0131m ve metadata y\u00fck\u00fcn\u00fc ay\u0131r\u0131n.<\/p>\n<p>Varsay\u0131msal laboratuvarda Ubuntu Server 24.04 LTS, GA 6.8 \u00e7ekirdek serisi kullanan <code>app01.example<\/code> \u00fczerinde \u00e7al\u0131\u015f\u0131n. Haz\u0131rlanm\u0131\u015f <code>\/mnt\/nas<\/code>, <code>storage.example<\/code> \u00fczerindeki NFSv4.1\/TCP payla\u015f\u0131m\u0131; <code>\/mnt\/san<\/code>, iSCSI\/TCP LUN \u00fczerindeki ext4 olmal\u0131d\u0131r. Ayn\u0131 ext4 LUN&#8217;u <code>app02.example<\/code> \u00fczerinde e\u015fzamanl\u0131 ba\u011flamay\u0131n. Kod depolama kurulumu yapmaz; ba\u011flama noktalar\u0131n\u0131 kontrol eder, yaln\u0131zca olu\u015fturdu\u011fu silinebilir test dosyalar\u0131na yazar. Bu dizinlerde kullan\u0131c\u0131n\u0131z\u0131n yazma yetkisi bulunmal\u0131d\u0131r.<\/p>\n<p>Bash \u00f6rne\u011fi her hedefte 2 GiB dosyay\u0131 \u00f6nce tamamen yazar. Ard\u0131ndan 4 KiB rastgele okuma, 1 MiB s\u0131ral\u0131 okuma ve her 4 KiB rastgele yazman\u0131n ard\u0131ndan <code>fsync<\/code> \u00e7a\u011fr\u0131s\u0131 \u00e7al\u0131\u015ft\u0131r\u0131r. Her profil 60 saniyedir; tek i\u015f ve kuyruk derinli\u011fi 1 sabittir. <code>psync<\/code> senkron \u00e7al\u0131\u015f\u0131r &#8211; y\u00fcksek paralellikteki kapasiteyi \u00f6l\u00e7mez. Paket revizyonlar\u0131 <code>dpkg-query<\/code> ile kaydedilir.<\/p>\n<pre><code>set -eu\nsudo apt-get update\nsudo apt-get install -y fio\n\nout=$(mktemp -d \"$HOME\/fio-results.XXXXXX\")\nuname -r &gt; \"$out\/kernel.txt\"\ndpkg-query -W -f='${Package}\\t${Version}\\n' \\\n  fio nfs-common open-iscsi &gt; \"$out\/packages.txt\"\n\nfor base in \/mnt\/nas \/mnt\/san; do\n  mountpoint -q \"$base\"\n  test -w \"$base\"\n  findmnt -T \"$base\" -o TARGET,SOURCE,FSTYPE,OPTIONS \\\n    &gt;&gt; \"$out\/mounts.txt\"\ndone\n\nfor base in \/mnt\/nas \/mnt\/san; do\n  label=${base##*\/}\n  work=$(mktemp -d \"$base\/fio-work.XXXXXX\")\n  file=\"$work\/test.bin\"\n\n  fio --name=prepare --filename=\"$file\" --size=2G \\\n    --rw=write --bs=1M --ioengine=psync --iodepth=1 \\\n    --numjobs=1 --direct=1 --end_fsync=1 \\\n    --output-format=json --output=\"$out\/$label-prepare.json\"\n\n  for profile in random-read sequential-read sync-write; do\n    case \"$profile\" in\n      random-read) rw=randread; bs=4k; sync_every=0 ;;\n      sequential-read) rw=read; bs=1M; sync_every=0 ;;\n      sync-write) rw=randwrite; bs=4k; sync_every=1 ;;\n    esac\n\n    fio --name=\"$profile\" --filename=\"$file\" --size=2G \\\n      --rw=\"$rw\" --bs=\"$bs\" --ioengine=psync --iodepth=1 \\\n      --numjobs=1 --direct=1 --fsync=\"$sync_every\" \\\n      --time_based=1 --runtime=60 --randrepeat=1 \\\n      --lat_percentiles=1 --percentile_list=50:95:99 \\\n      --output-format=json --output=\"$out\/$label-$profile.json\"\n  done\n\n  rm -- \"$file\"\n  rmdir -- \"$work\"\ndone\nprintf 'Rapor dizini: %s\\n' \"$out\"<\/code><\/pre>\n<p>Ba\u015far\u0131l\u0131 \u00e7al\u0131\u015fmada beklenen \u00e7\u0131kt\u0131 rapor dizininin yoludur; dizinde JSON raporlar\u0131, \u00e7ekirdek, paket ve ba\u011flama kay\u0131tlar\u0131 bulunur. Burada \u00f6l\u00e7\u00fclm\u00fc\u015f de\u011fer sunulmuyor. IOPS, <code>bw_bytes \/ 1048576<\/code> hesab\u0131yla MiB\/s ve p50\/p95\/p99 gecikmelerini birlikte inceleyin. Yazma ve <code>fsync<\/code> gecikmeleri ayr\u0131 raporlan\u0131r; yazma y\u00fczdeliklerini tek ba\u015f\u0131na kal\u0131c\u0131la\u015ft\u0131rma bekleme s\u00fcresi saymay\u0131n. Ayr\u0131 y\u00fczdelikleri toplamak da i\u015flem y\u00fczdeli\u011fini vermez.<\/p>\n<p>Metadata farkl\u0131d\u0131r. Tek dosyal\u0131 profiller olu\u015fturma, <code>stat<\/code>, dizin listeleme ve silme maliyetini temsil etmez. Bu i\u015flemler i\u00e7in dosya say\u0131s\u0131n\u0131, dizin da\u011f\u0131l\u0131m\u0131n\u0131 ve e\u015fzamanl\u0131l\u0131\u011f\u0131 sabitleyen ayr\u0131 deney gerekir.<\/p>\n<p><code>direct=1<\/code> b\u00fct\u00fcn \u00f6nbellekleri kald\u0131rmaz. VM ba\u015f\u0131na 2 vCPU ve 4 GiB RAM \u00f6rnek tahsistir, asgari gereksinim de\u011fildir; 2 GiB dosya depolama \u00f6nbelle\u011fine s\u0131\u011fabilir. \u00d6nbellek durumunu, ortak fiziksel disk etkisini, sanal a\u011f yap\u0131land\u0131rmas\u0131n\u0131 ve e\u015fzamanl\u0131 y\u00fckleri kaydedin. <a href=\"https:\/\/www.vps.tc\/blog\/tr\/vpste-prometheus-grafana-kurulumu\/\">VPS&#8217;te Prometheus ve Grafana ile \u0130zleme<\/a> yakla\u015f\u0131m\u0131yla CPU kullan\u0131m\u0131n\u0131 ve disk beklemesini \u00f6l\u00e7\u00fcm zamanlar\u0131yla e\u015fle\u015ftirin. Test s\u0131ras\u0131n\u0131 tersine \u00e7evirip tekrarlay\u0131n; laboratuvar verisini kurumsal SAN\/NAS \u00fcr\u00fcnlerine genellemeyin.<\/p>\n<div class=\"aiw-callout aiw-callout-tip\">\n<p class=\"aiw-callout-label\">\u0130pucu<\/p>\n<p>Kar\u015f\u0131la\u015ft\u0131rmada blok boyutu, kuyruk derinli\u011fi, test dosyas\u0131 boyutu, s\u00fcre ve senkron yazma davran\u0131\u015f\u0131n\u0131 sabitleyin. fio i\u015flemlerini yaln\u0131zca silinebilir test dosyalar\u0131nda y\u00fcr\u00fct\u00fcn; \u00fcretim verisini veya ham LUN&#039;u test hedefi yapmay\u0131n. Ayn\u0131 fiziksel disk ve sanal a\u011f\u0131n payla\u015f\u0131lmas\u0131 \u00f6l\u00e7\u00fcmleri etkiler; laboratuvar de\u011ferlerini b\u00fct\u00fcn SAN ve NAS \u00fcr\u00fcnlerine genellemeyin.<\/p>\n<\/div>\n<h2 id=\"ariza-yetki-ve-yedekleme-protokolun-cozmedigi-isler\">Ar\u0131za, yetki ve yedekleme: protokol\u00fcn \u00e7\u00f6zmedi\u011fi i\u015fler<\/h2>\n<p>Depolama sunucusu kapand\u0131\u011f\u0131nda protokol tercihi dosyalar\u0131 eri\u015filebilir tutmaz. Varsay\u0131msal Ubuntu Server 24.04 LTS, GA 6.8 laboratuvar\u0131nda <code>storage.example<\/code> (192.0.2.10) ve tek a\u011f yolu, NFSv4.1\/TCP ile iSCSI\/TCP i\u00e7in tek hata noktas\u0131d\u0131r. <code>app01.example<\/code> ve <code>app02.example<\/code> \u00e7al\u0131\u015fsa bile depolama eri\u015fimi durabilir. iSCSI multipath ger\u00e7ekten ba\u011f\u0131ms\u0131z yollar gerektirir; ayn\u0131 sanal anahtardan ge\u00e7en iki ba\u011flant\u0131 yeterli de\u011fildir. Multipath, tek ba\u015f\u0131na sunucu veya denetleyici yedeklili\u011fi sa\u011flamaz.<\/p>\n<p>\u0130ki disk yetmez. Laboratuvardaki <code>\/dev\/vdb<\/code> NAS&#8217;a, <code>\/dev\/vdc<\/code> iSCSI LUN&#8217;una ayr\u0131lm\u0131\u015ft\u0131r; burada RAID kurulmu\u015f de\u011fildir. RAID seviyesine g\u00f6re belirli disk ar\u0131zalar\u0131 tolere edilebilir, fakat yanl\u0131\u015fl\u0131kla silinen veri korunmaz. Snapshot \u00f6nceki duruma d\u00f6n\u00fc\u015f\u00fc kolayla\u015ft\u0131r\u0131r; ba\u011f\u0131ms\u0131z yedek, kaynak depolama kaybedildi\u011finde kurtarma i\u00e7indir. <a href=\"https:\/\/www.vps.tc\/blog\/tr\/vps-snapshot-nedir-anlik-yedekleme-rehberi\/\">VPS Snapshot Nedir?<\/a> ba\u015fl\u0131\u011f\u0131ndaki ayr\u0131m burada da ge\u00e7erlidir: ayn\u0131 depolamadaki snapshot ba\u011f\u0131ms\u0131z yedek say\u0131lmaz. Linux ext4 belgelerinde a\u00e7\u0131klanan g\u00fcnl\u00fckleme de dosya yede\u011fi olu\u015fturmaz. Y\u00fcksek eri\u015filebilirlik i\u00e7in servis devralma, veri tutarl\u0131l\u0131\u011f\u0131 ve ar\u0131zal\u0131 d\u00fc\u011f\u00fcm\u00fcn yazmas\u0131n\u0131n engellenmesi ayr\u0131ca tasarlanmal\u0131d\u0131r.<\/p>\n<p>Varsay\u0131msal 15 dakikal\u0131k RPO, kabul edilebilir veri kayb\u0131 penceresini; 30 dakikal\u0131k RTO, hizmeti geri getirme hedefini belirtir. G\u00fcnl\u00fck tek yedek ilk hedefi kar\u015f\u0131lamaz. Bu hedefler kopyalama s\u0131kl\u0131\u011f\u0131n\u0131, ba\u011f\u0131ms\u0131z kopyalar\u0131n konumunu ve haz\u0131r bekleyen altyap\u0131 ihtiyac\u0131n\u0131 belirler. Kurtarma s\u00fcresine sunucu haz\u0131rl\u0131\u011f\u0131 ve uygulama do\u011frulamas\u0131 da dahildir.<\/p>\n<p>Yetkiyi ay\u0131r\u0131n. RFC 8881, NFSv4.1 g\u00fcvenlik mekanizmalar\u0131n\u0131 tan\u0131mlar; <code>sec=sys<\/code>, istemcinin sundu\u011fu UID\/GID bilgilerine g\u00fcvenmeyi gerektirir. <code>root_squash<\/code> g\u00fc\u00e7l\u00fc kimlik do\u011frulaman\u0131n yerine ge\u00e7mez. RFC 7143&#8217;teki CHAP mekanizmas\u0131 iSCSI kimlik do\u011frulamas\u0131 sa\u011flar, trafi\u011fi \u015fifrelemez. LUN yetkisi dosya izinlerinden ayr\u0131d\u0131r; s\u0131radan ext4 ayn\u0131 LUN&#8217;a iki istemciden e\u015fzamanl\u0131 yazmaya uygun de\u011fildir.<\/p>\n<pre><code># app01.example \u00fczerinde durumu de\u011fi\u015ftirmeyen kontroller\nfindmnt --mountpoint \/mnt\/nas --output TARGET,SOURCE,FSTYPE,OPTIONS\nsudo iscsiadm -m session -P 3\nsudo journalctl -u iscsid.service --since '15 minutes ago' --no-pager\nsudo journalctl -k --since '15 minutes ago' --no-pager<\/code><\/pre>\n<p>Bu kontroller hen\u00fcz uygulanmam\u0131\u015ft\u0131r. NAS ba\u011fl\u0131ysa <code>findmnt<\/code> \u00e7\u0131kt\u0131s\u0131nda <code>\/mnt\/nas<\/code>, <code>nfs4<\/code> ve <code>vers=4.1<\/code> beklenir. <code>iscsiadm<\/code> mevcut oturumun hedefini, portal\u0131n\u0131 ve durumunu g\u00f6sterir; oturum yoksa bunu bildirir. <code>journalctl<\/code> komutlar\u0131 servis ve \u00e7ekirdek g\u00fcnl\u00fcklerinde ba\u011flant\u0131 sorunlar\u0131n\u0131 aramak i\u00e7indir. Sessiz g\u00fcnl\u00fckler eri\u015fimin sa\u011fl\u0131kl\u0131 oldu\u011funu kan\u0131tlamaz.<\/p>\n<p>Kontroll\u00fc ba\u011flant\u0131 kesme ve dosya geri y\u00fckleme de yaln\u0131zca d\u0131\u015f a\u011fa y\u00f6nlendirilmeyen laboratuvar i\u00e7in planlanan, hen\u00fcz uygulanmam\u0131\u015f ad\u0131mlard\u0131r. Konsol eri\u015fimini haz\u0131rlay\u0131n; kesinti s\u0131ras\u0131nda uygulama davran\u0131\u015f\u0131n\u0131, ba\u011flant\u0131 d\u00f6nd\u00fc\u011f\u00fcnde eri\u015fimi inceleyin. Ba\u011f\u0131ms\u0131z yedekten \u00f6rnek dosyay\u0131 farkl\u0131 dizine geri y\u00fckleyin; i\u00e7erik ve izinleri do\u011frulay\u0131p toplam kurtarma s\u00fcresini RTO ile kar\u015f\u0131la\u015ft\u0131r\u0131n.<\/p>\n<div class=\"aiw-callout aiw-callout-warn\">\n<p class=\"aiw-callout-label\">Dikkat<\/p>\n<p>Varsay\u0131msal ortamdaki tek storage.example sunucusu, NAS ve iSCSI i\u00e7in ortak bir tek hata noktas\u0131d\u0131r. iSCSI multipath ger\u00e7ekten ba\u011f\u0131ms\u0131z yollar gerektirir; tek ba\u015f\u0131na depolama sunucusunu yedekli hale getirmez. Ba\u011flant\u0131 kesme ve dosya geri y\u00fckleme denemeleri hen\u00fcz uygulanmam\u0131\u015f laboratuvar do\u011frulama ad\u0131mlar\u0131 olarak ele al\u0131nmal\u0131d\u0131r.<\/p>\n<\/div>\n<h2 id=\"is-yukunuze-gore-secim-dosya-paylasimi-vm-diski-veya-uygulama-verisi\">\u0130\u015f y\u00fck\u00fcn\u00fcze g\u00f6re se\u00e7im: dosya payla\u015f\u0131m\u0131, VM diski veya uygulama verisi<\/h2>\n<p>\u0130ki uygulaman\u0131n ayn\u0131 dosyay\u0131 payla\u015fmas\u0131, ayn\u0131 blok ayg\u0131t\u0131na yazmalar\u0131 gerekti\u011fi anlam\u0131na gelmez. Ayr\u0131m belirleyicidir. SAN ve NAS fark\u0131 burada eri\u015fim sorumlulu\u011funa d\u00f6n\u00fc\u015f\u00fcr: IETF RFC 8881, NFSv4.1&#8217;in dosya eri\u015fim modelini; RFC 7143 ise iSCSI&#8217;nin SCSI komutlar\u0131n\u0131 TCP \u00fczerinden ta\u015f\u0131mas\u0131n\u0131 tan\u0131mlar.<\/p>\n<table>\n<thead>\n<tr>\n<th>Karar \u00f6l\u00e7\u00fct\u00fc<\/th>\n<th>Ortak dosyalar<\/th>\n<th>VM diskleri<\/th>\n<th>Veritaban\u0131 verisi<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Eri\u015fim modeli<\/td>\n<td>NFS ile ortak dosya a\u011fac\u0131.<\/td>\n<td>NFS \u00fczerinde imaj veya iSCSI \u00fczerinden blok alan\u0131.<\/td>\n<td>Veritaban\u0131n\u0131n destekledi\u011fi dosya veya blok eri\u015fimi.<\/td>\n<\/tr>\n<tr>\n<td>\u00dcretici deste\u011fi<\/td>\n<td>\u0130stemci uyumu ve kilitleme davran\u0131\u015f\u0131.<\/td>\n<td>Hiperviz\u00f6r s\u00fcr\u00fcm\u00fc, depolama s\u00fcr\u00fcc\u00fcs\u00fc ve k\u00fcme deste\u011fi.<\/td>\n<td>S\u00fcr\u00fcm, ba\u011flama se\u00e7enekleri ve kal\u0131c\u0131 yazma ko\u015fullar\u0131.<\/td>\n<\/tr>\n<tr>\n<td>Gecikme hedefi<\/td>\n<td>K\u00fc\u00e7\u00fck dosya ve dizin i\u015flemleri.<\/td>\n<td>E\u015fzamanl\u0131 VM y\u00fck\u00fcnde kuyruklanma.<\/td>\n<td>\u0130\u015flem onay\u0131 ve senkron yazma gecikmesi.<\/td>\n<\/tr>\n<tr>\n<td>\u0130\u015fletim y\u00fck\u00fc<\/td>\n<td>Yetkiler, d\u0131\u015fa aktar\u0131mlar ve kilitler.<\/td>\n<td>\u0130maj veya LUN y\u00f6netimi, yedekleme koordinasyonu.<\/td>\n<td>Tutarl\u0131l\u0131k, g\u00fcnl\u00fckler ve kurtarma prosed\u00fcrleri.<\/td>\n<\/tr>\n<tr>\n<td>Toplam maliyet<\/td>\n<td>Kapasite, a\u011f, yedekleme ve y\u00f6netim zaman\u0131.<\/td>\n<td>Bu kalemlerle birlikte yedeklilik ve destek.<\/td>\n<td>Altyap\u0131, lisans, i\u015fletim eme\u011fi ve kurtarma s\u00fcresi.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>NFS yaln\u0131zca belge payla\u015f\u0131m\u0131na uygun de\u011fildir; desteklenen sanalla\u015ft\u0131rma ve veritaban\u0131 senaryolar\u0131nda da kullan\u0131labilir. Protokol standard\u0131, \u00fcr\u00fcn deste\u011finin yerine ge\u00e7mez. Ubuntu deposundaki QEMU 8.2\/KVM veya se\u00e7ti\u011finiz veritaban\u0131 i\u00e7in s\u00fcr\u00fcme \u00f6zg\u00fc depolama ko\u015fullar\u0131n\u0131 kontrol edin. iSCSI otomatik h\u0131z ya da y\u00fcksek eri\u015filebilirlik garantisi vermez &#8211; tek depolama sunucusu, protokol de\u011fi\u015fince yedekli olmaz.<\/p>\n<p>Varsay\u0131msal Ubuntu Server 24.04 LTS, GA \u00e7ekirdek serisi 6.8 laboratuvar\u0131nda iki uygulaman\u0131n ortak dosyalar\u0131 i\u00e7in NAS se\u00e7ilir. <code>storage.example<\/code> \u00fczerindeki <code>\/dev\/vdb<\/code>, ext4 ile <code>\/srv\/nfs\/shared<\/code> yolunu sa\u011flar; payla\u015f\u0131m NFSv4.1\/TCP \u00fczerinden <code>app01.example<\/code> ve <code>app02.example<\/code> \u00fczerinde <code>\/mnt\/nas<\/code> konumuna ba\u011flan\u0131r. Dosya sistemini depolama sunucusu y\u00f6netir; ayn\u0131 dosyaya yazan uygulamalar ayr\u0131ca koordinasyon gerektirir.<\/p>\n<p><code>app01.example<\/code> dosya sistemini kendisi y\u00f6netecekse, Linux LIO ile ham sunulan <code>\/dev\/vdc<\/code> \u00fczerinden \u00f6zel iSCSI\/TCP LUN se\u00e7ilir. Linux \u00e7ekirde\u011finin ext4 belgeleri dosya sistemi \u00f6zelliklerini a\u00e7\u0131klar; ext4 bir payla\u015f\u0131ml\u0131 disk k\u00fcme dosya sistemi de\u011fildir. Bu LUN \u00fczerindeki ext4&#8217;\u00fc iki istemcide e\u015fzamanl\u0131 yaz\u0131labilir ba\u011flamay\u0131n.<\/p>\n<p>Se\u00e7imi hedef uygulamayla yap\u0131lacak eri\u015fim, performans ve geri y\u00fckleme kabul testlerine ba\u011flay\u0131n. <a href=\"https:\/\/www.vps.tc\/blog\/tr\/vpste-prometheus-grafana-kurulumu\/\">VPS&#8217;te Prometheus ve Grafana ile \u0130zleme<\/a> kaynak bask\u0131s\u0131n\u0131 g\u00f6sterebilir; uygulama gecikmesini ayr\u0131ca \u00f6l\u00e7\u00fcn. E\u015fzamanl\u0131 eri\u015fim do\u011frulu\u011fu, \u00f6nceden belirledi\u011finiz gecikme hedefi ve yedekten tutarl\u0131 geri d\u00f6n\u00fc\u015f do\u011frulanmadan depolamay\u0131 \u00fcretime almay\u0131n.<\/p>\n<h2 id=\"is-yukunuze-gore-secim-dosya-paylasimi-vm-diski-veya-uygulama-verisi-2\">\u0130\u015f y\u00fck\u00fcn\u00fcze g\u00f6re se\u00e7im: dosya payla\u015f\u0131m\u0131, VM diski veya uygulama verisi<\/h2>\n<ul class=\"aiw-checklist\">\n<li>Uygulaman\u0131z\u0131n ortak dosya payla\u015f\u0131m\u0131 m\u0131 yoksa kendisinin y\u00f6netece\u011fi blok ayg\u0131t\u0131 m\u0131 istedi\u011fini belirleyin.<\/li>\n<li>Uygulama ve sanalla\u015ft\u0131rma platformunuzun NFS veya iSCSI deste\u011fini resmi belgelerinden do\u011frulay\u0131n.<\/li>\n<li>Kapasite, b\u00fcy\u00fcme, gecikme, RPO ve RTO hedeflerinizi say\u0131sal olarak kaydedin.<\/li>\n<li>Disk i\u015flemlerinden \u00f6nce lsblk ile ayg\u0131tlar\u0131, iSCSI ke\u015ffinden sonra LUN&#039;un kararl\u0131 ayg\u0131t yolunu do\u011frulay\u0131n.<\/li>\n<li>NFS i\u00e7in UID\/GID ve dosya izinlerini, iSCSI i\u00e7in ba\u015flat\u0131c\u0131 ACL&#039;si ve CHAP ayarlar\u0131n\u0131 denetleyip a\u011f eri\u015fimini s\u0131n\u0131rland\u0131r\u0131n.<\/li>\n<li>Yaln\u0131zca silinebilir dosyalarla e\u015fde\u011fer performans testleri planlay\u0131n ve \u00f6nbellek ile a\u011f ko\u015fullar\u0131n\u0131 kaydedin.<\/li>\n<li>\u00dcretime ge\u00e7meden \u00f6nce laboratuvarda ba\u011flant\u0131 kayb\u0131 davran\u0131\u015f\u0131n\u0131 ve ba\u011f\u0131ms\u0131z yedekten geri y\u00fcklemeyi do\u011frulay\u0131n.<\/li>\n<\/ul>\n<div class=\"aiw-cta\">\n<p>Depolama se\u00e7imini kesinle\u015ftirmeden \u00f6nce hedef uygulaman\u0131zla eri\u015fim, performans ve geri y\u00fckleme kabul \u00f6l\u00e7\u00fctlerini yaz\u0131l\u0131 hale getirin. \u00dcretime ge\u00e7i\u015fi, bu \u00f6l\u00e7\u00fctlerin laboratuvarda do\u011frulanmas\u0131na ba\u011flay\u0131n.<\/p>\n<p class=\"aiw-cta-action\"><a href=\"https:\/\/www.vps.tc\/tr\/vps\">VPS paketlerini inceleyin<\/a><\/p>\n<\/div>\n<h2 id=\"sik-sorulan-sorular\">S\u0131k Sorulan Sorular<\/h2>\n<div class=\"aiw-faq\">\n<details class=\"aiw-faq-item\" open>\n<summary>SAN ve NAS aras\u0131ndaki temel fark nedir?<\/summary>\n<p>Temel fark, istemciye sunulan eri\u015fim d\u00fczeyidir. NAS, NFS veya SMB \u00fczerinden dosya ve dizin payla\u015f\u0131r; dosya sistemini depolama sunucusu y\u00f6netir. SAN ise iSCSI veya Fibre Channel gibi protokollerle blok ayg\u0131t\u0131 sunar. Dosya sistemini istemci ya da k\u00fcme katman\u0131 y\u00f6netir. Ayn\u0131 depolama \u00fcr\u00fcn\u00fc her iki modeli de destekleyebilir.<\/p>\n<\/details>\n<details class=\"aiw-faq-item\">\n<summary>SAN her zaman NAS&#039;tan daha h\u0131zl\u0131 m\u0131?<\/summary>\n<p>Hay\u0131r. Performans\u0131 diskler, a\u011f kapasitesi, gecikme, \u00f6nbellek, e\u015fzamanl\u0131 i\u015flem say\u0131s\u0131 ve uygulaman\u0131n eri\u015fim deseni birlikte belirler. K\u00fc\u00e7\u00fck rastgele yazmalar ile b\u00fcy\u00fck s\u0131ral\u0131 okumalar ayn\u0131 altyap\u0131da farkl\u0131 davran\u0131r. NAS ve SAN se\u00e7eneklerini e\u015fde\u011fer test ko\u015fullar\u0131nda IOPS, MiB\/s ve gecikme y\u00fczdelikleriyle kar\u015f\u0131la\u015ft\u0131r\u0131n. Senkron yazma davran\u0131\u015f\u0131n\u0131 da sabitlemeden h\u0131z karar\u0131 vermeyin.<\/p>\n<\/details>\n<details class=\"aiw-faq-item\">\n<summary>\u0130ki sunucu ayn\u0131 iSCSI diskini kullanabilir mi?<\/summary>\n<p>Teknik olarak ayn\u0131 LUN birden fazla ba\u015flat\u0131c\u0131ya sunulabilir; ancak g\u00fcvenli kullan\u0131m dosya sistemi ve uygulama mimarisine ba\u011fl\u0131d\u0131r. ext4 gibi yerel dosya sistemlerini iki sunucuda e\u015fzamanl\u0131 yaz\u0131labilir ba\u011flamak veri bozulmas\u0131na yol a\u00e7abilir. Ortak yazma i\u00e7in k\u00fcme dosya sistemi, koordinasyon ve fencing gerekir. Yaln\u0131zca dosya payla\u015fman\u0131z gerekiyorsa NAS daha do\u011frudan bir yakla\u015f\u0131m sunar.<\/p>\n<\/details>\n<details class=\"aiw-faq-item\">\n<summary>Sanal makineler ve veritabanlar\u0131 i\u00e7in NAS kullan\u0131labilir mi?<\/summary>\n<p>Evet, platformun ve uygulaman\u0131n destekledi\u011fi yap\u0131land\u0131rmalarda NAS kullan\u0131labilir. NFS, baz\u0131 sanalla\u015ft\u0131rma ve veritaban\u0131 kurulumlar\u0131nda ge\u00e7erli bir depolama se\u00e7ene\u011fidir; yaln\u0131zca ortak belge saklamakla s\u0131n\u0131rl\u0131 de\u011fildir. \u00dcretici deste\u011fini, kilitleme davran\u0131\u015f\u0131n\u0131, senkron yazma gereksinimlerini ve ba\u011flant\u0131 kayb\u0131 sonras\u0131ndaki davran\u0131\u015f\u0131 do\u011frulay\u0131n. VM diski veya veritaban\u0131 kullanman\u0131z tek ba\u015f\u0131na SAN se\u00e7menizi gerektirmez.<\/p>\n<\/details>\n<details class=\"aiw-faq-item\">\n<summary>NFS ve iSCSI trafi\u011fi varsay\u0131lan olarak \u015fifreli mi?<\/summary>\n<p>NFSv4.1 veya iSCSI kullanmak tek ba\u015f\u0131na \u015fifreleme garantisi vermez. NFS taraf\u0131nda AUTH_SYS istemcinin bildirdi\u011fi kullan\u0131c\u0131 kimliklerine dayan\u0131r; iSCSI taraf\u0131nda CHAP kimlik do\u011frular fakat veri trafi\u011fini \u015fifrelemez. Gereksinime g\u00f6re NFS i\u00e7in Kerberos gizlilik korumas\u0131 veya uygun a\u011f \u015fifreleme \u00e7\u00f6z\u00fcmleri de\u011ferlendirilmelidir. TCP 2049 ve TCP 3260 eri\u015fimini yaln\u0131zca gerekli istemcilerle s\u0131n\u0131rland\u0131r\u0131n.<\/p>\n<\/details>\n<details class=\"aiw-faq-item\">\n<summary>RAID veya snapshot varsa ayr\u0131ca yedek gerekir mi?<\/summary>\n<p>Evet. RAID belirli disk ar\u0131zalar\u0131na kar\u015f\u0131 dayan\u0131kl\u0131l\u0131k sa\u011flar; yanl\u0131\u015f silme, uygulama hatas\u0131 veya t\u00fcm depolama sisteminin kayb\u0131 i\u00e7in ba\u011f\u0131ms\u0131z yedek yerine ge\u00e7mez. Snapshot h\u0131zl\u0131 geri d\u00f6n\u00fc\u015f sa\u011flayabilir, ancak ayn\u0131 sistemde tutuluyorsa ortak ar\u0131zadan etkilenebilir. Kabul edilebilir veri kayb\u0131n\u0131 RPO, geri d\u00f6n\u00fc\u015f s\u00fcresini RTO ile tan\u0131mlay\u0131n ve ba\u011f\u0131ms\u0131z yedekten geri y\u00fcklemeyi deneyin.<\/p>\n<\/details>\n<\/div>\n<h2 id=\"kaynaklar\">Kaynaklar<\/h2>\n<ul class=\"aiw-sources\">\n<li><a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc8881.html\" target=\"_blank\" rel=\"noopener\">IETF RFC 8881 &#8211; NFSv4.1 Protokol\u00fc<\/a> \u2014 rfc-editor.org<\/li>\n<li><a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc7143.html\" target=\"_blank\" rel=\"noopener\">IETF RFC 7143 &#8211; iSCSI Protokol\u00fc<\/a> \u2014 rfc-editor.org<\/li>\n<li><a href=\"https:\/\/docs.kernel.org\/filesystems\/ext4\/index.html\" target=\"_blank\" rel=\"noopener\">Linux Kernel Belgeleri &#8211; ext4 Dosya Sistemi<\/a> \u2014 docs.kernel.org<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u0130ki sunucunun ortak dosyalara eri\u015fmesiyle bir sunucunun uzak diski y\u00f6netmesi farkl\u0131 ihtiya\u00e7lard\u0131r. SAN ve NAS se\u00e7imini eri\u015fim modeli, uygulama deste\u011fi, \u00f6l\u00e7\u00fclen performans ve geri y\u00fckleme hedefleri \u00fczerinden de\u011ferlendirin.<\/p>\n","protected":false},"author":2,"featured_media":1082,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[497],"tags":[],"class_list":["post-1084","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-veri-merkezi"],"lang":"tr","translations":{"tr":1084,"en":1085},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts\/1084","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/comments?post=1084"}],"version-history":[{"count":1,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts\/1084\/revisions"}],"predecessor-version":[{"id":1086,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts\/1084\/revisions\/1086"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/media\/1082"}],"wp:attachment":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/media?parent=1084"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/categories?post=1084"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/tags?post=1084"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}