29 Ekim 2014 Çarşamba

Nesne Tabanlı Depolama - Object Storage




Nesne depolama nedir?

Nesne tabanlı depolama adı da verilen nesne depolama, nesne adı verilen ayrık depolama birimlerini adreslemeye ve işlemeye yönelik bir yaklaşımı ifade eden genel bir terimdir.  Depolama nesneleri verinin hem bağlamı hem de içeriği hakkında bilgi içerir.

Nesneler de tıpkı dosyalar gibi veri içerir, ancak dosyaların aksine nesneler bir hiyerarşi içinde düzenlenmiş değildir. Her nesne, bir depolama alanı adı verilen bir düz adres alanında aynı seviyede yer alır ve bir nesne diğerinin içine yerleştirilemez.

Hem dosyalarda hem de nesnelerde, içerdikleri veriyle ilgili metadata bulunmaktadır, ancak nesneler, genişletilmiş metadatalarıyla karakterize edilir. Her nesneye bir benzersiz tanıtıcı atanır ve bu, bir sunucunun veya son kullanıcının, nesnenin fiziksel konumunu bilmeden veriyi almasını sağlar. Bu yaklaşım, bulut bilgisayar ortamlarında veri depolamayı otomatize etmek ve düzenlemek için kullanışlıdır.

Nesne depolama genellikle lüks bir lokantada arabanın vale tarafından park edilmesine benzetilir. Müşteriler vale park hizmetini kullandığında, bir makbuz karşılığında arabasının anahtarlarını verir. Müşteri, yemek yediği sırada arabasının nereye park edildiğini veya bir görevlinin arabanın yerini kaç kez değiştirdiğini bilmeyecektir. Bu analojiye göre bir depolama nesnesinin benzersiz tanıtıcısı müşteri makbuzunu temsil eder.


Nesne depolama dosya ve blok depolamadan nasıl farklılık gösterir

Dosya ve blok depolama daha iyi performans sunabilir, ancak granüler metadata ve sonsuza yakın düzeyde ölçeklenebilir olması, nesne depolamayı eşit düzeyde yararlı yapmaktadır.

Dosya ve blok depolamanın kullanıldığı durumlar iyi tanımlanmıştır ve onyıllardır kullanılmaktadır. Piyasada artık kullanılabilir durumda olan yeni bir depolama türü nesne depolamadır ve IT mağazalarının bir çoğunun sorduğu sorular ise "Nesne depolamanın farkı nedir? Ne zaman nesne depolama kullanmalıyım? Hangi kullanım durumları onu gerektirir? Kendi özel IT altyapıma onu nasıl uygulayabilirim?" Bu başlıkta çok şey yazılmış olmasına karşın bu sorular gelmeye devam etmektedir. Benim bakış açım ise şöyledir.


Dosya ve blok depolamaya yeniden bakış

Nesne depolamayı tanımlamak için öncelikle dosya ve blok depolamaya yeniden bakalım. Bir dosyanın bir dosya sistemi içinde yapılandırıldığını biliyoruz ve bir dosya sistemi de, dosya dizininin tarif edilmesi yoluyla her bir tekil dosyanın bulunabilmesi sağlayan, dosyaların düzenlenmesinin hiyerarşik bir yolundan başka bir şey değildir. Belirli özelliklerin - sahibi, kimin erişebileceği ve boyutları gibi, bir dosyayı ve içeriğini tarif eden bilgilerin - bir dosya sistemi içinde rahatlıkla depolanabildiğini biliyoruz. Ayrıca, bir ağ üzerinde kullanıcılar arasında güvenli bir şekilde dosya paylaşımı için en iyi yolun ağ bağlantılı depolama (NAS) olduğunu biliyoruz. Bir LAN üzerinde yerel olarak çok iyi çalışır ancak kullanıcıların bir WAN üzerinde olması durumunda o kadar iyi çalışmaz. Ve tek bir (veya az sayıda) NAS kutusunu yönetmek kolay olsa da, yüzlercesini yönetmek bir kabus gibidir. Verinin NAS kutusuna yerleştirilmesinden ve ihtiyaca göre dosyaları kilitleyerek veya kilidini açarak dosya paylaşımı uygulamaktan dosya sistemi sorumludur. Ve son olarak, dosya sistemi yüz binlerce ve hatta milyonlarca dosyayla iyi çalışmaktadır, ancak milyarlarca dosyayı işlemek üzere tasarlanmış değildir. Bu sınırlamalar iyi anlaşılmamıştı çünkü bir çok IT mağazası bu yüksek düzeyleri yakın zamana kadar test etmemişti. Özetleyecek olursak, dosyaların yerel paylaşımı için ve metadatayla ilgili dosya sayısı az ise, dosya depolama çok iyidir. Ancak doğru koşullar olduğunda, NAS dosya paylaşımı için mükemmel bir performans sunmaktadır.

Blok depolama da benzer şekilde iyi anlaşılmıştır. Blokun bir veri yığını olduğunu biliyoruz ve uygun bloklar bir araya getirildiğinde bir dosya oluşur. Bir blokun bir adresi vardır ve uygulama, o adrese bir SCSI çağrısı yaparak bloku alır. Depolamayı kontrol etmenin çok mikroskopik bir yoludur. NAS'ın aksine, verinin nereye koyulacağına ve depolamanın nasıl organize edileceğine uygulama karar verir. Blokların nasıl bir araya getirileceği veya erişileceği uygulamaya bırakılır. Adres haricinde, ki bunun da blokla ilgili bir metadata olmadığı öne sürülebilir, blokla ilişkili hiçbir depolama tarafı metadatası bulunmamaktadır. Bir başka ifadeyle, blok yalnızca hiçbir açıklaması, bağlantısı ve sahibi olmayan bir veri yığınıdır. Yalnızca onu kontrol eden uygulama, onu başka bloklarla bir araya getirdiğinde bir anlam kazanır. Doğru koşullar altında uygulamaya bu seviyede granüler kontrol verilmesi, verili bir depolama dizisinden en iyi performansı almasını sağlar. Bu nedenle çoğunlukla işlem ve veritabanı odaklı olan performans merkezli uygulamalar için blok depolama en çok tercih edilen depolama yöntemi olmuştur. Uygulama ile depolama arasına mesafe koyulması, ortaya çıkan gecikme nedeniyle bu performans avantajını ortadan kaldırır, bu nedenle blok depolama genellikle yerel olarak kullanılır. Özetleyecek olursak, blok depolamayla ilişkili anahtar sözcükler granülerlik, yüksek performans, az veya hiç metadata ve yerel kullanımdır.


Nesne depolama özellikleri

Bu tanımları gözden geçirdikten sonra şimdi nesne depolamaya bakalım. Birincisi, bir nesne, bir nesne olarak paketlenmiş bir veri (tipik olarak bir dosya) ve onun metadatası olarak tanımlanır. Bu nesneye, genellikle nesnenin kendi içeriğinden (hem dosya hem metadata) hesaplanan bir ID verilir. Bir nesne bir uygulama tarafından daima, nesne depolamaya nesne ID'sini sunarak alınır. Dosyalar ve dosya sistemlerinin aksine, nesneler düz bir yapıda depolanır. Bir nesne havuzunuz bulunur ve yapmanız gereken yalnızca nesne ID'sini sunarak verili bir nesneyi istemektir. Nesneler yerel olabilir veya coğrafi olarak uzakta olabilir, ancak aynı düz adres alanında oldukları için tamamen aynı şekilde alınırlar. Bir nesne herhangi bir metadata türü veya miktarıyla sınırlı değildir. Tercih ederseniz, nesnenin ilişkili olduğu uygulama türü; uygulamanın önemi; nesneye atamak istediğiniz veri koruma düzeyi; bu nesnenin başka bir site veya sitelere kopyalanmasını isteyip istemediğiniz; bu nesnenin ne zaman farklı bir katmana veya coğrafyaya taşınacağı ve bu nesnenin ne zaman silineceği gibi metadatalar atayabilirsiniz. Bu tür metadata, dosya sistemlerinde kullanılan erişim kontrol listelerinin çok ötesine geçer. Nesne depolamanın kullanıcıya metadatayı istediği gibi tanımlama esnekliğini sağlaması, nesne depolamaya özgü bir özelliktir. Bunun, geçmişte hayal bile edilemeyen analizler için nasıl geniş imkanlar sunduğunu görmeye başlayabilirsiniz. Yukarıda açıklandığı gibi, nesneleri doğası veri alındığında, performans nesne depolamanın ayırt edici bir özelliği değildir. Ancak depolamayı yönetmek için basit bir yönteme ve farklı coğrafyaları aşan ve zengin (ve kullanıcı tarafından tanımlanabilen) metadata sunan bir hizmete ihtiyacınız varsa, tercihiniz nesne depolama olmalıdır.

Nesne depolama kavramlarının çoğunun sonsuz büyüklükte depolama altyapılarını en az maliyetle kurmaya çalışan Web 2.0 şirketleri bünyesinde oluşması nedeniyle, nesne depolamanın çoğu, dahili doğrudan ekli depolaması olan ticari sunucu kümelerine dayanmaktadır. Buna istisnalar da vardır ve bunların en önemlisi DataDirect Network'tür ve bir nesne depolaması oluşturmak için kuşkusuz pahalı RAID dizileri kullanabilirsiniz, ancak temel kural ticari donanım kullanmaktır. Ölçekleme yalnızca ek düğümler eklemek gibi basit bir iş haline gelir. Veri koruma genellikle verilerin küme içindeki bir veya daha fazla sayıdaki düğüme çoğaltılması yoluyla gerçekleştirilir, ancak bunun istisnaları vardır (örneğin Cleversafe ve EMC Atmos'un her ikisi de veri koruma için silme kodlaması kullanır).

Nesne depolamanın doğasını anlamak için kritik olan bir başka özellik daha bulunmaktadır. Dosya veya blok depolamanın aksine, bir nesneye HTTP tabanlı REST uygulama programlama arayüzü aracılığıyla erişebilirsiniz. Bunlar Get, Put, Delete ve diğer birkaçı gibi basit çağrılardır. Basitliği bir avantajdır, ancak muhtemelen SCSI, CIFS veya NFS çağrıları kullanmak üzere yazılmış uygulamalarda değişiklik gerektirmektedir. Sorun da burada yatıyor. Bunun etrafından dolanmanın yolları vardır, ancak en temiz yaklaşım doğrudan REST tabanlı çağrılar yapabilmek için uygulama kodunu değiştirmektir. Yani kısaca, nesne depolama kolay yönetilebilir, neredeyse sonsuz düzeyde ölçeklenebilir, tek bir ad alanında coğrafi sınırları aşar ve büyük miktarda metadata taşıyabilir, ancak genellikle düşük performanslıdır ve uygulama kodunda değişiklik gerektirebilir.


Bir nesne depolama sistemini kullanmanın avantajları

Veri depolama ortamınızda bir nesne depolama sistemi uygulamanın avantajlarını öğrenin.

Ne öğreneceksiniz: Nesne depolama sistemleri, sınırsız düzeyde ölçeklenebilir olmaları, işleme ve yüksek kapasiteli ağlara daha az vurgu yapması, depolama komutları yerine Internet protokolleri aracılığıyle erişim sunması, özel metadata ve satışa hazır bileşen uyumluluğu nedeniyle, dağıtık ağ ekli depolamaya (dağıtık NAS) uygun bir alternatif haline gelmektedir. Dosya veya blok bazlı sistem gördüğümüz yerlerde artık bir nesne depolama sistemi görmekteyiz ve kamusal ve özel bulut depolama söz konusu olduğunda bu özellikle geçerli olmaktadır. Bu uzman makalesinde Jacob N. Gseoedl nesne tabanlı depolama sistemlerinin nasıl çalıştığına ve nasıl bulut depolama altyapısının yapı taşları haline geldiklerine ilişkin derinlikli bir açıklama sunmaktadır.

Seçilebilecek onca blok ve dosya bazlı depolama sistemi varken, bariz soru neden bir başka depolama teknolojisine ihtiyaç duyacağımız şeklindedir. Blok ve dosyanın her ikisi de olgunlaşmış ve kanıtlanmıştır, dolayısıyla giderek daha fazla dağınık ve bulut özellikli hale gelen bilgisayar ekosisteminin ihtiyaçlarını karşılamak için geliştirilebilir oldukları düşünülebilir.


Blok tabanlı depolamada diskler üzerindeki bloklara SCSI komutları gibi alt düzey protokoller aracılığıyla erişilir ve az yük oluşur ve ek soyutlama katmanları oluşmaz. Diskler üzerindeki veriye ulaşmanın en hızlı yoludur ve çok kullanıcılı erişim, paylaşım, kilitleme ve güvenlik gibi bütün üst düzey görevler işletim sistemlerine ötelenir. Bir başka ifadeyle blok tabanlı depolama bütün alt düzey tesisat işlerini halleder ancak diğer her şey için üst düzey uygulamalara bağımlıdır. Her nesne depolama sisteminin bir blok tabanlı depolama düğümü vardır ve nesne depolama yazılım yığını diğer özellikleri sunar.



Blok tabanlı depolama nesne depolamanın tamamlayıcısı olarak kabul edilebilir olsa da, dosya tabanlı depolama onun doğrudan rakibi konumundadır. Ölçeklenebilirlik teme özelliği, dağınık NAS sistemleri tarafından desteklenir ve bunlar, nesne depolamaya benzer şekilde, düğüm eklenerek yatayına ölçeklenebilir. Ancak sınırlı ad alanı olan hiyerarşik dosya yapılarına dayandıkları için, yalnızca nesne ID'sinin bit sayısı tarafından sınırlandırılan, saf nesne depolamanın neredeyse sonsuz ölçeklenebilir düz yapısından daha kısıtlıdırlar. Daha sınırlı olsa da, dağınık NAS sistemleri nesne depolamanın birçok özelliğine sahiptir ve temsili durum transferi (REST) protokol desteği gibi eksik özellikler de satıcılar tarafından hızlıca eklenmektedir, böylece dağınık NAS sistemlerini nesne depolama olarak sınıflandırabilmektedirler. Hewlett-Packard (HP) Co.'nun deolama Bölümünde üst düzey ürün müdürü olan Patrick Osborne, "HP Ibrix X9000 Depolama ve onun WebDAV ve REST desteği ve ayrıca CIFS, NFS ve büyük ölçeklenebilirliği sayesinde, nesne depolama alanında açık ara lider konumundayız" şeklinde konuştu.


Nesne depolamayı tanımlamak

Açık ki nesne depolama farklı insanlara farklı şeyler ifade ediyor, dolayısıyla kabul gören tek bir tanımı bulunmuyor. Bir depolama sisteminin ne düzeyde nesne depolama olduğunu analiz etmek için, zorunlu olan veya "olsa iyi olur" türde özelliklere bakılması gerekmektedir.


Nesneler.

Blokları veya dosyaları yönetmek yerine bir saf nesne depolama sistemi nesneleri yönetir. Daha kesin söyleyecek olursak, bütün modern nesne depolama sistemleri dosyaları nesneler olarak yönetir. Nesneler, tıpkı dosya temelli depolama sistemlerinde dosyaların dosya dizini aracılığıyla adreslendiği gibi, bir benzersiz tanımlayıcı üzerinden adreslenir. Nesneler bir düz adres alanında depolanır ve bu durum karmaşıklığı ve dosya temelli depolama tarafından kullanılan hiyerarşik dosya sistemlerinin ölçeklenebilirlik zorluklarını ortadan kaldırır.


Metadata.

Nesneler, nesnede yer alan veri hakkında bağlamsal bilgi içeren metadatayı ve yükü, bir başka ifadeyle asıl veriyi içerir. Dosya temelli depolama sistemlerinde metadata dosya özellikleriyle sınırlıdır; saf nesne temelli sistemlerde metadata istenilen sayıda özellikle zenginleştirilebilir. Bunu bir dosya temelli sistemle yapmak için bir, dosyalarla ilgili ek bilgiyi işlemek için bir uygulama (veritabanı olan) ihtiyacınız olur. Özel metadata sayesinde bir dosya (nesne) ile ilgili bütün bilgiyi nesnenin kendisi içinde depolayabilirsiniz. Milford, Mass.'de bulunun Enterprise Strategy Group (ESG) üst düzey bir analist olarak çalışan Terri McClure, "Özel metadata zengin ve bağımsız dosya nesneleri oluşturulmasına imkan sağlar ve bunlar da nesne depolamada depolanabilir ve böylece azaltılmış yönetim yükü olan devasa yapılandırılmamış veri depolamalarının oluşturulması mümkün hale gelir," dedi.


Sabit nesneler.

Saf nesne depolama, sabit içerikli bir veri havuzunu temsil eder; bunun anlamı, nesneler yaratılabilir, silinebilir ve okunabilir, ancak bulundukları yerde güncellenemezler. Bunun yerine, nesneler yeni nesne sürümleri oluşturularak güncellenmektedir. Bunun sonucunda, kilitleme ve çok kullanıcılı erişimin yarattığı zorluklar - ki bunlar dosya tabanlı sistemlerin en büyük derdidir - nesne depolamada yoktur. NetApp Inc.'te veri yaşam döngüsü ekosistemi grubunun başkan yardımcısı olan Tim Russel, "Çok kullanıcılı sistemler aynı dosyayı [nesneyi] eşzamanlı olarak güncellerse, nesne depolama sistemi basitçe dosyanın farklı versiyonlarını yazacaktır" dedi. Yerinde güncellemeleri desteklebmek zorunda olmamak, nesne depolamayı dağınık depolama ve dağınık erişim için en uygun seçenek yapar.


Yedekleme.

Nesne depolama yedeklemeyi ve yüksek düzeyde kullanılabilirliği, aynı nesnenin kopyalarını farklı düğümlere depolayarak gerçekleştirir. Bir nesne oluşturulduğunda bir düğüm üzerinde oluşturulur ve daha sonra, bulunduğu yerdeki politikalara bağlı olarak bir veya daha fazla sayıda düğüme kopyalanır. Düğümler aynı veri merkezinde yer alabilir veya coğrafi olarak dağınık olabilir. Yerinde güncelleme desteğinin bulunmaması, çok düğümde kopyalı nesne yedeklemeyi çok az bir zahmetle mümkün hale getirir. Geleneksel depolama sistemleri için, kopyalanmış (çoğaltılmış) dosyaları ve blokları çoklu örnekler arasında senkronize halde tutmak çok zor bir iştir; çok karmaşıktır ve yalnızca, örneğin tanımlı gecikme kısıtlamaları gibi bir dizi çok katı sınırlama altında yapılabilir.


Protokol desteği.

Geleneksel blok ve dosya bazlı protokoller aynı veri merkezi içinde iyi çalışır ve burada performans iyidir ve gecikme bir sorun değildir. Ancak gecikmenin öngörülemez olduğu coğrafi olarak dağınık erişim ve bulut için uygun değillerdir. Ayrıca, geleneksel dosya sistemi protokolleri (CIFS ve NFS), dahili ağlar üzerinde bulunan, ancak nadiren Internete açılan portlar üzerinde mevcuttur. Nesne depolamaya ise tersine, genellikle HTTP üzerinden REST API üzerinden erişilir. Nesne depolamaya HTTP üzerinden gönderilen komutlar basittir: bir nesne yaratmak için put, bir nesneyi okumak için get, bir nesneyi temizlemek için dele ve nesneleri listelemek için list.


Uygulama desteği ve entegrasyonu.

Geleneksel veri depolama protokol desteği ve bir REST API'ye dayanmak zorunda olması, nesne depolamanın erişilebilir olması için entegrasyon çabalarını gerektirmektedir. Özel uygulama entegrasyonuna ek olarak, bazı ticari uygulamalar, özellikle yedekleme ve arşivleme amaçlı olarak, nesne depolama entegrasyon desteğine eklenmiştir ve temel olarak Amazon S3 bulut depolamaya bağlantı kurmaktadır. Sektör standartlar üzerinde anlaşma varmak için çabaladığı için, yaygın bir nesne depolama entegrasyonu halen çok az bulunmaktadır. Genellikle bulut depolama ağ geçitleri adı verilen nesne depolama ağ geçitleri, nesne depolamayla iletişim kurmanın bir başka yolunu sunmaktadır. Geleneksel ve nesne depolama arasında yer alırlar ve genellikle önceden tanımlanmış politikalar yoluyla ikisi arasında gidip gelirler.


Bulut özellikleri.

Bulut depolama ve Web 2.0 uygulamaları nesne depolamanın kilit hedefleri olduğu için, internet üzerinden paylaşımlı erişimle ilgili özellikler yararlı olmaktadır. Çoklu kullanım hakkı ve farklı kullanıcıların verilerini güvenli bir şekilde ayrıştırmak, bir nesne depolama ürününün işletme ötesinde kullanılması için olmazsa olmaz özelliklerdir. Güvenlik, şifrelemenin ötesinde bir şeydir ve kullanıcılara, ad alanlarına ve nesnelere erişimin kontrol edilmesi için destek içermelidir. Hizmet düzeyi anlaşması (SLA) yönetimi ve çoklu hizmet düzeylerini destekleme yeteneği, bulut kullanımı için önemlidir. Örneğin nesne örneği sayısı ve her bir örneğin nerede depolanacağı gibi SLA'ların uygulanmasına yardım eden bir politika motoru, her nesne depolama ürünün sunması gereken yararlı bir hizmettir. Ayrıca kullanım ölçümü ve ücretlerin otomatik olarak takip edilmesi bulut kullanımı için vazgeçilmezdir.


Kullanım durumları.

Saf nesne depolama, veritabanları gibi sık değişen işlemsel veriler için yetersiz kalmaktadır. Ayrıca paylaşılan dosyalara erişim için NAS'nin yerini almak üzere tasarlanmamıştır, çünkü bir dosyanın tek "gerçek" halini sağlayan kilitleme ve dosya paylaşım hizmetlerine sahip değildir; bunun yerine nesne depolama bir dosyanın çoklu ve muhtemelen uyuşmayan versiyonlarını sunmaktadır. Nesne depolama, sık güncellenmeyen yapılandırılmamış veri için çok büyük düzeyde ölçeklenebilir veri depolama olarak, inaktif veri için işlemsel depolama katmanlarının ötesinde bir ek depolama katmanı olarak veya bir arşiv depolama olarak iyi çalışmaktadır. Bulut alanında dosya içeriği, özellikle görüntüler ve videolar için çok uygundur. Hitachi Data Systems'de (HDS) üst düzey ürün pazarlama müdürü olan Jeff Lundberg, "Günümüzde nesne depolama, medya, eğlence ve sağlık sektörlerinde görülün ve aynı zamanda arşive yönelik işlem sonrası türde veri için çok iyidir" şeklinde konuştu. "Ancak performans arttıkça ve özellikler olgunlaştıkça, yalnızca bulut depolamayı desteklemekle kalmayacak, ancak dağınık IT ortamlarına imkan sağlayacaktır."



Seagate Kinetic Simplifies Object Storage - Nesne Tabanlı Depolama 
Türkçe Altyaılı: http://www.youtube.com/watch?v=lfyjKO7bafg&feature=youtu.be


Behreng Nami
Kıdemli Danışman

Detaylı bilgi için: Seagate@vitel.com.tr



Hiç yorum yok:

Yorum Gönder