1 Kasım 2014 Cumartesi

Nesne Depolama Arayüzü




ÖZET

İlk disk sürücünün bundan 50 yıl önce üretildiği günden bugüne depolama teknolojisi önemli ölçüde büyüme kaydetmiştir ve bunda özellikle depolama ara yüzlerinin (SCSI ve ATA/IDE) yavaş ve istikrarlı gelişimi de kısmen etkili olmuştur. Bu ara yüzlerinin istikrarlı olması, hem depolama cihazlarında hem de uygulamalarında, standartlarda sık değişikliğe gidilmeden sürekli gelişmelerin sağlanmasına imkân vermiştir. Ancak cihazlar tarafından sunulan fonksiyonelliği nihai olarak ara yüz belirlemektedir ve mevcut ara yüzler sistem tasarımcılarını geride tutmaktadır. Depolama teknolojisi, artık cihaz ara yüzünde bir değişimin gerektiği noktaya kadar gelişmiştir. Nesne tabanlı depolama bu soruna yönelik tasarlanan, öne çıkan bir standarttır. Bu makalede nesne tabanlı depolamayı tarif ediyor ve veri paylaşımı, güvenliği ve cihaz akıllılığını nasıl geliştirdiğini vurguluyoruz. Ayrıca nesne tabanlı depolamanın bazı sektör uygulamalarını ve daha da akıllı depolama sistemleri kurmak için nesneleri bir temel olarak kullanan akademik araştırmaları tartışıyoruz.


GİRİŞ

Sektör, depolama ara yüzü üzerinde baskı uygulamaya ve daha fazlasını yapmasını talep etmeye başlamıştır. 1956,1 yılındaki ilk disk sürücüden bu yana, disklerin yoğunluğu altı büyüklük mertebesinde büyüme kaydetmiştir ve performans açısından da dört büyüklük mertebesinde iyileşme kaydetmiştir, ancak buna rağmen depolama ara yüzü (yani bloklar vb.) büyük oranda değişmeden kalmıştır. SCSI ve ATA/IDE'nin blok tabanlı ara yüzlerinin kararlılığı sistemlere fayda sağlamış olsa da, bugün gelinen noktada birçok depolama mimarisi için kısıtlayıcı bir faktör haline gelmektedir. Depolama altyapılarının hem büyüklüğü hem de karmaşıklığı arttıkça, sistem tasarımcılarının gerçekleştirmek istediği fonksiyonlar temel olarak blok ara yüzü tarafından kısıtlanmaktadır.

Yakın geçmişte sektörde ve akademide yapılan araştırmalar, depolama teknolojisinde, cihazların göreli olarak akıllı olmayan bir durumdan, akıllı oldukları, kendi kendilerini yönettikleri ve hizmet verdikleri depolama uygulamalarının farkında oldukları bir duruma evrimleştikleri bir kayma olduğunu düşündürmektedir. Ancak böyle bir akıllı cihazın oluşturulması daha anlatımlı bir ara yüz gerektirmektedir. Sektördeki birçok insan nesnelerin depolanmasına dayalı bir ara yüzün doğru cevap olabileceğini düşünmektedir.

Bir depolama nesnesi, bir depolama cihazı üzerinde bulunan baytların mantıksal bir toplamıdır, erişim için yaygın olarak bilinen yöntemlere sahiptir, özellikleri verinin karakteristiklerini tarif eder ve güvenlik politikaları da yetkisiz erişimi engeller Blokların aksine, nesneler değişken büyüklüklere sahiptir ve dosyalar, veri tabanı tabloları, tıbbi görüntüler veya multimedya gibi bütün veri yapılarını depolamakta kullanılabilmektedir.

Nesneler iki teknolojinin buluşması olarak görülebilir: dosyalar ve bloklar. Dosyalar, kullanıcı uygulamalarına, farklı işletim sistem platformları arasında güvenli veri paylaşımına imkân veren daha üst düzey depolama soyutlaması imkânı sunmakta, ancak çoğu durumda bunun maliyeti dosya sunucusu çekişmesi nedeniyle sınırlı performans olmaktadır. Bloklar paylaşılan veriye hızlı ve ölçeklenebilir erişim sunmaktadır; ancak I/O'yu yetkilendirmek ve metadatayı sürdürmek için bir dosya sunucusu sağlamazlar ve bu doğrudan erişimin maliyeti sınırlı güvenlik ve veri paylaşımıdır.

Nesneler hem dosyaların hem de blokların avantajlarını sağlayabilmektedir. Bloklara benzer şekilde, nesneler bir depolama cihazı üzerinde doğrudan erişilebilen basit depolama birimleridir (örneğin bir sunucu dolayımı olmadan); bu doğrudan erişim bloklara benzeyen performans avantajları sunmaktadır. Dosyalara benzer şekilde ise, nesneler, depolama uygulamalarını nesneyi depolamak için gerekli metadatadan soyutlayan bir ara yüz kullanarak erişilmektedir ve böylece nesneler farklı platformlardan kolay erişilir hale gelmektedir. Dolayısıyla nesne temelli depolamanın temel katkısı, depolama cihazlarına dosya benzeri erişim sağlamasıdır.

Bu makalenin geri kalanı şu şekilde düzenlenmiştir. Bugünün önde gelen depolama mimarilerini, verilen ödünleri ve blok bazlı ara yüzlerin temel kısıtlamalarını tartışıyoruz. Nesne bazlı depolamayı, bu sınırlamaları ortadan kaldıracak bir mimarı olarak tarif ediyoruz. Nesne tabanlı depolama etrafındaki sektör faaliyetiyle, özellikle de Depolama Ağı Sektörü Derneğindeki (SNIA) çabalarla ve nesne bazlı dosya sistemleri konusunda devam eden faaliyetlerle ilgili bir tartışmayla sonuçlandırdık.


GÜNÜMÜZDE DEPOLAMA VE ÖDÜNLER

İdeal depolama mimarisi güçlü güvenlik, platformlar arası veri paylaşımı (yani işletim sistemleri arası), yüksek performans ve cihaz ve istemci sayısı açısından ölçeklenebilirlik sunacaktır.  Günümüzün mimarileri sistem tasarımcılarını, bu özelliklerden hangisinin en önemli olduğu konusunda karar vermeye zorlamaktadır, çünkü bir mimari seçmek bir ödün verme gerekmektedir. Günümüzde yaygın olarak kullanılan üç depolama mimarisi doğrudan ekli depolama (DAS), depolama alanı ağları (SAN’lar) ve ağ ekli depolamadır (NAS). Hem NAS hem de SAN sistemlerinin özelliklerini birlikte sunmayı hedefleyen ve genellikle SAN dosya sistemi adı verilen bir dördüncü mimari yakın geçmişte sunulmuştur.

DAS, blok bazlı depolama cihazlarını bir sunucu makinasının I/O veri yoluna bağlamaktadır (örneğin SCSI veya AT/IDE aracılığıyla). DAS yüksek performans ve minimal düzeyde güvenlik sorunu sunsa da, bağlantı konusunda sınırlar bulunmaktadır. Örneğin SCSI, bir veri yolunun genişliğiyle sınırlanmaktadır (16 bitlik bir veri yolunda en fazla 16 sunucu veya cihaz olabilmektedir). DAS'ın bağlantı sorunlarını çözebilmek ve bunun sonucunda depolama cihazlarının konsolidasyonunu ve paylaşımını sağlayabilmek amacıyla SAN geliştirilmiştir.

SAN, yüksek sayıda sunucu ve depolama cihazı için ölçeklenebilir bağlantı sunan, anahtarlamalı bir yapıdır. Ancak bu ek bağlantıyla birlikte, daha iyi güvenlik ihtiyacı ortaya çıkmıştır. Bu nedenle SAN'lar, yapıyı güvenli tutabilmek için zoning (bir sanal özel ağ gibi) ve sunucu cihazı yetkilendirmesi gibi kavramlar ortaya atmıştır.

Hem DAS hem de SAN blok temellidir. Veri yapılarının (dosyalar ve dizinler) depolama cihazları üzerinde bulunan bloklara eşleştirilmesinden depolama uygulaması (örneğin dosya sistemi) sorumludur. Bu eşleştirmenin yapılması için gerekli ek veriye genellikle metadata adı verilmektedir. Çoklu sunucular, veri bloklarını paylaşabilmek için aynı zamanda metadatalarını paylaşmak zorundadır ve bunu sunucular arasındaki metadata tutarlılığını garanti edecek bir şekilde yapmaları gerekir. Bu işlemin karmaşıklığı, yalnızca kümelenmiş dosya sistemleri ve veritabanları gibi sıkı bir şekilde bağlantılandırılmış performans duyarlı depolama uygulamaları arasında blok paylaşımı yapılmasına neden olmuştur. Diğer altyapıların çoğu, sunucuların yalnızca NAS kullanarak dosyaları dolaylı olarak paylaşmasına izin vermektedir.


NAS yalnızca, platformlar arası veri paylaşımını sağlamak üzere ortaya atılan dosya sunumu için farklı bir adlandırmadır.  NAS sayesinde, dosyaların cihazlar üzerinde nasıl depolandığını tarif eden metadata, bütünüyle dosya sunucusu üzerinde yönetilir. Bu düzeyde dolaylama, platformlar arası veri paylaşımına imkan verir, ancak maliyeti bütün I/O'nun tek bir dosya sunucusu üzerinden yönlendirilmesidir.  NAS bir SAN'nin üzerine veya bir DAS ile birlikte uygulanabilir ve ilkine genellikle NAS işlemi olarak adlandırılmaktadır. Her durumda istemciler dosya sunucusunun performansı tarafından sınırlandırılacaktır ve depolama cihazlarının toplam performansını nadiren görebilecektir (Şekil 1).



NAS'ın performans sınırlamalarının üzerine gidebilmek için son zamanlarda SAN dosya sistemleri ortaya çıkmıştır. Bir SAN dosya sisteminde dosya sunucusu ve istemcilerin hepsi, dosya sisteminin depolandığı bir SAN'a bağlıdır. Bu bağlantı veri alındığında, dosya sunucusu dosya metadatasını istemcilerle paylaşabilir ve böylece istemcilerin depolama cihazlarına doğrudan erişimine olanak sağlayabilir. Bunun örnekleri arasında EMC'nin HighRoad'u, IBM'in Storage Tank'ı ve Veritas'ın SANPoint Direct'i yer almaktadır.  Cihazların I/O yetkilendirmesi için hiçbir mekanizmaya sahip olmaması ve artan dosya hizmet performansı bu nedenle güvenliği azaltmaktadır; cihaz güvenliğine yönelik SAN mekanizmaları yalnızca cihazın bütününü korumaktadır ve cihaz içinde yer alan veriyi korumamaktadır. Bir SAN dosya sistemi Şekil 2'de gösterilmiştir.



Bu nedenle günümüz mimarilerinde verilen ödün, yüksek performans (bloklar) karşısında güvenlik ve platformlar arası veri paylaşımı (dosyalar) olmaktadır. Dosyalar sistemler arasında güvenli veri paylaşımına izin verirken, bir dosya sunucusu tarafından dayatılan ek yük performansı sınırlandırabilmektedir. Ancak doğrudan istemci erişimine izin vererek dosya hizmet performansının artırılması, güvenlik pahasına gerçekleşmektedir.

Ölçeklenebilir, yüksek performanslı, platformlar arası ve güvenli bir veri paylaşımı mimarisi, hem SAN'ların doğrudan erişim özelliğini sunan hem de NAS'ın veri paylaşımı ve güvenlik kabiliyetlerini sunan yeni bir ara yüz gerektirmektedir.



NESNE TABANLI DEPOLAMA

GENEL BAKIŞ

Nesneler dosya benzeri ara yüzü olan depolama konteynerleridir ve NAS ve SAN mimarilerinin etkin bir buluşmasını temsil etmektedir. Nesneler hem NAS (platformlar arası veri paylaşımına ve politika bazlı güvenliğe imkan ağlayan yüksek düzeyde soyutlama) ve SAN'ın (cihazların anahtarlı yapısının doğrudan erişimi ve ölçeklenebilirliği) faydalarını kapsamaktadır. Nesneler depolama alanı ayırma ve veri paylaşımı açısından dosyalar gibi davranmakla birlikte yalnızca, istenen ek ara yüzleri (örneğin kilitleme) ve arama mekanizmalarını (örneğin dizinler) uygulayan depolama uygulamaları (örneğin dosya sistemleri ve veri tabanları) için konteynerler olarak hizmet vermeleri amaçlanmıştır.

Bir nesnenin büyüklüğü değişkendir ve dosyalar, veri tabanı kayıtları, medikal görüntüler veya multimedya gibi her tür veriyi depolamak için kullanılabilmektedir. Tek bir nesne bütün bir dosya sistemini veya veri tabanını depolamak için bile kullanılabilmektedir. Bir nesne içinde ne depolanacağına depolama uygulaması karar verir. Blok I/O'nun aksine, depolama cihazları üzerinde nesnelerin yaratılması, bir dosya sistemine benzeyen zengin bir ara yüz üzerinden gerçekleştirilmektedir. Ve nesneler dinamik olarak büyüyüp küçülebildiği için, nesnenin bütün içi depolama alanı yönetiminden depolama cihazı sorumludur (örneğin depolama cihazı, UNIX indeks nodları veya inodlar ve boş blok bitmaplare gibi ayırma ve boş depolama alanı metadata yapılarını yönetir).
Nesneler veri, kullanıcı tarafından erişilebilir özellikler ve cihaz tarafından yönetilen metadatadan oluşmaktadır.

Bir nesne içinde depolanmış bulunan veri, nesne bazlı veri depolama cihazı için opaktır ve yalnızca nesnenin veri bölmesinde depolanır. Kullanıcı tarafından erişilebilir özellikler, nesnenin özelliklerini tarif eder ve bunların bazıları opak olacak, bazıları ise olmayacaktır. Örneğin bir hizmet kalitesi (QoS) özelliği, bir multimedya nesnesi için gecikme ve iş hacmi oranını tarif ediyor olabilir. Son olarak, cihaz tarafından yönetilen metadata, nesnenin fiziksel depolanmasını yönetmek amacıyla depolama cihazı tarafından tutulan her türlü ek bilgidir (örneğin bir inode).

Nesneler depolayan bir cihaza bir nesne bazlı depolama cihazı (OSD) diyoruz. OSD'ler bir tek disk sürücüden, bir sürücü dizini olan bir depolama kontrolörüne kadar uzanan bir yelpazede birçok şekilde olabilmektedir. OSD'ler rastgele erişimli veya yazılabilir cihazlarla sınırlı değildir; teyp sürücüleri ve optik medya da nesneleri depolamakta kullanılabilir. Bir OSD ile bir blok bazlı cihaz arasındaki fark, fiziksel medya değil, arayüzdür.

Nesne tabanlı depolamanın ilk etkisi, depolama alanı yönetiminden kaynaklı yükün (kullanılan ve boşta olan bloklar için yer ayırma ve takip) depolama uygulamalarından aktarılmasıdır. Bu yük aktarmayı göstermek için geleneksel dosya sistemi mimarisini düşünün (Şekil 3a). Blok tabanlı dosya sistemleri en genel haliyle iki bölüme ayrılabilir: bir kullanıcı bileşeni ve bir depolama bileşeni. Kullanıcı bileşeni, kullanıcı uygulamalarına dosyalar ve dizinler gibi mantıksal veri yapıları ile birlikte, bu veri yapılarına erişim için bir ara yüz sunmaktan sorumludur ve depolama bileşeni ise veri yapılarını fiziksel depolamaya eşleştirir. Sorumlulukların bu şekilde ayrılması, yönetim yükünün depolama cihazına aktarılmasına imkan sağlar ve bu da nesne tabanlı depolamanın istenen etkisidir.


Şekil 3b'de dosya sistemi değişmemiştir ve depolama yönetimi bileşeninin yükü (ve dolayısıyla metadata) depolama cihazına aktarılmıştır ve cihaz ara yüzü bloklardan nesnelere dönüştürülmüştür.
Blok metadata yönetimi (Şekil 3a'daki bileşenin depolanması) bütünüyle depolama uygulamaları tarafından belirlenmektedir (örneğin dosya sistemlerinin disk üzerindeki metadata yapılarını düzenlemek ve sürdürmek için özgün yolları bulunmaktadır). Bu bağımlılıklar, sunucular arasında doğrudan veri bloğu paylaşımını zor hale getirmektedir, çünkü depolama cihazına erişim yapmadan önce, hem metadata yapıları hem de disk üzerindeki düzenle ilgili a priori bilgi gerekmektedir. Dahası, cihazların paylaşılması, yer ayırma ile ilgili görevlerin dağıtımı (örneğin bir boş blok bitmapinin paylaşımı) için sunucular arasında özel koordinasyon gerektirmektedir. Metadata yükünün depolama cihazına aktarılmasında, nesneler metadata ile depolama uygulaması arasındaki bağımlılığı ortadan kaldırmakta ve farklı depolama uygulamaları arasında veri paylaşımını daha uygun hale getirmektedir. Dahası, suncuların metadata güncellemelerini koordine etmeleri gerekmediğinde küme ölçeklenebilirliği önemli ölçüde gelişir.

Depolama uygulamaları, daha üst düzey bir isimden gelen nesne kimliğini çözmek için kendi indeksleme bilgilerini (örneğin dizin metadatası) tutmaya devam edebilir. Ancak bu kimlik verildiğinde, nesneye artık platformdan bağımsız bir şekilde erişilebilir. Bu, veri paylaşımını daha kolay hale getirir. Örneğin, bir yedekleme uygulamasına bir nesne kimliği listesi verilebilir ve bu, cihazın daha etkin fiziksel yedeklemesine olanak sağlayabilir.

Dahası, bütün metadata yükü aktarıldıktan sonra, depolama cihazları artık kendi yapılarını, bir bloklar dizisi yerine tek bir nesne olarak depolayabilmektedir. Ve cihaz nesneleri tekil olarak ele alabildiği için, dosyaların bir dosya sunucusu tarafından korunduğu şekilde güvenlik politikalarını nesne bazlı olarak ortaya koymak daha kolay olabilmektedir. Nesneler depolama uygulamalarının, bütün bir cihaz, cihaz üzerinde bir dizi nesne, tek bir nesne veya hatta bir nesne içindeki baytlar için yetkilendirmeyle sonuçlanacak esnek güvenlik politikaları uygulamasına izin vermektedir.

Nesne tabanlı depolamanın ilk faydaları bu edenle platformlar arası veri paylaşımı ve uygulama düzeyinde güvenliktir. Bu faydalar en çok SAN tabanlı depolama cihazlarıyla ilgilidir ve zaten tek bir sunucunun koruması ve yönetimi altında bulunan DAS tabanlı depolama için sınırlı değeri olacaktır. Depolama cihazlarında öz yönetim kapsamında yeni fırsatlar ortaya çıktıkça, verinin fiziksel düzenini yöneten cihazlardan bir ek fayda sağlanmaktadır. Öz yönetim hem DAS hem de SAN cihazlarına eşit düzeyde fayda sağlamaktadır ve performansı iyileştirmek için verinin yeniden organize edilmesi, düzenli yedek alınması için planlama yapılması ve çökme durumunda kurtarma gibi eylemler içermektedir. Örneğin bir dosya tabanlı cihaz içinde dosya düzeyinde önceden getirme, cihaz dosyalarla ilgili bilgiye sahip olmadığı için imkansız olmaktadır. Bunun aksine, bir nesne tabanlı cihaz, depolama uygulamaları adına dosyaları (nesne olarak depolanan) kolaylıkla önceden getirebilir veya en çok erişildiği sıraya göre dosyaları düzenleyebilir.

Yaygın olarak kabul edilecekse, işletim sistemi nesneleri destekliyor olmalıdır. Neyse ki kullanıcı ve depolama IS bileşenleri arasındaki kesin ayrım (Şekil 3) değişimi kolaylaştıracaktır.


 Özellikle nesne tabanlı sistemler uygulamada göreli olarak aık olacaktır (bir dosya sisteminin yalnızca blok yönetimi üzerindeki kontrolünü bırakması gerekecektir) ve yeni bir sınıf sürücüsü sayesinde, disk ve teyp için zaten mevcut olana benzer şekilde bir OS'in I/O alt sistemi getirilebilecektir. Intel Labs'den gelen referans her ikisinin de Linux'da [1] nasıl yapılabildiğini göstermektedir.


Bu bölümün kalanı, özellikle de bir OSD'ye olan arayüzü, bir nesneyle ilgili özellikler, nesne tabanlı depolama için kullanılan güvenlik mimarisi ve daha akıllı depolama cihazları için nesnelerin sunduğu olanaklar olmak üzere, nesne tabanlı mimariyi daha derinlemesine tarif etmektedir.

VERİ PAYLAŞIMI

Nesnelerin geliştirilmiş veri paylaşımı, hem daha üst düzey arayüzden hem de depolanan veriyi tarif eden özelliklerden kaynaklanmaktadır.

Ara yüz— Nesne tabanlı depolamanın ara yüzü bir dosya sistemine çok benzemektedir. Nesneler günümüzde tıpkı dosyaların yapılabildiği gibi oluşturulabilmekte veya silinebilmekte, okunabilmekte veya yazılabilmekte veya hatta belli özelliklerine göre sorgulanabilmektedir. Dosya arayüzlerinin kolay anlaşılabilir olduğu, doğrudan standartlaştırılabildiği (örneğin CIFS, NFS) görülmüştür ve dolayısıyla farklı platformlar arasında paylaşımı mümkündür.

Ara yüz aynı zamanda bir nesne içindeki verinin işlenmesi için uygulamaya özel yöntemlerle kolaylıkla genişletilebilmektedir ve bu tekniğe aktif diskler adı verilmektedir [2]. Örneğin, bir veri tabanı filtresi bir nesneyle ilişkilendirilebilir ve bunun çıktısı da takip eden okuma operasyonlarında geri gönderilebilir. Dahası bir OSD QoS veya güvenlik garantileri gibi uygulamaya özel parametreleri içermesi için, depolama uygulamalarına cihaz üzerinde oturum açma izni verebilir. Kısacası nesneler depolama cihazları üzerinde, cihazların depolama uygulamalarına ve hatta istemcilere tekil davranmasına olanak sağlayacak bir mekanizma getirir.

Özellikler — Özellikler, depolama uygulamalarının veriyi tarif eden ortak bir bilgi seti (örneğin erişim saatleri) paylaşmasına izin vererek veri paylaşımını geliştirir. Bunlar aynı zamanda nesnelere nasıl erişildiğiyle ilgili depolama cihazlarına bilinç vermenin anahtarı konumundadır.
Birçok konumlandırmada, özellikler en azından birçok UNIX dosya sisteminde kullanılan temel veri yapısı olan bir indeks nodunda (inode) bulunan bilgilere benzer bilgiler içerecektir. Bir inode'da erişim zamanı, boyut ve grup ve kullanıcı bilgisi gibi dosya özellikleri yer alır ve bunların her biri nesne verisiyle birlikte etkin bir şekilde depolanır ve bazı durumlarda depolama cihazı tarafından yorumlanır. Örneğin, boyut özelliğini güncelleyen bir yazdırma işlemi, izleyen yazdırma taleplerine yansıyacaktır ve güncellemenin nesneye erişen diğer depolama uygulamaları tarafından görünür olmasını sağlayacaktır. Kümelenmiş uygulamalar bu nedenle bu metadatayı tutma sorumluluğunu, performansı azaltabilecek bir bant içi (örneğin veri yolu üzerinde) bir metadata sunucusuna delege etmek yerine, bu sorumluluk için depolama cihazına güvenebilir.

Bu dosya benzeri özelliklerin ötesinde, nesneye olası erişim düzenleri (örneğin sıralı veya rastgele erişimli) veya hatta diğer nesnelerle ilişkileri gibi sunulabilecek ek bilgiler sunulabilmektedir.

Örneğin bir depolama cihazı üzerindeki multimedya dosyaları, onların bir grup olarak organize edilmelerini ve etkin bir şekilde yönetilmelerini sağlayacak aynı özelliklere sahip olabilir.

GÜVENLİK

Güvenlik belki de nesne tabanlı depolamayı blok tabanlı depolamadan ayıran en önemli tekil özelliktir. Güvenlik SAN'larda cihaz ve yapı düzeyinde olmamakla birlikte (örneğin cihazlar bir güvenli giriş gerektirebilir ve anahtarlar zoning uygulanmasını engelleyebilir), nesneler büyük cihazların veya yapıların çoklu güvenli alanlara bölünmesine izin verir bunların her birinin erişim politikası depolama uygulaması tarafından ayrı ayrı belirlenir. Nesne tabanlı güvenlik mimarisinde [3] her erişim yetkilendirilmiştir ve yetkilendirme, veri yolunu yavaşlatabilecek bir merkezi otoriteyle iletişim kurmadan gerçekleştirilmektedir (Şekil 4).

Şekil 4'te yer alan depolama uygulaması her bir dosyayı ayrı bir anahtar olarak depolayan bir dosya sunucusu olabilir.



Bu mimari, Şekil 2'de gösterilen SAN dosya sisteminin aynısıdır ancak arada yalnızca bir tane önemli farklılık bulunmaktadır: artık istemcilere ve ağa artık güvenilmesi gerekmemektedir. Bunun anlamı, istemcilerin ve depolama cihazlarının, yetkisiz istemcilerin depolama alanına erişim riski veya yetkili istemcilerin depolama alanını yetkisiz bir şekilde erişmesi riski olmaksızın, ağ üzerinde herhangi bir yerde olabilmesi anlamına gelir.
Bir nesne tabanlı güvenlik sistemindeki temel yapı taşı, bir istemcinin haklarının değiştirilemeyen bir tarifini içeren, kriptografik olarak güçlü bir kabiliyettir. Bu kabiliyet güvenlik politikasını temsil eder ve depolama cihazlarını yöneten ve istemcilere haklar veren bir nesne yöneticisi tarafından bant dışında (yani ana veri yolu dışında) oluşturulur. Bu kabiliyete sahipken, istemci depolama cihazına erişebilir ve kabiliyetin veya talebin değiştirilmediğini temin etmek için kabiliyetin sağlamlığını doğrulamak depolama cihazının işi olmaktadır.

Dolayısıyla OSD politika yerine güvenliğin sağlanması için gerekli mekanizmayı sunar ve bu da depolama uygulaması tarafından belirlenir. Politikanın mekanizmadan ayrıştırılması, ölçeklenebilir bir güvenlik mimarisinin kurulmasında anahtar rolü oynamaktadır. Özellikle, cihaz üzerinde istemciye özel kimlik doğrulama bilgisi bulunması, depolama cihazının sistemdeki istemci sayısı ve türünden bağımsız bir şekilde ölçekleneceği anlamına gelir.

OSD istemcinin kimlik doğrulamasını sorgulamamakla birlikte, kabiliyetinin tamlığını doğrulamak veya nesne yöneticisinin istemciye erişim verdiğini kanıtlamak için bazı mekanizmalara ihtiyacı bulunmaktadır. Bu garantinin sağlanması, nesne yöneticisinin ve cihazın, kabiliyetin içeriklerinin bir güvenli hashini yaratmakta kullanılabilecek bir gizli bilgi paylaşmasını gerektirir. İstemciye bu kabiliyet verilmeden önce, yönetici öncelikle gizli bilgiyi anahtar olarak kullanarak, kabiliyetin bir anahtarlı hashini oluşturacaktır.

Daha sonra, kabiliyet anahtarı olarak adlandırılan güvenli hashi, istemciye geri gönderecektir. İstemcinin, bu kabiliyet anahtarını, OSD'ye gönerilen her bir talep için kendi anahtarlı hashini oluşturmakta kullanması beklenmektedir. Bu hash, kabiliyeti değişikliğe karşı koruyan kabiliyet hashine benzer şekilde komutu tespit edilemeyen değişikliklere karşı korur.

Bir OSD'ye gönderilen talep, komut, istemci kabiliyeti ve talebin tamamının bir bir imzasını (veya özeti) içerir. Yeni bir talebin alınmasının ardından OSD öncelikle istemci özetini doğrulamalıdır. OSD talep için kendi özetini oluşturacaktır ve bunu istemci tarafından gönderilen özetle karşılaştıracaktır.2 Bunlar eşleşirse, OSD'ye, talepteki kabiliyetin veya değişkenlerin değiştirilmediği konusunda garanti verilir. Bunlarden herhangi birinin değişmiş olması durumunda, OSD tarafından üretilen özet, istemci tarafından gönderilenden farklılık gösterirdi ve OSD talebi reddederdi; OSD tarafından istemciye gönderilen bütün yanıtlar, istemciden gönderilene benzer özetler kullanılarak korunabilir.

Bazı ortamlarda nesne tabanlı depolama aynı zamanda veri transferlerinin gizliliğini temin etmeli ve gecikme ve yeniden okuma saldırılarına karşı korumalıdır. Güvenilir bir kanalın yokluğunda (örneğin IPSec), nesne tabanlı depolama güvenlik mimarisi kabiliyet anahtarının bir kriptolama anahtarı olarak kullanılmasına izin verir ve istemciyi ve depolama cihazlarını gözetleme saldırılarına karşı korur.

Gecikme ve yeniden çalma saldırıları, sırasıyla her bir I/O'ya istemci tarih bilgisi ve dizge sayısı eklenerek engellenir. Tarih bilgisi, komutun geçerli olacağı küçük bir pencere oluşturacaktır. Komut depolama cihazı tarafından bu pencere dışında alınırsa, yetkilendirilmeyecektir. Benzer şekilde, depolama cihazı her bir komutun dizge sayısını kontrol edebilir ve zaten yürütülmüş olanları reddedebilir.
Her I/O sırasında nene yöneticisine bir yolculuk yapılmasını engellemek için istemciler kabiliyetleri saklayabilir ve yeniden kullanabilir. Nesne yöneticisi, kabiliyet içine son tarihler yerleştirerek veya depolama cihazı çinde yeni bir sır oluşturarak saklanmış kabiliyetleri iptal edebilir.
Nesne yöneticisi veri yolu üzerinden alınmış olsa da, hala tekil bir hata veya saldırı noktasıdır.


Eğer nesne yöneticisi riskliyse, sistem risklidir. Kullanılabilirliği artırmak için kümelendirme kullanılabilir, ancak bunun maliyet daha fazla saldırı noktasıdır. Bu sorunlar nesne tabanlı depolamaya özel değildir ve geleneksel dosya sunucularının günümüzde mücadele ettiği sorunlarla aynıdır. Nesne tabanlı depolamanın amacı, dosya sunucularının kullanılabilirliğini artırmak değil, sunucuları ana veri yolları üzerinden çıkararak ve depolama cihazlarına doğrudan güvenli erişim sağlayarak, sisteminin bütününün performansını ve ölçeklenebilirliğini iyileştirmektir.

ZEKA

Nesne tabanlı depolamanın ortaya çıkmasıyla birlikte, depolama cihazlarının içinde çalıştıkları ortamın önemli özelliklerini aktif olarak öğrenme potansiyelleri de ortaya çıkmaktadır. Günümüzde depolama cihazları büyük oranda kullanıcılardan ve depolamayı kullanan uygulamalardan habersizdir, çünkü blok tabanlı cihazlar opak veri blokları yönetmektedir. Nesneler sayesinde depolama cihazları, cihaz üzerindeki bloklar arasındaki bazı ilişkileri anlayabilir ve bu bilgiyi veriyi daha iyi organize etmek ve ihtiyaçları öngörmek için kullanabilir.
Nesne özellikleri nesneyle ilgili statik bilgiler (örneğin oluşturulma zamanı), her erişimde güncellenen dinamik bilgiler (örneğin son erişim zamanı), bir depolama uygulamasına özel bilgi ve cihaz tarafından yorumlanmayacak bilgi (örneğin dosya adı, grup veya kullanıcı kimlikleri) ve mevcut kullanıcıya özel bilgiler (örneğin QoS anlaşması) içerebilir. Özellikler aynı zamanda, beklenen okuma/yazma oranı, en olası erişim düzeni (örneğin sıralı veya rastgele) veya nesnenin beklenen ömrü gibi, nesnenin davranışı hakkında da ipuçları içerebilir.  Bu özelliklere erişimin bulunması, bir depolama sisteminin veriye daha iyi organize etmesini ve sunmasını sağlar.

Depolamanın daha iyi yönetilmesi için nesnelerin kullanılması, akademik araştırmanın aktif alanlarından biridir. Üzerine gidilmesi gereken en büyük sorulardan biri, özelliklerin kendisiyle ilgilidir, özellikle de nesnelerin davranışlarının sınıflandırılmasında en kullanışlı olan özellikler. Geçmiş araştırmalar, dosya davranışlarının belirlenmesinde dosya özelliklerinin içsel bir rol oynadığını göstermiştir [4,5]. Örneğin, bir dosyanın adı, dosyaya ne şekilde erişileceğini tahmin etmekte kullanılabilir.  Nesne tabanlı depolama için bunun paralelleri mevcuttur.
Genellikle nesneler, depolama cihazlarının, içinde çalıştıkları ortamın farkına varabildikleri ve böylece kaynakları daha iyi tahsis edip karşılayabildikleri, özellik bazlı öğrenme ortamlarına olanak sağlar. Dahası, depolama ve kullanıcı uygulamalarıyla ilgili artan bilgi sayesinde, depolama cihazları uygulamaya özel fonksiyonlar yürütebilir ve böylece SAN'ı bir hesaplamalı kaynak haline getirir. Gerçekten de depolama cihazlarının kendilerin de, işlemcileri, ağ bağlantıları ve hafızalarıyla, birer bilgisayardır. Daha etkili arayüzler yoluyla bir kaynaklar daha etkin olarak kullanılabilir.

İLGİLİ ÇALIŞMALAR

Nesne tabanlı depolamanın ilkel biçimleri, Carnegie Mellon'dan [6] Hydra OS ve Intel'den iMAX432 OS [7] dahil olmak üzere, nesne yönelimli işletim sistemleri ile ilgili yapılan erken çalışmalarda (yaklaşık 1980) bulunabilir.


 Bu işletim sistemleri yalnızca dosya depolamak için değil, işlem durumu, talimatlar ve veri dahil olmak üzere, bir OS içindeki sayfalanabilir bütün varlıkların depolanması için disk üzerinde değişken büyüklükte nesneler kullanır. Bu işletim sistemleri hiçbir zaman öne çıkmamış da olsa, kabiliyet tabanlı güvenliğin temellerinin kurulmasında yararlı oldular.

Massachusetts Institute of Technology'den SWALLOW projesi [8] (yaklaşık 1980), dağıtılmış nesne depolamayı uygulayan ilk sistemnelrdn biriydi ve erken dosya sunum mimarilerinin bir öncülüydü.

Nesne tabanlı depolama konusundaki ufuk açıcı çalışma, Carnegie Mellon University’nin  Parallel Veri Laboratuarında (PDL) Network Bağlantılı Güvenli Diskler (NASD) projesiyle gerçekleşti [9]. Mimari, tekil disklere maliyet etkin bir biçimde, özellikle ağ oluşturma ve temel depolama alanı yönetimi fonksiyonelliği için işlem gücü eklemeye odaklandı. Bu araştırma, Ulusal Depolama Endüstrisi Konsorsiyumu (NSIC) himayesi altında olan ve daha büyük ve sektör tarafından sponsorlanan bir projeye yol açtı. Bir dizi depolama şirketi bu işbirliğine katıldı ve NASD ağ bağlantılı depolama cihazlarına genelleştirildi, burada tekil sürücüler, izinler, kontrollörler ve aletler arayüz değişiminden yararlanabildi.  Bu çalışma, nesne tabanlı depolama için SCSI protokolüne bir standart eklentiyle sonuçlandı.

NSIC taslağı, Depolama Ağ Endüstrisi Derneği (SNIA) bünyesindeki Nesne Tabanlı Depolama Cihazları çalışma grubunda tanımlanmaya devam edilmektedir [11]. SNIA, 2003 yılında T10'a tamamlanmış bir SCSI taslak standardı sunmayı planlamaktadır ve aynı zamanda IP'ye doğrudan eşleştirmeler dahil olmak üzere, SCSI dışındaki aktarımlara eşleştirmeleri araştırmaktadır.

Standartlar gelişirken bile sektör hâlihazırda nesne tabanlı depolama teknolojisi kullanan sistemleri uygulamaya başlamıştır. IBM yeni nesil StorageTank'ı için nesne temelli depolama üzerine araştırma yapmaktadır [12]; National Laboratories ve HewlettPackard, temel depolama ara yüzü olarak nesne temelli depolamayı kullanarak yüksek düzeyde ölçeklenebilir Lustre dosya sistemini kurmaktadır [13]; ve daha küçük şirketler ve yeni kurulan şirketler, (BlueArc, Data Direct ve Panasas), nesne temelli depolama kullanan cihazlar üretmektedir. Bell Laboratories'deki Venti projesi ve EMC'deki Centera projesi de, referans verilerin arşivlenmesi için bir kere yazılır medya uygulaması için nesne temelli depolama konseptleri kullanmıştır. Her iki sistem de, bir nesnenin kimliğinin (Venti aslınnda değişken boyutluk bir blok kullanmaktadır) veri içeriğinin özgün bir hashi olduğu bir içerik adreslenebilir depolama (CAS) kullanmıştır.

Akıllı depolama akademik araştırmanın popüler bir alanıdır. Carnegie Mellon'un PDL'i, sunucu işletim sistemleri ve depolama cihazları arasında daha etkin arayüzlerin kullanımı için araştırma yapmaya devam etmektedir [2, 14]. Bu tür arayüzlerden biri olarak nesneler, depolama sistemi içinde daha iyi fonksiyonellik ve performans elde etmek için cihaz ile OS arasında bilgi alışverişine imkan sağlamaktadır. Madison'daki Wisconsin Üniversitesi'nde çalışan araştırmacılar, mecut blok temelli arayüzlerin ardındaki dosya sistemi yapılarını öğrenmeye çalışan semantik akıllı disk sistemleri hakkında, alternatif bir yol üzerinde araştırma yapmaktadır [15]. 

Diğer birçok araştırma grubu da depolama düzeyinde zeka üzerinde araştırma yapmaya başlamış bulunuyor.


ÖZET

Blok tabanlı ara yüzler hem depolama cihazlarında hem de depolama uygulamalarında önemli gelişmelere imkan sağlamış olsa da, artık daha fazla gelişimin cihaz ara yüzünde bir değişim gerektirdiği bir noktaya varmış bulunuyoruz.

Nesne ara yüzü, güvenli ve platformlar arasında paylaşımı kolay olan, ancak aynı zamanda yüksek performanslı olan, ve dolayısıyla dosyalar ve bloklar arasındaki yaygın ödünleri ortadan kaldıran bir depolama sunmaktadır. Dahası, nesneler depolama cihazlarına depolama uygulaması hakkında bir bilinç sunar ve cihazda daha akıl olmasını sağlar.

Nesne tabanlı depolama, depolama cihazlarının artan kabiliyetlerini kullanmak üzere tasarlanmıştır. Gelecekteki depolama cihazlarının özellikleri arasında kendi kendine konfigürasyon, öz koruma, öz optimizasyon, öz iyileştirme ve öz yönetim yer alabilir. Blokların yerine nesnelerin koyulması bu evrimleşmede önemli bir adım olabilir.

Teşekkürler.


Behreng Nami
Kıdemli Danışman

Seagate@vitel.com.tr