Ö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




