Çoğaltma (bilgi işlem) - Replication (computing)

Bilgi işlemde çoğaltma , güvenilirlik, hata toleransı veya erişilebilirliği geliştirmek için yazılım veya donanım bileşenleri gibi yedek kaynaklar arasında tutarlılığı sağlamak için bilgi paylaşımını içerir .

terminoloji

Bilgi işlemde çoğaltma şunları ifade edebilir:

  • Aynı verilerin birden fazla depolama cihazında depolandığı veri çoğaltma
  • Aynı hesaplama görevinin birçok kez yürütüldüğü hesaplama çoğaltması . Hesaplamalı görevler şunlar olabilir:
    • Görevlerin ayrı cihazlarda yürütüldüğü
    uzayda çoğaltılır
  • Görevlerin tekrar tekrar tek bir cihazda yürütüldüğü, zamanında çoğaltılır

Uzayda veya zamanda çoğaltma, genellikle zamanlama algoritmalarıyla bağlantılıdır.

Çoğaltılan bir varlığa erişim, çoğaltılmamış tek bir varlığa erişimle tipik olarak aynıdır. Çoğaltmanın kendisi harici bir kullanıcı için şeffaf olmalıdır . Bir başarısızlık senaryosunda, hizmet kalitesine göre kopyaların yük devretmesi mümkün olduğunca gizlenmelidir .

Bilgisayar bilimcileri, çoğaltmayı ayrıca aşağıdakilerden biri olarak tanımlar:

  • Her replikada aynı istek işlenerek gerçekleştirilen aktif replikasyon
  • Her isteğin tek bir kopyada işlenmesini ve sonucun diğer kopyalara aktarılmasını içeren pasif çoğaltma

Tüm istekleri işlemek için lider seçimi yoluyla bir lider kopyası atandığında , sistem, yüksek kullanılabilirlikli kümelerde baskın olan bir birincil yedekleme veya birincil çoğaltma şeması kullanır . Karşılaştırıldığında, herhangi bir replika bir isteği işleyebilir ve yeni bir durumu dağıtabilirse, sistem çoklu birincil veya çok yöneticili bir şema kullanıyordur. İkinci durumda, dağıtılmış kilit yöneticisi gibi bir çeşit dağıtılmış eşzamanlılık denetimi kullanılmalıdır .

Yük dengeleme , makineler arasında farklı hesaplamaların yükünü dağıttığı ve arıza durumunda tek bir hesaplamanın bırakılmasına izin verdiği için görev çoğaltmadan farklıdır. Ancak yük dengeleme, bazen verilerini makineler arasında dağıtmak için dahili olarak veri çoğaltmayı (özellikle çoklu ana çoğaltmayı ) kullanır .

Yedekleme , kaydedilen veri kopyasının uzun bir süre boyunca değişmeden kalması bakımından çoğaltmadan farklıdır. Öte yandan, kopyalar sık ​​sık güncellenir ve herhangi bir tarihsel durumu hızla kaybeder. Çoğaltma, dağıtılmış sistemlerin genel alanındaki en eski ve en önemli konulardan biridir .

Veri çoğaltma ve hesaplama çoğaltma, gelen olayları işlemek için işlemler gerektirir. Veri çoğaltma işlemleri pasiftir ve yalnızca depolanan verileri korumak, okuma isteklerini yanıtlamak ve güncellemeleri uygulamak için çalışır. Hesaplama çoğaltması genellikle hataya dayanıklılık sağlamak ve bir bileşen arızalanırsa işlemi devralmak için gerçekleştirilir. Her iki durumda da, temel ihtiyaç, replikaların aynı olayları eşdeğer sıralarda görmelerini sağlamaktır, böylece tutarlı durumlarda kalırlar ve herhangi bir replika sorgulara yanıt verebilir.

Dağıtılmış sistemlerde çoğaltma modelleri

Veri çoğaltma için, her biri kendi özelliklerine ve performansına sahip, yaygın olarak belirtilen üç model mevcuttur:

  • İşlemsel çoğaltma : veritabanı gibi işlem verilerini çoğaltmak için kullanılır . Tek kopya serilerştirilebirlik modeli genel uygun olarak çoğaltılmış verileri bir işlemin geçerli sonuçlarını tanımlar, kullanılır ASİT işlem sistemleri garanti etmeye olduğu (atom, kıvam, izolasyon, dayanıklılık) özelliklerinde.
  • Durum makinesi çoğaltması : çoğaltılan işlemin deterministik bir sonlu otomat olduğunu veher olayın atomik yayınının mümkünolduğunu varsayar. Dağıtılmış fikir birliğine dayanırve işlemsel çoğaltma modeliyle pek çok ortak noktası vardır. Bu bazen yanlışlıkla aktif çoğaltmanın eş anlamlısı olarak kullanılır. Durum makinesi çoğaltması genellikle Paxos algoritmasının birbirini takip eden birden çok turundan oluşan çoğaltılmış bir günlük tarafından uygulanır. Bu, Google'ın Chubby sistemi tarafından popüler hale getirildi ve açık kaynaklı Keyspace veri deposunun arkasındaki çekirdek.
  • Sanal senkronizasyon : bellek içi verileri çoğaltmak veya eylemleri koordine etmek için işbirliği yapan bir grup süreci içerir. Model, süreç grubu adı verilen dağıtılmış bir varlık tanımlar. Bir süreç bir gruba katılabilir ve grup üyeleri tarafından çoğaltılan verilerin mevcut durumunu içeren bir kontrol noktası ile sağlanır. İşlemler daha sonragruba çok noktaya yayın gönderebilirve gelen çok noktaya yayınları aynı sırada görür. Üyelik değişiklikleri, gruptaki süreçlere yeni bir "üyelik görünümü" sunan özel bir çok noktaya yayın olarak ele alınır.

Veritabanı çoğaltma

Veritabanı replikasyonu , genellikle orijinal ile kopyalar arasında birincil/replika ilişkisi ile birçok veritabanı yönetim sisteminde (DBMS) kullanılabilir . Master, güncellemeleri günlüğe kaydeder ve bu güncellemeler daha sonra kopyalara geçer. Her kopya, güncellemeyi başarıyla aldığını belirten bir mesaj verir ve böylece sonraki güncellemelerin gönderilmesine izin verir.

Olarak çoklu ana çoğaltma , güncelleştirme herhangi bir veri tabanı düğüme sunulabilir, ve daha sonra diğer sunuculara boyunca dalgalanma. Bu genellikle arzu edilir, ancak önemli ölçüde artan maliyetler ve karmaşıklığı beraberinde getirir ve bu da bazı durumlarda onu kullanışsız hale getirebilir. Çok yöneticili çoğaltmada karşılaşılan en yaygın zorluk, işlemsel çakışmayı önleme veya çözümlemedir . Eşzamanlı (veya istekli) çoğaltma çözümlerinin çoğu çakışma önleme gerçekleştirirken, zaman uyumsuz (veya tembel) çözümlerin çakışma çözümü gerçekleştirmesi gerekir. Örneğin, aynı kayıt aynı anda iki düğümde değiştirilirse, istekli bir çoğaltma sistemi, taahhüdü onaylamadan önce çakışmayı algılar ve işlemlerden birini iptal eder. Bir tembel çoğaltma sistemi hem sağlayacak işlemler işlemek ve yeniden senkronizasyon sırasında bir çakışma çözünürlüğü çalıştırmak için. Böyle bir çatışmanın çözümü , işlemin bir zaman damgasına , kaynak düğümlerin hiyerarşisine veya tüm düğümler arasında tutarlı bir şekilde karar veren çok daha karmaşık mantığa dayanabilir.

Veritabanı çoğaltması, yatay ve dikey olarak ölçeklendiğinde daha karmaşık hale gelir . Yatay ölçek büyütmede daha fazla veri replikası bulunurken, dikey ölçek büyütmede daha büyük fiziksel mesafelerde bulunan veri replikaları bulunur. Yatay ölçek büyütme ile ortaya çıkan sorunlar, çok katmanlı, çok görüntülü bir erişim protokolü ile hafifletilebilir . Dikey ölçek büyütmenin ilk sorunları, İnternet güvenilirliğini ve performansını geliştirerek büyük ölçüde ele alındı .

Veriler veritabanı sunucuları arasında çoğaltıldığında, böylece bilgi veritabanı sistemi boyunca tutarlı kalır ve kullanıcılar DBMS'de hangi sunucuyu kullandıklarını söyleyemez ve hatta bilemezler, sistemin çoğaltma şeffaflığı sergilediği söylenir.

Disk depolama çoğaltması

Depolama çoğaltması

Aktif (gerçek zamanlı) depolama çoğaltması, genellikle bir blok aygıtının güncellemelerini birkaç fiziksel sabit diske dağıtarak uygulanır . Bu şekilde, işletim sistemi tarafından desteklenen herhangi bir dosya sistemi , dosya sistemi kodu blok aygıt sürücüsü katmanının üzerinde bir düzeyde çalıştığından, değişiklik yapılmadan çoğaltılabilir. Donanımda (bir disk dizisi denetleyicisinde ) veya yazılımda (bir aygıt sürücüsünde ) uygulanır.

En temel yöntem, yerel olarak bağlı diskler için tipik olan disk yansıtmadır . Depolama endüstrisi tanımları daraltır, bu nedenle yansıtma yerel (kısa mesafeli) bir işlemdir. Bir çoğaltma, bir bilgisayar ağı üzerinden genişletilebilir , böylece diskler fiziksel olarak uzak konumlara yerleştirilebilir ve genellikle ana-bağımlı veritabanı çoğaltma modeli uygulanır. Replikasyonun amacı, tek bir yerde meydana gelebilecek arızalardan veya felaketlerden kaynaklanan zararları önlemek veya bu tür olayların meydana gelmesi durumunda verileri kurtarma yeteneğini geliştirmektir. Çoğaltma için gecikme kilit faktördür, çünkü sitelerin ne kadar uzakta olabileceğini veya kullanılabilecek çoğaltma türünü belirler.

Bu tür siteler arası çoğaltmanın temel özelliği, zaman uyumsuz veya zaman uyumlu çoğaltma yoluyla yazma işlemlerinin nasıl işlendiğidir; zaman uyumlu çoğaltmanın herhangi bir yazma işleminde hedef sunucunun yanıtını beklemesi gerekirken, zaman uyumsuz çoğaltma beklemez.

Eşzamanlı çoğaltma , hem yerel hem de uzak depolama tarafından onaylanana kadar yazma işleminin tamamlanmış sayılmadığı atomik yazma işlemleri aracılığıyla "sıfır veri kaybını" garanti eder . Çoğu uygulama, daha fazla çalışmaya devam etmeden önce bir yazma işleminin tamamlanmasını bekler, bu nedenle genel performans önemli ölçüde düşer. Asgari gecikme ışık hızı tarafından belirlendiğinden , doğal olarak performans mesafeyle orantılı olarak düşer . 10 km mesafe için, mümkün olan en hızlı gidiş dönüş 67 μsn sürer, oysa tüm yerel önbelleğe alınmış yazma işlemi yaklaşık 10–20 μsn içinde tamamlanır.

Zaman uyumsuz çoğaltmada, yerel depolama bunu onayladığı anda yazma işlemi tamamlanmış sayılır. Uzak depolama, küçük bir gecikmeyle güncellenir . Performans büyük ölçüde artırılır, ancak yerel bir depolama hatası durumunda, uzak depolamanın mevcut veri kopyasına sahip olacağı garanti edilmez (en son veriler kaybolabilir).

Yarı eşzamanlı çoğaltma, tipik olarak, yerel depolama tarafından onaylandığında ve uzak sunucu tarafından alındığında veya günlüğe kaydedildiğinde bir yazma işleminin tamamlandığını kabul eder. Gerçek uzaktan yazma eşzamansız olarak gerçekleştirilir, bu da daha iyi performans sağlar, ancak uzak depolama yerel depolamanın gerisinde kalır, bu nedenle yerel depolama hatası durumunda dayanıklılık garantisi (yani kesintisiz şeffaflık) yoktur.

Belirli bir noktada çoğaltma, birincil depolama yerine çoğaltılan periyodik anlık görüntüler üretir . Bunun amacı, tüm birim yerine yalnızca değiştirilen verileri çoğaltmaktır. Bu yöntem kullanılarak daha az bilgi çoğaltıldığından, fiber optik hatlar yerine iSCSI veya T1 gibi daha ucuz bant genişliği bağlantıları üzerinden çoğaltma gerçekleşebilir.

Uygulamalar

Birçok dağıtılmış dosya sistemi, hata toleransını sağlamak ve tek bir hata noktasından kaçınmak için çoğaltma kullanır.

Pek çok ticari eşzamanlı çoğaltma sistemi, uzak çoğaltma başarısız olduğunda veya bağlantıyı kaybettiğinde donmaz - sıfır veri kaybını garanti eden davranış - ancak istenen sıfır kurtarma noktası hedefini kaybederek yerel olarak çalışmaya devam eder .

Gecikmenin getirdiği sınırları ele almak için geniş alan ağı (WAN) optimizasyonu teknikleri uygulanabilir.

Dosya tabanlı çoğaltma

Dosya tabanlı çoğaltma, veri çoğaltmasını depolama bloğu düzeyinden ziyade mantıksal düzeyde (yani bireysel veri dosyaları) gerçekleştirir. Bunu gerçekleştirmenin, neredeyse tamamen yazılıma dayanan birçok farklı yolu vardır.

Bir çekirdek sürücüsü ile yakalayın

Bir çekirdek sürücüsü (özellikle bir filtre sürücüsü ), dosya sistemi işlevlerine yapılan çağrıları durdurmak için kullanılabilir ve meydana gelen herhangi bir etkinliği yakalar. Bu, gerçek zamanlı aktif virüs denetleyicilerinin kullandığı teknolojinin aynısını kullanır. Bu seviyede, dosya açma, yazma, silme gibi mantıksal dosya işlemleri yakalanır. Çekirdek sürücüsü bu komutları başka bir işleme, genellikle bir ağ üzerinden, kaynak makinenin işlemlerini taklit edecek olan farklı bir makineye iletir. Blok düzeyinde depolama çoğaltması gibi, dosya düzeyinde çoğaltma da hem eşzamanlı hem de zaman uyumsuz modlara izin verir. Eşzamanlı modda, kaynak makinedeki yazma işlemleri tutulur ve hedef makine başarılı çoğaltmayı onaylayana kadar gerçekleşmesine izin verilmez. Birkaç çözüm mevcut olmasına rağmen, dosya çoğaltma ürünlerinde senkronize mod daha az yaygındır.

Dosya düzeyinde çoğaltma çözümleri, dosyanın konumuna ve türüne göre çoğaltma hakkında bilinçli kararlar alınmasına olanak tanır. Örneğin, iş değeri taşımayan geçici dosyalar veya bir dosya sisteminin parçaları hariç tutulabilir. İletilen veriler ayrıca daha ayrıntılı olabilir; bir uygulama 100 bayt yazarsa, tam bir disk bloğu (genellikle 4.096 bayt) yerine yalnızca 100 bayt iletilir. Bu, kaynak makineden gönderilen veri miktarını ve hedef makinedeki depolama yükünü önemli ölçüde azaltır.

Bu yalnızca yazılım çözümünün dezavantajları, işletim sistemi düzeyinde uygulama ve bakım gereksinimini ve makinenin işlem gücü üzerindeki artan yükü içerir.

Dosya sistemi günlüğü çoğaltma

Veritabanı işlem günlüklerine benzer şekilde , birçok dosya sistemi etkinliklerini günlüğe kaydetme yeteneğine sahiptir . Günlük, periyodik olarak veya akış yoluyla gerçek zamanlı olarak başka bir makineye gönderilebilir. Replika tarafında, günlük, dosya sistemi değişikliklerini oynatmak için kullanılabilir.

Dikkate değer işlerden biri olan Microsoft 'in System Center veri koruma Yöneticisi periyodik güncellemeleri gerçekleştirir fakat does 2005 yılında piyasaya (DPM), değil gerçek zamanlı çoğaltma sunuyoruz.

Toplu çoğaltma

Bu, kaynak ve hedef dosya sistemlerini karşılaştırma ve hedefin kaynakla eşleşmesini sağlama sürecidir. Temel fayda, bu tür çözümlerin genellikle ücretsiz veya ucuz olmasıdır. Dezavantajı, bunları senkronize etme sürecinin oldukça sistem yoğun olmasıdır ve sonuç olarak bu süreç genellikle nadiren çalışır.

Dikkate değer uygulamalardan biri rsync'dir .

Dağıtılmış paylaşılan bellek çoğaltma

Çoğaltma kullanımına başka bir örnek , sistemin birçok düğümünün aynı bellek sayfasını paylaştığı dağıtılmış paylaşılan bellek sistemlerinde görülür . Bu genellikle her düğümün bu sayfanın ayrı bir kopyasına (replika) sahip olduğu anlamına gelir.

Birincil yedekleme ve çoklu birincil çoğaltma

Çoğaltmaya yönelik birçok klasik yaklaşım, bir aygıtın veya işlemin bir veya daha fazla başka işlem veya cihaz üzerinde tek taraflı kontrolü olduğu bir birincil yedekleme modeline dayanır. Örneğin, birincil, bir yedekleme (bekleme) işlemine güncellemelerin bir günlüğünü aktararak bazı hesaplamalar yapabilir ve bu, daha sonra birincil işlem başarısız olursa devralabilir. Bu yaklaşım, bir arıza sırasında günlüğün bir kısmının kaybolması durumunda, yedeklemenin birincil ile aynı durumda olmayabileceği ve ardından işlemlerin kaybolabileceği riskine rağmen, veritabanlarını çoğaltmak için yaygındır.

Birincil yedekleme şemalarının bir zayıflığı, yalnızca birinin gerçekten işlem gerçekleştirmesidir. Hata toleransı elde edilir, ancak aynı yedekleme sistemi maliyetleri iki katına çıkarır. Bu nedenle, başlangıç c.  1985 , dağıtılmış sistemler araştırma topluluğu, verileri çoğaltmanın alternatif yöntemlerini keşfetmeye başladı. Bu çalışmanın bir sonucu olarak, bir grup replikanın işbirliği yapabileceği, her bir işlemin bir yedek görevi görürken aynı zamanda iş yükünün bir kısmını ele aldığı şemaların ortaya çıkmasıydı.

Bilgisayar bilimcisi Jim Gray , işlemsel model altında çok-birincil çoğaltma şemalarını analiz etti ve "Çoğalmanın Tehlikeleri ve Çözüm" yaklaşımına şüpheyle yaklaşan, yaygın olarak alıntılanan bir makale yayınladı. Veriler, veritabanının n n ayrık alt veritabanları olarak ele alınabilmesi için doğal bir şekilde bölünmedikçe , eşzamanlılık denetimi çakışmalarının ciddi şekilde düşük performansla sonuçlanacağını ve kopyalar grubunun muhtemelen n'nin bir işlevi olarak yavaşlayacağını savundu . Gray, en yaygın yaklaşımların O(n³) olarak ölçeklenen bozulmayla sonuçlanmasının muhtemel olduğunu öne sürdü . Verileri bölmek olan çözümü, yalnızca verilerin gerçekten doğal bir bölümleme anahtarına sahip olduğu durumlarda geçerlidir.

1985-1987'de sanal senkronizasyon modeli önerildi ve yaygın olarak benimsenen bir standart olarak ortaya çıktı (Isis Toolkit, Horus, Transis, Ensemble, Totem, Spread , C-Ensemble, Phoenix ve Quicksilver sistemlerinde kullanıldı ve için baz CORBA hataya dayanıklı işlem standart). Sanal senkronizasyon, istek işlemenin bazı yönlerini paralelleştirmek için bir grup işlemin işbirliği yaptığı çok-birincil bir yaklaşıma izin verir. Şema yalnızca bazı bellek içi veri biçimleri için kullanılabilir, ancak grubun boyutunda doğrusal hızlanmalar sağlayabilir.

Bir dizi modern ürün benzer şemaları desteklemektedir. Örneğin, Yayılma Araç Takımı bu aynı sanal senkronizasyon modelini destekler ve çoklu birincil çoğaltma şemasını uygulamak için kullanılabilir; C-Ensemble veya Quicksilver'ı bu şekilde kullanmak da mümkün olacaktır. WANdisco , bir ağdaki her düğümün tam bir kopya veya çoğaltma olduğu ve dolayısıyla ağdaki her düğümün aynı anda etkin olduğu durumlarda etkin çoğaltmaya izin verir; bu şema, geniş alan ağında (WAN) kullanım için optimize edilmiştir .

Ayrıca bakınız

Referanslar