В предишна публикация в блога говорих за проектиране на вашите RAC реализации с N+1 излишък. Това гарантира, че загубата на възел няма да затрупа останалите възли, ако един възел се повреди. Днес ще обсъдя въздействието на консолидацията на сървъра, по-специално процесорните ядра, и потенциалните му въздействия N+1.
Една от основните системи, върху които работя днес, е Oracle RAC клъстер с четири възли. Всеки възел има 4 ядра. Имам лиценз за всички 16 ядра (4 ядра/възел * 4 възела =общо 16 ядра) в моята среда. Проектирах тази система с N+1 резервиране. Ако загубя възел и загубя 4 ядра, пак съм добър, защото изискванията ми за натоварване изискват само 12 ядра, за да поддържам нормални, приемливи нива на производителност.
Когато тази система беше първоначално проектирана, 4-ядрените сървъри бяха нещо обичайно. Днешната среда е различна и става все по-трудно да се намерят 4-ядрени сървъри. Те все още съществуват, но доставчиците на хардуер прокарват системи с по-голям брой ядра.
В разговор с моя SysAdmin наскоро той искаше да поръча 6-ядрени системи, които да заменят нашите 3-годишни сървъри. Е, не можем просто да направим това. Моят лиценз на Oracle е за 16 ядра. Бих могъл да внедря три 6-ядрени системи, но тогава ще имам общо 18 ядра в клъстера и ще трябва да имам още 2 ядра с лицензи на Oracle. Ако внедря две 6-ядрени системи, щях да имам общо 12 ядра и да имам лицензи на стойност 4 ядра, които остават неизползвани.
Също така информирах SysAdmin за нашия N+1 дизайн. Ефектът от преминаването към 6-ядрени системи може да окаже голямо влияние върху дизайна на N+1. Не забравяйте, че казах по-рано, че изискванията ни за работно натоварване изискват 12 ядра, за да поддържат нормални работни нива. Ако разположим 6-ядрени машини, тогава две от тях отговарят на нашите изисквания и друг възел, „+1“, ще бъде необходим, за да гарантираме, че можем да загубим възел без големи въздействия върху производителността. Ще трябва да внедрим три 6-ядрени машини, за да запазим целта си за проектиране N+1 непокътната. Но това означава, че трябва да увеличим броя на нашите лицензи, както казах по-рано.
В този момент моят системен администратор помисли, че има добра идея… можем да купим два 8-ядрени сървъра. Това все още са общо 16 ядра и точно това, за което имаме лиценз днес. Без увеличение на лицензионните такси. Но ако загубим възел, ние слизаме до общо 8 ядра в експлоатация, което е по-малко, отколкото ми трябва. Това повдига един много добър момент...
В момента няма лесен отговор. Все още можем да купуваме 4-ядрени сървъри, така че това е, което ще заменим настоящите със следващата година. Но ще дойде ден, когато 4-ядрените сървъри ще бъдат невъзможни за намиране. До този момент ще трябва да имаме изготвен план, като имаме предвид целите ни за проектиране N+1.
Само ако можех да разделя твърдо нашите Linux сървъри и да оставя ядрата да стоят неактивни и все пак да спазват нашите лицензионни споразумения на Oracle.