Имя: Пароль:
IT
 
Что лучше два сервера по кластер SQL или один но мощный?
0 КВАДРО2
 
21.07.11
08:47
Дилемма, т.к. с кластерами SQL не знаком, прошу подсказать имеющим опыт.
Есть сервер двухпроцововый по 4 ядра на камне (т.е. имеем 8 ядер), но его стало нехватать (проца и ОП), думаю, что лучше докупить? такой же и сделать кластер SQL или заменить на четырехпроцовый с большей ОП?

От кластера какие плюсы?
1. Лучше отказоустойчивость (один сломался, второй работает)

Но есть вопросы, база данных при кластере где хранится?

Добавьте коллеги свое мнение.

Спасибо.
1 povar
 
21.07.11
08:49
"Но есть вопросы, база данных при кластере где хранится? "...
Может лучше, для начала, хоть немного теории почитать ?
2 КВАДРО2
 
21.07.11
08:49
(1) Надеюсь на ответы
3 pavlika
 
21.07.11
08:51
4 DmitrO
 
21.07.11
08:53
У нас работает отказоустойчивый кластер SQL (два сервера).
Дорого это..
5 КВАДРО2
 
21.07.11
08:54
(4) В чем именно дороговизна?
6 Дарлок
 
21.07.11
08:56
почитал http://www.osp.ru/win2000/2010/01/13001641/
так и не понял,  с чего кластер СКЛ должен увеличить производительность
7 Дарлок
 
21.07.11
08:57
вы его потом накуривать будите?
8 DmitrO
 
21.07.11
08:57
В том что у тебя всегда включены два нехилых сервера, а работает (ну в смысле выполняет потребности организации) всегда только один из них.
9 DmitrO
 
21.07.11
08:58
(6) кластер только из двух SQL серверов никак не увеличивает производительность. Это только отказоустойчивость.
10 Дарлок
 
21.07.11
08:59
(9) так и я об этом, хотел собственно узнать, что автор курил
11 DmitrO
 
21.07.11
08:59
>>Но есть вопросы, база данных при кластере где хранится?
Естественно база хранится на внешнем дисковом хранилище.
12 VladZ
 
21.07.11
09:02
(0) Озвучь объем базы и конфу (речь же про 1С идет?)...
13 ДенисЧ
 
21.07.11
09:04
(0) лучше кластер 1с-серверов сделай... Увеличит скорость...
14 VladZ
 
21.07.11
09:07
(13) Кластер 1С уменьшит нагрузку на SQL-сервер?
15 DmitrO
 
21.07.11
09:08
(13)да фиг знает.. имхо узкое место обычно всегда сервер БД, а как MSSQL кластеризовать с распределением нагрузки..
тут я не копенгаген, до такого не доходило как-то :)
16 DmitrO
 
21.07.11
09:09
(0) возможно стоит разделить сервер БД и сервер 1С если это еще не сделано.
17 ДенисЧ
 
21.07.11
09:11
(15) Ну, распределённые вьюшки и т.п...
Но на 1с это поднимать... С мягким знаком получится...
18 Дарлок
 
21.07.11
09:11
(16)
Чтобы приложение работало в кластере MS SQL  оно должно быть специально спроектировано. Если упрощенно,  приложение должно уметь хранить свои данные в разных серверах. Примером такого приложения является MS Project  Server. В утешение можно сказать, что во многих случаях переделка под кластер достаточно проста, но можно встретить и серьезные проблемы (см. ниже).
Следствие из предыдущего пункта. Создание кластера MS SQL  не является чисто административным усилием, т.е. недостаточно просто положить базу в кластер.
http://www.microsoftproject.ru/articles.phtml?aid=47
19 VladZ
 
21.07.11
09:13
(0) Что еще крутится на SQL-сервере?
20 Дарлок
 
21.07.11
09:15
Балансировка нагрузки

Для начала опровергнем одно распространенное заблуждение. Кластеризация MSCS используется для повышения уровня доступности, а не для балансировки нагрузки. Кроме того, сервер SQL Server не имеет встроенной возможности автоматической балансировки нагрузки. Балансировать нагрузку необходимо посредством физического проектирования приложения. Что это значит?

С ростом размеров таблицы следует ожидать ухудшения быстродействия, в частности, при сканировании таблицы. Когда количество строк достигает миллионов и миллиардов, обычным решением до сих пор являлось использование секционированных представлений. Эти секционированные представления состоят из таблиц с одинаковыми схемами, объединенных с помощью инструкций UNION ALL. Кроме того, для различения таблиц-компонентов устанавливаются проверочные ограничения (инструкция CHECK), что предотвращает дупликацию данных в секционированном представлении. Если столбец, используемый в проверочном ограничении, является частью первичного ключа, то представление является обновляемым.

Если таблицы-компоненты расположены на отдельных файловых группах, то для повышения быстродействия дисковой подсистемы можно распределить файлы этих файловых групп по разным физическим дискам. Можно даже размещать таблицы в разных базах данных. Однако размещение всех данных в одной базе данных позволяет использовать возможности секционирования таблиц, предоставляемые сервером SQL Server 2005. Реализовать такое секционирование значительно проще.

Но допустим, что уже испробованы все возможности секционирования таблиц или создания (локальных) секционированных представлений, а быстродействие все равно не на высоте. Если вы пользуетесь сервером SQL Server 2000 или SQL Server 2005, можно воспользоваться распределенными секционированными представлениями. Основное их отличие заключается в том, что таблицы-компоненты могут располагаться на разных экземплярах сервера SQL Server, и эти экземпляры могут быть установлены на кластере с конфигурацией «N+1». В чем же смысл такого решения? Если таблица-компонент в секционированном представлении становится недоступной, недоступным становится и всё представление. Если же сделать эти таблицы-компоненты частью кластера, это предоставит стабильность, необходимую для обеспечения быстродействия и балансировки нагрузки.
http://www.oszone.ru/4566/SQL_Server
21 DmitrO
 
21.07.11
09:21
(18) у нас работет сервер 1С в этом отказоустойчивом кластере.
Как думаешь, оно (сервер 1С) специально спроектировано? :)
Начиная еще с 8.1. Нет там ничо хитрого. Это общие слова от MS.
22 Дарлок
 
21.07.11
09:22
(21) вообще то, да...
кластеризация серверов 1С в 8.1 и 8.2 разные вещи
23 Дарлок
 
21.07.11
09:22
24 DmitrO
 
21.07.11
09:23
(21)+ Тем не менее надо признать, что доля истины в них есть. Но она не раскрыта в (18). Все зависит от задач.
25 Дарлок
 
21.07.11
09:26
(24) так вот и надо понять, что можно распараллелить на кластере скл, мне пока это как то не очень понятно
26 DmitrO
 
21.07.11
09:26
(22) неее, я не про родную 1С кластеризацию. Это так сказать совсем другое. Собственно она у нас не используется кластер 1С состоит из одного сервера, MSSQL сервер там же. Нам хватает. Главное в типовые конфы много народу не пускать. :)
27 Дарлок
 
21.07.11
09:27
(26) ты уже определить о чем ты говоришь,
есть кластеризация 1С,
есть кластеризация СКЛ...
ты собственно о чем?
28 DmitrO
 
21.07.11
09:31
я о кластеризации MS.
29 Дарлок
 
21.07.11
09:31
(28) и как у вас нагрузка балансируется на СКЛ ?
30 DmitrO
 
21.07.11
09:34
(29)нет этого, я же говорю, только отказоустойчивость. Имхо распределение нагрузки в MSSQL это вообще задача практически не решаемая (ну или псевдорешаемая), а тем более под базой 1С это вообще проблема, т.к. структурой базы в 1С на таком уровне управлять невозможно.
31 DmitrO
 
21.07.11
09:39
У нас сделано только вот что. Если по какой то причине рабочий сервак накроется медным тазом (скажем сдохнет память, блок питания, мамка, да что угодно), то автоматически начнет работать другой сервер. При этом на него перейдут все боевые процессы: MSSQL, сервер 1С, IIS (для веб-сервисов).
32 Дарлок
 
21.07.11
09:44
(30) так по той то ссылке написано про нагрузку
33 Дарлок
 
21.07.11
09:45
(31) оно не противоречит (18)
34 smaharbA
 
21.07.11
09:46
клястер как бы немного надежнее (усреднено), но слабее одного (тут тоже обстоятельства могут перевешивать)
35 КВАДРО2
 
21.07.11
10:40
(31) Каким решением это реализовано?

Вцелом я понял - для увеличения пр-ти лучше приобрести более мощный сервер
36 DmitrO
 
21.07.11
10:51
(35)этим и реализовано, кластеризация серверов от MS, которую поддерживает MS Windows Server 2003 R2 Enterprize Edition с помощью специальной службы "Служба кластеров".
Там все компоненты: MSSQL, сервер 1С, и IIS надо устанавливать несколько хитрее, но вообщем-то ничего сложного нет.
37 Кириллка
 
21.07.11
10:52
(35)сказано в (28)
38 VladZ
 
21.07.11
10:52
(31) Данные где лежат? На внешнем хранилище? Что будет, если внешнее хранилище упадет?
39 VladZ
 
21.07.11
10:57
+38 SQL какой?
40 DmitrO
 
21.07.11
11:02
(38) в этом случае конечно же будет будет полный отказ всего кластера. А по-другому никак. Внешнее дисковое хранилище может быть только одно. Это то общее что и объединяет эти два сервера. База данных ведь может быть только в одном экземпляре всегда.
41 DmitrO
 
21.07.11
11:06
(31) эти риски страхуются другими спец. средствами: резервное копирование, зеркалирование MSSQL и т.п. Мне достаточно резервного копирования с бекапом лога каждые 15 мин. Кстати бекап естественно на другой хост в сети.
42 DmitrO
 
21.07.11
11:06
(41)->(38)
43 DmitrO
 
21.07.11
11:12
(39) 2000 EE
т.к. там еще 77 хостится, база SQL, но каталог ее базы тоже на внешнем хранилище.
44 КВАДРО2
 
21.07.11
11:27
(40) Зераклирование не пробовали, сильно интересно подтормаживать будет?
45 DmitrO
 
21.07.11
11:31
По своей сути, там так-то нет ни какой магии. Принцип работы этой кластерной системы достаточно прост и туп.
Основная работа у нее в том чтобы определить когда отказала одна из служб входящих в кластерную группу, если это случилось, она стопит все службы в этой группе и запускает их все на другом сервере.
Основная фишка в том, что у серверов кластера существуют реальные айпишники и имена, а также существует виртуальный айпишник и имя сервера.
Все клиенты подключаются через виртуальное имя. При перемещении кластерной группы (отказе), служба кластеров делает соответствующие записи в DNS сервере, да возможно еще айпишники как-то переназначает на адаптерах т.к. он тоже может быть виртуальным, вот примерно и вся хрень.
Это штатное майкрософтовское решение.

Естественно TCP/IP сокет рвется, естественно приложения требующие постоянного подключения (к которым относится 1С) падают. Между 1С 77 и 8 разница только в том что 8ка грамотно предлагает пререзапуск приложения.

А вот клиентские приложения не требующие постоянного подключения могут и вообще ни чего не заметить. Именно на таких приложениях и любят демонстрировать возможности своей кластеризации серверов майкрософтовцы. И именно эта особенность по большей части и имеется в виду в их заумной фразе "приложение должно быть специально спроектировано".
Т.к. в кластерную группу можно засунуть любую службу на общих основаниях, службе кластеров пофиг. Просто для некоторых служб типа MSSQL там есть спец. средства.
46 DmitrO
 
21.07.11
11:36
(44)Нет, не пробовали, на кой оно леший. Есть кластер, есть бекапы.
47 cViper
 
21.07.11
11:38
(0)Кластер в первую очередь увеличивает отказоустойчивость.
48 DmitrO
 
21.07.11
11:44
На счет приложений не требующих постоянного соединения. Тут MS просто рассчитывают на пулинг соединений к MSSQL на хосте клиента. Т.е. приложение как бы коннектится каждый раз когда ему нужно сделать запрос, что вобщем-то так-то не эффективно с точки зрения оптимизации ресурсов и быстродействия. А на самом деле OLEDB провайдер или ODBC драйвер соединения кладет в пул и придерживает, не закрывает сразу, ну и соответственно может выдать соединение из пула быстро, а клиент думает что он зацепился заново.
Так что MSовцы вобщем-то тут правы.
49 Дарлок
 
21.07.11
11:49
в общем на до параллельного программирования как до китая раком
50 VladZ
 
21.07.11
12:25
(40) Если упадет внешнее хранилище, как восстанавливать кластер?
51 DmitrO
 
21.07.11
12:42
(50)Вероятно пересбором кластерных групп на новое внешнее хранилище. Там ведь еще у каждого сервера есть свой жесткий диск. Собственно это диск С. Он в каждом серваке, а не во внешнем хранилище.
Собственно на нем все и установлено (программные файлы, просто надо следить за тем чтобы они были одинаковые).
При отказе внешнего хранилища оба сервера останутся работоспособными.
Понятно что внешнее хранилище это весьма узкое место. Но там дофига дисков, с автозаменой (оно само может сдиагностировать отказ диска и вставить вместо него специальный винт который стоит в резерве). Неплохой рейд-контроллер. Собрано несколько рейд-массивов.
52 Дарлок
 
21.07.11
12:43
(50) а с чего ему падать?
53 Дарлок
 
21.07.11
12:44
(51) есть варианты сборки, когда ОС стартует с внешного хранилища
54 DmitrO
 
21.07.11
12:46
(52) не ну упасть может любая железяка конечно. И надо сказать что чаще всего случается что падают винты относительно других конструктивных частей серверов.
Главное не подогревать серверную. У нас там блин даже сигнализация на кондиционер зацеплена. Если что охрана бдит.
55 DmitrO
 
21.07.11
12:50
(53)ну, может и можно, но зачем..?
Дело в том что для диска С (где лежат программные файлы) особая скорость не нужна. А место в хранилище дорогое так-то, совмещать задачи которые щас у меня решает диск С с каким-то из массивов в хранилище тоже не желательно..
Так что имхо такой вариант предпочтительнее.
56 Дарлок
 
21.07.11
12:52
(55) дешевизна...
лезвия будут проще и дешевле
так что такие варианты блэйд-серверов есть...
раз есть, значит покупают
57 DmitrO
 
21.07.11
12:54
(56) дак вроде тока на два винта все удещевляется-то вроде..
58 Дарлок
 
21.07.11
13:00
(57) тепловыделение, электричество...
я же грю, раз делают, то значит, что покупают
59 DmitrO
 
21.07.11
13:05
верю-верю
Вы бы лучше про лицензирование спросили, там не все шоколадно с сервером 1С. Ключик-то переставлять надо.
60 Дарлок
 
21.07.11
13:07
(59) если сервер 1С на отдельной машине то ничего переставлять не надо, либо можно купить вторую лицензию на сервер и развернуть еще и кластер серверов 1С
61 DmitrO
 
21.07.11
13:09
А вот MS например явно пишет что на MSSQL нужна всего одна лицензия, не смотря на то что стоит два экземпляра.
62 Дарлок
 
21.07.11
13:11
(61) зато кластер 1С, может распределять нагрузку
63 DmitrO
 
21.07.11
13:18
Да что ему там распределять, у него нагрузки-то хрен да маленько, вся основная нагрузка на сервере БД.
Если его выделять на отдельную машину, ее тоже кластеризовать для отказоустойчивости? будет та же проблема с ключом - да нафиг, не стоит это таких затрат.
64 Дарлок
 
21.07.11
13:20
(63) усе зависит от задач, если тебе не надо, то надо другим
тем более ты 8.2 еще не видел
65 DmitrO
 
21.07.11
13:20
(64) я на на ней работаю с 13.202
66 Дарлок
 
21.07.11
13:23
(62) тады должен знать, что идет тенденция к повышению требований к серверу 1С

ЗЫ. сейчас из за организационных моментов, сервер 1С оказался на одной машине с SQL...
мля это жесть!
уже 5 часов накатываю обновление на копию базы (помещение в хранилище обновление конфы + обновление БД + запуск обработок обновления)

хоть спать уходи
67 Медведик
 
21.07.11
13:24
Сервер 1С - на мощной пользовательской машинке с большой оперативкой + 1 в запасе (штатно его используют разработчики).
Сервера SQL - в кластер.
68 DmitrO
 
21.07.11
13:35
Да проще еще лицензию на сервер 1С купить.
69 DmitrO
 
21.07.11
13:37
(66) офигеть, чо так долго-то?
70 Медведик
 
21.07.11
13:39
(68) Если это на мой пост, то не соглашусь:
1. сервера 1С и SQL нужно разносить;
2. для надежности лучше кластер SQL-серверов.

(69) 1С и SQL оба память любят. Поэтому на одной железке не уживаются.
71 DmitrO
 
21.07.11
13:46
(70) разносить нужно когда ресурсов не хватает - нам хватает, зачем разносить?
Вопрос-то был не в этом. Даже если разнесли, SQL сервер в кластере. 1С сервер на отдельной машине, она не в кластере, и чего? нахрена мне работающий MSSQL без работающего сервера 1С?
72 Дарлок
 
21.07.11
14:00
(69) а вот так
73 Медведик
 
21.07.11
14:03
(71) При наличии подменного (как в 67) сервера 1С поднять систему при падении сервера 1С можно быстро.
Если упадет единственный SQL (пусть бэкап и есть) - это надолго. Согласны?
74 Дарлок
 
21.07.11
14:05
(73) не критично, да и вероятность падения очень низкая
75 Медведик
 
21.07.11
14:08
(74) Если встанет транспортный терминал, сорвется отправка десятка фур товара оптовикам - это не критично? Я завидую Вашим нервам :)
76 IVIuXa
 
21.07.11
14:15
(0)
вся крупная розничная торговля запада использует trade house
эти чудики поделки от 1С + еще и кластер гыыыыы
77 Повелитель
 
21.07.11
14:17
Жесть парень совета попросил а DmitrO и Дарлок развели демагогию, обменяться и контактами и общайтесь между собой.

Мое предложение такое, пока есть более мощные компы, по нормальной цене, то можно брать их. Ведь кластеры начали создавать не просто потомучто это кому-то нравилось, а потомучто уже круче серверов не было, вот и приходилось из 2,4... и.т.д делать 1 "большой" комп.
Сервер 1с тоже легко перенести на другой комп.
78 Медведик
 
21.07.11
14:18
(77) Есть версия, что плюс кластера еще и в отказоустойчивости. Об этом толкуем.
79 Дарлок
 
21.07.11
14:18
(75) у нас нет такого, поэтому нервы у меня в порядке :)
80 DmitrO
 
21.07.11
14:18
(74) согласен с тем, что время перенаправления на другой сервер 1С не большое, но кластер быстрее и автоматически. И единственное препятствие - система защиты.
81 IVIuXa
 
21.07.11
14:19
(77)
рано или поздно все русское сообщество торгашей выкинет нах.. 1с и поставит нормальную товароучетку trade house
1с для бухии
товаро учет - изврат
82 Медведик
 
21.07.11
14:19
(79) Если крутится база, где лениво работают пользователи, и простой в час не принесет милионные убытки - согласен, заморачиватьсчя смысла нет ))
83 Дарлок
 
21.07.11
14:19
(80) выноси сервер 1С на отдельную машину и не будет у тебя такой проблемы...
а насчет времени восстановления так это обычное требование к ИС, которую нужно выявлять...
для кого то 3 суток восстанавлить ничего страшного, а кому то и 15 минут смерти подобно
84 Дарлок
 
21.07.11
14:20
(82) о чем и речь... у меня и падение на сутки не проблема
85 Повелитель
 
21.07.11
14:21
(78) Ну для отказоустойчивости можно для начала поставить RAID, это дешевле второго сервака.
86 Дарлок
 
21.07.11
14:22
(85) кхм... системы без рэйда вообще не обсуждается, мы тут не ларьки обсуждаем
87 IVIuXa
 
21.07.11
14:23
(85) для отказо устойчивости бэкап
рэйд для скорости...
88 Повелитель
 
21.07.11
14:25
(86) Автор про райд не писал, не факт что у него он есть
89 Повелитель
 
21.07.11
14:25
(87) А бэкап тогда каждые 10 минут надо делать?
90 IVIuXa
 
21.07.11
14:29
(89)
отказ из за сбоя работы жесткого диска - дело довольно редкое

а вот могут быть и другие причины

у нас например распред база на trade house :)
если что то дохнет - восстанавливаем с центральной мааааксимум без бэкапа 20 мин - если филиал удален и скорость канала низкая.....
91 IVIuXa
 
21.07.11
14:30
+(90)
центральная - 5 мин всю
из бэкапа + филиалы синхронизируют сами
92 IVIuXa
 
21.07.11
14:31
+(90)
за 6 лет один раз сдох диск в филиале
93 IVIuXa
 
21.07.11
14:40
всем нашим смаркетам привет :)
94 Дарлок
 
21.07.11
14:50
(92) за 3 года, 4 диска IBM-их по гарантии сменили
95 МуМу
 
21.07.11
15:01
Эффективные кластеры(по крайней мере распределенные) с балансировкой нагрузки или даже с реалтайм синхронизацией данных это миф:)
96 DmitrO
 
21.07.11
15:27
(95)вот мне тоже так кажется.
97 IVIuXa
 
21.07.11
15:31
(89)
как вариант - заведи распределенную базу где нить в уголке и синхронизируй каждые 10 мин :)
98 IVIuXa
 
21.07.11
15:34
+(97) хотя честно как она в 1С работает - не помню, может и нельзя центральную восстановить из клиентской
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн