En basit tanımıyla dağıtılmış sistem, birlikte çalışan ve son kullanıcıya tekmiş gibi görünen bir grup bilgisayardır. Makineler ortak bir durumu paylaşır, aynı anda çalışır ve tüm sistemin çalışma süresini etkilemeden bağımsız olarak çalışabilir. Gerçek şu ki, bu tür sistemleri yönetmek, tuzaklarla dolu karmaşık bir konudur.
Sisteme genel bakış
Dağıtılmış sistem, ağa bağlı kaynakların (yazılım dahil) aynı anda paylaşılmasına izin verir.
Sistem dağıtımı örnekleri:
- Geleneksel yığın. Bu veritabanları bir makinenin dosya sisteminde saklanır. Kullanıcı bilgi almak istediğinde doğrudan bu makine ile iletişim kurar. Bu veritabanı sistemini dağıtmak için aynı anda birden fazla bilgisayarda çalıştırmanız gerekir.
- Dağıtılmış mimari.
Dağıtılmış sistemyatay ve dikey olarak ölçeklendirmenizi sağlar. Örneğin, daha fazla trafiği yönetmenin tek yolu, veritabanını çalıştıran donanımı yükseltmek olacaktır. Buna dikey ölçekleme denir. Dikey ölçeklendirme belirli bir sınıra kadar iyidir, bundan sonra en iyi ekipman bile gerekli trafiği sağlamakla baş edemez.
Yatay olarak ölçeklendirmek, bir bilgisayarda donanımı yükseltmek değil, daha fazla bilgisayar eklemek anlamına gelir. Dikey ölçeklendirme, performansı dağıtılmış sistemlerde en son donanım özelliklerine yükseltir. Orta ve ağır iş yükleri olan teknoloji şirketleri için bu fırsatlar yeterli değildir. Yatay ölçeklemeyle ilgili en iyi şey, boyut sınırı olmamasıdır. Performans düştüğünde, prensipte süresiz olarak yapılabilen başka bir makine eklenir.
Kurumsal düzeyde, dağıtılmış bir kontrol sistemi genellikle çeşitli adımları içerir. Kurumsal bilgisayar ağının en verimli yerlerinde iş süreçlerinde. Örneğin, üç katmanlı bir dağıtılmış sistem modeli kullanan tipik bir dağıtımda, veri işleme kullanıcının bulunduğu yerdeki bir bilgisayarda, iş işlemleri uzak bir bilgisayarda ve veritabanı erişimi ve veri işleme tamamen farklı bir bilgisayarda yapılır. birçok işletme için merkezi erişim sağlayan süreçler. Tipik olarak, bu tür dağıtılmış bilgi işlemistemci-sunucu etkileşim modelini kullanır.
Ana Görevler
Dağıtılmış bir kontrol sisteminin ana görevleri şunları içerir:
- Şeffaflık - Kullanıcılara konum, erişim, taşıma, eşzamanlılık, yük devretme, yer değiştirme, kalıcılık ve kaynak ayrıntılarını gizlemeden tek bir sistem görüntüsü elde edin.
- Açıklık - ağ kurulumunu ve değişiklikleri basitleştirir.
- Güvenilirlik - Tek bir kontrol sistemiyle karşılaştırıldığında, güvenilir, tutarlı ve yüksek bir maskeleme hatası olasılığına sahip olmalıdır.
- Performans - Diğer modellerle karşılaştırıldığında, dağıtılmış modeller performans artışı sağlar.
- Ölçeklenebilir - Bu dağıtılmış kontrol sistemleri bölge, yönetim veya boyut açısından ölçeklenebilir olmalıdır.
Dağıtım sistemlerinin görevleri şunları içerir:
- Güvenlik, dağıtılmış bir ortamda, özellikle de genel ağları kullanırken büyük bir sorundur.
- Hata toleransı - model güvenilir olmayan bileşenlerle oluşturulduğunda zor olabilir.
- Kaynakların koordinasyonu ve dağıtımı - uygun protokoller veya gerekli politikalar yoksa zor olabilir.
Dağıtılmış bilgi işlem ortamı
(DCE), bu tür dağıtılmış bilgi işlemi destekleyen yaygın olarak kullanılan bir endüstri standardıdır. İnternette, üçüncü taraf sağlayıcılar bazı genel hizmetler sunar,bu modele uyan.
Grid bilgi işlem, karmaşık bir sorunun çözümüyle ilişkili çok sayıda bilgisayarın dağıtılmış mimarisine sahip bir bilgi işlem modelidir. Izgara hesaplama modelinde, sunucular veya kişisel bilgisayarlar bağımsız görevler gerçekleştirir ve İnternet veya düşük hızlı ağlar aracılığıyla birbirlerine gevşek bir şekilde bağlanır.
En büyük grid hesaplama projesi, bireysel bilgisayar sahiplerinin Dünya Dışı İstihbarat Arama (SETI) projesi için bilgisayarlarını kullanarak çoklu görev işlem döngülerinden bazılarını gerçekleştirmeye gönüllü olduğu SETI@home'dur. Bu bilgisayar sorunu, radyo teleskop verilerini indirmek ve aramak için binlerce bilgisayar kullanıyor.
Grid hesaplamanın ilk kullanımlarından biri, şimdi dağıtılmış.net olarak bilinen bir grup tarafından kriptografik kodu kırmaktı. Bu grup ayrıca modellerini dağıtılmış bilgi işlem olarak tanımlar.
Veritabanı ölçekleme
Yeni bilgilerin master'dan slave'e yayılması anında gerçekleşmez. Aslında, güncel olmayan bilgileri alabileceğiniz bir zaman penceresi var. Durum böyle olmasaydı, dağıtılmış sistemler verilerin yayılması için eşzamanlı olarak beklemek zorunda kalacağından yazma performansı düşerdi. Birkaç tavizle gelirler.
Köle veritabanı yaklaşımı kullanarak, okuma trafiğini bir dereceye kadar genişletmek mümkündür. Burada birçok seçenek var. Ancak yazma trafiğini birkaç bölüme ayırmanız yeterlidir.sunucular, çünkü onunla başa çıkamaz. Bunun bir yolu, çok yöneticili bir çoğ altma stratejisi kullanmaktır. Orada, köleler yerine, okuma ve yazmayı destekleyen birkaç ana düğüm vardır.
Başka bir yönteme parçalama denir. Bununla birlikte, sunucu, parça adı verilen birkaç küçük sunucuya bölünür. Bu parçaların farklı girdileri vardır, hangi girdilerin hangi parçaya gireceği konusunda kurallar oluşturulur. Verilerin eşit dağılması için böyle bir kural oluşturmak çok önemlidir. Buna olası bir yaklaşım, aralıkları bazı kayıt bilgilerine göre tanımlamaktır.
Yük her zaman rastgele sütunların tabanlarına eşit olmadığı için bu parça anahtarı çok dikkatli seçilmelidir. Diğerlerinden daha fazla istek alan tek parçaya etkin nokta denir ve bunun oluşmasını engellemeye çalışırlar. Bölündükten sonra, yeniden kalibrasyon verileri inanılmaz derecede pahalı hale gelir ve önemli ölçüde hizmet dışı kalma süresine neden olabilir.
Veritabanı konsensüs algoritmaları
DB'lerin dağıtılmış güvenlik sistemlerinde uygulanması zordur çünkü her bir düğümün doğru kesme veya tamamlama eylemi üzerinde anlaşmasını gerektirir. Bu kalite, fikir birliği olarak bilinir ve bir dağıtım sistemi oluşturmada temel bir sorundur. İlgili süreçler ve ağ tamamen güvenilirse, "taahhüt" sorunu için gereken anlaşma türünü elde etmek basittir. Ancak, gerçek sistemler bir takım koşullara tabidir.olası ağ süreçleri arızaları, kayıp, bozuk veya yinelenen mesajlar.
Bu bir sorun teşkil eder ve güvenilir olmayan bir ağda sınırlı bir süre içinde doğru fikir birliğine varılacağını garanti etmek mümkün değildir. Pratikte, güvenilmez bir ağda oldukça hızlı bir şekilde fikir birliğine varan algoritmalar vardır. Cassandra aslında dağıtılmış fikir birliği için Paxos algoritmasını kullanarak hafif işlemler sağlar.
Dağıtılmış bilgi işlem, son yıllarda kullanılan büyük veri işleme akışının anahtarıdır. Bu, tek bir bilgisayarın neredeyse hiçbir şeyi kendi başına yapamadığı kümülatif 100 milyar kayıt gibi çok büyük bir görevi, tek bir makineye sığabilecek birçok küçük göreve ayırma yöntemidir. Geliştirici büyük görevini birçok küçük göreve böler, bunları birçok makinede paralel olarak yürütür, verileri uygun şekilde toplar, ardından asıl sorun çözülecektir.
Bu yaklaşım yatay olarak ölçeklendirmenizi sağlar - büyük bir görev olduğunda, hesaplamaya daha fazla düğüm eklemeniz yeterlidir. Bu görevler, paralel işleme ve bir küme üzerinde dağıtılmış bir algoritma kullanarak büyük veri kümeleri oluşturma uygulamasıyla ilişkili MapReduce programlama modeli tarafından uzun yıllardır gerçekleştirilmektedir.
Şu anda, MapReduce biraz modası geçmiş ve bazı sorunlar getiriyor. Bu sorunları ele alan başka mimariler ortaya çıktı. Yani, dağıtılmış için Lambda MimarisiAkış işleme sistemleri. Bu alandaki gelişmeler yeni araçlar getirdi: Kafka Streams, Apache Spark, Apache Storm, Apache Samza.
Dosya depolama ve çoğ altma sistemleri
Dağıtılmış dosya sistemleri, dağıtılmış veri depoları olarak düşünülebilir. Bu, konseptle aynıdır - tek bir varlık olan bir makine kümesinde büyük miktarda veriyi depolamak ve bunlara erişmek. Genellikle Dağıtılmış Bilgi İşlem ile el ele giderler.
Örneğin Yahoo, 2011'den bu yana 600 petabayt veri depolamak için 42.000'den fazla düğümde HDFS çalıştırdığı biliniyor. Wikipedia, dağıtılmış dosya sistemlerinin, Cassandra Query Language (CQL) gibi özel bir API yerine yerel dosyalarla aynı arayüzleri ve semantikleri kullanarak dosya erişimine izin vermesindeki farkı tanımlar.
Hadoop Dağıtılmış Dosya Sistemi (HDFS), Hadoop altyapısı üzerinden bilgi işlem için kullanılan bir sistemdir. Yaygındır, birçok makinede büyük dosyaları (GB veya TB boyutu) depolamak ve çoğ altmak için kullanılır. Mimarisi esas olarak NameNodes ve DataNodes'tan oluşur.
NameNodes, hangi düğümün dosya bloklarını içerdiği gibi kümeyle ilgili meta verileri depolamaktan sorumludur. Dosyaların en iyi nerede saklanacağını ve kopyalanacağını belirleyerek, sistem sağlığını takip ederek ağ koordinatörleri olarak hareket ederler. DataNode'lar yalnızca dosyaları depolar ve dosya çoğ altma, yeni yazma vediğerleri.
Şaşırtıcı olmayan bir şekilde, HDFS, görev bilgisi farkındalığı sağladığından bilgi işlem için en iyi Hadoop ile birlikte kullanılır. Belirtilen işler daha sonra verileri depolayan düğümlerde çalıştırılır. Bu, verilerin konumunu kullanmanıza olanak tanır - hesaplamaları optimize eder ve ağ üzerindeki trafik miktarını az altır.
Gezegenler Arası Dosya Sistemi (IPFS), dağıtılmış dosya sistemi için heyecan verici yeni bir eşler arası protokol/ağdır. Blockchain teknolojisini kullanarak, tek bir sahibi veya arıza noktası olmayan tamamen merkezi olmayan bir mimariye sahiptir.
IPFS, IPNS adlı bir adlandırma sistemi (DNS'ye benzer) sunar ve kullanıcıların bilgileri kolayca almasına olanak tanır. Dosyayı, Git'in yaptığı gibi, tarihsel sürüm oluşturma yoluyla depolar. Bu, dosyanın önceki tüm durumlarına erişim sağlar. Hala yoğun bir geliştirme sürecinden geçiyor (yazma sırasında v0.4), ancak onu inşa etmekle ilgilenen projeleri çoktan gördü (FileCoin).
Mesajlaşma sistemi
Mesajlaşma sistemleri, mesajları ortak bir sistem içinde depolamak ve dağıtmak için merkezi bir konum sağlar. Uygulama mantığını diğer sistemlerle doğrudan iletişimden ayırmanıza olanak tanır.
Bilinen ölçek - LinkedIn'in Kafka kümesi, saniyede 4,5 milyon ileti zirvesiyle günde 1 trilyon ileti işledi.
Basit bir ifadeyle, mesajlaşma platformu şu şekilde çalışır:
- Mesajpotansiyel olarak onu oluşturan uygulamadan aktarılır, üretici olarak adlandırılır, platforma girer ve tüketiciler adı verilen birden çok uygulamadan okunur.
- Belirli bir olayı, bir veritabanı için kullanıcı oluşturma, depolama, e-posta gönderme hizmeti gibi birden fazla yerde saklamanız gerekiyorsa, mesajlaşma platformu bu mesajı dağıtmanın en temiz yoludur.
Birkaç popüler birinci sınıf mesajlaşma platformu vardır.
RabbitMQ, yönlendirme kurallarını ve diğer kolayca yapılandırılabilen parametreleri kullanarak yörüngelerinin kontrolünde daha ince ayar yapmanızı sağlayan bir mesaj aracısıdır. Çok fazla mantığı olduğu ve içinden geçen mesajları yakından izlediği için "akıllı" bir komisyoncu olarak adlandırılabilir. CAP'den AP'ler ve CP'ler için seçenekler sunar.
Kafka, hangi mesajların okunduğunu takip etmediği ve karmaşık yönlendirme mantığına izin vermediği için biraz daha az işlevsel olan bir mesaj aracısıdır. Açık kaynak topluluğu tarafından dağıtılmış sistemlerin aktif olarak geliştirilmesi ve Confluent ekibinin desteği ile inanılmaz performans elde etmeye yardımcı olur ve bu alandaki en büyük vaadi temsil eder. Kafka en çok ileri teknoloji şirketleri arasında popülerdir.
Makine Etkileşim Uygulamaları
Bu dağıtım sistemi, son kullanıcıya ayrı bir bilgisayar gibi görünmek için birlikte çalışan bir grup bilgisayardır. Bu makineler genel durumda, çalışır durumdaeşzamanlı olarak ve tüm sistemin çalışma süresini etkilemeden bağımsız olarak çalışabilir.
Veritabanını dağıtılmış olarak kabul ederseniz, yalnızca düğümler eylemlerini koordine etmek için birbirleriyle etkileşime girerse. Bu durumda, eşler arası bir ağda kendi dahili kodunu çalıştıran bir uygulama gibi bir şeydir ve dağıtılmış bir uygulama olarak sınıflandırılır.
Bu tür uygulamalara örnekler:
- Bilinen Ölçek - BitTorrent, Game of Thrones bölümü için 193.000 düğüm topladı.
- Dağıtılmış Blockchain sistemlerinin temel kayıt teknolojisi.
Dağıtılmış defterler, dağıtım ağındaki tüm düğümler arasında çoğ altılan, senkronize edilen ve paylaşılan değişmez, yalnızca uygulamaya yönelik bir veritabanı olarak düşünülebilir.
Tanınmış ölçek - Ethereum ağı - 4 Ocak 2018'de günde 4,3 milyon işlem gerçekleştirdi. Veritabanının durumunu istediğiniz zaman geri yüklemenize olanak tanıyan Olay Kaynaklandırma modelini kullanırlar.
Blockchain, dağıtılmış defterler için kullanılan mevcut temel teknolojidir ve aslında onların başlangıcını işaretlemiştir. Dağıtılmış alandaki bu en yeni ve en büyük yenilik, ilk gerçekten dağıtılmış ödeme protokolü olan bitcoin'i yarattı.
Blockchain, ağında gerçekleşen tüm işlemlerin sıralı bir listesini içeren dağıtılmış bir defterdir. Fırsatlar gruplandırılır ve bloklar halinde saklanır. Tüm blok zinciri, esasen bağlantılı bir blok listesidir. Belirtilen Bloklaroluşturması pahalıdır ve kriptografi yoluyla birbirine sıkı sıkıya bağlıdır. Basitçe söylemek gerekirse, her blok, mevcut bloğun içeriğinin (bir Merkle ağacı şeklinde) özel bir özetini (bu, X sayıda sıfırla başlar) artı önceki bloğun karmasını içerir. Bu karma çok fazla CPU gücü gerektirir.
Dağıtılmış işletim sistemleri örnekleri
Sistem türleri, tek kullanıcılı sistemler olduğu için kullanıcıya görünür. Hafızalarını, disklerini paylaşırlar ve kullanıcı veriler arasında gezinmekte sorun yaşamaz. Kullanıcı bilgisayarında bir şey depolar ve dosya birden fazla yerde, yani bağlı bilgisayarlarda saklanır, böylece kayıp veriler kolayca kurtarılabilir.
Dağıtılmış işletim sistemlerine örnekler:
- Windows Server 2003;
- Windows Server 2008;
- Windows Server 2012;
- UbuntuLinux (Apache sunucusu).
Herhangi bir bilgisayar daha yüksek önyükleme yaparsa, yani tek tek bilgisayarlar arasında çok sayıda istek alışverişi yapılırsa, yük dengeleme bu şekilde gerçekleşir. Bu durumda, istekler komşu PC'ye iletilir. Ağ daha fazla yüklenirse, ağa daha fazla sistem eklenerek genişletilebilir. Ağ dosyası ve klasörleri senkronize edilir ve veri alındığında hata oluşmaması için adlandırma kuralları kullanılır.
Önbelleğe alma, veriler işlenirken de kullanılır. Tüm bilgisayarlar dosyaları adlandırmak için aynı ad alanını kullanır. Ancakdosya sistemi her bilgisayar için geçerlidir. Dosyada güncellemeler varsa, bir bilgisayara yazılır ve değişiklikler tüm bilgisayarlara yayılır, böylece dosya aynı görünür.
Dosyalar okuma/yazma işlemi sırasında kilitlenir, bu nedenle farklı bilgisayarlar arasında kilitlenme olmaz. Bir oturumda dosya okuma, yazma ve oturumu kapatma gibi oturumlar da gerçekleşir ve ardından başka bir kullanıcı aynısını yapabilir ve bu şekilde devam eder.
Kullanmanın faydaları
İnsanların günlük hayatlarını kolaylaştırmak için tasarlanmış bir işletim sistemi. Kullanıcı yararları ve ihtiyaçları için işletim sistemi tek kullanıcılı veya dağıtılmış olabilir. Dağıtılmış bir kaynak sisteminde birçok bilgisayar birbirine bağlanır ve kaynaklarını paylaşır.
Bunu yapmanın faydaları:
- Böyle bir sistemdeki bir bilgisayar arızalı veya hasarlıysa, o zaman başka bir düğüm veya bilgisayar onunla ilgilenecektir.
- Daha fazla kaynak kolayca eklenebilir.
- Yazıcılar gibi kaynaklar birden fazla bilgisayara hizmet verebilir.
Bu, dağıtım sistemi ve neden kullanıldığı hakkında bir özet. Hatırlanması gereken bazı önemli şeyler: karmaşıktırlar, ölçek ve fiyat için seçilirler ve üzerinde çalışılması daha zordur. Bu sistemler çeşitli depolama kategorilerinde dağıtılır: bilgi işlem, dosya ve mesajlaşma sistemleri, kayıtlar, uygulamalar. Ve tüm bunlar karmaşık bir bilgi sistemi hakkında çok yüzeysel.