телевизори. Конзоли. Проектори и аксесоари. Технологии. Цифрова телевизия

Клъстерни системи. · превантивни и ремонтни работи, преконфигуриране или промяна на софтуерни версии, като правило, могат да се извършват в клъстерните възли един по един, без да се прекъсва работата на други възли. Внедряване на Oracle RAC

  • 2. Аритметично-логически устройства. Структура, проектен подход, основни уравнения на работа на алуминий
  • 3. Организация на трансферните вериги в рамките на алуминиевата секция. Увеличаване на битовия капацитет, схема за ускорен трансфер
  • 4. Регистър ALU е основната структура на микропроцесора. Възможности за изграждане на регистрови структури. Задача за контрол и синхронизация
  • 7. Устройство за микропрограмно управление. Структура, методи за генериране на управляващи сигнали, адресиране на микрокоманди
  • 8. Командна система и методи за адресиране на операнди. Конвейерният принцип на изпълнение на командите
  • 9. Структурни конфликти и начини за тяхното минимизиране. Конфликти на данни, спиране на тръбопровода и прилагане на механизма за байпас
  • 10. Намаляване на загубите при изпълнение на команди за преход и минимизиране на конфликтите при управление
  • 11. Класификация на системите с памет. Организация на системите с памет в микропроцесорни системи
  • 12. Принципи на организация на кеш паметта. Методи за показване на данни от RAM към кеш памет
  • 13. Режими за директен достъп до паметта. Структури на PDP контролера
  • 14. Принципи на функциониране на виртуалната памет
  • 15. Типични структури и принципи на работа на микропроцесорни системи
  • 16. Основни режими на работа на микропроцесорна система. Изпълнение на основната програма, извикване на подпрограми
  • 17. Основни режими на работа на микропроцесорна система. Обработка на прекъсвания и изключения
  • 18. Системи с циклично запитване. Блокиране на приоритетно прекъсване
  • 19. Обмен на информация между елементи в микропроцесорни системи. Арбитър на багажника
  • Част 2
  • 20. Класификация на архитектурите на съвременните микропроцесори. Архитектури с пълен и намален набор от инструкции, суперскаларна архитектура
  • 21. Класификация на архитектурите на съвременните микропроцесори. Принстън (фон Нойман) и архитектура на Харвард
  • 22. Структура на съвременни 8-битови микроконтролери с Risc архитектура
  • 22 (?). Структура на съвременни 32-битови микроконтролери с Risc архитектура
  • 23. Процесори за цифрова обработка на сигнали: принципи на организация, обща структура
  • 24. Процесори с общо предназначение, използващи архитектурата IntelP6 като пример
  • 25. Класификация на архитектурите на паралелни изчислителни системи. Системи със споделена памет
  • 26. Класификация на архитектурите на паралелни изчислителни системи. Системи с разпределена памет
  • 27. Векторно-тръбопроводни изчислителни системи. Памет с наслояване. Характеристики на структурата на системата Cray-1
  • 28. Матрични изчислителни системи. Характеристики на изграждане на системи за памет и комутатори
  • 29. Машини, управлявани от поток от данни. Принципи на действие и особености на конструкцията им. Графичен метод за представяне на програми
  • 30. Системи с програмируема структура. Хомогенни изчислителни среди
  • 31. Систолни изчислителни системи
  • 32. Клъстерни изчислителни системи: дефиниция, класификация, топологии
  • 32. Клъстерни изчислителни системи: дефиниция, класификация, топологии

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

    Клъстере свързан набор пълноценни компютри, използвани като единен изчислителен ресурс. Както идентични (хомогенни клъстери), така и различни (хетерогенни клъстери) компютри могат да се използват като клъстерни възли. По своята архитектура клъстерната изчислителна система е слабо свързана. За да създадете клъстери, или обикновени еднопроцесорни персонални компютри, или дву- или четирипроцесорни SMP сървъри. В този случай не се налагат ограничения върху състава и архитектурата на възлите.

    На хардуерно ниво клъстер- набор от независими изчислителни системи, свързани в мрежа.

    Най-простата класификация на клъстерните системи се основава на начина, по който се използват дисковите масиви: заедно или поотделно.

    Конфигурация на клъстер без споделени дискове:

    Конфигурация на клъстер със споделени дискове:

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

    Разликата между представените клъстери е, че при локална мрежа възлите използват локални дискови масиви, а при наета линия възлите споделят един резервен масив от независими твърди дисковеили така наречения RAID (Redundant Array of Independent Disks). RAID се състои от няколко диска, управлявани от контролер, свързани помежду си чрез високоскоростни канали и възприемани от външната система като едно цяло. В зависимост от вида на използвания масив могат да се осигурят различни степени на устойчивост на грешки и производителност.

    Класификация на клъстерите според използваните методи за клъстеризация, които определят осн функционални характеристикисистеми:

    ∙ групиране с пасивно резервиране;

    ∙ групиране с активно резервиране;

    ∙ независими сървъри;

    ∙ сървъри с връзки към всички дискове;

    ∙ сървъри със споделени дискове.

    Клъстерирането с излишък е най-старият и универсален метод. Единият от сървърите поема цялото изчислително натоварване, докато другият остава неактивен, но е готов да поеме изчисленията, ако основният сървър се повреди. Активният (или основен) сървър периодично изпраща съобщение за часовник до резервния (вторичен) сървър. Ако няма сърдечни съобщения, което се счита за повреда на основния сървър, вторичният сървър поема контрола.

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

    При първия метод всеки клъстерен възел се третира като независим сървър със собствени дискове и нито един от дисковете в системата не се споделя.

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

    Топология на двойки клъстери:

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

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

    Топология н+ 1:

    Топология н + 1 ви позволява да създавате клъстери от два, три и четири възела. Всеки дисков масив е свързан само с два клъстерни възела. Дисковите масиви са организирани по схемата RAID1 (mirroring). Един сървър има връзка с всички дискови масиви и служи като резервен за всички останали (основни или активни) възли. Сървърът в режим на готовност може да се използва за осигуряване на висока наличност, когато е сдвоен с който и да е от активните възли.

    Топология н × н подобно на топологията н+ 1 ви позволява да създавате клъстери от два, три и четири възела, но за разлика от него има по-голяма гъвкавост и мащабируемост. Само в тази топология всички клъстерни възли имат достъп до всички дискови масиви, които от своя страна са изградени по схемата RAID1 (mirroring). Мащабируемостта на топологията се проявява в лекотата на добавяне на допълнителни възли и дискови масиви към клъстера, без да се променят връзките в системата.

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

    Топология н× н:

    Напълно отделна топология за достъп:

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

    Принципът на тяхното действие се основава на разпределението на заявките през един или повече входни възли, които ги пренасочват за обработка към останалите изчислителни възли. Първоначалната цел на такъв клъстер е производителността, но те често използват и техники за подобряване на надеждността. Такива структури се наричат ​​сървърни ферми. Софтуерът може да бъде комерсиален (OpenVMS, MOSIX, Platform LSF HPC, Solaris Cluster, Moab Cluster Suite, Maui Cluster Scheduler) или безплатен (OpenMosix, Sun Grid Engine, Linux Virtual Server).

    Изчислителни клъстери

    Клъстерите се използват за компютърни цели, особено в научни изследвания. За изчислителните клъстери значими показатели са високата производителност на процесора при операции с плаваща запетая (flops) и ниската латентност на свързващата мрежа, а по-малко значими са скоростта на I/O операциите, която е по-важна за бази данни и уеб услуги. Компютърните клъстери позволяват да се намали времето за изчисление в сравнение с единичен компютър чрез разделяне на задачата на паралелни изпълняващи се клонове, които обменят данни през взаимосвързана мрежа. Една типична конфигурация е колекция от компютри, изградени от общодостъпни компоненти, работещи с операционна система Linux и свързани чрез Ethernet, Myrinet, InfiniBand или други сравнително евтини мрежи. Такава система обикновено се нарича клъстер Беоулф. Клъстерите с висока производителност са специално идентифицирани (означени с английското съкращение HPC клъстер - Високопроизводителен изчислителен клъстер). Списък на най-мощните високопроизводителни компютри (може да се обозначи и с английската абревиатура HPC) могат да бъдат намерени в световната класация TOP500. В Русия има рейтинг на най мощни компютриОНД.

    Разпределени изчислителни системи (решетка)

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

    Клъстер от сървъри, организирани програмно

    Клъстерните системи заемат достойно място в списъка на най-бързите, като същевременно значително превъзхождат суперкомпютрите по цена. Към юли 2008 г. клъстерът SGI Altix ICE 8200 (Chippewa Falls, Уисконсин, САЩ) е на 7-мо място в класацията TOP500.

    Сравнително евтина алтернатива на суперкомпютрите е представена от клъстери, базирани на концепцията на Beowulf, които са изградени от обикновени евтини компютри, базирани на безплатни софтуер. Един практически пример за такава система е Stone Soupercomputer в Националната лаборатория Оук Ридж (Тенеси, САЩ, 1997 г.).

    Най-големият клъстер, притежаван от частно лице (от 1000 процесора) е изграден от Джон Коза.

    История

    Историята на създаването на клъстери е неразривно свързана с ранните разработки в областта компютърни мрежи. Една от причините за появата на високоскоростна комуникация между компютрите беше надеждата за обединяване на изчислителните ресурси. В началото на 70-те години екипът за разработка на TCP/IP и лабораторията на Xerox PARC установиха мрежови стандарти. Появи се и операционната система Hydra за компютри PDP-11, произведена от DEC; клъстерът, създаден на тази основа, беше наречен C.mpp (Питсбърг, Пенсилвания, САЩ, 1971 г.). Въпреки това, едва през 1983 г. бяха създадени механизми, които да улеснят разпространението на задачи и файлове по мрежа, най-вече от SunOS (базирана на BSD операционна система от Sun Microsystems).

    Първият търговски проект на клъстера е ARCNet, създаден от Datapoint през 1977 г. Той не стана печеливш и следователно изграждането на клъстери не се разви до 1984 г., когато DEC изгради своя VAXcluster, базиран на операционната система VAX/VMS. ARCNet и VAXcluster са проектирани не само за съвместни изчисления, но и за споделяне на файловата система и периферните устройства, като се вземе предвид запазването на целостта и недвусмислеността на данните. VAXCluster (сега наричан VMSCluster) е неразделен компонент на операционната система OpenVMS, използваща процесори DEC Alpha и Itanium.

    Два други ранни клъстерни продукта, които получиха признание, включват Tandem Hymalaya (1994, клас ) и IBM S/390 Parallel Sysplex (1994).

    Историята на създаването на клъстери от обикновени персонални компютри дължи много на проекта Parallel Virtual Machine. През 1989 г. този софтуер за свързване на компютри във виртуален суперкомпютър направи възможно незабавното създаване на клъстери. В резултат на това общата производителност на всички евтини клъстери, създадени по това време, надмина по производителност сумата от капацитета на „сериозните“ търговски системи.

    Създаването на клъстери, базирани на евтини персонални компютри, свързани с мрежа за предаване на данни, продължи през 1993 г. от Американската аерокосмическа агенция НАСА, след което през 1995 г. бяха разработени клъстери Beowulf, специално проектирани на базата на този принцип. Успехът на такива системи стимулира развитието

    Клъстерните изчислителни системи се превърнаха в продължение на развитието на идеите, вградени в архитектурата на MPA системите. Ако в MPA система процесорният модул действа като цялостен изчислителен възел, тогава в клъстерните системи наличните в търговската мрежа компютри се използват като такива изчислителни възли. Развитието на комуникационните технологии, а именно появата на високоскоростно мрежово оборудване и специални софтуерни библиотеки, например MPI (Message Passing Interface), който реализира механизма за предаване на съобщения чрез стандартни мрежови протоколи, направи клъстерните технологии общодостъпни. В момента много малки клъстерни системи се създават чрез комбиниране на изчислителната мощност на лабораторни или класни компютри.

    Привлекателна черта на клъстерните технологии е, че за постигане на необходимата производителност, те позволяват изграждането на хетерогенни системи, т.е. комбинирането на компютрите на различни видове, вариращи от персонални компютри до мощни суперкомпютри. Клъстерните технологии станаха широко разпространени като средство за създаване на системи от суперкомпютърен клас компонентимасово производство, което значително намалява цената на изчислителната система. По-специално, един от първите проекти, реализирани през 1998 г., беше The Cost ефективна COmputing Array (COCOA), в която, базирана на 25 двупроцесорни персонални компютъра с обща цена от около $100 000, система с производителност, еквивалентна на 48 -Създаден е процесорът Cray T3D, струващ няколко милиона долара.

    Лайл Лонг, професор по аерокосмическо инженерство в Penn State University, вярва, че сравнително евтините клъстерни изчислителни системи биха могли да служат като алтернатива на скъпите суперкомпютри в научните организации. Под негово ръководство е изграден клъстерът COCOA в университета. В рамките на този проект 25 ра-

    варелни станции от DELL, всяка от които включва по две Процесор Pentium II/400 MHz, 512 MB оперативна памет, 4 ГИГАБАЙТА HDD SCSI и Fast Ethernet мрежов адаптер. За свързване на възлите се използва 24-портов комутатор Baynetworks 450T с един разширителен модул. Инсталираният софтуер включва операционната система RedHat Linux, компилатори Fortran 90 и HPF от Portland Group, свободно разпространявана реализация на MPI - Message Passing Interface Chameleon (MPICH) и DQS система за опашка.

    В документ, представен на 38-ата среща и изложение на аерокосмическата наука, Лонг описва паралелна версия на изчислителна програма за балансиране на натоварването, използвана за прогнозиране на нивата на шум от хеликоптери на различни места. За сравнение, тази изчислителна програма беше пусната на три различни 48-процесорни компютъра, за да изчисли шума при 512 точки. При системата Cray T3E изчислението отне 177 секунди, при системата SGI Origin2000 - 95 секунди, а при клъстера COCOA - 127 секунди. По този начин клъстерите са много ефективни изчислителна платформаза проблеми от този клас.

    Друго предимство на клъстерните системи пред суперкомпютрите е, че техните собственици не трябва да споделят процесорно време с други потребители, както в големите суперкомпютърни центрове. По-специално, COCOA осигурява повече от 400 хиляди часа процесорно време годишно, докато в суперкомпютърните центрове може да бъде трудно да се получат 50 хиляди часа.

    Разбира се, не е необходимо да се говори за пълна еквивалентност на тези системи. Както е известно, производителността на системите с разпределена памет много зависи от производителността на комутационната среда, която може да се характеризира с два параметъра: латентност - времето на забавяне при изпращане на съобщение и пропускателна способност - скоростта на пренос на информация. Например за компютър Cray T3D тези параметри са съответно 1 μs и 480 Mb/s, а за клъстер, в който като комутационна среда се използва мрежа Fast Ethernet, 100 μs и 10 Mb/s. Това отчасти обяснява много високата цена на суперкомпютрите. С параметри като тези на разглеждания клъстер няма много задачи, които могат да бъдат ефективно решени на достатъчно голям брой процесори.

    Въз основа на горното ще дадем определение: клъстерът е свързан набор от пълноценни компютри, използвани като единен изчислителен ресурс. Както идентични (хомогенни клъстери), така и различни (хетерогенни клъстери) компютри могат да се използват като клъстерни възли. По своята архитектура клъстерната изчислителна система е слабо свързана. За създаване на клъстери обикновено се използват или прости еднопроцесорни персонални компютри, или дву- или четирипроцесорни SMP сървъри. В този случай не се налагат ограничения върху състава и архитектурата на възлите. Всеки възел може да изпълнява собствена операционна система. Най-често използваната стандартна работа Linux системи, FreeBSD, Solaris, Tru64 Unix, Windows NT.

    Литературата отбелязва четири предимства, постигнати чрез групиране на изчислителна система:

    абсолютна мащабируемост;

    мащабируем;

    висок фактор на наличност;

    съотношение цена/качество.

    Нека обясним всяка от горните характеристики на клъстерна изчислителна система.

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

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

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

    И накрая, клъстерните системи осигуряват това, което суперкомпютрите не могат да постигнат съотношение цена-качество. Клъстери с всякаква производителност могат да бъдат създадени с помощта на стандартни „строителни елементи“, а цената на клъстера ще бъде по-ниска от една

    нощна изчислителна машина с еквивалентна мощност на обработка.

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

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

    Класификация на архитектурите на клъстерни системи

    Литературата описва различни начиникласификация на клъстерни системи. Най-простата класификация се основава на начина, по който се използват дисковите масиви: заедно или поотделно.

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

    Разликата между представените клъстери е, че в случая локална мрежавъзлите използват локални дискови масиви, а в случай на специална линия, възлите споделят един излишен масив от независими твърди дискове или така наречения RAID (Redundant Array of Independent Disks). RAID се състои от няколко диска, управлявани от контролер, свързани помежду си чрез високоскоростни канали и възприемани от външната система като едно цяло. В зависимост от вида на използвания масив могат да се осигурят различни степени на устойчивост на грешки и производителност.

    процесор

    процесор

    Висока скорост

    процесор

    процесор

    магистрала

    устройство

    устройство

    устройство

    устройство

    I/O

    I/O

    I/O

    I/O

    диск

    диск

    Ориз. 5.5.1. Конфигурация на клъстер без споделени дискове

    диск

    устройство

    устройство

    процесор

    процесор

    I/O

    I/O

    процесор

    процесор

    устройство

    устройство

    устройство

    устройство

    I/O

    I/O

    I/O

    I/O

    диск

    Висока скорост

    диск

    магистрала

    Ориз. 5.5.2. Клъстерна конфигурация със споделени дискове

    Нека да разгледаме най-често срещаните типове дискови масиви:

    RAID0 (стрипинг) е дисков масив от два или повече твърди диска без излишък. Информацията се разделя на блокове данни и се записва на двата (няколко) диска едновременно. Предимството е значително увеличение на производителността. Недостатъкът е, че надеждността на RAID0 е очевидно по-ниска от надеждността на всеки от дисковете поотделно и намалява с увеличаването на броя на дисковете, включени в RAID0, тъй като отказът на някой от дисковете води до неработоспособност на целия масив. .

    RAID1 (mirroring) е масив, състоящ се от поне два диска. Предимствата са приемлива скорост на запис и увеличаване на скоростта на четене при паралелизиране на заявки, както и висока надеждност: работи, докато работи поне един диск в масива. Вероятността за повреда на два диска наведнъж е равна на произведението на вероятностите за повреда на всеки диск. На практика, ако един от дисковете се повреди, трябва да се предприемат незабавни действия: трябва да се възстанови резервирането. Да правя това с всеки RAID ниво(с изключение на нулата) е препоръчително да използвате горещи резервни дискове. Предимството на този подход е поддържането на постоянна наличност. Недостатъкът е, че трябва да платите цената на два твърди диска, за да получите използваемия капацитет на един твърд диск.

    RAID10 е огледален масив, в който данните се записват последователно на няколко диска, както в RAID0. Тази архитектура е масив от тип RAID0, със сегменти вместо отделни дисковеса RAID1 масиви. Съответно, масив от това ниво трябва да съдържа поне четири диска. RAID10 съчетава висока устойчивост на грешки и производителност.

    По-пълна картина на клъстерните изчислителни системи се дава от класификацията на клъстерите според използваните методи за клъстериране, които определят основните функционални характеристики на системата:

    групиране с пасивно резервиране;

    групиране с активно резервиране;

    самостоятелни сървъри;

    сървъри с връзки към всички дискове;

    сървъри със споделени дискове.

    Клъстерирането с излишък е най-старият и универсален метод. Единият от сървърите поема цялото изчислително натоварване, докато другият остава неактивен, но е готов да поеме изчисленията, ако основният сървър се повреди. Активният (или основен) сървър периодично изпраща съобщение за часовник до резервния (вторичен) сървър. Ако няма сърдечни съобщения, което се счита за повреда на основния сървър, вторичният сървър поема контрола. Този подход подобрява наличността, но не подобрява производителността. Освен това, ако единственият тип комуникация между възлите е обмен на съобщения и ако и двата сървъра в клъстера не споделят дискове, тогава резервният сървър няма достъп до базите данни, управлявани от основния сървър.

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

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

    За да се намалят разходите за комуникация, повечето клъстери сега се състоят от сървъри, свързани към споделени дискове, обикновено представени от RAID дисков масив (вижте Фигура 5.5.2).

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

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

    Клъстерите осигуряват високо ниво на достъпност - те нямат нито един операционна системаи споделена памет, т.е. няма проблем с кохерентността на кеша. В допълнение, специален софтуер във всеки възел постоянно следи работата на всички останали възли. Този контрол се основава на периодичното изпращане от всеки възел на сигнала „Все още съм буден“. Ако не се получи сигнал от определен възел, тогава такъв възел се счита за неизправен; не му се дава възможност да извършва I/O, неговите дискове и други ресурси (включително мрежови адреси) се пренасочват към други възли и програмите, изпълнявани на него, се рестартират на други възли.

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

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

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

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

    Разработчиците на пакета подпрограми ScaLAPACK, предназначен за решаване на проблеми с линейна алгебра на многопроцесорни системи, в които делът на комуникационните операции е голям, формулират изискването за многопроцесорна система, както следва: „Скоростта на междупроцесорния обмен между два възела, измерена в MB /s, трябва да бъде най-малко 1/10 пикова производителност на изчислителен възел, измерена в MFLOPS."

    Клъстерни топологии

    Нека разгледаме топологиите, характерни за така наречените „малки“ клъстери, състоящи се от два до четири възела.

    Топология на клъстерни двойкиизползва се при организиране на клъстери с два или четири възела (фиг. 5.5.3). Възлите са групирани по двойки, дисковите масиви са прикрепени към двата възела, които са част от двойката, и всеки възел на двойката има достъп до всички дискови масиви на тази двойка. Един от възлите в двойката се използва като резервен за другия.

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

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

    Превключване

    клъстер

    клъстер

    клъстер

    клъстер

    диск

    диск

    диск

    диск

    Ориз. 5.5.3. Топология на клъстерни двойки

    Топология + 1 ви позволява да създавате клъстери от два, три и четири възела (фиг.5.5.4). Всеки дисков масив е свързан само с два клъстерни възела. Дисковите масиви са организирани по схемата RAID1 (mirroring). Един сървър има връзка с всички дискови масиви и служи като резервен за всички останали (основни или активни) възли. Сървърът в режим на готовност може да се използва за осигуряване на висока наличност, когато е сдвоен с който и да е от активните възли.

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

    Топологията × е подобна на топологията + 1, като ви позволява да създавате клъстери от два, три и четири възела, но за разлика от нея има по-голяма гъвкавост и мащабируемост (фиг. 5.5.5).

    Превключване

    клъстер

    клъстер

    клъстер

    клъстер

    Превключване

    клъстер

    клъстер

    клъстер

    клъстер

    Превключване

    диск

    диск

    диск

    Ориз. 5.5.5. Топология ×

    Само в тази топология всички клъстерни възли имат достъп до всички дискови масиви, които от своя страна са изградени по схемата RAID1 (mirroring). Мащабируемостта на топологията се проявява в лекотата на добавяне на допълнителни възли и дискови масиви към клъстера, без да се променят връзките в системата.

    клъстер

    клъстер

    клъстер

    клъстер

    диск

    диск

    диск

    диск

    Ориз. 5.5.6. Напълно отделна топология за достъп

    Напълно отделна топология за достъп позволява всеки дисков масив да бъде свързан само към един клъстерен възел (фиг. 5.5.6 ). Препоръчва се само за онези приложения, които се характеризират с напълно отделна архитектура за достъп.

    Контролни въпроси

    1. Дайте дефиницията на клъстерна изчислителна система.

    2. Посочете основните предимства и недостатъци на клъстерните изчислителни системи.

    3. Какви класификации на клъстерните изчислителни системи правите

    4. Какви топологии на клъстерна система познавате? Назовете техните предимства и недостатъци.

    Литература

    1. Архитектури и топологии на многопроцесорни изчислителни системи / А.В. Богданов, В.В. Корхов, В.В. Мареев, E.N. Станкова. - М.: INTUIT.RU, 2004. - 176 с.

    2. Микропроцесорни системи: учебник. наръчник за университети /

    Е.К. Александров, Р.И. Грушвицки, М.С. Куприянов и др.; редактиран от Д.В. Пузанкова . - Санкт Петербург: Политехника, 2002. - 935 с.

    Клъстерна система

    Какво е клъстер?

    Клъстерът е колекция от сървъри, устройства и работни станции, които:
    · Действайте като една система;
    · Представени на потребителите като една система;
    · Управляван като една система;
    Клъстерът също е възможност да използвате изчислителните ресурси на вашата система по такъв начин, че получената система да надвишава по своите възможности общите възможности на нейните части.

    Основните предимства на клъстера са:
    · Осигуряване на високо ниво на достъпност в сравнение с разнородна колекция от компютри или сървъри. Повишената наличност на системата гарантира, че критичните за бизнеса приложения работят възможно най-дълго. Критичните приложения включват всички приложения, които пряко засягат способността на компанията да реализира печалба, да предоставя услуга или да предоставя други жизненоважни функции. Използването на клъстер гарантира, че ако сървър или приложение спре да функционира нормално, друг сървър в клъстера ще продължи да изпълнява задачите си и ще поеме ролята на неуспешния сървър, за да сведе до минимум времето на престой на потребителя поради системна повреда.
    · Значително увеличение на общата производителност на мрежата (висока степен на скалируемост). Клъстерът ви позволява гъвкаво да увеличавате изчислителната мощност на системата, като добавяте нови възли към нея, без да прекъсвате работата на потребителите.
    · Намалени разходи за администриране на локална мрежа (добра управляемост).
    · Осигуряване на висока наличност мрежови услуги. Дори ако един от сървърите на клъстера се повреди, всички услуги, предоставяни от клъстера, остават достъпни за потребителите.

    Разделяне на системи с висока наличност и висока производителност

    Във функционалната класификация клъстерите могат да бъдат разделени на „висока производителност“ (HP), „висока наличност“ (HA) и „смесени системи“.
    Високоскоростните клъстери се използват за задачи, които изискват значителна изчислителна мощност. Класически области, в които се използват подобни системи, са:
    · обработка на изображения: рендиране, разпознаване на образи
    · научни изследвания: физика, биоинформатика, биохимия, биофизика
    индустрия (географски информационни проблеми, математическо моделиране)
    и много други…
    Клъстерите, които се класифицират като системи с висока наличност, се използват навсякъде, където цената на възможния престой надвишава цената на разходите, необходими за изграждане на клъстерна система, например:
    системи за таксуване
    · Банкови операции
    · е-търговия
    · управление на предприятието и др.
    Смесените системи съчетават характеристиките както на първия, така и на втория. Когато ги позиционирате, трябва да се отбележи, че клъстер, който има параметри за висока производителност и висока наличност, със сигурност ще загуби в производителност спрямо система, фокусирана върху високоскоростни изчисления, и при евентуален престой спрямо система, фокусирана върху работа в режим на висока наличност.

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

    Клъстерът се състои от два възела (сървъра), свързани към общ дисков масив. Всички основни компоненти на този дисков масив са захранващ агрегат, дискови устройства, I/O контролер - имат резервиране с възможности за гореща смяна. Клъстерните възли са свързани помежду си чрез вътрешна мрежа за обмен на информация за текущото им състояние. Клъстерът се захранва от два независими източника. Връзката на всеки възел към външната локална мрежа също се дублира.
    По този начин всички подсистеми на клъстера имат излишък, така че ако някой елемент се повреди, клъстерът като цяло ще остане работещ.

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

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

    Напредъкът в клъстерните технологии през последното десетилетие направи възможно използването на евтини компютри за изграждането им. Ефективността на разходите, изчислителната мощност и гъвкавостта на такива клъстери ги превърнаха в привлекателна алтернатива на централизирания изчислителен модел, базиран на традиционните суперкомпютри (по-нататък под думата „клъстер“ ще имаме предвид масов продукт, за разлика от „специална поръчка“ “).

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

    Днес евтин клъстер от компоненти, които са в масово производство, може да бъде сглобен от почти всяка уважаваща себе си компютърна компания и с пускането на такава клъстерна ОС като Windows Computing Cluster Server 2003, която позволява сравнително проста инсталация, клъстерни решения начално нивостанат достъпни за малкия и среден бизнес. И може би няма да изглежда неразумно да се предположи, че постоянно намаляване на цените на хардуера и софтуерни компонентии скоростни пътища мрежови технологиискоро ще направи клъстерите от начално ниво общ елемент на информационни системи от всякакъв мащаб.

    Ето защо в темата на седмицата, посветена на клъстерните изчисления, се опитахме да включим не само част от прегледа, но и статии за конкретни продукти, които несъмнено ще бъдат търсени в близко бъдеще от украинския бизнес. По-специално, читателят ще намери тук практически урок, изпълнен в нашия Тестова лаборатория, както и описание на клъстерни операционни системи Windows Computing Cluster Server 2003/2008, които имат всички шансове да станат популярни.

    Първо, нека си припомним определението за клъстер. Това е името на локална (за разлика от разпределената) изчислителна система, състояща се от много независими компютри, свързани помежду си чрез канали за предаване на данни. Локалността на клъстера се крие във факта, че всички негови подсистеми са „видими“ в един административен домейн и той се управлява като единна изчислителна система. Компютрите, които са част от клъстера, се наричат ​​възли. Те обикновено се произвеждат масово компютри с общо предназначениеспособни да работят самостоятелно. Възлите могат да бъдат единични или многопроцесорни (SMP конфигурация). В класическата схема всички възли, когато работят с приложения, споделят външна памет на масив от твърди дискове, като използват вътрешни твърди дискове за повече специални функции. За комуникация между възли обикновено се използва някаква стандартна мрежова технология, въпреки че това не изключва отделно разработени комуникационни канали. Клъстерната мрежа е отделна – изолирана е от външната мрежова среда.

    Класификация

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

    Клъстери с висока наличност (HA).. Понякога те също се наричат ​​отказоустойчиви. Такива клъстери са предназначени да предоставят на крайните потребители непрекъснат достъп до данни или услуги (обикновено уеб услуги). Обикновено едно копие на приложение работи на един възел и когато този възел стане недостъпен, контролът върху него се поема от друг възел (Фигура 1). Тази архитектура също така позволява ремонти и превантивна поддръжка без спиране на услугите. Освен това, ако един възел се повреди, услугата може да бъде възстановена, без да се засяга наличността на останалите. Вярно е, че производителността на системата ще намалее.

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

    Клъстери за балансиране на натоварването. Този тип клъстер разпределя входящите заявки между множество възли, изпълняващи едни и същи програми или хостващи едно и също съдържание (Фигура 2). Всеки възел може да обработва заявки за едно и също приложение или съдържание. Ако някой от възлите се провали, заявките се преразпределят между останалите. Обикновено такива клъстери се използват за уеб хостинг.

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

    Клъстери за високопроизводителни изчисления (High-Performance Cluster, HPC). Традиционно паралелните изчисления се извършват на многопроцесорни системи, проектирани специално за тази цел. Те споделят много процесори споделена памети шинен интерфейс в рамките на един компютър. С навлизането на технологията за високоскоростно превключване стана възможно комбинирането на компютри в клъстери за паралелни изчисления.

    Паралелният клъстер е система, която използва много възли за паралелизиране на изчисленията за решаване на конкретен проблем. За разлика от клъстерите за балансиране на натоварването и висока наличност, които разпределят заявки/задачи между възли, които ги обработват като цяло, в паралелна среда една заявка се разделя на много подзадачи, които от своя страна се разпределят за обработка между възли в рамките на клъстера. Паралелните клъстери се използват главно за приложения, които изискват интензивни математически изчисления.

    Клъстерни компоненти

    Основните градивни елементи (компоненти) на клъстерите са разделени на няколко категории: самите възли, клъстерен софтуер, специална мрежа, която обменя данни между възлите и съответните мрежови протоколи.

    Възли

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

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

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

    Софтуер

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

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

    В горната дефиниция на клъстер беше споменато, че той е видим за администратора и потребителя като една изчислителна система. Това се постига с помощта на изображение единна система(Образ на единична система, SSI). Той е този, който скрива разнородния и разпределен характер на наличните ресурси и ги представя на потребителите и приложенията като едно цяло. изчислителен ресурс. SSI може да бъде внедрен на едно или повече от следните нива: хардуер, операционна система, междинен софтуер и/или приложение. Ето пример за няколко ключови услуги, предоставяни от SSI клъстер:

    • единична входна точка;
    • единичен потребителски интерфейс;
    • единично процесно пространство;
    • единична памет и I/O пространство;
    • унифицирана файлова йерархия;
    • единна точка на контрол и управление.

    Системи като Digital/Compaq Memory Channel и Distributed Shared Memory осигуряват SSI на хардуерно ниво и позволяват на потребителите да разглеждат клъстера като система със споделена памет. Операционните системи SCO UnixWare NonStop Cluster, Sun Solaris-MC, GLUNIX и MOSIX поддържат SSI на ниво ядро.

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

    Мрежово оборудване и протоколи

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

    Днес разработчиците на клъстери имат широки възможности за избор на мрежова технология. Тъй като цената на мрежовото оборудване за клъстери варира от „почти нищо“ до няколко хиляди долара на възел, това може да не е последният компонент при определяне на цената на продукта. Практиката дава примери за изграждане на много ефективни клъстери, използвайки евтино мрежово оборудване, което може да се види в обикновена LAN. В същото време отделните мрежови продукти, специално проектирани за клъстерни комуникации, са сравними по цена с работните станции. Изборът на мрежова технология зависи от редица фактори: цена, производителност, съвместимост с друг хардуер и софтуер на клъстера, както и комуникационните характеристики на приложенията, които ще работят в клъстера.

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

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

    За клъстерни комуникации се използват както традиционни мрежови протоколи, първоначално разработени за Интернет (IP), така и специално създадени. Освен това има два сравнително нови стандарта, също специално предназначени за клъстери. Няма да се спираме на IP протокола, който е доста познат на нашите читатели, нито на останалите, тъй като всички те са доста специфични. Ще изброим само имената им, за да могат заинтересованите да се обърнат или към литературата, или към „всезнаещия” Интернет. Това са по-специално протоколите за активни съобщения, бързи съобщения, комуникационна система с картографирана виртуална памет, U-net и основен интерфейс за паралелизъм. Нека разгледаме два стандарта.

    До 1997 г. изследванията на протоколи с ниска латентност са напреднали до такава степен, че в крайна сметка са довели до създаването на нов стандарт за клъстерни комуникации, Virtual Interface Architecture (VIA). В същото време индустрията работи върху стандарти за споделени подсистеми за съхранение. Резултатът от тези усилия беше InfiniBand.

    VIA е комуникационен стандарт, който обединява най-добрите постижения на различни проекти. Създаден е от консорциум от академични и индустриални партньори, включително Intel, Compaq и Microsoft. Версия VIA 1.1 с поддръжка за хетерогенен хардуер стана достъпна в началото на 2001 г. Както подсказва името, VIA се основава на концепцията за виртуален мрежов интерфейс. Стандартът предвижда, че преди изпращане на съобщение, буферите за получаване и изпращане трябва да бъдат разпределени и обвързани с физическата памет. След като буферите и свързаните с тях структури от данни са формирани, не са необходими системни извиквания. Операции по получаване и изпращане до потребителско приложениесе състои от писане на дескриптор в опашка. Приложението може да избере дали да изчака потвърждение, че операцията е приключила или да продължи основната си работа, докато се обработва съобщението.

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

    Стандартът InfiniBand беше подкрепен от консорциум от индустриални партньори, включително Compaq, Dell, HP, IBM, Intel, Microsoft и Sun Microsystems. Архитектурата InfiniBand замества споделената шина, която е стандарт за I/O системи в модерни компютри, високоскоростна серийна, базирана на канали превключваща тъкан. Всички системи и устройства се свързват към тъканта чрез Host Channel Adapter (HCA), който осигурява свързаност централен процесорхост с InfiniBand тъкан или адаптер за целеви канали (TCA), който свързва InfiniBand с други I/O устройства Ethernet тип, Fibre Channel или със системи за съхранение. Връзката InfiniBand е пълен дуплекс и работи с пропускателна способност от 2,5 Gbps в една посока в топология от точка до точка. Данните се изпращат в пакети и има шест режима на предаване: надеждна и ненадеждна връзка, надеждна и ненадеждна дейтаграма, мултикаст и необработени пакети („суров“ режим). Освен това InfiniBand поддържа отдалечен директен достъп до паметта, което позволява на един процесор да чете или записва в паметта на друг.

    Що се отнася до мрежовото оборудване, което поддържа комуникация между възли, то може да се класифицира в четири категории - в зависимост от това дали връзката се осъществява към I/O шината или към шината на паметта и от основния метод на комуникация - чрез съобщения или споделена дискова памет.

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

    Системите с I/O шина и споделена дискова памет включват компютри със споделена дискова подсистема. Връзките с памет са по-рядко срещани, тъй като шината на паметта обикновено е проектирана по различен начин за всеки тип компютър. Много такива системи обаче се реализират в софтуер или чрез механизъм за съпоставяне на I/O порт към памет, като например канала на паметта.

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

    Клъстерни мрежи

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

    Днес комутираните Ethernet технологии, поради ниските разходи за портове и стандартизацията на интерфейсите, са водещи като системи за взаимно свързване в широко достъпни клъстери. Много компютри са оборудвани с вградени 1 GE портове; всичко, което трябва да направите, е да закупите евтин комутатор. Но при повишени изисквания се използват и специализирани мрежи. Всяко тяхно подробно описание би ни отвело далеч отвъд границите на възможното, затова от съображения за пълнота ще предоставим само съвсем кратка информация за отделни от тях.

    Giganet (cLAN). cLAN (свита LAN) технология днес собственост на компанията Emulex е разработен с цел хардуерна поддръжка за VIA. Това беше първото в индустрията родно хардуерно внедряване на стандарта VIA. Основни функциимрежите са както следва.

    На най-ниското ниво на комуникационния модел е некохерентната разпределена споделена памет (Distributed Shared Memory, DSM). Част от виртуалното адресно пространство на приложението е логически картографирано върху мрежата на физическа паметв друг възел. Данните се прехвърлят между приложения чрез запис в споделена памет с помощта на стандартни инструкциипроцесорни записи. Буферът в отдалечения възел е представен от бисквитка за отдалечен директен достъп до паметта, която дава на собственика възел разрешение за достъп до буфера.

    Myrinet. Тази пълна дуплексна мрежа се доставя от Myricom. Той се използва широко в много академични проекти, по-специално в мрежата на работните станции на Бъркли (NOW). Физически мрежата се състои от два оптични кабела (надолу и нагоре), свързани към хоста чрез общ конектор. Компютрите са свързани с помощта на рутери или комутатори (те могат да бъдат конфигурирани да предоставят излишни пътища). Поддържа се превключване без буфериране на пакети (cut-through), което позволява съобщенията да се предават от край до край с минимално забавяне. Myrinet има вграден програмируем процесор - той ви позволява да експериментирате с много комуникационни протоколи.

    Myrinet прилага редица механизми за осигуряване на устойчивост на грешки. Те включват контрол на потока, контрол на грешки и проверка на функционалността на каналите (сърдечен ритъм).

    Най-новата версия, така нареченото четвърто поколение Myrinet 10G, поддържа скорост на трансфер на данни от 10 Gb/s във всяка посока и е съвместима с 10 GE на ниво PHY. Мрежовата латентност е много ниска - само 5 µs.

    QsNet. Тази високоскоростна мрежа с ниска латентност е разработена от Quadrics Supercomputers World (QSW). В структурно отношение QsNet включва две подсистеми:

    • мрежов интерфейс, състоящ се от един или повече мрежови адаптерина всеки възел;
    • мрежа за данни с множество шини, която свързва компютрите в клъстер.

    Мрежовият интерфейс е базиран на персонализирани чипове, наречени Elan. Модификацията Elan III комбинира специален I/O процесор за разтоварване на CPU, PCI шина (66 MHz, 64 бита), дуплексен канал (400 MHz, 8 бита), модул за управление на паметта (MMU), кеш и интерфейс на локалната памет. Чипът изпълнява три вида основни операции:

    • дистанционно четене и запис;
    • директно прехвърляне на данни от потребителското виртуално адресно пространство на един процесор към друг без необходимост от синхронизация;
    • управление на протокола.

    Мрежата е изградена на базата на специални комутатори, които са обединени в специално шаси, образувайки дебела дървовидна топология (колкото по-близо до корена е клонът, толкова по-дебел е той, т.е. капацитетът му е по-висок).

    Мрежова модификация, пусната през 2003 г., се основава на PCI-X шина 133 MHz и има латентност от 1,22 µs.

    Мащабируем кохерентен интерфейс (SCI). Това е първата технология за взаимно свързване, разработена специално за клъстерни изчисления, която е доведена до стандарта. Архитектурата SCI се основава на връзки от точка до точка, малки размери на пакети и разделени транзакции. Стандартът IEEE 1596 е публикуван през 1992 г. и е уточнен физически слоймрежа и по-висока за мрежово разпределена споделена кеш-кохерентна (по избор) памет. За още високи ниваСтандартът описва разпределен дизайн на кохерентен кеш, базиран на указател. Този дизайн позволява кеширане на отдалечена SCI памет: всеки път, когато данните, намиращи се в отдалечената памет, се променят, всички кеш линии на всички възли, на които се съхраняват, стават невалидни. Кеширането на отдалечена SCI памет подобрява производителността и позволява директно, прозрачно програмиране на споделената памет.

    Разбира се, това не са всички технологии, на базата на които можете да изградите доста мощен клъстер. Клъстерите от начално ниво обикновено използват неспециализирани решения, които използват традиционни мрежови технологии като Ethernet, ATM или Fibre Channel.

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

    Скица на основния дизайн на ОС
    Потребителско пространство Системни процеси Потребителски процеси
    не се използва
    междинния софтуер
    Потребителски процеси, използващи мидълуер
    Мидълуер
    Системни услуги Потребителски библиотеки
    Ядро Свързани с мидълуер разширения на ядрото
    Файлови системи/Комуникация/Програмен интерфейс
    Мениджър на паметта Планировчик Шофьори
    Слой на хардуерна абстракция
    Хардуерни ресурси Таймери и прекъсвания
    RAM процесори Дискове мрежа Клъстерно свързване други


    Свързани публикации