Разпределени системи: определение, характеристики и основни принципи

Съдържание:

Разпределени системи: определение, характеристики и основни принципи
Разпределени системи: определение, характеристики и основни принципи
Anonim

Разпределената система в най-простата си дефиниция е група от компютри, работещи заедно, които изглеждат като едно за крайния потребител. Машините споделят общо състояние, работят едновременно и могат да работят независимо, без да оказват влияние върху времето на работа на цялата система. Истината е, че управлението на такива системи е сложна тема, изпълнена с клопки.

Преглед на системата

Разпределени системи
Разпределени системи

Разпределената система позволява споделяне на ресурси (включително софтуер), свързани към мрежата по едно и също време.

Примери за системно разпространение:

  1. Традиционен стек. Тези бази данни се съхраняват във файловата система на една машина. Всеки път, когато потребителят иска да получи информация, той комуникира директно с тази машина. За да разпространявате тази система от база данни, трябва да я стартирате на няколко компютъра едновременно.
  2. Разпределена архитектура.

Разпределена системави позволява да мащабирате хоризонтално и вертикално. Например, единственият начин да се справите с повече трафик би бил да надстроите хардуера, който управлява базата данни. Това се нарича вертикално мащабиране. Вертикалното мащабиране е добро до определена граница, след което дори най-доброто оборудване не може да се справи с осигуряването на необходимия трафик.

Хоризонталното мащабиране означава добавяне на още компютри, а не надграждане на хардуера на един. Вертикалното мащабиране увеличава производителността до най-новите хардуерни възможности в разпределените системи. Тези възможности не са достатъчни за технологични компании с умерено до голямо натоварване. Най-хубавото при хоризонталното мащабиране е, че няма ограничения за размера. Когато производителността се влоши, просто се добавя друга машина, което по принцип може да се прави за неопределено време.

На корпоративно ниво, разпределената система за контрол често включва различни стъпки. В бизнес процеси в най-ефективните места на корпоративната компютърна мрежа. Например, при типична дистрибуция, използваща модел на тристепенна разпределена система, обработката на данни се извършва на компютър на местоположението на потребителя, бизнес обработката се извършва на отдалечен компютър, а достъпът до база данни и обработката на данни се извършват на напълно различен компютър която осигурява централизиран достъп за много бизнес процеси. Обикновено този тип разпределени изчисленияизползва модела на взаимодействие клиент-сървър.

Основни задачи

Основни задачи
Основни задачи

Основните задачи на разпределената система за управление включват:

  1. Прозрачност - Постигнете единно системно изображение, без да криете местоположение, достъп, миграция, паралелност, отказ, преместване, постоянство и подробности за ресурсите за потребителите.
  2. Отвореност - опростява настройката и промените в мрежата.
  3. Надеждност - В сравнение с една система за управление, тя трябва да бъде надеждна, последователна и да има голяма вероятност от маскиране на грешки.
  4. Ефективност - В сравнение с други модели, разпределените модели осигуряват повишаване на производителността.
  5. Мащабируеми - Тези разпределени системи за управление трябва да бъдат мащабируеми по отношение на територия, администрация или размер.

Задачите на системите за дистрибуция включват:

  1. Сигурността е голям проблем в разпределена среда, особено когато се използват обществени мрежи.
  2. Толерантност на грешки - може да бъде трудно, когато моделът е изграден с ненадеждни компоненти.
  3. Координацията и разпределението на ресурсите - може да бъде трудно, ако няма подходящи протоколи или необходими политики.

Разпределена изчислителна среда

Разпределена изчислителна среда
Разпределена изчислителна среда

(DCE) е широко използван индустриален стандарт, поддържащ такива разпределени изчисления. В интернет доставчиците на трети страни предлагат някои общи услуги,които се вписват в този модел.

Grid computing е изчислителен модел с разпределена архитектура на голям брой компютри, свързани с решаването на сложен проблем. В мрежовия компютърен модел сървърите или персоналните компютри изпълняват независими задачи и са слабо свързани помежду си чрез интернет или нискоскоростни мрежи.

Най-големият проект за мрежови изчисления е SETI@home, в който собствениците на отделни компютри доброволно изпълняват някои от своите многозадачни цикли на обработка, използвайки своя компютър за проекта за търсене на извънземен интелект (SETI). Този компютърен проблем използва хиляди компютри за изтегляне и търсене на данни от радиотелескопа.

Едно от първите употреби на мрежовите изчисления беше да се разбие криптографски код от група, известна сега като distributed.net. Тази група също така описва техния модел като разпределени изчисления.

Мащабиране на база данни

Мащабиране на базата данни
Мащабиране на базата данни

Разпространението на нова информация от главен към подчинен не става мигновено. Всъщност има времеви прозорец, в който можете да получите остаряла информация. Ако това не беше така, производителността на запис щеше да пострада, тъй като разпределените системи ще трябва да чакат синхронно, за да се разпространят данните. Те идват с няколко компромиса.

Използвайки подход на подчинена база данни, е възможно да се намали до известна степен трафика за четене. Тук има много опции. Но просто трябва да разделите трафика на запис на няколкосървъри, защото не може да се справи. Един от начините е да се използва стратегия за репликация с няколко главни. Там, вместо подчинени, има няколко основни възела, които поддържат четене и писане.

Друг метод се нарича раздробяване. С него сървърът се разделя на няколко по-малки сървъра, наречени фрагменти. Тези фрагменти имат различни записи, създават се правила за това кои записи влизат в кой шард. Много е важно да се създаде такова правило, че данните да се разпределят равномерно. Възможен подход към това е да се дефинират диапазони според информация за запис.

Този ключ трябва да бъде избран много внимателно, тъй като натоварването не винаги е равно на основите на произволни колони. Единственият фрагмент, който получава повече заявки от останалите, се нарича гореща точка и те се опитват да предотвратят образуването му. След като бъдат разделени, данните за повторно калибриране стават невероятно скъпи и могат да доведат до значителен престой.

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

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

DB са трудни за внедряване в разпределени системи за сигурност, тъй като те изискват всеки възел да договаря правилното прекъсване или извършване на действие. Това качество е известно като консенсус и е основен проблем при изграждането на дистрибуторска система. Постигането на типа споразумение, необходимо за проблема "ангажиране", е лесно, ако участващите процеси и мрежата са напълно надеждни. Реалните системи обаче са обект на редицавъзможни неуспехи на мрежовите процеси, изгубени, повредени или дублирани съобщения.

Това представлява проблем и не е възможно да се гарантира, че ще бъде постигнат правилният консенсус в рамките на ограничен период от време в ненадеждна мрежа. На практика има алгоритми, които постигат консенсус доста бързо в ненадеждна мрежа. Cassandra всъщност осигурява леки транзакции чрез използването на алгоритъма на Paxos за разпределен консенсус.

Разпределените изчисления са ключът към притока на обработка на големи данни, която се използва през последните години. Това е метод за разбиване на огромна задача, като кумулативни 100 милиарда записи, от които нито един компютър не е в състояние да направи практически нищо сам, на много по-малки задачи, които могат да се поберат в една машина. Разработчикът разделя огромната си задача на много по-малки, изпълнява ги на много машини паралелно, събира данните по подходящ начин, след което първоначалният проблем ще бъде решен.

Този подход ви позволява да мащабирате хоризонтално - когато има голяма задача, просто добавете още възли към изчислението. Тези задачи се изпълняват в продължение на много години от програмния модел MapReduce, свързан с внедряването за паралелна обработка и генериране на масиви от големи данни с помощта на разпределен алгоритъм в клъстер.

В момента MapReduce е малко остарял и носи някои проблеми. Появиха се и други архитектури, които се занимават с тези проблеми. А именно, Lambda Architecture за разпределенисистеми за обработка на потоци. Напредъкът в тази област донесе нови инструменти: Kafka Streams, Apache Spark, Apache Storm, Apache Samza.

Системи за съхранение и репликация на файлове

Системи за съхранение и репликация на файлове
Системи за съхранение и репликация на файлове

Разпределените файлови системи могат да се разглеждат като разпределени хранилища на данни. Това е същото като концепцията - съхраняване и достъп до голямо количество данни в клъстер от машини, които са едно цяло. Те обикновено вървят ръка за ръка с разпределените изчисления.

Например, Yahoo е известен с това, че изпълнява HDFS на над 42 000 възела за съхранение на 600 петабайта данни от 2011 г. Wikipedia дефинира разликата в това, че разпределените файлови системи позволяват достъп до файлове, използвайки същите интерфейси и семантика като локалните файлове, а не чрез персонализиран API като Cassandra Query Language (CQL).

Hadoop Distributed File System (HDFS) е система, използвана за изчисления през инфраструктурата на Hadoop. Широко разпространен, той се използва за съхраняване и репликиране на големи файлове (GB или TB размер) на много машини. Архитектурата му се състои главно от възли на имена и възли на данни.

NameNodes е отговорен за съхраняването на метаданни за клъстера, като например кой възел съдържа файлови блокове. Те действат като мрежови координатори, като определят къде е най-добре да съхраняват и копират файлове, следят здравето на системата. DataNodes просто съхраняват файлове и изпълняват команди като репликация на файлове, ново запис идруги.

Не е изненадващо, че HDFS се използва най-добре с Hadoop за изчисления, тъй като осигурява информираност за информацията за задачите. След това посочените задачи се изпълняват на възлите, които съхраняват данните. Това ви позволява да използвате местоположението на данните - оптимизира изчисленията и намалява количеството трафик през мрежата.

Междупланетната файлова система (IPFS) е вълнуващ нов peer-to-peer протокол/мрежа за разпределена файлова система. Използвайки технологията Blockchain, той може да се похвали с напълно децентрализирана архитектура без един собственик или точка на повреда.

IPFS предлага система за именуване (подобна на DNS), наречена IPNS и позволява на потребителите лесно да извличат информация. Той съхранява файла чрез исторически версии, подобно на Git. Това позволява достъп до всички предишни състояния на файла. Той все още преминава през тежко развитие (v0.4 към момента на писане), но вече има проекти, които се интересуват от изграждането му (FileCoin).

Система за съобщения

система за съобщения
система за съобщения

Системите за съобщения осигуряват централно място за съхранение и разпространение на съобщения в рамките на обща система. Те ви позволяват да отделите логиката на приложението от директната комуникация с други системи.

Позната скала - клъстерът Kafka на LinkedIn обработва 1 трилион съобщения на ден с пикове от 4,5 милиона съобщения в секунда.

С прости думи, платформата за съобщения работи така:

  1. Съобщениепредава се от приложението, което потенциално го създава, наречено производител, влиза в платформата и се чете от множество приложения, наречени потребители.
  2. Ако трябва да съхранявате определено събитие на множество места, като например създаване на потребител за база данни, съхранение, услуга за изпращане на имейли, тогава платформата за съобщения е най-чистият начин за разпространение на това съобщение.

Има няколко популярни първокласни платформи за съобщения.

RabbitMQ е посредник за съобщения, който ви позволява по-фино да настроите контрола на техните траектории, използвайки правила за маршрутизиране и други лесно конфигурируеми параметри. Може да се нарече "умен" брокер, защото има много логика и следи внимателно съобщенията, които преминават през него. Предоставя опции за AP и CP от CAP.

Kafka е брокер на съобщения, който е малко по-малко функционален, тъй като не следи кои съобщения са прочетени и не позволява сложна логика за маршрутизиране. Той помага да се постигне невероятна производителност и представлява най-голямото обещание в това пространство с активното развитие на разпределени системи от общността с отворен код и подкрепата на екипа на Confluent. Kafka е най-популярен сред високотехнологичните компании.

Приложения за взаимодействие с машина

Тази система за разпространение е група от компютри, работещи заедно, за да се появят като отделен компютър за крайния потребител. Тези машини са в общо състояние, работещиедновременно и може да работи независимо, без да засяга времето за работа на цялата система.

Ако смятате базата данни за разпределена, само ако възлите взаимодействат помежду си, за да координират своите действия. В този случай това е нещо като приложение, изпълняващо вътрешния си код в peer-to-peer мрежа и се класифицира като разпределено приложение.

Известен мащаб - BitTorrent
Известен мащаб - BitTorrent

Примери за такива приложения:

  1. Известна скала - BitTorrent рояк 193 000 възела за епизод на Game of Thrones.
  2. Основна технология за регистър на разпределените блокчейн системи.

Разпределените регистри могат да се разглеждат като неизменна база данни само за приложения, която се репликира, синхронизира и споделя във всички възли в мрежата за разпространение.

Добре познатата скала - мрежата Ethereum - имаше 4,3 милиона транзакции на ден на 4 януари 2018 г. Те използват модела Event Sourcing, който ви позволява да възстановите състоянието на базата данни по всяко време.

Blockchain е текущата основна технология, използвана за разпределените регистри и всъщност отбеляза тяхното начало. Тази най-нова и най-голяма иновация в разпределеното пространство създаде първия истински разпределен протокол за плащане, биткойн.

Blockchain е разпределен регистър с подреден списък на всички транзакции, които някога са се извършвали в неговата мрежа. Сделките са групирани и съхранявани в блокове. Целият блокчейн е по същество свързан списък от блокове. Определени блоковеса скъпи за създаване и са тясно свързани помежду си чрез криптография. Просто казано, всеки блок съдържа специален хеш (който започва с X брой нули) на съдържанието на текущия блок (под формата на дърво Merkle) плюс хеша на предишния блок. Този хеш изисква много мощност на процесора.

Примери за разпределени операционни системи

Примери за разпределени операционни системи
Примери за разпределени операционни системи

Типове системи се появяват на потребителя, защото са системи с един потребител. Те споделят своята памет, диск и потребителят няма проблеми с навигацията през данните. Потребителят съхранява нещо в своя компютър и файлът се съхранява на множество места, т.е. свързани компютри, така че загубените данни могат лесно да бъдат възстановени.

Примери за разпределени операционни системи:

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

Ако някой компютър се стартира по-високо, тоест ако много заявки се обменят между отделни компютри, това е начинът, по който се получава балансиране на натоварването. В този случай заявките се разпространяват към съседния компютър. Ако мрежата стане по-натоварена, тогава тя може да бъде разширена чрез добавяне на повече системи към мрежата. Мрежовият файл и папките се синхронизират и се използват конвенции за именуване, така че да не възникват грешки при извличане на данни.

Кеширането също се използва при манипулиране на данни. Всички компютри използват едно и също пространство от имена за именуване на файлове. Нофайловата система е валидна за всеки компютър. Ако има актуализации на файла, той се записва на един компютър и промените се разпространяват на всички компютри, така че файлът изглежда еднакво.

Файловете се заключват по време на процеса на четене/запис, така че няма блокиране между различните компютри. Възникват и сесии, като четене, писане на файлове в една сесия и затваряне на сесията, след което друг потребител може да направи същото и т.н.

Предимства от използването

Операционна система, предназначена да улесни ежедневието на хората. За потребителски предимства и нужди операционната система може да бъде с един потребител или разпределена. В система с разпределени ресурси много компютри са свързани един с друг и споделят своите ресурси.

Ползи от това:

  1. Ако един компютър в такава система е дефектен или повреден, тогава друг възел или компютър ще се погрижи за това.
  2. Могат лесно да се добавят още ресурси.
  3. Ресурси като принтери могат да обслужват множество компютри.

Това е накратко за системата за разпространение, защо се използва. Някои важни неща, които трябва да запомните: те са сложни и са избрани за мащаб и цена и са по-трудни за работа. Тези системи са разпределени в няколко категории за съхранение: изчислителни, файлови системи и системи за съобщения, регистри, приложения. И всичко това е много повърхностно за сложна информационна система.

Препоръчано: