Возможно вы искали: 'Kingdom Hearts Re:coded'

May 31 2025 02:15:07
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96425698
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18407
• Обзор The Walking ... 18853
• Обзор DMC: Devil M... 19921
• Обзор на игру Valk... 15921
• Обзор на игру Stars! 17810
• Обзор на Far Cry 3 18000
• Обзор на Resident ... 16063
• Обзор на Chivalry:... 17561
• Обзор на игру Kerb... 18021
• Обзор игры 007: Fr... 16667
Превью о играх
• Превью к игре Comp... 18003
• Превью о игре Mage... 14502
• Превью Incredible ... 14763
• Превью Firefall 13523
• Превью Dead Space 3 16378
• Превью о игре SimC... 14772
• Превью к игре Fuse 15479
• Превью Red Orche... 15589
• Превью Gothic 3 16388
• Превью Black & W... 17402
Главная » Статьи » Разное » Создание отказоустойчивого кластера для биллинговой системы на базе Gentoo Linux (drbd replication disk cluster)

Создание отказоустойчивого кластера для биллинговой системы на базе Gentoo Linux (drbd replication disk cluster)

Ключевые слова: drbd, replication, disk, cluster, (найти похожие документы)

From: Компания NetUP <info@netup.ru.>
Date: Mon, 18 Sep 2007 14:31:37 +0000 (UTC)
Subject: Создание отказоустойчивого кластера для биллинговой системы на базе Gentoo Linux

Оригинал: http://www.netup.ru/articles.php?n=13


Все права защищены (c) 2001-2006 NetUP (http://www.netup.ru)
Перепечатка материалов разрешается только с предврительного разрешения
компании NetUP (info@netup.ru)

Создание отказоустойчивого кластера для биллинговой системы на базе
Gentoo Linux

В настоящей документации рассматриваются вопросы создания
отказоустойчивого кластера для работы с биллинговой системой NetUP UTM
на базе двух физических серверов. В качестве операционной системы
используется Gentoo Linux. База данных mysql.


Рисунок 1. Общая схема кластера

Каждый сервер укомплектован двумя сетевыми картами стандарта Gigabit
Ethernet и двумя жесткими дисками одинакового размера.

Внутренние коммуникации между серверами осуществляются на внутренних
сетевых картах, на скорости 1 Гбит/сек. При этом для большей
надежности можно использовать "перевернутый" кабель (crossover) без
промежуточного коммутатора. Внешние сетевые карты подключены в
коммутатор и через них осуществляется связь кластера с остальной
сетью. При этом для внешних устройств данный кластер доступен под
одним общим адресом - 192.168.0.200. Этот адрес используется только
одним сервером в один момент времени. Если на этом сервере произошел
сбой, то адрес автоматически присваивается второму, резервному серверу
и кластер доступен в прежнем режиме. Работу по определению сбоев
осуществляет пакет heartbeat.

Сетевые настройки сервера 1:

Имя хоста: netup1
IP-адрес на внутренней сетевой карте. Интерфейс eth1: 172.16.0.1
IP-адрес на внешнем интерфейсе 192.168.0.200 (eth0:1). Настраивается автоматически пакетом heartbeat

Сетевые настройки сервера 2:

Имя хоста: netup2
IP-адрес на внутренней сетевой карте. Интерфейс eth1: 172.16.0.2
IP-адрес на внешнем интерфейсе 192.168.0.200 (eth0:1). Настраивается автоматически пакетом heartbeat.

Установка операционной системы Gentoo Linux производится на первый
жесткий диск - /dev/sda. Второй жесткий диск - /dev/sdb будет
полностью использоваться для синхронизации данных между серверами
средствами пакета drbd. Установка этого пакета осуществляется
командой:

emerge drbd


После успешной установки создайте конфигурационный файл /etc/drbd.conf
следующего содержания:

resource r0 {
protocol C;
incon-degr-cmd "echo '!DRBD! pri on incon-degr' | wall ; sleep 60 ; halt -f";

startup {
degr-wfc-timeout 120; # 2 minutes.
}

disk {
on-io-error detach;
}

net {
}

syncer {
rate 200M;
group 1;
al-extents 257;
}

on netup2 {
device /dev/drbd0;
disk /dev/sdb1;
address 172.16.0.2:7788;
meta-disk internal;
}

on netup1 {
device /dev/drbd0;
disk /dev/sdb1;
address 172.16.0.1:7788;
meta-disk internal;
}
}


Пример конфигурационного файла с комментариями приведен в файле
/usr/share/doc/drbd-0.7.11/drbd.conf.gz.

Согласно приведенным настройкам синхронизация данных будет
осуществляться на разделе /dev/sdb1. При этом для доступа к этому
разделу необходимо использовать устройство /dev/drbd0 в противном
случае синхронизация данных осуществляться не будет.

Для запуска пакета drbd выполните команду на обоих серверах:

/etc/init.d/drbd start


На сервере 1 выполните команду:

drbdadm -- --do-what-I-say primary all


Если все настройки верны, то с этого момента раздел /dev/sdb1 на обоих
серверах будет синхронизироваться. Для просмотра статуса можно
использовать команду:

/etc/init.d/drbd status


Пример вывода данной команды:

drbd driver OK; device status:
version: 0.7.11 (api:77/proto:74)
SVN Revision: 1807 build by netup@netup1, 2006-01-17 00:52:49
0: cs:Connected st:Primary/Secondary ld:Consistent


В данном выводе строка ld:Consistent означает, что все данные
синхронизированы между обоими серверами в кластере. В случае если идет
синхронизация данных, вывод будет содержать планируемое время и
текущий статус этого процесса.

Далее необходимо отформатировать синхронизируемый раздел под файловую
систему reiserfs и создать директорию, в которую будет монтироваться
данный раздел. Для этого выполните на сервере 1 команды:

mkreiserfs /dev/drbd0
mkdir /mnt/sync


на сервере 2 команду:

mkdir /mnt/sync


Следующим этапом в настройке отказоустойчивого кластера является
установка и настройка пакета heartbeat. Для установки этого пакета
необходимо выполнить команду:

echo "sys-cluster/heartbeat ~x86" " /etc/portage/package.keywords
emerge sys-cluster/heartbeat


После успешной установки необходимо создать конфигурационные файлы.

На сервере 1 файл /etc/ha.d/ha.cf следующего содержания:

logfacility local0
ucast eth1 172.16.0.2
auto_failback on
node netup1 netup2


На сервере 2 файл /etc/ha.d/ha.cf следующего содержания:

logfacility local0
ucast eth1 172.16.0.1
auto_failback on
node netup1 netup2


В этих файлах мы указали имена и IP-адреса серверов используемых в
кластере. Далее необходимо создать конфигурационный файл
/etc/ha.d/haresources следующего содержания:

netup1 192.168.0.200/24/eth0:1 drbddisk
Filesystem::/dev/drbd0::/mnt/sync::reiserfs apache2 mysql utm5_core utm5_radius


При этом необходимо проконтролировать, что бы данный файл был
одинакового содержания на обоих серверах. В данном файле мы указали
внешний IP-адрес кластера - 192.168.0.200, маску подсети - 24 и
интерфейс eth0:1, на котором использовать данный IP-адрес. Так же мы
указали пакеты, которые необходимо запускать, когда данный сервер
берет на себя роль ведущего сервера в кластере. Запуск сервисов
осуществляется в том порядке, в котором они указаны в файле. Согласно
приведенному файлу первым будет запущен пакет drbddisk, который
переведет данный сервер в режим "ведущего" (Primary) для пакета
drbd. После этого можно производить монтирование раздела /dev/drbd0.

Данную операцию производит второй пакет - Filesystem. В параметрах
данный пакет принимает указание на раздел - /dev/drbd0, директорию для
монтирования - /mnt/sync и тип используемой файловой системы -
reiserfs. Таким образом после старта этих двух пакетов директория
/mnt/sync будет содержать синхронизированные между двумя серверами
данные. Записанные в эту директорию данные будут автоматически
дублироваться на втором резервном сервере. В случае если на основном
сервере произойдет сбой, то резервный сервер будет содержать абсолютно
те же данные, что и основной сервер до сбоя.

Далее по списку будут запущены прикладные сервисы - веб-сервер
apache2, сервер базы данных mysql , ядро биллинговой системы
utm5_core, RADIUS сервер utm5_radius. Биллинговая система NetUP UTM во
время работы делает запись биллинговой информации в базу данных mysql,
поэтому для синхронизации этих данных необходимо переместить
директорию /var/lib/mysql на синхронизируемый раздел /mnt/sync. Данную
операцию необходимо производить при остановленном сервисе mysql. Так
же необходимо в конфигурационном файле /etc/mysql/my.cnf в разделе
[mysqld] указать новый путь:

datadir = /mnt/sync/mysql


Таким образом, после запуска сервиса mysql данные по абонентам,
списаниям и другая биллинговая информация хранящиеся в этой базе
данных будут синхронизироваться с резервным сервером.

Для корректной работы пакета heartbeat так же необходимо создать файл
/etc/ha.d/authkeys с ключами для безопасной работы между серверами. В
этом файле указывается тип ключа и сам ключ:

auth 1
1 sha1 somethinglong


Этот файл так же должен быть идентичен на обоих серверах в кластере.

На этом настройка пакета heartbeat завершена и можно произвести его
запуск на обоих серверах командой:

/etc/init.d/heartbeat start


Для проверки работоспособности кластера можно использовать утилиты
ifconfig, df, ps. Сервер, который в настоящий момент является ведущим,
должен иметь:

1. настроенный интерфейс eth0:1 с IP-адресом 192.168.0.200
2. смонтированную директорию /mnt/sync
3. запущенные сервисы apache2, mysql, utm5_core, utm5_radius

Резервный сервер при этом не должен иметь вышеуказанные настройки. Для
того, что бы резервный сервер стал основным необходимо остановить
сервис heartbeat на основном сервере либо эмулировать аппаратный сбой
физическим выключением основного сервера. При этом резервный сервер
присваивает себе общий IP-адрес 192.168.0.1, монтирует директорию
/mnt/sync и запускает сервисы apache2, mysql, utm5_core и utm5_radius.
На тестовом стенде компании НетАП восстановление работы кластера после
сбоя основного сервера не превышало 30 секунд. Таким образом, работа
отказоустойчивого кластера позволяет минимизировать перебои в работе
биллинговой системы и тем самым повысить сервис, предоставляемый
абонентам.

Для автоматического запуска сервисов после перезагрузки сервера
необходимо на обоих серверах выполнить команды:

rc-update add drbd default
rc-update add heartbeat default


Проблема синхронизации данных и ситуация "split-brain"

В случае если по какой-то причине произошел сбой связи между серверами
и в один момент времени оба сервера перешли в режим "ведущего",
может произойти ситуация когда данные на синхронизируемом разделе
будут отличаться между серверами. Данная ситуация называется
"расщепление разума" ("split-brain"). В этом случае администратор
в ручном режиме должен произвести действия по разрешению этого
конфликта.

Идентифицировать данную проблему можно по статусу пакета drbd.
Получить статус можно командой:

/etc/init.d/drbd status


Вывод при конфликтной ситуации на основном сервере будет содержать
строку следующего содержания:

0: cs:StandAlone st:Primary/Unknown ld:Consistent


Вывод при конфликтной ситуации на резервном сервере будет содержать
строку следующего содержания:

0: cs:StandAlone st:Secondary/Unknown ld:Consistent


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

На обоих серверах выполняем команды:

drbdadm disconnect all

/etc/init.d/heartbeat stop


Затем на сервере с неактуальными данными выполняем команду:

drbdadm secondary all


и после этого на сервере с актуальными данными команду:

drbdadm secondary all


Далее на сервере с актуальными данными выполняем команду:

drbdadm -- --human primary all


После этих действий необходимо подключить устройства на обоих серверах
командой:

drbdadm connect all


При этом автоматически неактуальные данные будут удалены, и оба
сервера будут иметь актуальные и полностью идентичные данные.
Проверить результат можно командой просмотра статуса:

/etc/init.d/drbd status


Вывод на основном сервере должен выглядеть следующим образом:

drbd driver OK; device status:
version: 0.7.11 (api:77/proto:74)
SVN Revision: 1807 build by netup@netup1, 2006-01-17 00:52:49
0: cs:Connected st:Secondary/Primary ld:Consistent


Строка "st:Secondary/Primary ld:Consistent" свидетельствует о том,
что данные полностью синхронизированы между серверами и конфликт был
успешно разрешен.


Страница пакета drbd в Интернете - http://www.drbd.org/
Страница пакета heartbeat в Интернете - http://linux-ha.org/HeartbeatProgram
716 Прочтений •  [Создание отказоустойчивого кластера для биллинговой системы на базе Gentoo Linux (drbd replication disk cluster)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Создание отказоустойчивого кластера... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка