Версія 1 (альфа)
Встановлення кластеру OpenMosix для балансування навантаження на вузли.
За мотивами:
- 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
Завжди можна пропатчити ядро руками: звантажуємо патч ОМ, що відповідає саме вашій версії ядра з офіційного сайту, розпаковуємо та патчимо сирці ядра.
На даний момент офіційний патч для ядра 2.6 відсутній, можна взяти робочу версію
з CVS, хоча це поганий варіант... Щоб стягнути собі версію OM для 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.
Тепер переходимо до конфіґурації ядра, для роботи OM, крім загальних налаштувань, необхідно увімкнути наступне (ці опції появляться тільки після накладання патчу 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
Налаштування вузлів
Встановлення утиліт OM (для ядра 2.6 — http://omuscd.sourceforge.net/).
Перед тим як кластер буде здатний здійснювати міграцію процесів потрібно встановити декілька користувацьких програм. Щоб OM запрацював з усіма своїми можливостями та вузли змогли приєднуватись, потрібно запустити сервіс OM на основному комп'ютері.
Для встановлення цих програм виконуємо:
Для 2.4:
# emerge openmosix-user
Для 2.6 з оверлею DYSTRYK:
# emerge omuscd
В цей пакет входить сервіс, що автоматично визначає наявність вузлів у мережі, так що у додатковій конфіґурації необхідності нема. Створіть директорію:
mkdir /mnt/mfs
І змонтуйте файлову систему OM, якщо хочете мати доступ до всіх ваших вузлів.
# cat /etc/fstab
none /mnt/mfs mfs noauto,dfsa=1 0 0
Для функціонування кластеру не потрібно, щоб працювали усі вузли. Вузли можуть приєднуватись і від'єднуватись від кластеру без будь-якої шкоди.
Для старту сервісу OM, який ініціалізує функціональність OM у ядрі і слідкує за всіма доступними вузлами, виконуємо:
# /etc/init.d/openmosix start
А для автоматичного завантаження OM при включені сервера:
# rc-update -a openmosix default
Корисні утиліти OpenMosix
Консольні утиліти
openmosix-user
встановлює декілька корисних утиліт:
mosmon : Монітор OM, дозволяє вам слідкувати за станом всіх вузлів, зокрема завантаження їх процесора, пам'яті тощо.
mtop : Розширена версія top, яка дозволяє дізнатись на якому саме вузлі ваш процес реально виконується.
mps : Розширена версія ps, яка також показує номер вузла.
mosctl whois : Вказує номер вузла.
mosctl whois nodenumber : Вказує IP чи ім'я цього вузла.
Графічні утиліти
Щоб переглядати графічну інтерпретацію вашого кластеру і наочно спостерігати міграцію процесів, можна встановити графічний пакет утиліт:
# emerge sys-cluster/openmosixview
Далі запускаємо:
# openmosixview
Є ще кращі утиліти для моніторингу у 3D, але вони не дуже стабільні:
# emerge sys-cluster/openmosix-3dmon
# emerge sys-cluster/openmosix-3dmon-stats
Ще одна утилітка для гурманів веб-інтерфейсів, моніторинг OM через веб:
# emerge sys-cluster/openmosixwebview
Тестування OpenMosix
Для перевірки, чи все у вашому кластері добре працює і дослідження його роботи під навантаженням, можна зробити стрес-тест:
# emerge openmosixtest
Література
- Офіційне тематичне вікі.
- Офіційний сайт openMosix
- 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, від Niels.
- White Paper - Security and openMosix автор Ian Latter.
--Svyat 21:41, 27 жов 2005 (EEST)