Бөлүштүрүлгөн системалар: аныктамасы, өзгөчөлүктөрү жана негизги принциптери

Мазмуну:

Бөлүштүрүлгөн системалар: аныктамасы, өзгөчөлүктөрү жана негизги принциптери
Бөлүштүрүлгөн системалар: аныктамасы, өзгөчөлүктөрү жана негизги принциптери
Anonim

Бөлүштүрүлгөн тутум эң жөнөкөй аныктамасында акыркы колдонуучуга бир катары көрүнгөн чогуу иштеген компьютерлердин тобу. Машиналар жалпы абалды бөлүшөт, бир убакта иштейт жана бүт системанын иштөө убактысына таасирин тийгизбестен өз алдынча иштей алат. Чындыгында, мындай системаларды башкаруу - бул тузактарга толгон татаал тема.

Тутумга сереп салуу

Бөлүштүрүлгөн системалар
Бөлүштүрүлгөн системалар

Бөлүштүрүлгөн система бир эле убакта тармакка туташкан ресурстарды (анын ичинде программалык камсыздоону) бөлүшүүгө мүмкүндүк берет.

Тутум бөлүштүрүүнүн мисалдары:

  1. Салттуу стек. Бул маалымат базалары бир машинанын файл системасында сакталат. Качан колдонуучу маалымат алууну кааласа, ал бул машина менен түз байланышат. Бул маалымат базасы системасын жайылтуу үчүн, аны бир эле учурда бир нече компьютерде иштетүү керек.
  2. Бөлүштүрүлгөн архитектура.

Бөлүштүрүлгөн системагоризонталдуу жана вертикалдуу масштабга мүмкүнчүлүк берет. Мисалы, көбүрөөк трафикти башкаруунун жалгыз жолу маалымат базасын иштеткен жабдыктарды жаңылоо болот. Бул вертикалдуу масштабдоо деп аталат. Вертикалдуу масштабдоо белгилүү бир чекке чейин жакшы, андан кийин эң мыкты жабдуулар да керектүү трафикти камсыздай албайт.

Горизонталдуу масштабдоо аппараттык камсыздоону жаңыртуу эмес, көбүрөөк компьютер кошуу дегенди билдирет. Вертикалдуу масштабдоо бөлүштүрүлгөн системалардагы акыркы аппараттык мүмкүнчүлүктөргө чейин өндүрүмдүүлүктү жогорулатат. Бул мүмкүнчүлүктөр орточо жана оор жүктөрү бар технологиялык компаниялар үчүн жетишсиз. Горизонталдык масштабдоонун эң жакшы жагы - бул өлчөмгө чектөөлөр жок. Иштин майнаптуулугу начарлаганда, башка машина жөн эле кошулат, аны, негизинен, чексиз жасоого болот.

Корпоративдик деңгээлде бөлүштүрүлгөн башкаруу системасы көбүнчө ар кандай кадамдарды камтыйт. Ишкананын компьютердик тармагынын эң эффективдүү жерлеринде бизнес процесстеринде. Мисалы, үч деңгээлдүү бөлүштүрүлгөн системанын моделин колдонуу менен типтүү бөлүштүрүүдө маалыматтарды иштетүү колдонуучунун жайгашкан жериндеги компьютерде, бизнести иштетүү алыскы компьютерде, ал эми маалымат базасына жетүү жана маалыматтарды иштетүү такыр башка компьютерде жүргүзүлөт. көптөгөн бизнес процесстери үчүн борборлоштурулган жеткиликтүүлүктү камсыз кылат. Эреже катары, бөлүштүрүлгөн эсептөөнүн бул түрүкардар менен сервердин өз ара аракеттенүү моделин колдонот.

Негизги тапшырмалар

Негизги маселелер
Негизги маселелер

Бөлүштүрүлгөн башкаруу системасынын негизги милдеттери төмөнкүлөрдү камтыйт:

  1. Айкындуулук - Колдонуучуларга жайгашкан жерди, кирүү мүмкүнчүлүгүн, миграцияны, параллелдүүлүктү, жаңылыштыкты, башка жерге которууну, туруктуулукту жана ресурстун чоо-жайын жашырбастан бирдиктүү системанын сүрөтүнө жетишиңиз.
  2. Ачыктык - тармакты орнотууну жана өзгөртүүнү жөнөкөйлөтөт.
  3. Ишенимдүүлүк - Бир башкаруу тутумуна салыштырмалуу, ал ишенимдүү, ырааттуу жана каталарды жашыруу ыктымалдуулугу жогору болушу керек.
  4. Аткаруучулук - Башка моделдерге салыштырмалуу бөлүштүрүлгөн моделдер өндүрүмдүүлүктү жогорулатат.
  5. Масштабдалуучу - Бул бөлүштүрүлгөн башкаруу тутумдары аймак, башкаруу же өлчөмү боюнча масштабдуу болушу керек.

Бөлүштүрүү системаларынын милдеттери төмөнкүлөрдү камтыйт:

  1. Коопсуздук бөлүштүрүлгөн чөйрөдө, өзгөчө коомдук тармактарды колдонууда чоң маселе.
  2. Каталарга чыдамдуулук - модель ишенимсиз компоненттер менен курулганда катаал болушу мүмкүн.
  3. Ресурстарды координациялоо жана бөлүштүрүү - туура протоколдор же талап кылынган саясаттар жок болсо, кыйын болушу мүмкүн.

Бөлүштүрүлгөн эсептөө чөйрөсү

Бөлүштүрүлгөн эсептөө чөйрөсү
Бөлүштүрүлгөн эсептөө чөйрөсү

(DCE) мындай бөлүштүрүлгөн эсептөөлөрдү колдогон кеңири колдонулган тармактык стандарт. Интернетте үчүнчү тараптын провайдерлери кээ бир жалпы кызматтарды сунушташат,бул моделге туура келет.

Тордуу эсептөө – татаал маселени чечүү менен байланышкан көп сандагы компьютерлердин бөлүштүрүлгөн архитектурасы бар эсептөө модели. Тармактык эсептөө моделинде серверлер же жеке компьютерлер өз алдынча тапшырмаларды аткарышат жана бири-бирине Интернет же ылдамдыгы төмөн тармактар аркылуу эркин туташат.

Эң чоң тармактык эсептөө долбоору SETI@home, анда жеке компьютер ээлери Жерден тышкаркы интеллектти издөө (SETI) долбоору үчүн компьютерин колдонуп, көп тапшырмалуу иштетүү циклдерин аткарууга ыктыярдуу болушат. Бул компьютер көйгөйү радио телескоп маалыматтарын жүктөп алуу жана издөө үчүн миңдеген компьютерлерди колдонот.

Тор эсептөөлөрүнүн биринчи колдонулушунун бири азыр distributed.net деп аталган топ тарабынан криптографиялык кодду бузуу болгон. Бул топ ошондой эле алардын моделин бөлүштүрүлгөн эсептөө катары сүрөттөйт.

Маалымат базасын масштабдоо

Маалымат базасын масштабдоо
Маалымат базасын масштабдоо

Кожоюндан кулга жаңы маалыматты таратуу заматта болбойт. Чынында, сиз эскирген маалыматты ала турган убакыт терезеси бар. Эгерде андай болбосо, жазуу натыйжалуулугу начарлайт, анткени бөлүштүрүлгөн системалар маалыматтардын таралышы үчүн синхрондуу түрдө күтүшү керек болчу. Алар бир нече компромисс менен келишет.

Кул маалымат базасын колдонуу ыкмасын колдонуу менен окуу трафигин кандайдыр бир деңгээлде кеңейтүүгө болот. Бул жерде көптөгөн варианттар бар. Бирок сиз жөн гана жазуу трафигин бир нечеге бөлүшүңүз керексерверлер, анткени ал аны башкара албайт. Бир жолу - көп мастер репликациялоо стратегиясын колдонуу. Ал жерде кулдардын ордуна окуу жана жазууну колдогон бир нече негизги түйүндөр бар.

Дагы бир ыкма sharding деп аталат. Аны менен сервер сыныктар деп аталган бир нече кичинекей серверлерге бөлүнөт. Бул сыныктарда ар кандай жазуулар бар, кайсы жазуулар кайсы сыныкка кире турганы жөнүндө эрежелер түзүлөт. Маалыматтар бирдей бөлүштүрүлө тургандай эрежени түзүү абдан маанилүү. Буга мүмкүн болгон ыкма - кээ бир рекорддук маалыматка ылайык диапазондорду аныктоо.

Бул сынык ачкычы өтө кылдаттык менен тандалышы керек, анткени жүк ар дайым каалаган мамычалардын негиздерине барабар боло бербейт. Башкаларына караганда көбүрөөк суроо-талаптарды алган жалгыз сынык хотспот деп аталат жана алар анын пайда болушуна жол бербөөгө аракет кылышат. Бөлүнгөндөн кийин, кайра калибрлөө маалыматтары укмуштуудай кымбат болуп, олуттуу иштебей калууга алып келиши мүмкүн.

Маалымат базасы консенсус алгоритмдери

Берилиштер базасынын консенсус алгоритмдери
Берилиштер базасынын консенсус алгоритмдери

ДБларды бөлүштүрүлгөн коопсуздук системаларында ишке ашыруу кыйын, анткени алар ар бир түйүн туура үзгүлтүккө учуратууну же иш-аракетти аткарууну талап кылат. Бул сапат консенсус катары белгилүү жана бөлүштүрүү системасын курууда негизги көйгөй болуп саналат. Процесстер жана тармак толугу менен ишенимдүү болсо, "милдеттүү" көйгөйү үчүн зарыл болгон келишимдин түрүнө жетүү оңой. Бирок, реалдуу системалар бир катар баш ийеттармак процесстеринин мүмкүн болгон каталары, жоголгон, бузулган же кайталанган билдирүүлөр.

Бул көйгөй жаратат жана ишенимсиз тармакта чектелген убакыттын ичинде туура консенсуска жетишүүгө кепилдик берүү мүмкүн эмес. Иш жүзүндө, ишенимсиз тармакта консенсуска тез жетүүчү алгоритмдер бар. Кассандра чындыгында бөлүштүрүлгөн консенсус үчүн Paxos алгоритмин колдонуу аркылуу жеңил транзакцияларды камсыздайт.

Бөлүштүрүлгөн эсептөөлөр акыркы жылдары колдонулуп келе жаткан чоң маалыматтарды иштетүү агымынын ачкычы болуп саналат. Бул бир дагы компьютер өз алдынча эч нерсе кыла албаган 100 миллиард жазуу сыяктуу эбегейсиз чоң тапшырманы бир машинага бата турган көптөгөн майда тапшырмаларга бөлүү ыкмасы. Иштеп чыгуучу өзүнүн чоң тапшырмасын көптөгөн майда-чүйдөсүнө бөлүп, аларды көптөгөн машиналарда параллелдүү аткарат, маалыматтарды тийиштүү түрдө чогултат, ошондо баштапкы маселе чечилет.

Бул ыкма горизонталдуу масштабда болууга мүмкүндүк берет - чоң тапшырма болгондо, жөн гана эсептөөгө көбүрөөк түйүндөрдү кошуңуз. Бул тапшырмалар көп жылдар бою MapReduce программалоо модели тарабынан аткарылып, кластерде бөлүштүрүлгөн алгоритмди колдонуу менен параллелдүү иштетүү жана чоң маалымат топтомун түзүү менен байланышкан.

Учурда MapReduce бир аз эскирип, кээ бир көйгөйлөрдү жаратууда. Бул маселелерди чечкен башка архитектуралар пайда болду. Тактап айтканда, Lambda Architecture бөлүштүрүлөтагымын иштетүү системалары. Бул чөйрөдөгү жетишкендиктер жаңы куралдарды алып келди: Kafka Streams, Apache Spark, Apache Storm, Apache Samza.

Файлды сактоо жана репликация системалары

Файлдарды сактоо жана репликация системалары
Файлдарды сактоо жана репликация системалары

Бөлүштүрүлгөн файл тутумдарын бөлүштүрүлгөн маалымат кампалары катары кароого болот. Бул концепцияга окшош - бир объект болгон машиналардын кластеринде чоң көлөмдөгү маалыматтарды сактоо жана жетүү. Алар, адатта, бөлүштүрүлгөн эсептөө менен бирге иштешет.

Мисалы, Yahoo 2011-жылдан бери 600 петабайт маалыматтарды сактоо үчүн 42 000ден ашык түйүндөрдө HDFS иштеткени менен белгилүү. Wikipedia айырманы бөлүштүрүлгөн файл тутумдары Cassandra Query Language (CQL) сыяктуу ыңгайлаштырылган API аркылуу эмес, жергиликтүү файлдар сыяктуу эле интерфейстерди жана семантиканы колдонуу менен файлдарга кирүүгө мүмкүндүк берет деп аныктайт.

Hadoop Distributed File System (HDFS) – Hadoop инфраструктурасы аркылуу эсептөө үчүн колдонулган система. Кеңири таралган, ал көптөгөн машиналарда чоң файлдарды (ГБ же ТБ өлчөмү) сактоо жана кайталоо үчүн колдонулат. Анын архитектурасы негизинен NameNodes жана DataNodes'ден турат.

NameNodes кластер жөнүндө метаберилиштерди сактоо үчүн жооптуу, мисалы кайсы түйүндө файл блоктору бар. Алар тармактын координаторлору катары иштешет, файлдарды кайсы жерде сактоо жана көчүрүү эң жакшы экенин аныктап, системанын абалына көз салышат. DataNodes жөн гана файлдарды сактайт жана файлды репликациялоо, жаңы жазуу жана сыяктуу буйруктарды аткаратбашкалар.

Таң калыштуусу, HDFS Hadoop менен эсептөө үчүн эң жакшы колдонулат, анткени ал тапшырманын маалыматын билүүнү камсыз кылат. Көрсөтүлгөн жумуштар андан кийин маалыматтарды сактаган түйүндөрдө иштетилет. Бул маалыматтын жайгашкан жерин колдонууга мүмкүндүк берет - эсептөөлөрдү оптималдаштырат жана тармак аркылуу трафиктин көлөмүн азайтат.

Планеталар аралык файл тутуму (IPFS) бөлүштүрүлгөн файл системасы үчүн кызыктуу жаңы тең-тең протокол/тармак. Blockchain технологиясын колдонуу менен, ал толугу менен борбордон ажыратылган архитектура менен мактанат, анын эч кандай ээси жок же иштебей калышы мүмкүн.

IPFS IPNS деп аталган аттоо тутумун (DNSге окшош) сунуштайт жана колдонуучуларга маалыматты оңой алууга мүмкүнчүлүк берет. Ал Git сыяктуу эле, файлды тарыхый версиялоо аркылуу сактайт. Бул файлдын бардык мурунку абалына мүмкүнчүлүк берет. Ал дагы эле оор өнүктүрүүдө (жазып жаткан учурда v0.4), бирок аны курууга кызыкдар долбоорлорду көргөн (FileCoin).

Кабарлашуу системасы

билдирүү системасы
билдирүү системасы

Кабарлашуу тутумдары жалпы тутумдун ичинде билдирүүлөрдү сактоо жана таратуу үчүн борбордук жайгашкан жерди камсыз кылат. Алар колдонмо логикасын башка системалар менен түз байланыштан бөлүүгө мүмкүндүк берет.

Белгилүү масштаб - LinkedIn'дин Кафка кластери секундасына 4,5 миллион билдирүүнүн эң жогорку чеги менен күнүнө 1 триллион билдирүүнү иштеткен.

Жөнөкөй сөз менен айтканда, билдирүү платформасы мындай иштейт:

  1. Кабараны түзүүчү, продюсер деп аталган колдонмодон өтүп, платформага кирет жана керектөөчүлөр деп аталган бир нече колдонмолордон окулат.
  2. Эгер белгилүү бир окуяны бир нече жерде сактоо керек болсо, мисалы, маалымат базасы, сактагыч, электрондук почта жөнөтүү кызматы үчүн колдонуучуну түзүү, анда билдирүү платформасы ал билдирүүнү таратуунун эң таза жолу болуп саналат.

Бир нече таанымал жогорку деңгээлдеги билдирүү алмашуу платформалары бар.

RabbitMQ – бул каттам эрежелерин жана башка оңой конфигурациялануучу параметрлерди колдонуу менен алардын траекторияларын башкарууну жакшыраак жөнгө салууга мүмкүндүк берген билдирүү брокери. Аны "акылдуу" брокер деп атоого болот, анткени анын логикасы көп жана ал аркылуу өткөн билдирүүлөрдү тыкыр көзөмөлдөйт. CAP AP жана CP үчүн опцияларды камсыз кылат.

Kafka бир аз иштебей турган билдирүү брокери, анткени ал кайсы билдирүүлөр окулганын көзөмөлдөбөйт жана татаал маршрутташтыруу логикасына жол бербейт. Бул укмуштуудай көрсөткүчтөргө жетишүүгө жардам берет жана ачык булак коомчулугу тарабынан бөлүштүрүлгөн системаларды активдүү өнүктүрүү жана Confluent командасынын колдоосу менен бул мейкиндиктеги эң чоң убаданы билдирет. Кафка жогорку технологиялык компаниялар арасында эң популярдуу.

Машинанын өз ара аракеттенүү колдонмолору

Бул бөлүштүрүү системасы акыркы колдонуучуга өзүнчө компьютер катары көрүнүү үчүн чогуу иштеген компьютерлердин тобу. Бул машиналар жалпы абалда, иштеп жататбир эле учурда жана бүт системанын иштөө убактысына таасирин тийгизбестен өз алдынча иштей алат.

Эгер сиз маалымат базасын бөлүштүрүлгөн деп эсептесеңиз, түйүндөр өз аракеттерин координациялоо үчүн бири-бири менен өз ара аракеттенсе гана. Бул учурда өзүнүн ички кодун peer-to-peer тармагында иштеткен колдонмо сыяктуу нерсе жана бөлүштүрүлгөн колдонмо катары классификацияланат.

Белгилүү масштаб - BitTorrent
Белгилүү масштаб - BitTorrent

Мындай колдонмолордун мисалдары:

  1. Белгилүү шкала - BitTorrent оюну Тактылар эпизоду үчүн 193 000 түйүндү камтыйт.
  2. Бөлүштүрүлгөн блокчейн системаларынын негизги реестр технологиясы.

Бөлүштүрүлгөн бухгалтердик китептерди репликацияланган, синхрондоштуруучу жана бөлүштүрүү тармагынын бардык түйүндөрүндө бөлүшүлгөн өзгөрүлгүс, колдонмо үчүн гана маалымат базасы катары кароого болот.

Белгилүү шкала - Ethereum тармагы - 2018-жылдын 4-январында күнүнө 4,3 миллион транзакция болгон. Алар маалымат базасынын абалын каалаган убакта калыбына келтирүүгө мүмкүндүк берген Event Sourcing үлгүсүн колдонушат.

Блокчейн - бул бөлүштүрүлгөн бухгалтердик китептер үчүн колдонулган жана иш жүзүндө алардын башталышын белгилеген учурдагы негизги технология. Бөлүштүрүлгөн мейкиндиктеги бул эң жаңы жана эң чоң инновация биринчи чыныгы бөлүштүрүлгөн төлөм протоколун, биткоинди түздү.

Blockchain - бул тармакта болуп өткөн бардык транзакциялардын иреттелген тизмеси менен бөлүштүрүлгөн китеп. Бүтүмдөр топтолуп, блоктордо сакталат. Бүтүндөй блокчейн негизинен блоктордун байланышкан тизмеси. Белгиленген блоктортүзүү кымбат жана криптография аркылуу бири-бири менен тыгыз байланышта. Жөнөкөй сөз менен айтканда, ар бир блокто учурдагы блоктун (Меркле дарагы түрүндө) мазмунунун атайын хэш (нөлдүн X саны менен башталат) жана мурунку блоктун хэши бар. Бул хэш көп CPU кубатын талап кылат.

Бөлүштүрүлгөн операциялык системалардын мисалдары

Бөлүштүрүлгөн операциялык системалардын мисалдары
Бөлүштүрүлгөн операциялык системалардын мисалдары

Системанын түрлөрү колдонуучуга көрүнөт, анткени алар бир колдонуучу системалар. Алар эстутумун, дискти бөлүшөт жана колдонуучу маалыматтар боюнча навигациялоодо эч кандай кыйынчылык болбойт. Колдонуучу өзүнүн компьютеринде бир нерсени сактайт жана файл жоголгон дайындарды оңой калыбына келтирүү үчүн бир нече жерде, башкача айтканда туташкан компьютерлерде сакталат.

Бөлүштүрүлгөн операциялык системалардын мисалдары:

  1. Windows Server 2003;
  2. Windows Server 2008;
  3. Windows Server 2012;
  4. UbuntuLinux (Apache сервери).

Эгер кайсы бир компьютер жогорураак жүктөлсө, башкача айтканда, жеке компьютерлердин ортосунда көптөгөн суроо-талаптар алмашса, жүктүн тең салмактуулугу ушундай болот. Бул учурда, суроо-талаптар кошуна PC жайылтылат. Тармак көбүрөөк жүктөлсө, тармакка көбүрөөк системаларды кошуу менен аны кеңейтүүгө болот. Тармак файлы жана папкалар синхрондолуп, атоо конвенциялары колдонулат, андыктан дайындар алынганда каталар болбойт.

Кэштөө дайындарды манипуляциялоодо да колдонулат. Бардык компьютерлер файлдарды атоо үчүн бирдей мейкиндикти колдонушат. Бирокфайл системасы ар бир компьютер үчүн жарактуу. Эгер файлга жаңыртуулар болсо, ал бир компьютерге жазылат жана өзгөртүүлөр бардык компьютерлерге жайылтылат, андыктан файл бирдей көрүнөт.

Файлдар окуу/жазуу процессинде кулпулангандыктан, ар кандай компьютерлердин ортосунда туюктук болбойт. Окуу, бир сеанста файлдарды жазуу жана сеансты жабуу сыяктуу сеанстар да болот, андан кийин башка колдонуучу да ошондой кыла алат.

Колдонуунун артыкчылыктары

Адамдардын күнүмдүк жашоосун жеңилдетүү үчүн иштелип чыккан операциялык система. Колдонуучунун артыкчылыктары жана муктаждыктары үчүн операциялык система бир колдонуучу же бөлүштүрүлгөн болушу мүмкүн. Бөлүштүрүлгөн ресурс системасында көптөгөн компьютерлер бири-бирине туташып, өз ресурстарын бөлүшүшөт.

Мунун пайдасы:

  1. Эгер мындай системанын бир компьютери бузулса же бузулса, аны башка түйүн же компьютер чечет.
  2. Көбүрөөк ресурстарды оңой эле кошууга болот.
  3. Принтерлер сыяктуу ресурстар бир нече компьютерди тейлей алат.

Бул бөлүштүрүү системасы жөнүндө кыскача, ал эмне үчүн колдонулат. Кээ бир маанилүү нерселерди эстен чыгарбоо керек: алар татаал жана масштабы жана баасы боюнча тандалып алынган жана алар менен иштөө кыйыныраак. Бул системалар бир нече сактоо категорияларына бөлүштүрүлөт: эсептөө, файл жана билдирүү системалары, регистрлер, тиркемелер. Мунун баары татаал маалымат системасы жөнүндө өтө үстүртөн гана.

Сунушталууда: