Установка и настройка отказоустойчивого кластера. — различия между версиями
Wikiadmin (обсуждение | вклад) (→Команды для работы в Linux с IPE) |
Wikiadmin (обсуждение | вклад) (→Команды для работы в Linux с IPE) |
||
Строка 1199: | Строка 1199: | ||
===Команды для работы в Linux с IPE=== | ===Команды для работы в Linux с IPE=== | ||
− | <nowiki>#systemctl status firefly_tracker</nowiki> статус работы FF | + | '''<nowiki>#systemctl status firefly_tracker</nowiki>''' статус работы FF |
− | <nowiki>#systemctl status firefly_integration</nowiki> статус работы FF трекинга | + | '''<nowiki>#systemctl status firefly_integration</nowiki>''' статус работы FF трекинга |
− | <nowiki>#systemctl stop firefly_tracker </nowiki> остановка процесса FF | + | '''<nowiki>#systemctl stop firefly_tracker </nowiki>''' остановка процесса FF |
− | <nowiki>#systemctl start firefly_tracker</nowiki> запуск процесса FF | + | '''<nowiki>#systemctl start firefly_tracker</nowiki>''' запуск процесса FF |
− | <nowiki>#systemctl restart firefly_tracker</nowiki> перезапуск FF | + | '''<nowiki>#systemctl restart firefly_tracker</nowiki>''' перезапуск FF |
− | <nowiki>#cd /opt/firefly_tracker</nowiki> переход в папку с трекингом | + | '''<nowiki>#cd /opt/firefly_tracker</nowiki>''' переход в папку с трекингом |
− | <nowiki>#python firefly.py</nowiki> | + | '''<nowiki>#python firefly.py</nowiki> ''' запуск FF |
− | <nowiki>#cd /opt/firefly_integration</nowiki> | + | '''<nowiki>#cd /opt/firefly_integration</nowiki> ''' переход в папку FF |
− | <nowiki>#cd python firefly.py </nowiki> запуск FF | + | '''<nowiki>#cd python firefly.py </nowiki>''' запуск FF |
− | <nowiki>journalctl –no-pager -o cat -u firefly_tracker -1</nowiki> просмотр статистики FF трекинга | + | '''<nowiki>journalctl –no-pager -o cat -u firefly_tracker -1</nowiki>''' просмотр статистики FF трекинга |
− | <nowiki>#systemctl status mss </nowiki> статус работы mss | + | '''<nowiki>#systemctl status mss </nowiki>''' статус работы mss |
− | <nowiki>#systemctl stop mss </nowiki> остановка процесса mss | + | '''<nowiki>#systemctl stop mss </nowiki>''' остановка процесса mss |
− | <nowiki>#systemctl start mss </nowiki> запуск процесса mss | + | '''<nowiki>#systemctl start mss </nowiki>''' запуск процесса mss |
− | <nowiki>#systemctl restart mss </nowiki> перезапуск mss | + | '''<nowiki>#systemctl restart mss </nowiki>''' перезапуск mss |
− | <nowiki>#cd /opt/mss_tracker </nowiki> переход в папку с аcuariomanager | + | '''<nowiki>#cd /opt/mss_tracker </nowiki>''' переход в папку с аcuariomanager |
− | <nowiki>#mono am.console.exe</nowiki> запуск mms в консольном режиме | + | '''<nowiki>#mono am.console.exe</nowiki>''' запуск mms в консольном режиме |
− | <nowiki>#mono am.gui.exe </nowiki> запуск mms с графикой | + | '''<nowiki>#mono am.gui.exe </nowiki>''' запуск mms с графикой |
− | <nowiki>#systemctl status proftpd</nowiki> статус работы ftp сервера | + | '''<nowiki>#systemctl status proftpd</nowiki>''' статус работы ftp сервера |
− | <nowiki>#systemctl stop proftpd </nowiki> остановка процесса ftp | + | '''<nowiki>#systemctl stop proftpd </nowiki>''' остановка процесса ftp |
− | <nowiki>#systemctl start proftpd</nowiki> запуск процесса ftp | + | '''<nowiki>#systemctl start proftpd</nowiki>''' запуск процесса ftp |
− | <nowiki>#systemctl restart proftpd</nowiki> | + | '''<nowiki>#systemctl restart proftpd</nowiki> ''' перезапуск ftp |
Для смены пароля от root (зная изначальный пароль) | Для смены пароля от root (зная изначальный пароль) | ||
− | <nowiki>#passwd</nowiki> | + | '''<nowiki>#passwd</nowiki>''' |
Задать новый пароль, подтвердить | Задать новый пароль, подтвердить | ||
+ | |||
Установка SSH в Debian 8.5/8.6 и доступ c другой машины под root | Установка SSH в Debian 8.5/8.6 и доступ c другой машины под root | ||
+ | |||
Обновляем репозитории | Обновляем репозитории | ||
+ | |||
Первым делом проверим список (/etc/apt/sources.list) доступных репозиториев. Для этого откроем файл /etc/apt/sources.list в редакторе nano и при необходимости добавим ссылки на официальные репозитории.+ | Первым делом проверим список (/etc/apt/sources.list) доступных репозиториев. Для этого откроем файл /etc/apt/sources.list в редакторе nano и при необходимости добавим ссылки на официальные репозитории.+ | ||
+ | |||
nano /etc/apt/sources.list | nano /etc/apt/sources.list | ||
+ | |||
При необходимости добавляем официальные репозитории: | При необходимости добавляем официальные репозитории: | ||
− | deb http://httpredir.debian.org/debian jessie main | + | |
− | deb-src http://httpredir.debian.org/debian jessie main | + | deb http://httpredir.debian.org/debian jessie main |
− | deb http://httpredir.debian.org/debian jessie-updates main | + | deb-src http://httpredir.debian.org/debian jessie main |
− | deb-src http://httpredir.debian.org/debian jessie-updates main | + | deb http://httpredir.debian.org/debian jessie-updates main |
− | deb http://security.debian.org/ jessie/updates main | + | deb-src http://httpredir.debian.org/debian jessie-updates main |
− | deb-src http://security.debian.org/ jessie/updates main | + | deb http://security.debian.org/ jessie/updates main |
+ | deb-src http://security.debian.org/ jessie/updates main | ||
+ | |||
Если вы обновили список репозиториев, то сохраняйте изменения в файле (ctrl +O) и выполните обновления списка-пакетов: | Если вы обновили список репозиториев, то сохраняйте изменения в файле (ctrl +O) и выполните обновления списка-пакетов: | ||
apt-get update | apt-get update |
Версия 16:28, 6 июля 2017
Содержание
- 1 Развертывание кластера
- 2 Обновление Proxmox и установка компонентов (через интернет)
- 3 Обновление Proxmox через локальный репозиторий
- 4 Веб-интерфейс, смена ip, редактирование hosts и добавление нодов
- 5 Объединение в кластер
- 6 CEHP (вводная часть)
- 7 CEPH (Настройка)
- 8 Создание Glusterfs
- 9 Создание VM
- 10 HA для мигрирования VM (создание групп)
- 11 Moxa (настройка)
- 12 Использование скрипта для добавления новых database, mss, ff
- 13 Использование Zip сервера (четвёртого Нод)
- 14 Ntp server, синхронизация времени, GPS Датчик (настройка)
- 15 Сервер Авторизации
- 16 Устранение неисправностей
- 17 Приложения
- 17.1 Список необходимого софта и оборудования
- 17.2 План работы с кластером
- 17.3 Команды для работы в Linux с IPE
- 17.4 Устанавливаем SSH в Debian
- 17.5 Как расшарить папку из консоли Linux используя Samba
- 17.6 Установка Video-server 7.0.776 в качестве ретранслятора и проброс USB в VM для ключа защиты
- 17.7 Установка и настройка серверной части Oracle на OS Linux (Debian 8.5/8.6)
- 17.8 Инструкция по установке Wine и Winetricks в Linux
Развертывание кластера
Введение
Virtual Environment (VE) (виртуальня среда) Proxmox является многоузловым кластерным гипервизором с открытым исходным кодом, построенным на Debian Linux и способным работать на общедоступных аппаратных средствах, тем самым устраняя любые блокировки вендора. Proxmox свободно доступен без каких-либо блокированных особенностей.
Proxmox это мультиузловая среда, и это означает, что многие узлы могут образовывать единый кластер в котором виртуальная машина может быть перемещена на любой узел в кластере, тем самым делая возможной избыточную виртуальную среду. Весь Proxmox кластер может управляться через надежный графический интерфейс пользователя (GUI).
Предварительная настройка серверов
Перед установкой Proxmox на платформу Supermicro, необходимо настроить BIOS, IPMI и дату/время
1. Выставить дату и время в BIOS на текущую. В зависимости от временной зоны где будет работать кластер. На каждой Ноде!
2 Режим SATA выставить - ACHI
3 Автоматическое включение после сбоя питания - Power on
4 Настроить статический адрес IPMI - BMC – IPMI (ip, маску подсети, шлюз если есть)
5 отключить первоначальную загрузку по Lan
Жесткие диски обязательно должны быть «очищены» перед установкой Proxmox! Для работы с программным RAID1 обязательно использование дисков HGST (было протестировано на них). На дисках Toshiba программный RAID1 сделать не удалось. После настройки Bios (режим SATA – ACHI) монтируем образ proxmox-ve_4.4-eb2d6f1e-2 с «Внешнего HDD» и загружаемся с него (без UEFI), либо через IPMI Supermicro IPMIView20 смонтировать образ proxmox-ve_4.4-eb2d6f1e-2 (для этого нужно знать ip адрес IPMI и быть в одной подсети с ним. Будет описано ниже).
Для работы с серверами по IPMI, можно воспользоваться утилитой от Supermicro IPMIView20. Она упростить и ускорить работу по IPMI (внимание: работает только на Windows и потребуется установленная программа JAVA (jre-8u111-windows-x64)
Работа с образами в IPMI Supermicro utilities
IPMIView20 – Отличная утилита для работы с серверами по IPMI на материнских платах Supermicro.
Утилита позволяет делать поиск по заданному пул IP адресов, добавлением их в колонку доступных,
а так же простоту в работе с несколькими окнами (серверами) одновременно.
Так же можно менять IPMI адрес не заходя в BIOS, просматривать температуру и сост. Cервера.
Важной особенностью стоит отменить возможность монтирования образов прямо с компьютера, на котором происходит настройка. Достаточно выбрать сервер по IPMI с котором необходимо работать. Перейти в закладку IPMI Concole и подключиться.
В открывшемся окне нажать закладку Virtual Storage и выбрать ISO файл, затем нажать Plug in и запустить сервер на перезагрузку в том же окне — Power Control – Power Reset. После работы с ISO образом его необходимо размонтировать — там же кнопкой Plug Out, иначе сервер будет пытаться загрузиться в первую очередь с образа.
Установка Proxmox на голом узле (на каждую Нод) с использованием RAID1
Процесс установки Proxmox полностью управляется графическим интерфейсом с помощью различных подсказок. В этом разделе мы последуем следующими шагами в создании нашего первого узла Proxmox. Включите питание и загрузите физический узел, используя установочный диск или USB-носитель. На следующий снимок экрана показывает как выглядит экран после загрузки:
1. Install Proxmox VE
2. В экране End User License Agreement (EULA) кликните согласие:I agree.
3. Нажимаем options и меняем на файловую систему zfs-raid1) – next (не применимо для дисков Toshiba)
4. Russia – Europe/Moscow – U.S.English
5. Введите и подтвердите пароль для пользователя root. Затем введите адрес е-mail, на который отсылать все уведомления кластера Proxmox. вводим пароль для root:000000 повторяем, mail любой —next
6. На данном шаге вы должны ввести имя хоста и сетевую информацию, такую как IP Address, Gateway, DNS Server. Введите необходимую информацию для вашей среды, а затем нажмите Next
Hostname: DIR_номер сервера.integra-s.com (доменное имя обязательно)
Сеть указываем свою, ВАЖНО IP должен быть с прямым выходом в интернет, хотя бы на время обновления. Если есть локальные репозитории IP можно указать статический сразу.
В нашем случае (в офисе Интегра-С) настройки сети следующие:
192.168.10.66 (IP с инетом)
255.255.254.0 (маска) 192.168.10.9 (шлюз)
192.168.10.2 (DNS)
Next
7. Дождаться завершения установки
На данный момент была собрана вся необходимая информация и была запущена основная установка. После ее выполнения удалите установочный диск или носитель USB и кликните на Reboot.
Следуйте шагам с 1 по 7 на втором и третьем узле. (Для Proxmox кластера минимально требуются два узла.)
Внимание
Если требуется менять ip адрес делать только через web-интерфейс, имя сервера (node) нельзя менять через nano /etc/hosts.
Обновление Proxmox и установка компонентов (через интернет)
1.Необходимо поменять платный репозиторий Proxmox, требующий подписки, на бесплатный, логинимся от root и вбиваем строку:
#nano /etc/apt/sources.list.d/pve-enterprise.list
Комментируем строку и вбиваем новую строку ниже:
deb http://download.proxmox.com/debian jessie pve-no-subscription
(можно использовать копирование строки ctrl+K (копировать) ctrl+U (вставить)
Нажимаем ctrl+X затем Y и Enter
2. Далее обновляем Proxmox:
#apt update && apt dist-upgrade
соглашаемся Y
“q to quit” нажимаем Q
3. Вбиваем и устанавливаем по очереди:
#pveceph install -version jewel
#apt install htop mc attr glusterfs-server pv ntp
Если требуется сменить имя сервера или ip адрес необходимо менять в трех местах, командами:
nano /etc/hostname — не желательно, возможны ошибки после
nano /etc/hosts
nano /etc/network/interfaces
Обновление Proxmox через локальный репозиторий
1. Воспользоваться программой WinSCP на ОС Windows машине подключенной к тоже подсети кластера. Логинимся от root в WinSCP, копируем папку repo (предполагается, что она у Вас есть) в папку media, должно получиться так /media/repo
Можно закинуть с носителя USB. Для этого примонтировать устройство с репами и скопировать их по пути /media/repo
2. Подкинуть файл localerepo.list в /etc/apt/sources.list.d/
Закомментировать всё в nano /etc/apt/sources.list
Закомментировать всё в nano /etc/apt/sources.list.d/pve-enterprise.list
3. Находясь в папке с ключами (cd /media/repo) , добавить их командами
#apt-key add release.asc
[OK] — сообщение о верном добавлении ключа
#apt-key add autobuild.asc
[OK] — сообщение о верном добавлении ключа
4. Команда на обновление
- apt update && apt dist-upgrade
соглашаемся Y
“q to quit” нажимаем Q
5. Cтавим пакеты
#apt install htop mc attr glusterfs-server pv ntp
6. После установки подкинуть файл pveceph.pm в /usr/share/perl5/PVE/CLI/
7. установить Ceph
#pveceph install -version jewel
Проделываем пункты с 1 по 5 на каждой Ноде
Веб-интерфейс, смена ip, редактирование hosts и добавление нодов
С другого компьютера в общей локальной сети (или ноутбука) заходим через браузер на веб-интерфейс Proxmox:
в нашем случае https://192.168.10.66:8006
Выбираем сначала язык Russia затем root и пароль 000000
Если требуется поменять IP адрес
Выбираем сервер в левом столбце, затем System – сеть и в строке wmbr0 по двойному клику меняем в открывшемся окне IP адрес, маску и шлюз – ок.
Так же меняем DNS сервер если требуется
Нажимаем на кнопку «Перезапуск» в верхнем правом углу веб-интерфейса (в некоторых случаях необходимо перезагружать дважды)
Ждем какое то время, пробуем зайти по новому адресу https://Х.Х.Х.Х:8006
Х.Х.Х.Х — ваш новый IP адрес, порт всегда 8006
Так же нужно поменять IP адрес в строке файла hosts, для корректного отображения IP в шапке консоли
Это можно сделать через веб-интерфейс нажав «Консоль»
логинимся от root и вбиваем команду:
#nano /etc/hosts
меняет IP, перезагружаемся.
HOSTS
Обязательно прописываем на каждой Ноде (сервере) ip и hostname Ноды будущего кластера
Нажимаем ctrl+X затем Y и Enter
Повторяем у всех Нодов (серверов), pvelocalhost в конце строки остается на каждом из нодов в соответствии с тем, на котором настраиваем (см. скриншот). Обратить внимание на ip адрес и имя сервера, у Вас они будут другие. Включая четвертый dir4 - ZIP сервер если такой имеется
Объединение в кластер
Создаем кластер и прописываем на главном Ноде (допустим на dir1):
#pvecm create <clustername> (например dircluster)
На второстепенных Нодах пишем
#pvecm add dir1 (dir1 это имя нашего главного Нод)
yes, пароль от root главной Нод
Проверяем, что все нормально и смотрим список Нод в кластере
#pvecm status
Перезагружаем все Ноды и заходим в веб-интерфейс главного Нода (в нашем случае https://192.168.11.211:8006)
Должны увидеть все добавленные Ноды (серверы) в «Датацентр» - «Сводка» Online 3
CEHP (вводная часть)
Ceph является распределенной системой хранения, которая предоставляет блочные устройства хранения объектов RADOS (RBD, RADOS Block Device) Безотказное автоном-ное распределенное хранилище объектов, Reliable Autonomic Distributed Object Store, файловую систему Ceph и хранилище объектов Ceph. Ceph построена с учетом потребностей в очень высоких уровнях надежности, масштабируемости и производительности. Кластер Ceph может быть расширен до масштабов данных в несколько Петабайт без ущерба для целостности данных и может быть настроен с применением общедоступного оборудования. Все записываемые в хранилище данные получают репликации по всему кластеру Ceph. Ceph с самого начала разрабатывался исходя из потребностей больших данных. В отличие от других типов хранилищ, чем больше становится кластер Ceph, тем выше его производительность. Тем не менее, он также может быть использован для резервирования данных с такой же легкостью в небольших средах. Низкая производительность может быть смягчена с применением SSD для хранения журналов Ceph.
Встроенные средства самовосстановления Ceph обеспечивают беспрецедентную устойчивость при отсутствии единой точки отказа. В кластере Ceph со многими узлами хранилище может переносить не только отказ жесткого диска, но и выход из строя всего узла без потери данных.
Ceph включает ряд компонентов имеющих решающее значение для вашего понимания того, как настраивать и эксплуатировать хранилище. Следующие компоненты это то, и чего состоит Ceph:
Демон монитора (MON)
Демон хранения объектов (OSD)
Журнал OSD
Сервер метаданных (MSD)
Карта Управляемых масштабируемым хешированием репликаций (CRUSH map, Controlled Replication Under Scalable Hashing map)
Группы размещения (PG, Placement Group)
Пулы (Pool)
MON
Демоны монитора формируют кворум распределенного кластера Ceph. Должно присутствовать как минимум три настроенных демона монитора на различных узлах для каждого кластера. Демоны монитора также могут быть настроены как виртуальные машины вместо применения физических узлов. Мониторы требуют очень мало ресурсов для функционирования, следовательно выделяемые ресурсы могут быть очень незначительными. Монитор может быть установлен через графический интерфейс Proxmox после начального создания кластера.
OSD
Демоны хранения объектов OSD, Object Storage Daemons отвечают за хранение и извлечение действительных данных кластера. Обычно одно физическое устройство подобное жесткому диску, или твердотельному диску настраивается как отдельный OSD. Хотя несколько различных OSD может быть настроено на одном физическом диске, это не рекомендуется делать совсем ни для каких промышленных применений. Каждый OSD требует устройство журнала, где вначале записываются данные, которые позже переносятся на реальный OSD. Сохраняя данные в журналах на высокопроизводительных SSD мы можем значительно увеличивать производительность ввода/ вывода Ceph. Благодаря архитектуре Ceph, чем больше и больше OSD добавляется в кластер, тем больше возрастает производительность ввода/ вывода. Журнал OSD работает очень хорошо на малых кластерах при примерно восьми OSD на узел. OSD могут быть установлены с помощью графического интерфейса Proxmox после начального создания MON.
OSD Journal
Каждый фрагмент данных предназначенный для OSD Ceph вначале записывается в журнал. Журнал позволяет демонам OSD записывать меньшие фрагменты, позволяя реальным дискам фиксировать запись, которая требует больше времени. Проще говоря, все данные будут записаны в журналы, а затем журнальная файловая система отправляет данные на фактический диск для постоянной записи. Так, если журнал хранится на диске с высокой производительностью, например SSD, входящие данные будут записаны с гораздо более высокой скоростью, в то время как за сценой более медленные диски SATA могут фиксировать запись с более медленной скоростью. Журналы на SSD могут на самом деле улучшать производительность кластера Ceph, особенно, если кластер небольшой, всего с несколькими терабайтами данных.
Замечание:
Следует также отметить, что если происходит отказ журнала, это приведёт к выходу из строя всех OSD, которые обслуживает данное устройство журнала. В некоторых средах может быть необходимо помещать два устройства SSD для зеркального RAID и уже его применять для журнала В больших средах с более чем 12 OSD на узел производительность может быть на самом деле получена путём размещения журнала на том же диске OSD вместо применения SSD для ведения журнала.
MDS
Демон сервера метаданных MDS, Metadata Server отвечает за предоставление файловой системы Ceph (CephFS) в распределенной системе хранения Ceph. MDS может настраиваться на отдельных узлах или сосуществовать с уже существующими узлами монитора или виртуальными машинами. Хотя CephFS прошла долгий путь, она по прежнему не в полной мере рекомендуется к применению в промышленной среде. Стоит упомянуть, что многие виртуальные среды активно работают с MDS без каких- либо проблем. В настоящее время не рекомендуется настраивать более двух MDS в одном кластере Ceph. В настоящее время CephFS не поддерживается подключаемым модулем хранения Proxmox. Однако она может быть настроена как монтируемая локально с последующим соединением через хранилище Directory. MDS не может быть установлен через графический интерфейс Proxmox, по крайней мере, в версии 3.4.
CRUSH map
Карта Управляемых масштабируемым хешированием репликаций (CRUSH map) является сердцем распределенной системы хранения Ceph. Алгоритм для сохранения и извлечения пользовательских данных в кластерах Ceph планируется в карте CRUSH. CRUSH делает возможным прямой доступ клиента к OSD. Это устраняет единую точку отказа и любые физические ограничения масштабирования, поскольку не существует централизованных серверов или контроллеров для управления операциями чтения и записи хранимых данных. Во всех кластерах Ceph CRUSH поддерживает карту всех MON и OSD. CRUSH определяет как данные должны быть разбиты и реплицированы среди OSD распределяя их среди локальных узлов или даже среди удаленно расположенных узлов.
Карта CRUSH по умолчанию создается на только что установленный кластер Ceph. Она может дополнительно настраиваться дальше на основе потребностей пользователей. Для небольших кластеров Ceph эта карта должна работать просто прекрасно. Однако, когда Ceph развертывается для очень больших данных, эту карту необходимо настраивать дополнительно. Настроенная карта позволит лучше управлять массивными кластерами Ceph. Для успешной работы с кластерами Ceph любых размеров обязательно ясное понимание карты CRUSH.
PG
В хранилище Ceph объекты данных собираются в группы определяемые с помощью алгоритмов CRUSH. Они называются группами размещения (PG, Placement Group), поскольку CRUSH помещает эти группы в различные OSD в зависимости от установленного в карте CRUSH уровня репликации и количества OSD и узлов. Отслеживая группы объектов вместо самих объектов можно сохранять огромное количество аппаратных ресурсов. Было бы невозможно отслеживать миллионы отдельных объектов в кластере. Следующая диаграмма показывает как объекты объединяются в группы и, как PG связаны к OSD:
Для балансировки доступных аппаратных ресурсов необходимо назначать правильное число групп размещения. Число групп размещения должно меняться в зависимости от число OSD в кластере. Следующая таблица предлагаемых групп размещений выполнена разработчиками Ceph:
Число OSD | Число PG |
---|---|
Меньше 5 OSD | 128 |
От 5 до 10 OSD | 512 |
От 10 до 50 OSD | 4096 |
Выбор соответствующего числа групп размещения является критичным, поскольку каждая группа размещения будет потреблять ресурсы узла. Слишком многогрупп размещения для неверного число OSD в действительности приведет к избыточному использованию ресурсов узла OSD, в то время как очень маленькое число назначенных групп размещения в большом кластере поставит данные в состояние риска. Эмпирическое правило заключается вначале с наименьшим возможным числом групп размещения с последующим их увеличением по мере роста числа OSD.
Pools
Пулы Ceph аналогичны разделам жесткого диска. Мы можем создать множество пулов в кластере Ceph для разделения хранимых данных. Например, пул с названием accounting может хранить данные всего подразделения бухгалтерского учета, а другой пул может хранить данные о персонале компании. При создании пула необходимо назначение числа групп размещения. При начальной настройке Ceph создаются три пула по умолчанию. Это data, metadata и rbd. Удаление пула навсегда удалит все хранимые объекты.
Следующий рисунок демонстрирует основы кластера Proxmox+Ceph
Предыдущий рисунок показывает узлы Proxmox, три узла монитора, три узла OSD и два узла MDS составляющие кластер Proxmox+Ceph. Заметим, что Ceph располагается в сети, которая отличается от общедоступной сети. В зависимости от установки числа репликаций все приходящие данные объектов должны записываться более одного раза. Это вызывает высокую потребность в пропускной способности. {Прим. пер.: еще большую нагрузку создают автоматическая балансировка, сохраняющая примерно равным процент заполнения всех OSD в кластере Ceph, и восстановление копий в случае выхода из строя некоего оборудования}. Выделяя Ceph в отдельную сетевую среду мы будем уверены, что сеть Ceph может полностью использовать всю полосу пропускания.
В более продвинутых кластерах третья сеть создается исключительно между узлами Ceph для репликаций кластера, тем самым еще больше улучшая производительность. В Proxmox VE 3.4. один и тот же узел может использоваться и для Proxmox, и для Ceph. Это предоставляет больший способ управляемости всеми узлами из одного графического интерфейса Proxmox. Не рекомендуется размещать виртуальные машины Proxmox на узле который также настроен как Ceph. Во время повседневных операций узлы Ceph не потребляют больших объемов ресурсов подобных процессорам или памяти. Однако, когда Ceph переходит в режим балансировки вследствие отказа узла OSD возникают большие объемы реплицируемых данных, что требует больших объемов ресурсов. Если ресурсы совместно используются виртуальными машинами и Ceph, производительность значительно ухудшится.
Настройка основного хранилища
Вы можете настроить хранилище в кластере Proxmox как с применением GUI, так и с помощью CLI. Настройка хранилища сохраняется в файле
/etc/pve/storage.cfg.
Вы можете изменить этот файл непосредственно чтобы добавить хранилища через графический интерфейс Proxmox, а настройки сохранятся автоматически. Следующий снимок экрана является файлом настроек хранилищ в том виде, как он возникает после чистой установки Proxmox:
Настройка хранилищ обычно имеет следующий многострочный формат:
<type of storage> : <storage_id>
<path_to_storage>
<enable/disable share>
content types
maxfiles <numeric value of maximum backups to keep>
На основании данной настройки существует локальное хранилище подключенное к кластеру Proxmox, причем все файлы будут сохраняться в каталоге /var/lib/vz. Данное хранилище может хранить типы содержания, включающие образы дисков, ISO, шаблоны контейнеров и файлы резервных копий. Хранилище будет хранить максимум три последних файла резервных копии. Следующий снимок экрана показывает хранилище из графического интерфейса Proxmox:
Изменение настройки хранилища не требует перезагрузки и вступает в действие немедленно.
CEPH (Настройка)
Для внутренней сети без резервирования
Добавляем внутреннюю сеть в веб-интерфейсе Proxmox для каждого из нодов (eth1)
System – сеть
Перезагружаем каждую нод (сервер) два раза, должно быть yes в столбце «Активно»
Для внутренней сети с использованием 10 Гб/с и резервированием (Linux bond)
Вводная часть
Для обеспечения отказоустойчивости и повышения пропускной способности сетевых интерфейсов сервера используется агрегация линков, так называемый bonding. Эта технология позволяет объединить два или более физических сетевых интерфейсов в один виртуальный.
Типы агрегации (объединения) интерфейсов в Linux
mode=0 (balance-rr)
Этот режим используется по-умолчанию, если в настройках не указано другое. balance-rr обеспечивает балансировку нагрузки и отказоустойчивость. В данном режиме пакеты отправляются "по кругу" от первого интерфейса к последнему и сначала. Если выходит из строя один из интерфейсов, пакеты отправляются на остальные оставшиеся.При подключении портов к разным коммутаторам, требует их настройки.
mode=1 (active-backup)
При active-backup один интерфейс работает в активном режиме, остальные в ожидающем. Если активный падает, управление передается одному из ожидающих. Не требует поддержки данной функциональности от коммутатора.
mode=2 (balance-xor)
Передача пакетов распределяется между объединенными интерфейсами по формуле ((MAC-адрес источника) XOR (MAC-адрес получателя)) % число интерфейсов. Один и тот же интерфейс работает с определённым получателем. Режим даёт балансировку нагрузки и отказоустойчивость.
mode=3 (broadcast)
Происходит передача во все объединенные интерфейсы, обеспечивая отказоустойчивость.
mode=4 (802.3ad)
Это динамическое объединение портов. В данном режиме можно получить значительное увеличение пропускной способности как входящего так и исходящего трафика, используя все объединенные интерфейсы. Требует поддержки режима от коммутатора, а так же (иногда) дополнительную настройку коммутатора.
mode=5 (balance-tlb)
Адаптивная балансировка нагрузки. При balance-tlb входящий трафик получается только активным интерфейсом, исходящий - распределяется в зависимости от текущей загрузки каждого интерфейса. Обеспечивается отказоустойчивость и распределение нагрузки исходящего трафика. Не требует специальной поддержки коммутатора.
mode=6 (balance-alb)
Адаптивная балансировка нагрузки (более совершенная). Обеспечивает балансировку нагрузки как исходящего (TLB, transmit load balancing), так и входящего трафика (для IPv4 через ARP). Не требует специальной поддержки коммутатором, но требует возможности изменять MAC-адрес устройства.
Настройка Linux Bond
1. Добавить через веб морду
Datacenter-> node->System->Network
Create Linux Bond
Обратите внимание eth1 eth2 в вашем случаем могут быть другими
Все заполняем и делаем restart через веб морду
2. Добавляем в nano /etc/network/interfaces.new
bond_primary eth2
в конец файла
3. Должно выглядеть так, (eth's могут не совпадать)
auto bond0 iface bond0 inet static address 10.10.10.1 netmask 255.255.255.0 slaves eth1 eth2 bond_miimon 100 bond_mode active-backup bond_primary eth2
Сохраняем, перезагружаемся.
Проверяем командой
nano /etc/network/interfaces
сохранилась ли строка bond_primary eth2 в конце
На 10 гб/с сетевых картах в Крыму eth2 расположен дальше всех, последним сетевым входом, предпоследним является eth3. Будьте внимательны!
Проверить активность портов можно командой
#cat /proc/net/bonding/bond0
MII Status должно быть up
Если down то пишем команду
#ifup eth2
(или же eth3, смотря в какой интерфейс подключен кабель)
Общее для всех внутренних сетей
На главной Ноде (dir1) пишем команду:
#pveceph init --network 10.17.0.0/24
(нужно помнить что 10.17.0.0/24 это для адресов 10.17.Х.Х с маской 255.255.255.0, в вашем случае может быть иначе)
Создание мониторов делаем через консоль, для каждого нода командой:
#pveceph createmon
Должны получить следующее:
Далее подготавливаем HDD для OSD, для этого их необходимо перевести в GPT в консоле пишем команду:
#fdisk /dev/sdc g w
Тоже самое проделываем для sdd, и так на каждой Ноде
После подготовки к созданию OSD, переходим в веб-интерфейсе в строку Ceph – OSD и нажимаем создать OSD
Выбираем sdc и в строке журналирования так же sdc
Для sdd так же журналирование на sdd
И так на каждой из нод. В итоге получаем 6 шт OSD
Далее удаляем «Пул» и создаем новый с такими параметрами:
Далее создаем RBD
Датацентр — Хранилище — добавить — RBD
Мониторы отделяем запятой без пробела
Затем на любой из Нод через консоль делаем следующее:
#cd /etc/pve/priv/ #mkdir ceph #cp /etc/ceph/ceph.client.admin.keyring ceph/iperbd.keyring (используйте Табуляцию)
где iperbd — это имя нашего RBD.
Создание Glusterfs
GlusterFS — это распределённая, параллельная, линейно масштабируемая файловая система с возможностью защиты от сбоев. С помощью InfiniBand RDMA или TCP/IP GlusterFS может объединить хранилища данных, находящиеся на разных серверах, в одну параллельную сетевую файловую систему. GlusterFS работает в пользовательском пространстве при помощи технологии FUSE, поэтому не требует поддержки со стороны ядра операционной системы и работает поверх существующих файловых систем (ext3, ext4, XFS, reiserfs и т. п.).
Проверить на главной ноде gluster всех трех нод, командой:
#gluster peer probe <dir1 name> #gluster peer probe <dir2 name> #gluster peer probe <dir3 name>
На всех трех нодах проделываем следующие команды:
#zfs create -o mountpoint=/media/gfs rpool/gfs #zfs set acltype=posixacl rpool/gfs #zfs set atime=off rpool/gfs #zfs set xattr=sa rpool/gfs #zfs set overlay=on rpool/gfs
на всех нодах создаем папку wbackup командой:
#mkdir -p /media/gfs/wbackup
Далее на главной ноде <dir1> пишем:
#gluster volume create wbackup replica 3 dir1:/media/gfs/wbackup dir2:/media/gfs/wbackup dir3:/media/gfs/wbackup force (одной строкой)
Стартуем службу
#gluster volume start wbackup (на главной ноде)
Проверяем на каждой ноде командой
#gluster volume info
Затем в веб-интерфейсе Датацентр — Хранилище — Добавить - GlusterFS
Строки Volume name и Узлы брать из выпадающего списка, не вбивая самостоятельно!
Если требуется удалить volume
#gluster volume stop wbackup #gluster volume delete wbsckup #cd /media/glusterfs/wbackup for I in ‘attr -lq .`; do setfattr -x trusted.$i .; done attr -lq ./
Настройка резервирования
1. Настраиваем glusterfs
Datacenter → [wbackup/Glusterfs] → оставить только Content [VZDump backup file] → [OK]
Или в русскоязычном интерфейсе
Датацентр – Хранилище – wbackup – оставить только Образ диска [VZDump backup file] - [OK]
Datacenter → Backup → [Add] → <Storage local> изменить на <Storage wbackup> настроить → [Create]
Или в русскоязычном интерфейсе
Датацентр – Резервирование – Добавить – < local> изменить на <wbackup> настроить расписание - [Create]
Создание VM
Перед созданием VM нужно закачать iso образы (Debian 8.5/8.6) на локальные диски ноды, чтобы потом можно было установить OS на виртуальную машину
Выбираем необходимый iso образ, в нашем случае debian-8.6.0-amd64-DVD-1 и нажимаем загрузить. Дождаться завершения закачки iso образа на Ноду по сети. Таких образов можно хранить любое количество, зависит от потребности и свободного места на локальных OSD.
Затем переходим к созданию VM – на веб-интерфейс proxmox выбираем «Создать VM» в верхнем правом углу, в следующем окне:
где Узел это — имя ноды, VM ID - это идентификатор виртуальной машины, Имя — название виртуальной машины. У Вас будет всё свое. Нажимаем далее
В следующем окне выбираем тип ОС (В нашем случае для Debiana 8.6 – ядро Linux 4.X/3.X/2.6 Kernel
Нажимаем «далее»
Указываем закаченный нами образ, с которого будет устанавливаться ОС
Нажимаем «далее»
Выбираем SATA, и указываем размер диска для виртуальной машины, Cache обязательно Write back
Нажимаем «далее»
Выбираем необходимое количество Sockets и Cores (ядер) процессора
Нажимаем «далее»
Выбираем авто определение ОЗУ и указываем по необходимости размер (минимум и максимум)
Нажимаем «далее»
Сеть оставляем без изменений
Нажимаем «далее» и в последней закладке нажимаем «завершить»
Новая VM появится именно на той ноде, которая была указана при создании VM. На каждой ноде может быть несколько VM, все зависит от поставленных задач и мощности серверов (нодов) состоящих в кластере. По умолчанию VM не запущена и не установлена в автозапуск вместе с proxmox. Запустить можно кнопкой «запуск» в верхнем правом углу веб-интерфейса, а загружать автоматически можно изменив параметр «Запуск при загрузке»:
После установки ОС на виртуальную машину, iso образ обязательно нужно размонтировать, иначе система будет загружаться с образа. Должно быть так
Если после подключения к VM по двойному клику мыши виден только черный экран — нажмите Enter при активном окне VM.
Экспорт/импорт VM
1. Экпортируем с кластера-донора (Node) открываем консоль
#rbd export ipepool/vm-106-disk-1 - | pv | dd of=vm-106-disk-1
либо
#rbd export ipepool/vm-106-disk-1 - | dd of=vm-106-disk-1
где vm-106-disk-1 — ID VM
затем запаковываем, переходим в папку где лежит файл raw и пишем
#tar -zcvf test.tar.gz vm-106-disk-1
где test – имя архива
vm-106-disk-1 – это имя архивируемого образа
При упаковке и распаковке нельзя закрывать окно
Копируем через WinSCP к себе запакованный образ
2. Импортируем на кластер-акцептор
Копируем и распаковываем образ VM командой
#tar -zxvf test.tar.gz
заходим в директорию с образом и пишем
#dd if=vm-106-disk-1 | pv | rbd import --image-format 2 --image-feature layering – ipepool/vm-106-disk-1
либо
#dd if=vm-106-disk-1 | rbd import --image-format 2 --image-feature layering – ipepool/vm-106-disk-1
Заходим в директорию с конфигурационными файлами вм'ов на клаcтере-доноре через WinSCP
cd /etc/pve/qemu-server
и копируем себе файл ХХХ.conf, а затем подкидываем его на кластера-акцептор по пути
cd /etc/pve/qemu-server;
машина появиться на веб-интерфейсе кластера-акцептора
3. Смотрим результат
#rbd -p ipepool ls
#rbd info ipepool/vm-106-disk-1
4. Если требуется удалить VM
#rbd -p ipepool rm <diskname>
(удаление лишних feature) rbd feature disable vm-106-disk-1 <feature>
Обязательно сменить сет. настройки и имена у VM, иначе будет конфликт IP адресов!
HA для мигрирования VM (создание групп)
Для начала необходимо создать группу нодов участвующих в миграции своих VM
Далее указываем ID (имя) и выбираем серверы в группу (галочкой)
Затем переход на закладку HA и нажимаем «добавить»
В открывшимся окне заполняем ID VM которая хотите чтобы мигрировала и указываем число перезапуска (1 по умолчанию), можно вписать комментарий
Проделать со всем ID нодами, которые необходимы для миграции
При миграции VM с одной нод на другую в ручную в режиме «онлайн» могут помешать подключенные устройства USB и прочие. Отключите их и попробуйте заного.
Например ручное мигрирование VM не доступно для VM на которой установлен Видео-сервер, потому что USB-ключ защиты не позволяет произвести миграцию.
Т.к. ключи защиты установлены на всех четерых Нод (включая Zip нод), а рег-файлы всех четырех ключей находятся в папке с установленной video-server 7.0 — при автоматической миграции (если нода выходит из строя) проблем с лицензированием не произойдет. Каждый ключ цепляет свой рег-файл.
Если автоматическое мигрирование VM произошло неудачно (красный крестик на ID VM) попробуйте удалить/изменить ресурсы или группы HA, а затем произвести миграция в ручную на ту ноду, на которой эта VM работала корректно.
Moxa (настройка)
apt install gcc make linux-headers-$(uname -r) 1) choose kernel 3.x 2) #скопировать подготовленный moxa драйвер в /root 3) #cd /root/moxa/kernerl3.x #./mxinst y N # cd /usr/lib/npreals2/driver/ # ./mxaddsvr [ip moxa] 2 4) #cp /root/moxa/npreals /etc/init.d/ 5) #update-rc.d npreals remove && update-rc.d npreals defaults 6) #cp /root/moxa/ntp /etc/init.d/ 7) #update-rc.d ntp remove && update-rc.d ntp defaults
Использование скрипта для добавления новых database, mss, ff
на VM-ках
1. Сменить всем вм машинам ip-адреса
2. Сменить всем вм машинам IP в hosts
3. Запустить скрипты по созданию database, ff, mss на соответствующих вм
- 3.1. Запускать скрипт из папки командой
# ./<скрипт создающий> # ./<скрипт удаляющий>
- 3.2. При создании использовать имена без пробелов и спец символов
(на pgvm поправить конфиг файл)
№1 Base
- ls – что лежит в текущей папке
видим postgresql
переходим в #cd postgresql
#ls – видим скрипт
Делаем исполняемым, если не было проделано
#chmod +x <имя скрипта>
Запускаем
#./createNewdb.sh
Запустился скрипт-диалог
1. server host: 10.17.9.101 (сервер с базами данных)
2. server port: 5432
3. user name: postgres
4. user password: acuario
5. database name: <имя объекта> (PN1-PN16) (без пробелов и спецсимволов)
6. database template: template_postgis (оставляем как есть)
идет создание базы, ничего не трогаем до завершения
№2 FF
#ls – что лежит в текущей папке, видим firefly
#cd firefly
#ls – аналогично
Делаем исполняемым — аналогично, scriptffcreate.sh
Запускаем
#./scriptffcreate.sh
Запустился скрипт-диалог
1. firefly name: firefly (по умолчанию) меняем на fireflyPN1-PN16
2. firefly path: /opt
3. firefly wamp port: 8090 (по умолчанию) меняем на нужный 8091-8106
4. firefly http port: 10000 (по умолчанию) меняем на 10001-10016
5. serenity ip 10.17.1.1 меняем на нужный
6. serenity port:8888, меняем на нужный
7. acuario2 dbname:PN1, меняем на нужное имя базы PN1-PN16
8. postgresql ip: 10.17.1.1 меняем на наш сервер базы данных 10.17.9.101
запускается FF как демон
Проверка, что он запустился
#systemctl status fireflyPN2 – видим статус active (running) зеленым цветом, значит все ок.
№3 MSS
#ls – что лежит в текущей папке, увидим mss
#cd mss
#ls видим скрипт scriptmsscreate.sh
делаем исполняемым если не проделано ранее
#chmod +x <имя скрипта>
Запускаем #./scriptmsscreate.sh
Диалог
1. mss name: mss (по умолчанию), меняем на нужное например mssPN2
2. ff ip: 10.17.1.1 — меняем на наш (10.17.9.103)
3 ff port: 8080 по умолч., меняем на 8091-8106
4. serenity ip: 10.17.1.1, меняем на нужный
5. serenity port: 8888
6. mss path: /opt
Создается папка с именем, указанным в пункте 1 в папке указанной в пункте 6. Запускается mss как демон.
Проверяем его статус, аналогично ff
#systemctl status mssPN2
ожидаем состояния active (running) зеленым цветом
Использование Zip сервера (четвёртого Нод)
Замена вышедшего из строя сервера (node)
1. добавить новую ноду и удалить неработающую ноду из кластера
2. добавить новый монитор и удалить неработающий
3. добавить новый gluster brick и удалить неработающий
- 1.1. на второстепенной ноде
- ipenode2:~#pvecm add ipenode1
- 1.2. проверяем статус
- ipenode2:~#pvecm status
- 1.3. удаляем неработающую ноду
- ipenode2:~#pvecm delnode <имя сгоревшей машины>
- 2.1. добавляем монитор как обычно + прописываем ip нового монитора в файл (строка mohost)
- #nano /etc/pve/storage.cfg
- 2.2) посмотри внимательней storage.cfg
- nano /etc/pve/storage.cfg
- nano /etc/pve/ceph.conf
- ### move/remove mon ###
- ceph mon getmap -o /tmp/monmap
- monmaptool --print /tmp/monmap
- monmaptool --rm {id} /tmp/monmap
- #stop all your monitors! Не нужно, достаточно 1
- ceph-mon -i {working mon-id} --inject-monmap /tmp/monmap
делаем изменение в одном мониторе, остальные подхватят и обновят инфу по рабочим мониторам
3. добавляем новый gluster brick
#gluster volume add-brick <wbackup> replica 4 <newnode>:/media/gfs/wbackup force
удаляем сгоревший
#gluster volume delete-brick <wbackup> replica 3 <oldnode>:/media/gfs/wbackup force
nano /etc/pve/storage.cfg
Datacenter → storage → wbackup [edit] (add new node)
4. удаление osd мертвой машины
ID={osd-num}
pveceph stop osd.$ID
ceph osd out osd.$ID
pveceph destroyosd $ID
# ceph osd getcrushmap -o crushmapdump
# crushtool -d crushmapdump -o crushmapdump-decompiled
# nano crushmapdump-decompiled
- удалить все упоминания сгоревшей машины и osd
# crushtool -c crushmapdump-decompiled -o crushmapdump-compiled
# ceph osd setcrushmap -i crushmapdump-compiled
получить ответ
set crush map --> all ok
Ntp server, синхронизация времени, GPS Датчик (настройка)
1. Сменить всем вм машинам ip-адреса
2. Сменить всем вм машинам имена
3. Настройка ntpvm: после прохождения 1 и 2 пункта, далее добавить сервер (moxa)
# /usr/lib/npreals2/driver/mxaddsvr <ip moxa> 2
- 3.1. Если все сделано верно, будет создано несколько устройств COM порта;
- с помощью команды
- # cat /dev/ttyrX
- X-порядковый номер (1,2,3 и т.д.)
- должны пойти данные формата NMEA 0183
- 3.2. Поправить скрипт, если файл-устройство отличается от написанного в скрипте
- /root/moxa/npreals.sh
- На всех нодах должен быть установлен ntp, если не установлен устанавливаем его (через интернет или локальных репозиториев)
#apt install ntp
Затем на каждой Ноде нужно поменять значения в файле
#nano /etc/ntp.conf
меняем на наш IP у ntpVM
server 10.17.9.104
На каждой ноде добавить задание в CRONE
VM через веб интерфейс
#ntpd — gq
Командой #data можно проверить текущее время
При удачной сихронизации времени на Нодах, значок будет таким
GPS/Glonass
1. Подсоединить R+/D+ (A); R-/D- (B), где А-зеленый, В- белый
2. Настроить Моху (вебморда)
Port 2:
- Interface [RS-485 2WIRE]
- Baud rate [115200]
3. Виртуальные com ports:
RS-485 = /dev/ttyr(number)
RS-232 = /dev/ttyr0(number)
4. Настройка скорости и т.п.:
chmod . . .
ln -s /dev/ttyr3 /dev/gps0 -для драйвера NMEA на 127.127.20.0 (0 — порядковый номер gps устройства)
chmod 777 /dev/ttyr*
stty -F /dev/gps0 115200 (устанавливаем скорость)
для проверки скорости:
stty -F /dev/gps0
5. При правильном подключении проверим выходные данные:
cat /dev/gps0
при неверно выставленной скорости пойдут иероглифы
при верной конфигурации - координаты формата NMEA 0183
6. apt install ntp
7. правим конфиг:
# Local Clock — если теряем спутники, то снижаем stratum до 10 #server 127.127.1.0 #fudge 127.127.1.0 stratum 10 # NMEA GPS driver server 127.127.20.0 prefer mode 80 #mode 80 означает скорость 115200bps driftfile /var/lib/ntp/ntp.drift restrict default nomodify notrust # Отдаём время всем restrict 127.0.0.1 # Разрешаем себе всё disable auth #logfile /var/log/ntp/messages
8. рестарт службы для принzтия настроек:
systemctl restart ntp
systemctl status ntp
не должно быть ошибок, active(running)
проверить на наличие строки в статусе: GPS_NMEA(0) serial /dev/gps0 open at 115200 bps
8. ntpq -p
должна быть строка
- GPS_NMEA(0) .GPS. 0 l 13 64 77 0.000 0.617 0.792
с * в самом начале, значит - РАБОТАЕТ!
9. обновить время: systemctl stop ntp
ntpd -gq (можно не стопать службу перед выполнением)
systemctl start ntp
10. Если вы используете udev, то полезно будет создать правило /etc/udev/rules.d/10-gps.rules следующего содержания:
KERNEL==«ttyr3», NAME="%k", SYMLINK+=«gps0», MODE=«0660», GROUP=«uucp»
Сервер Авторизации
Устранение неисправностей
Добавление диска в RAID1 (не работает с HDD Toshiba)
Диагностирование потери одного из дисков в RAID1, можно проверить командой
zpool status Если «развалился» RAID1 на одной из Нод, на которой установлен proxmox, необходима ручная замена HDD. После установки жесткого диска фирмы HGST в первый или второй слот корзинки, необходимо проделать от root следующее
fdisk -l /dev/sd* (узнать какие диски видит система)
sgdisk -R /dev/sdb /dev/sda (копирование таблицы разделов)
sgdisk -G /dev/sdb (форматирование в GPT)
grub-install --recheck /dev/sdb (установка загрузчика)
update-grub (обновление загрузчика)
update-initramfs -u
zpool replace rpool /dev/sdb2 (копирование данных в раздел sdb2)
Приложения
Список необходимого софта и оборудования
1. Ноутбук с ОС Windows 7 х64, для последующего подключения к общей локальной сети, для удаленной установки proxmox через IPMI (необходимо добавление дополнительного IP в сетевой адаптер на ноутбуке). Так же пригодится для настройки компонентов Планеты и передачи файлов на серверы через WinSCP;
2. Образ proxmox-ve_4.4-eb2d6f1e-2;
4. USB ключи защиты + reg-файлы с открытыми паролями от 1 до 1600;
3. Девять запакованных образов VM
VM1 <baseVM>
VM2 <mmsVM>
VM3 <ffVM>
VM4 <skdVM>
VM5 <ntpVM>
VM6 <videoVM>
VM7 <serenetyVM>
VM8 <eilyVM>
VM9 <osmVM>
4. Образ Live (например WinPE10_8_Sergei_Strelec_x86_x64_2017.03.02_Russian) для чистки HDD и диагностики железа;
5. IPMI Supermicro utilities для управления по IPMI (работает только с Windows);
6. Подключенный прямой интернет или Локальные репозитории (repo) для обновления Proxmox, а так же для установки необходимых в работе компонентов;
7. Все необходимые образы (Debian 8.5/8.6, отдельно программы для серверной части Планеты, WinSCP, oracle-xe_11.2.0-2_amd64.deb, oracle-client, СКД клиент, IntegraVideo7.0.776, скрипты для установки mms, ff, database на VM-ках; драйвер для Moxa под Debian, VLC media player, PGAdmin1.2)
План работы с кластером
1. Настройка BIOS на каждой ноде
2. Настройка IPMI на каждой ноде
3. Proxmox.iso install
4. Закинуть local repo и прописать в repo.list пути к ним + поправить /usr/share/perl5/PVE/CLI/pveceph.pm
5. Обновить систему и поставить CEPH
6. Поставить пакеты mc htop glusterfs-server pv attr ntp
7. Объединить ноды в proxmox cluster
8. Настроить glusterfs
9. Настроить CEPH
10. Закинуть VM’s + изменить все IP адреса и hostname
VM1 <baseVM> VM2 <mmsVM> VM3 <ffVM> VM4 <skdVM> VM5 <ntpVM> VM6 <videoVM> VM7 <serenetyVM> VM8 <eilyVM> VM9 <osmVM>
11. Настроить wbackup
12. Настроить ntpVM + прописать на всех nodes /etc/ntp.conf нужный конфиг
Команды для работы в Linux с IPE
#systemctl status firefly_tracker статус работы FF
#systemctl status firefly_integration статус работы FF трекинга
#systemctl stop firefly_tracker остановка процесса FF
#systemctl start firefly_tracker запуск процесса FF
#systemctl restart firefly_tracker перезапуск FF
#cd /opt/firefly_tracker переход в папку с трекингом
#python firefly.py запуск FF
#cd /opt/firefly_integration переход в папку FF
#cd python firefly.py запуск FF
journalctl –no-pager -o cat -u firefly_tracker -1 просмотр статистики FF трекинга
#systemctl status mss статус работы mss
#systemctl stop mss остановка процесса mss
#systemctl start mss запуск процесса mss
#systemctl restart mss перезапуск mss
#cd /opt/mss_tracker переход в папку с аcuariomanager
#mono am.console.exe запуск mms в консольном режиме
#mono am.gui.exe запуск mms с графикой
#systemctl status proftpd статус работы ftp сервера
#systemctl stop proftpd остановка процесса ftp
#systemctl start proftpd запуск процесса ftp
#systemctl restart proftpd перезапуск ftp
Для смены пароля от root (зная изначальный пароль)
#passwd
Задать новый пароль, подтвердить
Установка SSH в Debian 8.5/8.6 и доступ c другой машины под root
Обновляем репозитории
Первым делом проверим список (/etc/apt/sources.list) доступных репозиториев. Для этого откроем файл /etc/apt/sources.list в редакторе nano и при необходимости добавим ссылки на официальные репозитории.+
nano /etc/apt/sources.list
При необходимости добавляем официальные репозитории:
deb http://httpredir.debian.org/debian jessie main deb-src http://httpredir.debian.org/debian jessie main deb http://httpredir.debian.org/debian jessie-updates main deb-src http://httpredir.debian.org/debian jessie-updates main deb http://security.debian.org/ jessie/updates main deb-src http://security.debian.org/ jessie/updates main
Если вы обновили список репозиториев, то сохраняйте изменения в файле (ctrl +O) и выполните обновления списка-пакетов: apt-get update
Устанавливаем SSH в Debian
Следующим шагом установим демона openssh. Вбиваем в консоле: apt-get install openssh-server На предложение подтянуть недостающие зависимости отвечаем положительно. Все, на этом установка завершена и можно выполнять запуск: service ssh start Теперь можно брать любой SSH-клиент и попробовать подключиться к серверу. C Windows можно использовать WinSCP. Почему не получается подключиться к SSH под root Если в качестве проверки соединения вы попробуете подключиться под root, то после отправки пароля, сервер будет постоянно ругаться и выдавать Access Denied. Сделано это намерено, т.к. нечего давать возможность подключаться root’ом к серверу. Правильней создать отдельного пользоваться, и при необходимости выполнять команды от root с помощью su. Если вы отдаете отчет своим действиям и хотите подключиться по ssh под root’ом, то тогда потребуется отредактировать конфигурационный файл службы ssh: nano /etc/ssh/sshd_config Находите директиву PermitRootLogin и заменяете текст после нее на yes. Должно получится так: PermitRootLogin yes Сохраняйте изменения (ctrl + o) и перезапустите службу OpenSSH: service ssh stop service ssh start Все, после этого вы сможете подключиться к серверу с под учетной записью root.
Как расшарить папку из консоли Linux используя Samba
Samba - это программное обеспечение для организации обмена файлами и работы с общими ресурсами между компьютерами под управлением Linux/Unix и операционной системой Windows. Samba состоит из клиентской и серверной части. Клиентская часть позволяет получить доступ к сетевым папкам и ресурсам Windows, а серверная, в свою очередь, открывает общий доступ к папке Ubuntu для других машин, в том числе и Windows. Устанавливаем Самба: apt-get install samba Добавляем пару строк в конец конфига, правим при необходимости путь, имя шары, и возможность гостевого входа/записи. nano /etc/samba/smb.conf [shara]
#имя папки
comment
= comment_to_shara
path
= /home/shara #путь к папке
read
only = no
locking
= no
guest
ok = yes
browseable
= yes
Сохраняем (ctrl+o в nano) Перезапускаем сервис с новым конфигом: /etc/init.d/samba restart Дополнительно: меняем права доступа к общей папке: (разрешено все)
chmod 777 /home/share
Установка Video-server 7.0.776 в качестве ретранслятора и проброс USB в VM для ключа защиты
После создания VM и установки Debian 8.6 (используем debian-8.6.0-amd64-DVD-1) без графики, необходимо закинуть папку с установщиком IV7 v7.0.776 (используя программу WinSCP от root c компьютера/ноутбука на Windows) в /home/videosrv7(имя пользователя)/distr (создать эту папку). Так же необходимо скопировать все четыре reg-файла для ключей защиты с открытыми пароля от 1 до 1600 – для одного кластера. После установки видео-сервера поместить их в папку /home/videosrv7/video-server-7.0/ Как зайти от root по WinSCP смотри в «Установка SSH в Debian 8.5/8.6 и доступ c другой машины под root” Перед установкой IV7 v7.0.776 необходимо прокинуть USB ключ с физической машины на виртуальную: На ноде proxmox у которой VM c видеосервером:
- lsusb
Ищем нужное нам устройство и смотрим его ID: XXXX:YYYY (3b13:4040) от root qm set 101 –usb0 host=XXXX:YYYY (usb1: host=3b13:4040) где 101 — ID виртуальной машины куда будем пробрасывать порт. Перезагружаем VM, а затем перезагружаем ноду. Установка же самого video-server-7.0.776 стандартная, вот команды которые могут пригодится:
- cd /путь к папке
- ./video-server-7.0.776-x64.run - запуск установки
- chmod 777 -R /home/videosrv7/distr - дать права
- tar -xvzf video-server-7.0.777 - распаковка
- rm -rf /имя папка - удаление
- /etc/init.d/videosrv7 restart
- /etc/init.d/videosrv7 stop
- /etc/init.d/videosrv7 start
- /etc/init.d/keyguard restart
- nano /etc/network/interfaces
- /etc/init.d/networking restart
Заходим в подробный веб-интерфейс видео-сервера и убеждаемся что ключ и рег-файл определились
затем нужно добавить внешний видеосервер (или несколько)
Настройки — внешние видеосервера. Затем «Плагины» - «логика» и добавляем плагин «сборщик» указав ip сервера (так же добавляем еще серверы если требуется)
Это нам позволит увидеть камеры с других центральных серверов и добавить их в свои наборы. Важный момент — при создании наборы нужно добавить любую камеру, даже не существующую. Без этого наборы создать не удастся.
Установка и настройка серверной части Oracle на OS Linux (Debian 8.5/8.6)
+ Клиент Oracle и клиент СКД Установка Oracle 11g Перед установкой Oracle 11g R2 Express Edition (XE), нужно установить дополнительные пакеты (машина должна быть подключена к Internet). Эти пакеты могут быть установлены путем выполнения следующей команды: от root
apt-get install alien libaio1 unixodbc
Следующие действия нужны если у Вас нет установочного файла с расширением .deb
Перейдем в папку:
cd /usr/local/src
Дистрибутив oracle 11 нужно скачать с официального сайта затем нужно установить его. http://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html
Следующим шагом будет распаковка скачанного архива с оракл:
unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip
Данный архив довольно большой и на распаковку потребуется некоторое время, ждем окончания и после чего переходим в нужную директорию для установки:
cd Disk1
Теперь мы должны преобразовать пакет Red Hat (RPM) в пакет Debian. Это может быть сделано с помощью команды alien. Параметр «-d » используется для информирования, что пакет Debian уже сформирован. Выполняем преобразование:
от рута
alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm
Этот шаг может занять некоторое время. Потребуется подождать около 15 минут.По этому если хотите жди окончания, а можно еще открыть один терминал для работы и в нем уже выполнять следующие шаги.
Пакет Red Hat, полагается на файл /sbin/chkconfig, который не используется в Ubuntu. Для успешной установки Oracle XE мы используем простой трюк.
от рута
nano /sbin/chkconfig
вставляем в открывшийся файл следующие строки
- !/bin/bash
- Oracle 11gR2 XE installer chkconfig hack for Ubuntu
file=/etc/init.d/oracle-xe if grep INIT` ; then echo >> $file echo '### BEGIN INIT INFO' >> $file echo '# Provides: OracleXE' >> $file echo '# Required-Start: $remote_fs $syslog' >> $file echo '# Required-Stop: $remote_fs $syslog' >> $file echo '# Default-Start: 2 3 4 5' >> $file echo '# Default-Stop: 0 1 6' >> $file echo '# Short-Description: Oracle 11g Express Edition' >> $file echo '### END INIT INFO' >> $file fi update-rc.d oracle-xe defaults 80 01
- EOF
Сохраните файл и закройте редактор. Теперь мы должны предоставить файл с соответствующими привилегиями исполнения.
от рута
chmod 755 /sbin/chkconfig
Установим дополнительные параметры ядра. Откройте файл, выполнив:
от рута
nano /etc/sysctl.d/60-oracle.conf
Скопируйте и вставьте следующий код в файле. Kernel.shmmax является максимально возможное значение физической памяти в байтах. 536870912/1024/1024 = 512 Мб.
вставляем в открывшийся файл следующие строки
- Oracle 11g XE kernel parameters
fs.file-max=6815744 net.ipv4.ip_local_port_range=9000 65000 kernel.sem=250 32000 100 128 kernel.shmmax=536870912
Сохраните файл. Изменения в этом файле могут быть проверены командой:
от рута
cat /etc/sysctl.d/60-oracle.conf
fs.file-max=6815744 net.ipv4.ip_local_port_range=9000 65000 kernel.sem=250 32000 100 128 kernel.shmmax=536870912 это говорит о том что параметры введены верно
Загружаем параметры для ядра ОС:
от рута
service procps restart Изменения могут быть вновь проверено командой:
от рута
sysctl -q fs.file-max
Должны увидеть следующий вывод на экран:
fs.file-max = 6815744 После этого, выполните следующие инструкции, чтобы сделать еще несколько необходимых изменений:
su ln -s /usr/bin/awk /bin/awk mkdir /var/lock/subsys (должен поругать и сказать,что такое файл существует,не обращаем на это внимание) touch /var/lock/subsys/listener Теперь осталось установить уже пересобранный пакет (убедитесь в этом хорошо, а то не будет работать):
от рута
dpkg --install oracle-xe_11.2.0-2_amd64.deb
Происходит установка и можно перейти к настройке.
Но если вы увидите следующее сообщение о ошибке «Execute the following to avoid getting a ORA-00845: MEMORY_TARGET error. Note: replace “size=4096m” with the size of your (virtual) machine’s RAM in MBs.Выполните следующие действия:
Нужно удалить папку:
от рута
rm -rf /dev/shm
Создаем папку:
от рута
mkdir /dev/shm
Монтируем папку для работы:
от рута
mount -t tmpfs shmfs -o size=4096m /dev/shm
Создаем файл и пропишем параметры в него
от рута
nano /etc/rc2.d/S01shm_load
- !/bin/sh
case "$1" in start) mkdir /var/lock/subsys 2>/dev/null touch /var/lock/subsys/listener rm /dev/shm 2>/dev/null mkdir /dev/shm 2>/dev/null mount -t tmpfs shmfs -o size=4096m /dev/shm ;;
- ) echo error
exit 1 ;; esac
Сохраните файл, закройте редактор и предоставить соответствующие привилегии выполнения:
от рута
chmod 755 /etc/rc2.d/S01shm_load
После такого должно все заработать!
Настройка Oracle 11g от рута
/etc/init.d/oracle-xe configure
при вопросе выбора порта он предложит тебе порт 8080, соглашаемся и пишем в ответ тоже 8080, попросит еще один порт 1521, соглашаемся и пишем в ответ тоже 1521,далее когда система попросит ввести пароль и логин для БД вводим слово SYSTEM и там и там. Потом будет еще вопрос, соглашаемся, пишем yes или y.
Настройка некоторых параметров для переменных среды:
от рута
nano /etc/bash.bashrc
Откроется файл и в самый низ добавляем следующие строки:
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe export ORACLE_SID=XE export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh` export ORACLE_BASE=/u01/app/oracle export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH export PATH=$ORACLE_HOME/bin:$PATH
Сохраните файл и закройте редактор. Чтобы загрузить изменения, выполните следующую инструкцию:
source /etc/bash.bashrc
мы не должны увидеть ни какой ошибки
Чтобы проверить изменения, которые вы сделали выполните:
echo $ORACLE_HOME
Должны увидеть следующее:
/u01/app/oracle/product/11.2.0/xe
После этого шага рекомендуется перезагрузить компьютер. После перезагрузки запускаем сервер с oracle: от рута
service oracle-xe start
в консоли вводим команду от рута
cd /etc
nano sudoers
Если нет этой папки, ее нужно создать. Или если в папке пусто, то вбиваем следующее:
В открывшимся файле ищем строчку root ALL=(ALL) ALL, добавляем под ней строчку oracle ALL =(ALL) ALL, сохраняемся.
переходим в папку
cd /u01/app/oracle/ptroduct/11.2.0/xe/network/admin, тут ищем два файла listener.ora и tnsnames.ora, открываем их
nano listener.ora nano tnsnames.ora
ищем строчку со словом HOST=бла бла бла и меняем на HOST=имя машины(DIR15962) и PORT=бла бла бла на PORT=1521.
Чтобы проверить работает сервер, или нет вводим от рута команду
service oracle-xe status
В случае успешной установки и настройки Oracle-XE мы должны увидеть следующее
oracle-xe.service - LSB: Oracle 11g Express Edition
Loaded: loaded (/etc/init.d/oracle-xe) Active: active (exited) since Сб 2017-03-25 14:03:06 KRAT; 5min ago Process: 508 ExecStart=/etc/init.d/oracle-xe start (code=exited, status=0/SUCCESS)
мар 25 14:03:05 IPE15961 oracle-xe[508]: Oracle Database 11g Express Edition is not confi...run мар 25 14:03:05 IPE15961 oracle-xe[508]: '/etc/init.d/oracle-xe configure' as the root us...se. Hint: Some lines were ellipsized, use -l to show in full.
Если установка прошла не корректно, то в информации после проверки появятся красные строчки. Рекомендуется снова проверить файл sudoers в папке etc.
Далее можно переходить к установке клиентской части. (Wine i386, winetricks, клиент ORACLE, СКД)
Инструкция по установке Wine и Winetricks в Linux
(Опробована только на KDE с графикой)
Wine — специальное ПО, которое позволяет запускать приложения, созданные для Windows, в UNIX-подобных системах, в том числе Linux.
Winetricks представляет собой запускаемый файл-скрипт. При его запуске появляется окно, содержащее длинный список программ, которые через этот скрипт можно установить.
1.Для установки wine и winetricks изменяем source.list от рута в консоли вводим
nano /etc/apt/sources.list
откроется файл со следующем содержанием
- deb cdrom:[Debian GNU/Linux 8.5.0 _Jessie_ - Official amd64 DVD Binary-1 20160604-15:35]/ jessie contrib main
- deb cdrom:[Debian GNU/Linux 8.5.0 _Jessie_ - Official amd64 DVD Binary-1 20160604-15:35]/ jessie contrib main
- Line commented out by installer because it failed to verify:
deb http://security.debian.org/ jessie/updates main contrib
- Line commented out by installer because it failed to verify:
deb-src http://security.debian.org/ jessie/updates main contrib
- jessie-updates, previously known as 'volatile'
- A network mirror was not selected during install. The following entries
- are provided as examples, but you should amend them as appropriate
- for your mirror of choice.
deb http://ftp.debian.org/debian/ jessie-updates main contrib deb-src http://ftp.debian.org/debian/ jessie-updates main contrib deb file:///mnt/DSetup/CD1 jessie main contrib deb file:///mnt/DSetup/CD2 jessie main contrib deb file:///mnt/DSetup/CD3 jessie main contrib
Предполагается, что образа с установочных дисков(CD1, CD2,CD3) уже смонтированы и добавлены в sources.list. Если этого нет используй инстркцию по установке Debian 8.5
Теперь добавляем следующие строки в конце файла:
deb http://httpredir.debian.org/debian jessie main
deb-src http://httpredir.debian.org/debian jessie main
deb http://httpredir.debian.org/debian jessie-updates main deb-src http://httpredir.debian.org/debian jessie-updates main
deb http://mirror.yandex.ru/debian jessie-backports main contrib non-free deb-src http://mirror.yandex.ru/debian jessie-backports main contrib non-free
2. от рута обновляем, добавленные репозитории
apt-get update
3.Установка wine i386:
Для того, чтобы заставить работать “правильный” Wine в 64-битной операционной системе нужно выполнить последовательно команды(от рута):
dpkg --add-architecture i386 apt-get update apt-get install libpulse0:i386(надо будет ответить да) apt-get install -f apt-get install wine:i386(надо будет ответить да) rm -fR ~/.wine
Последнюю команду можно опустить, но как показывает практика, она необходима, если Вы уже ранее пытались установить 64-битный Wine. Команда просто удаляет все ранее известные настройки.
4. После установки посмотрим версию wine:
wine --version (должно быть 1.6.2)
5.Установка winetricks на debian: от рута
apt-get install zenity (надо будет ответить да)
Загружаем winetricks скрипт:
cd /usr/local/src && wget http://winetricks.org/winetricks
Добавляем права на выполнение (запуск) скрипта:
chmod +x winetricks
Запускаем winetricks:
./winetricks
По пунктам окон потверждения действий: ок (даже если выскочила ошибка) нет ок установить DLL(1 пункт) - ок выбираем mdac27,mdac28,msvcirt- ок (пойдет установка) отмена (выскочит ошибка)
ok-нет-ok-установить DLL(1 пункт)-ok-выбираем mdac27,mdac28,msvcirt-установка-отмена (при ошибке)