Perşembe, 17 Ağustos 2017

Nutanix – Storage Mimarisi Nasıldır ?

Merhaba,

Bu makalemde sizlere hiper bütünleşik ve yazılım tabanlı veri depolama çözümü olan Nutanix’in veri depolama katmanı hakkında daha fazla bilgi vermeye çalışacağım. Nutanix çözümü, kendi içerisinde özel bir yedeklilik mimarisi bulunan ve kümelenmiş şekilde veriyi saklayarak tekil-nokta-hatalarına karşı toleranslı olan bir veri depolama sistemi bizlere sunuyor. Bu sistemdeki veri yedekliliği çok bilinen RAID tabanlı mimariyi değil fiziksel uç birim tabanlı bir yedeklilik mekanizması ile korunuyor ve bu sayede bir fiziksel sistemdeki tüm disk’leri kaybetseniz dahi sisteminiz kesintisiz olarak çalışmaya devam ediyor.

Şimdi gelin isterseniz biraz detaylara girelim ve ilk andan itibaren storage sekmesi ve yeni bir alanın oluşturularak sanal sisteme tanıtılmasını görelim.


Storage tabına geldiğimizde ekranın sağ üst köşesinde 3 adet tanım görüyoruz


Storage pool:

Fiziksel SSD-HDD disklerin birleştirilerek oluşturulduğu veri depolama havuzu bütünüdür. Nutanix önerileni tüm node’lar diskleri tek bir storage pool da birleştirmek ve tüm disklerin bu pool’a atanmasıdır. Böylece ssd ile hdd nin data akışı optimal seviyede olacaktır.


Container:

Pool altında Container’lar oluşturulur. Container’ları datastore’lar yada geleneksel sistemlerdeki LUN gibi düşünebilirsiniz. Fakat Nutanix’te sistem NDFS dosya sistemi olarak oluşturulur. Bu dosya sistemi hypervisor katmanına Container ile tanımlanır ve NFS protokolü kulanılır, Nfs üzerinden bağlanılan datastorelar altında sanal sunucular ve ilgili dosyaları bulunur (vmx,vmdk gibi).

Volume Group:

ISCSI protokolü kullanılarak doğrudan sistem içerisindeki yada dışarıdaki fiziksel/sanal makinelere atanmış diskler tanımlamak için kullanılan arabirimdir. Geleneksel mimaridaki RDM’ler gibi düşünülebilir.

Ben bu Lab için bir adet Pool oluşturuyorum varolan sistemdeki tüm diskleri kullanacağımı belirterek oluşturduğum pool bana 11 TB depolama alanı sağlıyor.


Pool’u oluşturduktan sonra Container a geliyorum burada yapmamız gereken işlem kullanacağımız veri tipine göre container’lar oluşturmak olacaktır. Eğer genel sanallaştırma için kullanacak isek tek bir container oluşturmamız yeterlidir.


Container’ı oluştururken tekilleştirme ve sıkıştırma gibi verimlilik artırıcı özellikler ve Erasure Coding ya da özel tanımlar yapmak için Advanced Settings tabına geliyoruz


Yeni açılan bu sekmeden Replication factor ve container kapasitesi girebiliriz eğer sizin böyle bir tercihiniz ya da limitasyonunuz yoksa kapasite girmeye gerek yok.

Replikasyon Faktör Verinin kaç kopyasının tutulacağını belirler. Defualt RF2 dir yani iki kopya tutar. 1 node’da problemine karşı sistemi korur. RF3 ise 2 node koruma sağlar.

RF2 de raw disk 10TB ise 1 kopya tutacağı için net disk 5TB düşecektir.


Erasure Coding: 6 node ve daha geniş sistemlerde devreye alınması önerilmektedir. Normalde Nutanix verinin tam bir kopyasını farklı node’daki diğer bir diske de yazılır. Node/Diskler arıza oluşması durumunda bu kopyalar otomatik olarak devreye girer ve sistem kesintisiz çalışmaya devam eder. Nutanix NDFS sistemini oluşturduktan sonra her veriyi replikasyon faktörü kadar kopya ile saklar. Bu standartta iki kopyadır. Dolayısı ile sistemde varolan ham disk kapasitesinin kabaca yarısı kadar bir alan net ve yedekli depolama alanı olarak görüntülenir.

6 node ve sonrasında dilenirse bu özellik açılır. RF3 ile 2 disk parity diğerleri data block olarak çalışır. RF2 ile 1 disk parity, diğer diskler data block olarak çalışır. Disk kazanımı sağlar. Önemli nokta bu özellik sonradan açılamaz. Başında açılmalıdır.

For example, “RF2 like” availability (e.g., N+1) could consist of 3 or 4 data blocks and 1 parity block in a strip (e.g., 3/1 or 4/1).  “RF3 like” availability (e.g. N+2) could consist of 3 or 4 data blocks and 2 parity blocks in a strip (e.g. 3/2 or 4/2).

En önemli ve fark yaratan özelliklerden olan tekilleştirme ve sıkıştırma bildiğiniz gibi bazı hiper bütünleşik ürünlerinde bu fonksiyonları kullanabilmek için için full SSD sistemlere ihtiyacınız oluyor Nutanix için böyle bir durum geçerli değil kendi üzerinde gelen SSD ve HDD ile hibrid disk yapısı sayesinde bütün modelleri için tekilleştirme ve sıkıştırma kullanılabilir olmasıdır.



Compression:


https://www.youtube.com/watch?v=ERDqOCzDcQY&feature=youtu.be

Container altında Compression ve deduplication aktif edilir. Compression ile veri sıkıştırılırken deduplication ile veri tekilleştirilir. Compression iki şekilde olmaktadır.

In-line: Büyük veri yada sıralı I/O operasyonlarında data diske yazılırken sıkıştırılır. Böylece performas kaybı yaşanmaz. Performans kazandırılır. I/O random gelirse compress yapılmadan OpLog’a yazılır. .

Post-Process: Rastgele gelen I/O işlemleri yada küçük veri sıkıştırılmadan SSD diske yazılır. Sonrasında kaynaklar yeterli olduğunda NL-SAS disklere compress edilerek yazılır. Birleştirilir ve sonrasında memory’de sıkıştırılarak NL-SAS disklere yazılır.

Aşağıdaki yapı inline compression’ın DSF ile I/O etkişeminin göstermektedir.


Not: Compression 0 delay seçilirse. Inline compress çalışır. Random gelen I/O işleri uncompress olarak saklanır. .

Bu işlem offline compress olarakta düşünülebilir. Yeni gelen random veri uncompress saklanır DSF I/O path’ine iletilir.Compress delay sonunda ise data COLD hale gelir(down-migrated to the HDD tier via ILM), Artık data compress edilebilir yani compress edilerek NL-SAS disklere iletilmeye hazırdır. Veri Curator MapReduce framework aracılığı ile memory’de sıkıştırılır ve disk yezılır. Bu takın sahibi Chronos servisidir.

Aşağıdaki şema offline compress DSF I/O ilşkisini gösterir:


I/O Okuma işinde ilk veri memory’de decompress edilir. Sonra ilgili birime servis edilir. Bu daha çok fazla okunuyorsa her seferinde decompress edilmez Information Lifecycle Management (ILM)  aracılığı ile data SSD’ye aktarılarak cachlenir ve buradan ilgili birime iletilir.

Aşağıdaki şema okuma sırasında DSF I/O şemasını göstermektedir :


OpLog

https://www.youtube.com/watch?v=SULqVPVXefY&feature=youtu.be

Key Role: Kalıcı yazma arabelleği
Description: OpLog is file system journal’ına benzer. Gelen random yazma işlerini hızlandırır, veriyi birleştirir ve NL-SAS disklere aktarır.

  • Her yazma işleminde OpLog kendini diğer CVM OpLogları ile senkronize eder ve karşı tarafın veriyi yazdığına dair onay alır.
  • OpLog CVM ile SSD de saklanır. Çok hızlı şekilde özellikle random I/O yazma işlerine yardımcı olur.
  • Squencial gelen I/O işinde ise OpLog aradan çıkar veri doğrudan NL-SAS’a yazılır.
  • Eğer Kullanılmayan data halen  OpLog’da bekliyorsa bu data ile ilgili okuma işleri daha OpLog’dan temizlenene kadar OpLog tarafından yapılır.
  • Container’da fingerprinting (aka Dedupe) açık ise, tüm I/O yazma işleri hashin scheme ile fingerprinted edilir. Bu fingerprint ise datanın tüm block seviyesinde dedup olmasına hazır eder.

Per-vDisk OpLog Sizing

OpLog bir shared alandır. Bu alan pre-v disk aracılığı ile yapılır. Her Vdisk eşit özelliğer sahiptir. Buda OpLog’un V-disk seviyesinde limitlenmesini sağlar. Birden fazla Vdisk’i olan VM v-disk*disk sayısı kadar iş yapabilmektedir. Pre-vDisk Oplog limiti şuan 6FB dır (as of 4.6). Önceki versiyonlarda 2GB.
This is controlled by the following Gflag: vdisk_distributed_oplog_max_dirty_MB.

Deduplication:

https://www.youtube.com/watch?v=C-rp13cDpNw&feature=youtu.be

Tekilleştirme ile SSD, RAM, FLASH, NL-SAS disklerde disk kazanımı sağlanmaktadır. Aşağıdaki gibi uygulamalarda deduplication açılmalıdır. CVM min 24gb yapılmalıdır.


Web Appication Server Logs: Loglar compress için iyidir. Dedup için değildir.

Database: Deduplication için iyidir.

Email : Dedpuplication için iyidir.

VDI: Deduplication için iyidir.

Arşiv/Backup: Deduplication için iyidir.


Perf Tier
Dedup:

SSD disklerin verimli kullanımı için önemlidir.

Örnek 20 kullanıcı aynı anda aynı veriyi okurlarken Nutanix bir kerede bu işlemi yapıp kullanıcılara iletir. Disk kullanımı azartılır. Bu örneği VDI ortamında aynı OS’ten 50 tane olduğunu ve genelde aynı isteklerde bulunduklarını düşünün.

Capacity Tier Dedup: NL-SAS disklerde disk kazanımı sağlamak içindir.


Yapınızda benzer bir sistem yapabilirsiniz. Ben her özelliği ayrı bir Container yaptım

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir