Как делают зеркала?

Главные вкладки

Аватар пользователя dyp@drupal.org dyp@drupal.org 9 января 2007 в 16:02

Есть люди дико озабоченные безопасностью сайта, которые хотят сделать зеркало. Т.е. чтобы сайт был доступен с двух серверов, одновременно, причем сервера в разных частях планеты. НЕ бэкап базы данных, а как-то в реальном времени, на лету, чтобы если перерубят кабель в одном месте все работало без перебоев в другом.

Сайт сам не очень большой. Как такое сделать и возможно ли вообще я незнаю. Что-нибудь посоветуете?

Комментарии

Аватар пользователя dyp@drupal.org dyp@drupal.org 9 января 2007 в 19:52

Скорее это два сервера, для каждого свое доменное имя site.ru и site.org, при этом должна быть синхронизация БД в режиме реального времени. Но что-то мне подсказывает что это из разряда фантастики.

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 9 января 2007 в 20:20

Два сайта, на разных доменах. Ну например org и ru.
А база на выделенном серверном кластере в третьем месте, постоянным зеркалированием по RAID массивам.

Ну а с этих сайтов удаленные запросы того же PostgreSQL ...

Аватар пользователя rapitosov@drupal.org rapitosov@drupal.org 9 января 2007 в 21:50

Нет, это конечно возможно, но так никто не делает. Такая схема безсмысленна из-за своей неэффективности.

Вопервых RAID массив не относится к решениям зеркализации, а является продолжением технологии резервного копирования.
Во вторых зеркалом является резервный сервер с тем же доменным именем, либо, как в старину, с измененным префиксом (например ww2. или www2. вместо www.), но стоять такой сервер действительно должен в другом месте, или хотя бы на другом IP.
В третьих кластеры, как и в случае с RAID, используются не столько для зеркалирования, сколько для повышения производительности, отказоустойчивости и удобоабслуживаемости отдельной системы (если мы не говорим о распределенных кластерах, которые стоят как полтора самолета).
Ну и наконец не только PostgreSQL умеет работать с базой по IP, но и любая современная база данных. Хотя на практике использование удаленной базы данных вызывает кучку нетривиальных проблемм, и в сайтостроении почти не применяется.

---
http://drupal5.ru - информация для друпателей
качественные ответы только на качественные вопросы

Аватар пользователя rapitosov@drupal.org rapitosov@drupal.org 9 января 2007 в 21:37

Понимаю, мир Друпала на столько далек от мира юниксоидов, что даже простую репликацию можно смело относить в разряд фантастики Smile На самом деле есть десятки способов: от трехуровневых кластеров, до самописных скриптов синхронизации - всё зависит от задачь проекта и бюджета.

---
http://drupal5.ru - информация для друпателей
качественные ответы только на качественные вопросы

Аватар пользователя rapitosov@drupal.org rapitosov@drupal.org 9 января 2007 в 21:57

Вобщем читайте доки Апача и MySQL'я, там эти темы подробно освещены (а так же учитесь настраивать named, хотя за психическое здоровье научившихся не поручусь %~).

---
http://drupal5.ru - информация для друпателей
качественные ответы только на качественные вопросы

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 10 января 2007 в 1:26

Во первых - автору статьи посвящается - кабель не перерубят, по тому как почти у любого хостинг провайдера, даже самого дешевого, есть услуга, аля охраняемый выделенный сервер. Охрана там стоит настоящая. Ибо подумайте сколько компаний среднего звена хостятся не у себя, а у провайдера? Их бы давно обокрали всех до единого, если б не возможность (повторяю) охраняемой площадки.

Во вторых
>>Вопервых RAID массив не относится к решениям зеркализации, а является продолжением технологии резервного копирования.
____
А я и не уверял, что это способ зеркализации сайта. В этом контексте (внимательнее на до быть Smile , я имел в виду RAID 1 как способ зеркалирования дисковых массивов

>>Во вторых зеркалом является резервный сервер с тем же доменным именем, либо
____
Автор писал: "Скорее это два сервера, для каждого свое доменное имя site.ru и site.org...". Насколько я понял это его непосредственное условие в задаче. Если это не так - пардон.

>>В третьих кластеры, как и в случае с RAID, используются не столько для зеркалирования, сколько для повышения производительности, отказоустойчивости и удобоабслуживаемости отдельной системы (если мы не говорим о распределенных кластерах, которые стоят как полтора самолета).
_____
Ну так в данном случае именно это и надо.
Удаленные SQL запросы, по несколько по несколько 1000 в минуту например, требуют стабильности и скорости выполнения задач. Тем паче, что сервер баз данных физически может находиться в Улан-Баторе а сайты на серверах в Будапеште и Норильске.

>>Ну и наконец не только PostgreSQL умеет работать с базой по IP, но и любая современная база данных.
_____
Видимо я не правильно понят был.
Мои слова: "Ну а с этих сайтов удаленные запросы того же PostgreSQL ...
"

По моему скромному мнению, того же не означает только.

С уважением

Аватар пользователя dyp@drupal.org dyp@drupal.org 10 января 2007 в 1:14

''Во первых - автору статьи посвящается - кабель не перерубят, по тому как почти у любого хостинг провайдера, даже самого дешевого, есть услуга, аля охраняемый выделенный сервер.''
Ну зря вы так думаете, вы же не знаете какие нравы в Улан-Баторе ))
На самом деле, т.к. сайт сам не оч. посещаемый пока, затраты на такие махинации себя не окупят ИМХО. Проще регулярно делать бэкапы и иметь под боком резервный хостинг, чтобы в случае чего развернуться там.

Аватар пользователя axel axel 10 января 2007 в 2:25

DNS динамический настроить, чтобы редиректил запросы к одному и тому же имени на разные сервера. И БД реплицировать, для MySQL и PostgreSQL есть готовые решения.

--
Администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!

Аватар пользователя rapitosov@drupal.org rapitosov@drupal.org 10 января 2007 в 2:50

Во, слушайте Акселя, он знает.

Спорить с остальными не стану, только замечу что кабель перерубать не обязательно. Возможно Уважаемые не сталкивались с DoS, DDoS, нашествием спамботов и прочих червей, когда единственный возможный доступ к серверу через консоль, да и то только при отключенном сетевом интерфейсе.

Конечно, такого рода проблемы встают не перед администратором сайта, а перед его старшим братом - хостером и крёстным папой - датацентром, но это не делает их менее реальными.

---
http://drupal5.ru - информация для друпателей
качественные ответы только на качественные вопросы

Аватар пользователя Krotty@drupal.org Krotty@drupal.org 10 января 2007 в 10:26

Реплицикация БД подробно описана в документации по MySQL, (PostgreSQL не пробовал, не знаю :),
Синхронизацию файлов между хостами можно сделать через rsync. Основной вопрос - максимально синхронизировать время запуска этих механизмов, чтобы не получилось так, что база обновлена, а прилагающиеся к материалам картинки еще нет.
Динамически выдаваемый IP через DNS может быть проблемой в том случае если "перерубят кабель", потому как все запросы к отключенному серверу уйдут в никуда...
Так что не смотря на то что по отдельности все выглядит не очень сложно, собрать все это воедино может оказаться непростой задачей. Smile

Аватар пользователя kiev1 kiev1 10 января 2007 в 10:56

а почему-бы не сделать модуль который будет просто на второй сервер передавать то что набрали на первом а на втором передавать то что набрали на втором,

Аватар пользователя Krotty@drupal.org Krotty@drupal.org 10 января 2007 в 11:22

Какое однако простое решение! "Просто передавать!" Никаких репликаций и синхронизаций! Wacko
На самом деле "модуль для Друпала" будет всего лишь более высоким уровнем абстракции решающим ту же самую задачу на основе существующих механизмов репликации файлов и БД.

Аватар пользователя rapitosov@drupal.org rapitosov@drupal.org 12 января 2007 в 15:23

Это решение для распределения нагрузки, отказы всё равно нужно обрабатывать отдельно.

---
http://drupal5.ru - информация для друпателей
качественные ответы только на качественные вопросы

Аватар пользователя kiev1 kiev1 13 января 2007 в 10:05

а можно и так сделать - один сервер главный - остальные второстепенные - на них тоже установлены друпалы но обращение идет к базе основного с одним нюансом что таблица/директория кеша у каждого своя.
а вообще новый mysql уже кажется в нем репликации есть какие-то

Аватар пользователя Dan Dan 13 января 2007 в 11:47

> Есть люди дико озабоченные безопасностью сайта
> если перерубят кабель в одном месте все работало без перебоев в другом

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

Аватар пользователя rapitosov@drupal.org rapitosov@drupal.org 13 января 2007 в 13:03

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

Если есть возможность растрясти заказчика на отдельную статью бюджета - безопасность и гарантированную доступность сайта (что звучит более чем сомнительно, а подобного клиента, моё воображение, рисовать напрочь отказывается), можно заказать подобное решение у крутых интеграторов, или менее крутых хостеров, или у знакомого юниксоида, а деньги пропить Smile

---
http://drupal5.ru - информация для друпателей
качественные ответы только на качественные вопросы

Аватар пользователя B.X B.X 13 января 2007 в 14:22

"или менее крутых хостеров, или у знакомого юниксоида, а деньги пропить"

вот так всегда... а лучше бы было, если проблема всё-таки была решена... мне кажется, не такая уж это страшная вещь, что это невозможно сделать...

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

домены можно сделать похожими настолько, что на это никто не будет обращать внимания...

Аватар пользователя dyp@drupal.org dyp@drupal.org 23 января 2007 в 12:18

Еще предлагают бюджетный вариант. Имея 2 виртуальных хостинга, один рабочий другой резервный. На резервный по крону полностью сливать БД. В случае кризисной ситуации нужно обновить DNS. Возможные потери это дельта запуска крона.

Аватар пользователя seiko seiko 25 апреля 2008 в 13:01

Почти такая же проблема...
Есть свой сервак с сайтами. В инет есть выход через 2-х провайдеров. Последнее время стали перебои с каналом основного провайера.
Как замутить чтоб при отсутсвии связи по одному каналу сайт работал через другой канал?

Аватар пользователя Portnov Portnov 15 мая 2008 в 13:52

Последние FreeBSD умеют "динамический роутинг" (кажется, это так называется), когда можно прописать, например, два default gateway-я, и трафик будет между ними распределяться, а при падении одного - уйдет через другой. Правда, насколько я понял, этим версиям до состояния STABLE еще далеко.

Аватар пользователя kiev1 kiev1 15 мая 2008 в 14:07

динамический роутинг придумали очень давно - называется динамическая маршрутизация - провайдеры должны уметь выдавать данные по протоколу BGP - по другому не знаю как - ведь как то надо оповестить всех снаружи о изменении пути к вашему ip-шнику, к тому же надо зарегистрировать автономную систему, а на сервере drupal.ru поменять 386-й процессор на более мощный...

Аватар пользователя afishi afishi 19 декабря 2008 в 3:38

а вот тут про зеркала заговорили, сейчас в крупных городах РФ внутренние сети накрыли целиком города, и народ почти не вылазиет в интернете, они все имеют в своих сетях.
Как сделать эти самые зеркала, или клоны сайта в внутри сетей, чтобы они посещались и работали там внутри?

Аватар пользователя penexe penexe 19 декабря 2008 в 7:11

"afishi" wrote:
Как сделать эти самые зеркала, или клоны сайта в внутри сетей, чтобы они посещались и работали там внутри?

договорится с провайдером, дабы сделать безлимитный доступ

Аватар пользователя iT iT 7 февраля 2009 в 7:24

Стало интересно, а что если просто ns прописать не 2 как обычно а 2+2дополнительных. На втором хостинге держать актуальный код и базу данных. Кто в теме?

Аватар пользователя afishi afishi 10 апреля 2009 в 16:54

ребята, а кто скажет конкретно, что надо делать, чтобы в другой сети могли видеть наш сайт и считать его своим?

Аватар пользователя sergebw@drupal.org sergebw@drupal.org 13 апреля 2010 в 15:26

возникла похожая проблема:

Основной_сайт.ru размещается на сервере_1 у Хостера_1
Зеркало_сайта.ru размещается на шаред-хостинге_2 у Хостера_2

каким образом можно сделать синхронизацию файлов и базы данных
Основного_сайта и Зеркала_сайта хотя бы один раз в час?

Аватар пользователя woffi woffi 1 декабря 2011 в 1:02

Отчасти схожий вопрос. Есть два сайта, хостящиеся у одного хостинг-провайдера и ссылающиеся на общий каталог файловой системы (то есть фактически один сайт, доступный по двум доменным именам одновременно). Первый, соответственно, называется Сайт1 и доступен по ссылке site1.ru, а второй - Сайт2 со ссылкой site2.ru

В итоге вопрос - как отследить, по какому из сайтов сейчас серфит пользователь, чтобы подставить на всех страницах соответствующее название сайта и соответствующие ссылки во все views и кастомно созданные администратором блоки?

Аватар пользователя alexo alexo 26 августа 2023 в 14:53

а можно ли средствами Друпал как-то сделать, чтобы был сайт
old-name.ru как главное зеркало и на нем весь контент,
например нода 1 по адресу old-name.ru/node1
а на сайте
cool-name.ru это все отражалось бы автоматом
например cool-name.ru/node1
И возможно ли чтобы активность юзеров, зашедших через cool-name.ru учитывалась как будто это активность на old-name.ru ?
Если нет, то какой самый близкий к описанному вариант из реального?

Аватар пользователя jura12 jura12 27 августа 2023 в 6:34

Речь идёт о cluster и программа heatbeat переключает на другой компьютер в случае недоступности первого.
Есть несколько наборов ПО для обеспечения работы и синхронизации. Лучше сначанала все протестировать а потом сдавать в работу.