OpenMosix - кластер балансування навантаження
Матеріал з docs.linux.org.ua — збірника документації з Unix/Linux українською мовою.
|
|
OpenMosix OpenMosix (OM) являє собою патч до ядра Лінукса, який дозволяє багатьом комп'ютерам працювати, як єдиний системний образ (single-system image SSI). Тобто багато комп'ютерів працють як єдина машина, але з багатьма процесорами! |
версія 1 альфа
Встановлення кластеру OpenMosix для балансування навантаження програм Linux на вузли.
За мотивами:
http://www.gentoo.org/doc/en/openmosix-howto.xml
http://www.intel.com/cd/ids/developer/asmo-na/eng/20445.htm
Зміст |
Вступ
OpenMosix (OM) являє собою патч до ядра Лінукса, який дозволяє багатьом комп'ютерам працювати, як єдиний системний образ (single-system image SSI). Тобто багато комп'ютерів працють як єдина машина, але з багатьма процесорами. OpenMosix забезпечує міграцію "важких" процесів особливо при запуску ELF і a.out двійкових файлів, чи коли якийсь "тяжкий" процес використовує функцію fork(). Детальну інформацію можна отримати з http://openmosix.sourceforge.net. В одному кластері всі вузли повинні мати одну і туж версію OpenMosix.
Наш кластер буде складатись з індивідуальних комп'ютерів (вузлів), які розділяють свої системні ресурси для забезпечення збільшення обчислювальних потужностей всіх вузлів. Не всі вузли повинні мати однакову архітектуру, але забезпечивши цю умову адміністрування кластеру буде набагато легшим.
Компіляція ядра Лінукс з підтримкою OpenMosix
Повну інформацію про компіляцію ядра Лінукса можна отримати по цій зсилці, а в даному розділі описані лише особливості пов'язані з openMosix.
Спочатку потрібно мати сирці ядра з OM. Якщо ви користуєтесь Gentoo і ядро 2.6.* то потрібно зробити:
# cat /etc/portage/pakage.keywords ... sys-kernel/openmosix-sources ~x86 ... # cat /etc/portage/pakage.unmask ... sys-kernel/openmosix-sources ...
Після цього можна виконати
emerge openmosix-sources
Або використовуючи оверлей DYSTRYK
emerge hardened-om-sources
Завжди можна пропатчити ядро руками. Стягуємо патч ОМ що відповідає саме вашій версії ядра з: http://openmosix.sourceforge.net/ розпаковуємо та патчемо сирці ядра. На даний момент офіційний патч для ядра 2.6.* відсутній, можна взяти робочу версію з CVS хоча це поганий варіант... Щоб стягнути собі версію 2.6.* ОМ з CVS в директорію /usr/src/linux-openmosix-2.6 виконуємо:
# cd /usr/src # cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/openmosix login
Замість паролю просто тиснемо ввід і виконуємо команду:
# cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/openmosix co -P linux-openmosix-2_6/linux-openmosix-2_6
На даний момент ця версія підходить для ядра 2.6.11.12 отже розпаковуємо і патчемо ванільне ядро до версії 2.6.11.12 у /usr/src/linux-2.6.11.12 після цього просто поверху копіюємо файли стягнуті з CVS:
# cp -rf /usr/src/linux-openmosix-2_6/linux-openmosix-2_6/* /usr/src/linux-2.6.11.12/
Можливо кращий варіант взяти не офіційний патч з: http://openmosix.snarc.org/ але в цьому випадку з репозитарію svn не беріть а зтягніть протестований "реліз" patch-2.6.*-om-*.bz2.
Також викладаю патчі hardened-om-sources
тепер переходимо до конфіґурації ядра, для включення ОМ крім загальних налаштувань необхідно додати:
Ці опції появляться тільки після накладання патчу openMosix.
У випадку ядра 2.6.*
......
Networking
[*] Networking support
Networking options --->
<*> Packet socket
[*] Packet socket: mmapped IO
<*> Unix domain sockets
<*> IPsec user configuration interface
<*> PF_KEY sockets
[*] TCP/IP networking
[*] IP: multicasting
.....
File systems
.....
<*> Kernel automounter support
<*> Kernel automounter version 4 support (also supports v3)
.....
Pseudo filesystems --->
[*] /proc file system support
[*] /proc/kcore support
.....
HPC options
[ * ] Enable OpenMosix clustering включає підтримку кластера в ядро
[ * ] Enable OpenMosix to be more verbose для тестування можна додати
[ * ] Add some message when migrating для того щоб впевнитись, що якісь процеси мігрують і наш кластер працює
[ ] Enable OpenMosix debug
У випадку ядра 2.4.*
Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers ....... Networking options ---> <*> Packet socket [ ] Packet socket: mmapped IO < > Netlink device emulation [ ] Network packet filtering (replaces ipchains) [ ] Socket Filtering <*> Unix domain sockets [ * ] TCP/IP networking [ * ] IP: multicasting ........ File systems ---> [ * ] /proc file system support [ * ] /dev file system support (EXPERIMENTAL) [ * ] Automatically mount at boot .......... openMosix ---> [ * ] openMosix process migration support [ ] Support clusters with a complex network topology [ * ] Stricter security on openMosix ports (1) Level of process-identity disclosure (0-3) [ * ] openMosix File-System [ ] Poll/Select exceptions on pipes [ ] Disable OOM Killer [ ] Load Limit
Налаштування вузлів
Встановлення ОМ програм (з 2.6.* ядром --> http://omuscd.sourceforge.net/ !). Перед тим як кластер буде здатний здійснювати міграцію процесів потрібно встановити декілька користувацьких програм. Щоб ОМ запрацював з усіма своїми можливостями та вузли змогли приєднуватись потрібно запустити ОМ сервіс на основному комп'ютері. Для встановлення цих програм виконуємо:
для 2.4
# emerge openmosix-user
для 2.6 з оверлею DYSTRYK
# emerge omuscd
В цей пакет входить сервіс з можливістю автоматично визначати наявність вузлів у мережі, так що у додатковій конфіґурації необхідності нема. Створіть директорію:
mkdir /mnt/mfs
і примонтуйте ОМ файлову систему, якщо хочете мати доступ до всіх Ваших вузлів.
# cat /etc/fstab none /mnt/mfs mfs noauto,dfsa=1 0 0
Не потрібно щоб всі вузли працювали, щоб кластер нормально функціонував. Вузли можуть приєднуватись і від'єднуватись від кластеру без будь-якої шкоди коли комп'ютери проходять нормальні процеси завантаження-виключення. Для старту ОМ сервісу, який ініціалізує функціональність ОМ частини ядра і слідкує за всіма доступними вузлами виконуємо:
# /etc/init.d/openmosix start
А для автоматичного завантаження ОМ при включені сервера:
# rc-update -a openmosix default
Корисні OpenMosix утиліти
Консольні утиліти
openmosix-user встановлює декілька корисних утиліт: mosmon - OM монітор, дозволяє Вам слідкувати за станом всіх вузлів включаючи завантаження їх процесора, пам'яті, ітд... mtop - розширена версія top яка дозволяє дізнатись на якому вузлі Ваш процес реально виконується. mps - розширена версія ps, яка також показує номер вузлу. mosctl whois - вказує номер вузлу. mosctl whois nodenumber - вказує ІР чи ім'я цього вузла.
Графічні утиліти
Щоб переглядати графічну інтерпретацію Вашого кластеру і наочно спостерігати міграцію процесів, можна встановити графічний пакет утиліт.
# emerge sys-cluster/openmosixview
Далі запускаємо:
# openmosixview
Є ще кращі 3D утилітки для моніторингу, але не дуже стабільні:
# emerge sys-cluster/openmosix-3dmon # emerge sys-cluster/openmosix-3dmon-stats
Ще одна утилітка для гурманів веб-інтерфейсів, моніторингу ОМ через веб:
# emerge sys-cluster/openmosixwebview
OpenMosix тест
Для тестування чи все на Вашому кластері добре працює і дослідження його роботи при навантажені, можна використати стрес-тест:
# emerge openmosixtest
Література
wiki - офіційне тематичне вікі.
Do-It-Yourself Clusters автор Denis Sunko
openMosix: The Other Kind of HPC Cluster автори Moshe Bar and Bruce Knox
Alternate Documentation of openMosix 2.6 Userspace-Tools from Niels
White Paper - Security and openMosix автор Ian Latter
--Svyat 21:41, 27 жов 2005 (EEST)


