Taqsimlangan tizim eng oddiy ta'rifi bilan oxirgi foydalanuvchiga bittadek ko'rinadigan birgalikda ishlaydigan kompyuterlar guruhidir. Mashinalar umumiy holatga ega, bir vaqtning o'zida ishlaydi va butun tizimning ish vaqtiga ta'sir qilmasdan mustaqil ravishda ishlashi mumkin. Haqiqat shundaki, bunday tizimlarni boshqarish tuzoqlarga to'la murakkab mavzu.
Tizim haqida umumiy ma'lumot
Tarqatilgan tizim bir vaqtning oʻzida tarmoqqa ulangan resurslarni (jumladan, dasturiy taʼminotni) almashish imkonini beradi.
Tizim taqsimotiga misollar:
- An'anaviy stek. Ushbu ma'lumotlar bazalari bitta mashinaning fayl tizimida saqlanadi. Foydalanuvchi har doim ma'lumot olishni xohlasa, u to'g'ridan-to'g'ri ushbu mashina bilan bog'lanadi. Ushbu maʼlumotlar bazasi tizimini tarqatish uchun uni bir vaqtning oʻzida bir nechta shaxsiy kompyuterlarda ishga tushirishingiz kerak.
- Taqsimlangan arxitektura.
Tarqatilgan tizimgorizontal va vertikal o'lchamlarni o'lchash imkonini beradi. Masalan, ko'proq trafikni boshqarishning yagona yo'li ma'lumotlar bazasini boshqaradigan uskunani yangilash bo'ladi. Bu vertikal masshtablash deb ataladi. Vertikal o'lchov ma'lum chegaragacha yaxshi, undan keyin hatto eng yaxshi uskuna ham kerakli trafikni ta'minlay olmaydi.
Gorizontal masshtablash bitta kompyuterda uskunani yangilamasdan, koʻproq kompyuter qoʻshishni anglatadi. Vertikal masshtablash taqsimlangan tizimlardagi eng so'nggi apparat imkoniyatlariga ish faoliyatini oshiradi. Bu imkoniyatlar o'rtacha va og'ir ish yukiga ega bo'lgan texnologiya kompaniyalari uchun etarli emas. Gorizontal masshtablashning eng yaxshi tomoni shundaki, o'lcham chegaralari yo'q. Ishlash qobiliyati pasayganda, boshqa mashina qo'shiladi, bu esa, qoida tariqasida, cheksiz amalga oshirilishi mumkin.
Korporativ darajada taqsimlangan boshqaruv tizimi ko'pincha turli bosqichlarni o'z ichiga oladi. Korxona kompyuter tarmog'ining eng samarali joylarida biznes jarayonlarida. Misol uchun, uch bosqichli taqsimlangan tizim modelidan foydalangan holda odatiy tarqatishda ma'lumotlarni qayta ishlash foydalanuvchi joylashgan kompyuterda, biznesni qayta ishlash masofaviy kompyuterda va ma'lumotlar bazasiga kirish va ma'lumotlarni qayta ishlash butunlay boshqa kompyuterda amalga oshiriladi. ko'pgina biznes jarayonlari uchun markazlashtirilgan kirishni ta'minlaydi. Odatda, bu turdagi taqsimlangan hisoblashmijoz-server o‘zaro aloqasi modelidan foydalanadi.
Asosiy vazifalar
Taqsimlangan boshqaruv tizimining asosiy vazifalari quyidagilardan iborat:
- Shaffoflik - foydalanuvchilarga joylashuv, kirish, koʻchirish, bir vaqtning oʻzida oʻzgartirish, oʻzgartirish, koʻchirish, doimiylik va manba tafsilotlarini yashirmasdan yagona tizim tasviriga erishing.
- Ochiqlik - tarmoqni sozlash va oʻzgartirishlarni osonlashtiradi.
- Ishonchlilik - Yagona boshqaruv tizimiga nisbatan u ishonchli, izchil boʻlishi va xatolarni yashirish ehtimoli yuqori boʻlishi kerak.
- Umumiylik - Boshqa modellar bilan solishtirganda, taqsimlangan modellar unumdorlikni oshiradi.
- Mashqlanishi mumkin - Bu taqsimlangan boshqaruv tizimlari hudud, maʼmuriyat yoki oʻlcham boʻyicha kengaytirilishi kerak.
Taqsimot tizimlarining vazifalariga quyidagilar kiradi:
- Xavfsizlik taqsimlangan muhitda, ayniqsa umumiy tarmoqlardan foydalanganda katta muammo.
- Nosozlikka chidamlilik - model ishonchsiz komponentlar bilan qurilgan bo'lsa, qiyin bo'lishi mumkin.
- Resurslarni muvofiqlashtirish va taqsimlash - agar tegishli protokollar yoki talab qilinadigan siyosatlar mavjud boʻlmasa, qiyin boʻlishi mumkin.
Taqsimlangan hisoblash muhiti
(DCE) bunday taqsimlangan hisoblashni qoʻllab-quvvatlaydigan keng tarqalgan sanoat standartidir. Internetda uchinchi tomon provayderlari ba'zi umumiy xizmatlarni taklif qilishadi,bu modelga mos keladi.
Grid computing - murakkab masalani yechish bilan bogʻliq boʻlgan koʻp sonli kompyuterlarning taqsimlangan arxitekturasiga ega boʻlgan hisoblash modeli. Tarmoqli hisoblash modelida serverlar yoki shaxsiy kompyuterlar mustaqil vazifalarni bajaradi va Internet yoki past tezlikdagi tarmoqlar orqali bir-biriga erkin ulanadi.
Eng yirik tarmoqli hisoblash loyihasi SETI@home boʻlib, unda shaxsiy kompyuter egalari Yerdan tashqari razvedkani qidirish (SETI) loyihasi uchun oʻz kompyuterlari yordamida oʻzlarining koʻp vazifali ishlov berish sikllarini ixtiyoriy ravishda bajarishadi. Bu kompyuter muammosi radio teleskop maʼlumotlarini yuklab olish va qidirish uchun minglab kompyuterlardan foydalanadi.
Grid hisoblashning birinchi qoʻllanilishidan biri hozir distributed.net deb nomlanuvchi guruh tomonidan kriptografik kodni buzish edi. Bu guruh oʻz modelini taqsimlangan hisoblash sifatida ham taʼriflaydi.
Ma'lumotlar bazasini masshtablash
Yangi ma'lumotni xo'jayindan qulga tarqatish bir zumda sodir bo'lmaydi. Aslida, siz eskirgan ma'lumotlarni olishingiz mumkin bo'lgan vaqt oynasi mavjud. Agar bunday bo'lmasa, yozish unumdorligi yomonlashadi, chunki taqsimlangan tizimlar ma'lumotlarning tarqalishini sinxron ravishda kutishlari kerak edi. Ular bir nechta murosaga kelishadi.
Ma'lumotlar bazasiga oid yondashuvdan foydalanib, o'qish trafigini ma'lum darajada kengaytirish mumkin. Bu erda ko'plab variantlar mavjud. Lekin siz shunchaki yozish trafigini bir nechtaga bo'lishingiz kerakserverlar, chunki u uni boshqara olmaydi. Buning bir usuli - ko'p masterli replikatsiya strategiyasidan foydalanish. U yerda qullar oʻrniga oʻqish va yozishni qoʻllab-quvvatlaydigan bir nechta asosiy tugunlar mavjud.
Boshqa usul sharding deb ataladi. Uning yordamida server bir nechta kichikroq serverlarga bo'linadi, ular shardlar deb ataladi. Bu parchalar turli xil yozuvlarga ega, qaysi yozuvlar qaysi parchaga kirishi haqida qoidalar tuziladi. Ma'lumotlar bir tekis taqsimlanishi uchun bunday qoidani yaratish juda muhimdir. Bunga mumkin bo'lgan yondashuv - ba'zi rekord ma'lumotlarga ko'ra diapazonlarni aniqlash.
Ushbu kalit kalitni juda ehtiyotkorlik bilan tanlash kerak, chunki yuk har doim ham ixtiyoriy ustunlar asosiga teng emas. Boshqalardan ko'ra ko'proq so'rovlarni qabul qiladigan yagona parcha hotspot deb ataladi va ular uning shakllanishiga yo'l qo'ymaslikka harakat qilishadi. Bo‘lingandan so‘ng, qayta kalibrlash ma’lumotlari nihoyatda qimmatga tushadi va sezilarli uzilishlarga olib kelishi mumkin.
Ma'lumotlar bazasi konsensus algoritmlari
JB larni taqsimlangan xavfsizlik tizimlarida amalga oshirish qiyin, chunki ular har bir tugundan toʻgʻri uzilish yoki harakatni bajarish boʻyicha muzokaralar olib borishini talab qiladi. Bu sifat konsensus sifatida tanilgan va tarqatish tizimini qurishda asosiy muammo hisoblanadi. Agar ishtirok etayotgan jarayonlar va tarmoq to'liq ishonchli bo'lsa, "majburiy" muammosi uchun zarur bo'lgan kelishuv turiga erishish oson. Biroq, haqiqiy tizimlar bir qatorga bo'ysunaditarmoq jarayonlarida yuzaga kelishi mumkin bo'lgan nosozliklar, yo'qolgan, buzilgan yoki takrorlangan xabarlar.
Bu muammo tugʻdiradi va ishonchsiz tarmoqda cheklangan vaqt ichida toʻgʻri konsensusga erishilishini kafolatlash mumkin emas. Amalda, ishonchsiz tarmoqda konsensusga tez erishadigan algoritmlar mavjud. Kassandra aslida taqsimlangan konsensus uchun Paxos algoritmidan foydalanish orqali engil tranzaksiyalarni taqdim etadi.
Taqsimlangan hisoblashlar soʻnggi yillarda qoʻllanilayotgan katta maʼlumotlarni qayta ishlash oqimining kalitidir. Bu juda katta vazifani, masalan, yig'ilgan 100 milliard yozuvni, ulardan hech bir kompyuter o'z-o'zidan deyarli hech narsa qila olmaydigan, bitta mashinaga sig'adigan ko'plab kichikroq vazifalarni buzish usulidir. Ishlab chiquvchi o‘zining ulkan topshirig‘ini kichikroq vazifalarga ajratadi, ularni ko‘plab mashinalarda parallel ravishda bajaradi, ma’lumotlarni mos ravishda to‘playdi, shunda asl muammo hal qilinadi.
Ushbu yondashuv sizga gorizontal ravishda masshtablash imkonini beradi - katta vazifa boʻlganda, hisob-kitobga koʻproq tugunlarni qoʻshish kifoya. Bu vazifalar ko‘p yillar davomida MapReduce dasturlash modeli tomonidan klasterda taqsimlangan algoritm yordamida katta ma’lumotlar to‘plamlarini parallel qayta ishlash va generatsiya qilish bilan bog‘liq holda bajarilgan.
Hozirda MapReduce biroz eskirgan va ba'zi muammolarni keltirib chiqarmoqda. Ushbu muammolarni hal qiladigan boshqa arxitekturalar paydo bo'ldi. Ya'ni, tarqatish uchun Lambda Arxitekturasioqimlarni qayta ishlash tizimlari. Bu sohadagi yutuqlar yangi vositalarni olib keldi: Kafka Streams, Apache Spark, Apache Storm, Apache Samza.
Fayllarni saqlash va replikatsiya tizimlari
Taqsimlangan fayl tizimlarini taqsimlangan ma'lumotlar ombori deb hisoblash mumkin. Bu kontseptsiya bilan bir xil - bitta ob'ekt bo'lgan mashinalar klasterida katta hajmdagi ma'lumotlarni saqlash va ularga kirish. Ular odatda taqsimlangan hisoblash bilan birga ishlaydi.
Masalan, Yahoo 2011-yildan beri 600 petabaytlik maʼlumotlarni saqlash uchun 42 000 dan ortiq tugunlarda HDFSni ishga tushirishi bilan mashhur. Vikipediya farqni taqsimlangan fayl tizimlari Cassandra Query Language (CQL) kabi maxsus API orqali emas, balki mahalliy fayllar kabi bir xil interfeys va semantikadan foydalangan holda fayllarga kirishga ruxsat berishini belgilaydi.
Hadoop taqsimlangan fayl tizimi (HDFS) Hadoop infratuzilmasi orqali hisoblash uchun foydalaniladigan tizimdir. Keng tarqalgan bo'lib, u ko'plab mashinalarda katta hajmdagi fayllarni (GB yoki TB hajmi) saqlash va ko'paytirish uchun ishlatiladi. Uning arxitekturasi asosan NameNodes va DataNodes-dan iborat.
NameNodes klaster haqidagi metama'lumotlarni saqlash uchun mas'uldir, masalan, qaysi tugunda fayl bloklari mavjud. Ular tarmoq koordinatorlari sifatida ishlaydi, fayllarni saqlash va nusxalashning eng yaxshi joyini aniqlaydi, tizim sog'lig'ini kuzatib boradi. DataNodes shunchaki fayllarni saqlaydi va fayllarni replikatsiya qilish, yangi yozish va kabi buyruqlarni bajaradiboshqalar.
Ajablanarlisi shundaki, HDFS Hadoop bilan hisoblash uchun eng yaxshi ishlatiladi, chunki u vazifalar haqida ma'lumotni ta'minlaydi. Belgilangan ishlar keyin ma'lumotlarni saqlaydigan tugunlarda bajariladi. Bu sizga maʼlumotlar joylashuvidan foydalanish imkonini beradi – hisob-kitoblarni optimallashtiradi va tarmoq orqali trafik miqdorini kamaytiradi.
Sayyoralararo fayl tizimi (IPFS) - bu taqsimlangan fayl tizimi uchun qiziqarli yangi tengdosh protokoli/tarmoq. Blockchain texnologiyasidan foydalangan holda, u to'liq markazlashtirilmagan arxitekturaga ega bo'lib, uning yagona egasi yoki nosozlik nuqtasi yo'q.
IPFS IPNS deb nomlangan nomlash tizimini (DNSga oʻxshash) taklif qiladi va foydalanuvchilarga maʼlumotni osongina olish imkonini beradi. U faylni Git kabi tarixiy versiyalar orqali saqlaydi. Bu faylning barcha oldingi holatlariga kirish imkonini beradi. U hali ham jiddiy rivojlanishdan o'tmoqda (yozish vaqtida v0.4), lekin uni yaratishga qiziqqan loyihalarni allaqachon ko'rgan (FileCoin).
Xabarlar tizimi
Xabarlar tizimlari umumiy tizim ichida xabarlarni saqlash va tarqatish uchun markaziy joylashuvni ta'minlaydi. Ular ilova mantigʻini boshqa tizimlar bilan toʻgʻridan-toʻgʻri aloqadan ajratish imkonini beradi.
Ma'lum miqyos - LinkedIn'ning Kafka klasteri kuniga 1 trillion xabarni qayta ishlagan, eng yuqori ko'rsatkichlari soniyasiga 4,5 million xabar.
Oddiy qilib aytganda, xabar almashish platformasi shunday ishlaydi:
- Xabaruni yaratishi mumkin boʻlgan, ishlab chiqaruvchi deb ataladigan ilovadan uzatiladi, platformaga kiradi va isteʼmolchilar deb ataladigan bir nechta ilovalardan oʻqiladi.
- Agar siz ma'lum bir voqeani bir nechta joyda saqlashingiz kerak bo'lsa, masalan, ma'lumotlar bazasi, xotira, elektron pochta yuborish xizmati uchun foydalanuvchi yaratish, u holda xabar almashish platformasi bu xabarni tarqatishning eng toza usuli hisoblanadi.
Bir nechta mashhur yuqori darajadagi xabar almashish platformalari mavjud.
RabbitMQ - bu xabarlar brokeri boʻlib, u marshrutlash qoidalari va boshqa oson sozlanishi mumkin boʻlgan parametrlar yordamida ularning traektoriyalarini boshqarishni yanada aniqroq sozlash imkonini beradi. Uni "aqlli" broker deb atash mumkin, chunki u juda ko'p mantiqqa ega va u orqali o'tadigan xabarlarni diqqat bilan kuzatib boradi. CAP dan AP va CP uchun variantlarni taqdim etadi.
Kafka - bu biroz kamroq funktsional xabarlar brokeri, chunki u qaysi xabarlar o'qilganligini kuzatib bormaydi va murakkab marshrutlash mantig'iga ruxsat bermaydi. Bu ajoyib samaradorlikka erishishga yordam beradi va ochiq manbalar hamjamiyati tomonidan taqsimlangan tizimlarning faol rivojlanishi va Confluent jamoasining qo'llab-quvvatlashi bilan ushbu sohadagi eng katta va'dani ifodalaydi. Kafka eng yuqori texnologiyali kompaniyalar orasida mashhur.
Mashina bilan oʻzaro taʼsir qilish ilovalari
Bu tarqatish tizimi oxirgi foydalanuvchiga alohida kompyuter sifatida koʻrinish uchun birgalikda ishlaydigan kompyuterlar guruhidir. Ushbu mashinalar umumiy holatda, ishlaydibir vaqtning o'zida va butun tizimning ish vaqtiga ta'sir qilmasdan mustaqil ishlashi mumkin.
Agar siz ma'lumotlar bazasini taqsimlangan deb hisoblasangiz, faqat tugunlar o'z harakatlarini muvofiqlashtirish uchun bir-biri bilan o'zaro aloqada bo'lsa. Bu holda, bu o'zining ichki kodini peer-to-peer tarmog'ida ishlaydigan ilovaga o'xshaydi va taqsimlangan ilova sifatida tasniflanadi.
Bunday ilovalarga misollar:
- Ma'lum miqyos - BitTorrent "Taxtlar o'yini" epizodi uchun 193 000 ta tugunni to'playdi.
- Tarqatilgan blokcheyn tizimlarining asosiy registr texnologiyasi.
Taqsimlangan daftarlarni oʻzgarmas, faqat ilovalar uchun moʻljallangan maʼlumotlar bazasi sifatida koʻrish mumkin, u takrorlanadi, sinxronlanadi va tarqatish tarmogʻidagi barcha tugunlar boʻylab taqsimlanadi.
Mashhur shkala - Ethereum tarmog'ida 2018-yil 4-yanvarda kuniga 4,3 million tranzaksiya amalga oshirildi. Ular istalgan vaqtda maʼlumotlar bazasi holatini tiklash imkonini beruvchi Voqealar manbasi namunasidan foydalanadi.
Blockchain - bu taqsimlangan daftarlar uchun ishlatiladigan va aslida ularning boshlanishini belgilab bergan joriy asosiy texnologiya. Taqsimlangan maydondagi bu eng yangi va eng katta innovatsiya birinchi haqiqiy taqsimlangan toʻlov protokoli bitkoinni yaratdi.
Blockchain - bu o'z tarmog'ida sodir bo'lgan barcha tranzaktsiyalarning tartiblangan ro'yxatiga ega taqsimlangan daftar. Bitimlar guruhlangan va bloklarda saqlanadi. Butun blokcheyn asosan bloklarning bog'langan ro'yxatidir. Belgilangan bloklaryaratish qimmat va kriptografiya orqali bir-biri bilan chambarchas bog‘langan. Oddiy qilib aytganda, har bir blok joriy blok tarkibining (Merkle daraxti shaklida) maxsus xeshini (X sonidan boshlanadigan) va oldingi blokning xeshini o'z ichiga oladi. Bu xesh koʻp protsessor quvvatini talab qiladi.
Tarqatilgan operatsion tizimlarga misollar
Tizim turlari foydalanuvchiga koʻrinadi, chunki ular bir foydalanuvchi tizimlardir. Ular xotirasini, diskini baham ko'rishadi va foydalanuvchi ma'lumotlar bo'ylab navigatsiya qilishda muammoga duch kelmaydi. Foydalanuvchi oʻz shaxsiy kompyuterida biror narsani saqlaydi va fayl yoʻqolgan maʼlumotlarni osongina qayta tiklash uchun bir nechta joyda, yaʼni ulangan kompyuterlarda saqlanadi.
Tarqatilgan operatsion tizimlarga misollar:
- Windows Server 2003;
- Windows Server 2008;
- Windows Server 2012;
- UbuntuLinux (Apache serveri).
Agar biron bir kompyuter yuqoriroq ishga tushsa, ya'ni alohida shaxsiy kompyuterlar o'rtasida ko'plab so'rovlar almashinadigan bo'lsa, yuk balansi shunday amalga oshiriladi. Bunday holda, so'rovlar qo'shni shaxsiy kompyuterga tarqaladi. Agar tarmoq yuklangan bo'lsa, uni tarmoqqa qo'shimcha tizimlar qo'shish orqali kengaytirish mumkin. Tarmoq fayli va papkalari sinxronlashtiriladi va nomlash qoidalari qo'llaniladi, shunda ma'lumotlar olinayotganda xatolik yuz bermaydi.
Keshlash ma'lumotlarni manipulyatsiya qilishda ham qo'llaniladi. Barcha kompyuterlar fayllarni nomlash uchun bir xil nom maydonidan foydalanadilar. Lekinfayl tizimi har bir kompyuter uchun amal qiladi. Agar faylga yangilanishlar bo'lsa, u bitta kompyuterga yoziladi va o'zgarishlar barcha kompyuterlarga tarqaladi, shuning uchun fayl bir xil ko'rinadi.
Oʻqish/yozish jarayonida fayllar bloklanadi, shuning uchun turli kompyuterlar oʻrtasida blokirovka boʻlmaydi. Seanslar ham sodir bo'ladi, masalan, bir seansda fayllarni o'qish, yozish va sessiyani yopish, keyin boshqa foydalanuvchi ham xuddi shunday qilishi mumkin.
Foydalanishning afzalliklari
Odamlarning kundalik hayotini osonlashtirish uchun yaratilgan operatsion tizim. Foydalanuvchining afzalliklari va ehtiyojlari uchun operatsion tizim bitta foydalanuvchi yoki tarqatilgan bo'lishi mumkin. Taqsimlangan resurs tizimida ko'plab kompyuterlar bir-biriga ulangan va o'z resurslarini baham ko'radi.
Buni qilishning afzalliklari:
- Agar bunday tizimdagi bitta shaxsiy kompyuter nosoz yoki shikastlangan boʻlsa, boshqa tugun yoki kompyuter bu bilan shugʻullanadi.
- Koʻproq resurslarni osongina qoʻshish mumkin.
- Printerlar kabi manbalar bir nechta kompyuterlarga xizmat qilishi mumkin.
Bu tarqatish tizimi, nima uchun ishlatilishi haqida qisqacha. Esda tutish kerak bo'lgan ba'zi muhim narsalar: ular murakkab va masshtab va narx bo'yicha tanlangan va ular bilan ishlash qiyinroq. Ushbu tizimlar bir nechta saqlash toifalarida taqsimlanadi: hisoblash, fayl va xabar almashish tizimlari, registrlar, ilovalar. Bularning barchasi murakkab axborot tizimi haqida juda yuzaki.