Storage Controller Nedir? Nasıl Çalışır?

Sunuculardaki kritik bileşenlerden biri olan storage controller ile depolama cihazlarının yönetimi sağlanmaktadır. Storage controller donanım veya yazılım olarak temin edilebilir. Teknik olarak ise depolama ve erişim işlemlerini yönetir, veri güvenliğini ve verimliliği artırır.

Peki Bu İşlemleri Nasıl Yapar?

İşlemci (Controller Processor)

Storage controller’ın merkezi işlem birimidir. Bu birim sayesinde RAID hesaplamaları, verilerin yönetimi ve hata düzeltme gibi işlemler gerçekleştirilir. Donanımsal Storage Controller ile yazılımsal Storge Controller’ların en belirgin farkı da burada çıkmaktadır. Donanım tabanlı Storage Controller’larda bu işlemler için yüksek performanslı ve özelleştirilmiş bir CPU bulunur. Yazılımsal Storage Controller’ın kendisine özel bir CPU veya bellek bulunmadığı için, donanımsal storage controller’lardan daha düşük performans gösterebilir. Özellikle RAID 0 ve RAID 1 dışında ki RAID’lerde ki parite hesaplamalarında bu fark hissedilebilir.

Örnek vermek gerekirse, sistemimizde RAID 5 kullanıyor olalım. Parite XOR (Exclusive OR) işlemi kullanılarak hesaplanır. Blok A1 (Disk1), Blok A2 (Disk 2), Parite A (Disk 3) olarak tutulur. Yani Parite A = A1XORA2 Bu denklem ile bir diskin arızalanması durumunda, kayıp diğer disklerdeki verilerin ve parite bilgisi kullanılarak yeniden oluşturulması sayesinde hata toleransı elde edilir. 1. Diskin bozulduğu bir senaryoyu formalize edecek olursak;

A1=Parite A XOR A2

Diğer RAID gruplarının formülasyonunu başka bir yazımızda inceleyeceğiz.

Bellek (Cache Memory)

Aslında bildiğimiz RAM’ler ile oldukça benzerdir. Verileri yazma ve okuma işlemlerini hızlandırmak için iki ayrı önbelleği bulunur. Bunlar Read Cache (Okuma Önbelleği) ve Write Cache (Yazma Önbelleği) olarak ikiye ayrılır.

Bir veri diske yazılmadan önce write cache kısmına yazılır ve daha sonra arka planda diske aktarılır. Bu işleme Write-Back Cache olarak adlandırılır.

Read Cache ise, sık sık erişilen verileri üzerine alır ve böylece veriyi okumak için diske erişmek yerine, bu bellekten veriler alınarak hızlandırılmış. olur.

RAID Motoru (RAID Engine)

Parite hesaplamaları, verilerin RAID yapısına uygun şekilde verilerin dağılımının yapılması ve yeniden yapılandırma işlemlerini gerçekleştirmek üzere tasarlanan özel donanım veya yazılım bileşenidir. RAID Motoru sayesinde, configi yapılan RAID seviyesine göre verileri organize eder, yedekler ve gerektiğinde tekrardan geri yükler.

Bağlantı Arabirimleri (Interface Controllers)

Depolama aygıtları ile ana sistemle olan bağlantıyı sağlar. Genellikle bu bağlantı tipleri SAS (Serial Attached SCSI), SATA (Serial ATA) veya NVMe (Non-Volatile Memory Express) olarak bildiğimiz tiplerdir.

Bu arabirimler, anakart ile PCIe (Peripheral Component Interconnect Express) aracılığı ile bağlantı kurar.

Peki SATA, SAS ve NVMe disk farklılıkları nelerdir?

SATA (Serial ATA)

SATA aktarım protokolü; HDD ve SSD diskler için tasarlanmış, 7 pimli veri kablosu ve 15 pimli güç kablosunu ile bağlanılan disklerdir. SATA III ile 6 Gbps (600 MB/s) veri aktarıma sahiptir.

Gecikme sürelerinde ise HDD’lerde yüksek iken, SSD’lerde nispeten daha hızlıdır. Storage’larda da karşımıza çıksa da fiyat odaklılığından doalyı daha çok son kullanıcı ürünleri için daha uygundur.

SAS (Serial Attached SCSI)

SAS bağlantısı, özellikle sunucu ve veri merkezinde kullanılacak cihazlar için tasarlanmıştır. 29 pimli veri kablosu üzerinden enerji ve veri aktarımını mümkün kılar. SAS-3 standardı ile de 12 Gbps’ye kadar veri aktarımını desteklemektedir. SATA’ya göre daha güvenlidir ve hata düzeltme özelliğine de sahiptir.

SAS kontrolörleri SATA’yı desteklerken, tam tersi mümkün değildir.

NVMe (Non-Volatile Memory Express)

NVMe diskler, PCIe veri yolu ile veri aktarımını destekler ve M.2 veya U.2 form faktörleri ile gelir. Özellikle PCIe 3.0 x4 bağlantısı ile 32 Gbps’e kadar (4000 MB/s) veri aktarımı yapılabiliyor. Tabii PCIe 4.0 ve 5.0 ile daha yüksek hızlar mümkündür.

Çok düşük gecikme sürelerine sahip olduğu için genellikle yüksek performans gerektiren sunucu veya storage’larda ve yüksek hızla verilerin işlenmesi gereken, veri uygulamalarında kullanılır.

Firmware ve Yazılım

Storage controller’ları kontrol eden gömülü yazılımlar sayesinde depolama cihazlarının yönetimi, hataların takibi ve veri güvenliği işlemlerini yürütür.

Veri Depolama ve Erişim İşlemleri

Ana hatlarıyla bileşenleri anladığımıza göre disklere verilerin depolanması ve erişimlerin nasıl gerçekleştiğine de değinelim;

Veri Okuma İşlemleri

İlk olarak sistemden veri okma ile ilgili talep gelir. İstenilen veri, ilk olarak Read Cache’de aranır. Bu işleme ise cache hit denir. Eğer cache hit işlemi ile veri bulunursa doğrudan bellekten okunarak sisteme yansıtılır. Eğer cache hit işlemi başarısız olursa (ki buna da cache miss denir), RAID motoru ile ilgili veriyi diskte bularak okur, cache’e aktarır ve ana sisteme bu veriyi okur.

Burada RAID motorunun hangi verinin, hangi diskte olduğunu bulma işlemi, yaptığımız RAID config’ine göre göre değişir. Örneğin RAID 5’te; RAID motoru, veri talebinin başlangıç adresini ve blok boyutunu kullanarak hangi verinin, hangi diskte olduğunu hesaplar ve veriyi okumak için o diske talep gönderir. Bu hesaplama ise basit bir şekilde özetleyecek olursak şu şekilde olur;

Elimizde ki verilere bakalım. İlk olarak “Başlangıç Adresi (Verinin disk üzerinde hangi adreste başladığı)” ikincisi “Blok Boyutu (Veri bloklarının boyutu. Biz burada bu değeri 64KB olarak alacağız.)”, üçüncüsü ise “Toplam Disk Sayısı (Bu senaryomuzda elimizde 4 adet disk olsun.)”

Sistemin, Storage Controller’dan talep ettiği verinin başlangıcı 128KB olsun ve sadece bir veri bloğu talep etsin. Bir veri bloğumuz 64KB olduğunu düşünürsek;

128KB / 64KB = 2

Yani bu verimiz ikinci blokta yer alıyor. RAID 5’te bloklar sıralı halde dağıtılır. Yani;

  • Blok 1: Disk1(A1),Disk2(A2),Disk3(P(A)),Disk1(A3)
  • Blok 2: Disk1(B1),Disk2(P(B)),Disk3(B2),Disk4(B3)
  • Blok 3: Disk1(P(C)),Disk2(C2),Disk3(C3),Disk4(C4)

Başlangıç adresini baz aldığımızda, sistemin bizden istediği 64KB’lık veri Blok 2’de yer alır. Blok 2’de veriler Disk 1: B1, Disk 2: P(B), Disk 3: B2, Disk 4: B3 şeklinde dağıtılır. 128 KB başlangıç adresine sahip, 64 KB’Lık verimiz bu verilere göre B1 bloğunda bulunur.

Veri Yazma İşlemleri

Yine ilk istek olarak sistemden veri yazma talebi gelir. Bu veriler ilk olarak write cache alanına yazılır. Belleğe alınan verinin, hangi diske yazılacağını RAID motoru tarafından parite hesaplaması yapılır. Ardından veriler bağlantı birimleri üzerinden depolama cihazlarına bildirir ve yazma işlemi tamamlandığında sisteme “tamamlandı” şeklinde bilgi verilir.

Hata Yönetimi ve Kurtarma

Storage Controller’lar, S.M.A.R.T. denilen (Açılımı Self-Monitoring, Analysis and Reporitng Techonology) bir teknolojiye sahiptir. Bu teknoloji sayesinde HDD ve SSD disklerin durumunu anlık olarak izleyerek arızaları önceden tahmin etmeye çalışır. Peki bunu nasıl yapar?

Self-Monitoring

Disk sürücüleri, çalışma esnasında okuma ve yazma hataları, dönme hızı, sıcaklık ve yeniden atanan sektörler gibi belirli parametreleri sürekli olarak kayıt eder. Bu parametreler;

  • Read Error Rate – Okuma Hata Oranı
  • Spin-Up Time – Dönme Hızı
  • Throughput Performance – Diskin Veri Transfer Hızı
  • Reallocated Sectrors Count – Yeniden atanan sektör (Bozuk sektör yerine tahsis edilecek yedek sektör sayısı)
  • Temperature – Diskin Çalışma Sıcaklığı
  • Seek Error Rate – Arama Hata Oranı (Disk üzerinde ki okuma/yazma işlemlerini sağlayan kafa olarak tabir edilen parçanın, konumlandırılma sırasında karşılaştığı hata sayısı)
  • Power-On Hours – Çalışma Süresi
  • Power Cycle Count – Diskin açılıp kapanma sayısı
  • Uncorrectable Sector Count – Disk üzerinde düzeltilemeyen bozuk sektör sayısı
  • Wear Leveling Count – SSD’ler için belleğin aşınma düzeyi.

Analiz

Self-Monitoring tarafından toplanan veriler aslında disk sağlığı konusunda ciddi verilerdir. Her diskinde ilgili üreticiler tarafından belirlenen bu parametreler ile ilgili olarak bir eşik değeri vardır. Örneğin “Okuma hatası “X” birim olduğunda, bu diskin yakında bozulacağı anlamına gelir” gibi belirli eşik değerleri barındırır. Bu eşik değere yaklaşan veya ulaşan disk ise üretici tarafından arızalanmak üzere olduğunu belirtir.

Raporlama

Self-monitoring ve analizler sonucu elde edilen veriler kullanıcıya veya sistem yöneticilerine bildirirlir ve aksiyon alınması konusunda bir ibare gösterir. Raporlama genellikle disk sürücüsünün donanım seviyesinde gerçekleşir ve özel komutlar veya yazılımlar aracılığı ile kullanıcıya gösterilir.

İlgili Yazılar

Bir Cevap Yazın

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.