LINUX.ORG.RU
ФорумAdmin

Как правильно организовать кластер на Proxmox

 , , ,


2

2

Приветствую всех!.
Имею популярную проблему: низкая производительность файловой системы на госте (windows) который крутится под проксмоксом.
Грубо говоря - тормозит виртуалка....
Что имею по железу:
4 ноды с одинаковым конфигом (2*xeon 5645, 48GB ram, ssd 32gb, hdd sata2=1tb, 2*1Gbit lan)
1 nas - hp dl320s (контроллер p400, 512 кеша+батарейка, xeon 3060, 8gb ram, 2*1Gbit lan, 12*1tb wd black re в raid 6)
1 гигабитный свитч hp procurve 4104
На нодах стоит proxmox 4.4-5 в режиме ha cluster.
ceph не поднимал
Сейчас NAS не подключен. виртуалки стоят на локальных хардах.
Если надо - то все красиво мигрирует, клонируется и т.п. но это в настоящий момент меня не беспокоит.
Теперь что касается тормозов: в режиме линейного копирования большие файлы (4gb) копируются внутри гостя (130-140 мб/сек) и по сети (гость-живой комп) отлично - скорость - 100 мб/сек
Однако, при копировании большого количество мелких файлов (10000 файлов средним размером 100-200 килобайт) - начинается просадка скорости до 25 мб/сек, как внутри гостя, так и по сетке.
Образы виртуалок стартуют с опцией cache=writeback
(пробовал со свсеми настройками кеширования - последний показал себя лучше всех)
На госте стоит win2k8r2, и он при работе тоже характерно тормозит... Естественно, внутри гостя используются virtio драйверы.

вопрос1: не связано ли это с хранением файлов с виртуалками на локальном сторедже?...
вопрос2 (глобальный, и, возможно, риторический): как правильно использовать все мое железо для максимальной производительности?
Читал много про НАСы с zfs... но вроде как не помещаюсь с производительностью платформы наса...

PS: до этого виртуалки крутил только под убунтой безо всяких кластеров - при помощи либвирта... (конфигурялка virsh+ иксовая приблуда virt-manager). Там тоже наблюдались просадки, но почему-то я на них не сильно обращал внимание. Там крутилось только пара-тройка машин и требований к ним никаких не было :(

Локальный сторадж самый быстрый, нет не связано. Локальный сторадж на одном локальном SATA диске - тормоз даже для virtio. Попробуйте виртуалки разместить на SSD и почувствовать разницу. Или экзотичное - сделайте RAM диск и на нем пробуйте размещать диск с данными для виртуалок, чтобы понять где узкое место.
Мелкие файлы видимо очень много за собой тянут не нужных накладных расходов - требуют много IOPS.
Проведите тесты дисковой подсистемы локального стораджа в хостовой части для начала, чтобы понимать, что Вы имеете в лучшем случае. Далее точно такой же тест можно сделать в виртуалке и посмотреть сколько IOPS съест виртуализация.

fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randrw --rwmixread=75
Параметрами команды (--bs=4k --iodepth=64 --size=4G) поиграйтесь, начните с легких тестов.
Под windows утилита crystal disk. Была еще утилитка под windows для тестирования дисков для размещения на них файлов для sql сервера по типу fio для linux - но забыл название.
Еще важен параметр который характеризует отзывчивость (насколько быстро дисковая подсистема отдает/пишет запрашиваемые данные) дисковой подсистемы. Размещайте виртуалки поверх LVM (без какой либо файловой системы), чтобы снизить накладные расходы ФС.
RAID6 сам по себе тормоз жуткий, RAID10 по скорости лучший.
Будете запускать кластер с НАС, проведите с ноды fio тесты на диске который будет размещаться на НАС. может быть 10Г сеть нужна будет, чтобы все быстро летало, хотя упретесь скорее всего и на 1Г в диск НАС т.к. у Вас RAID6
Для виртуализации вообще SSD диски нужно ставить, RAID10 и 10Г сеть и не думать о производительности.

У себя для увеличения скорости работы 1С8 в режиме файлов, пробросил целиком SSD диск в виртуалку с 1С и сделал его отдельным диском для баз и кэшей windows.

Vlad-76 ★★★ ()
Ответ на: комментарий от Vlad-76

Ок. Спасибо. Попробую потеснить с ссд. Просто нет столько ссд :( на тесты конечно хватит... А вот с сеткой пока не замарачиваюсь. Лежит комплект для оптики 4g... Свитч 24 порта и 7 двухголовых 4г сетевых. Думаю для начала хватит. Тут надо определиться как все правильно именно концептуально сделать.

zelenij ()
Ответ на: комментарий от zelenij

Концептуально у тебя NAS с райд-пеналити 6 на запись. Итого со всего NASа ты получаешь, если повезет, в районе 160-200 iops. Примерно уровень 1 10к-диска. 6 или для архивов, или для ssd. У тебя ни то, ни другое. Не знаю, поддерживает ли р400 ссд-кеш, но если да, то можно попробовать (или перейти на софтовый рейд). Впрочем самое простое сменить рейд на 10.

И надо помнить, что для виртуализации линейная скорость - не главное. Тем более ты её легко получаешь на достаточно маленьком количестве дисков. А вот иопсы...

stave ★★★★★ ()
Ответ на: комментарий от stave

А может стоит рассмотреть такой вариант: так как на нодах есть возможность воткнуть по 3 винта,то можно поставить на них софтовый рейд0 из 3х 1тб, ссд засунуть внутрь корпуса ноды (на мамке есть еще пустые сата разъемы, правда не знаю, пока куда - все там узенько и тесненько), ну или грузить систему с флешки или по сети - откуда? хотя, вроде есть пустующие постоянно включенные ресурсы, а из 4х нод сделать софтовое реплицируемое хранилище (вроде ceph это позволяет). Бекапиться в таком случае можно на тормозной нас (сделать отдельный массив чисто под бекапы)... на нем же разместить и холодный пул (например, по iscsi) — теоретически, вроде через тот же ceph это можно сделать... что скажете, уважаемые про такой вариант?

zelenij ()
Ответ на: комментарий от stave

Не знаю, поддерживает ли р400 ссд-кеш

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

zelenij ()
Ответ на: комментарий от zelenij

Ок. Спасибо. Попробую потеснить с ссд. Просто нет столько ссд

У меня трудится для этих целей lvmcache

DALDON ★★★★★ ()
Ответ на: комментарий от zelenij

Концептуально, возьмите инструмент для тестов и начинайте. Потестируйте на IOPSы - один диск SATA,затем SSD. На НАС RAID10 сделайте - его потестируйте на IOPS. Подмонтируете диск с НАС на ноду с proxmox через 1Г, его потестируйте на IOPS. Посмотрите загрузку сетевого интерфейса - сколько пакетов генерит тест дисковой подсистемы на IOPSы, полоса какая тратится, можно на коммутаторе или сервере.
Виртуалки поверх LVM размещайте, а не в файле(поверх файловой системы).
Двух головые сетевухи - хорошо, можно etherchannel собрать если потребуется и если свич поддерживает.
Сделали шаг - тестируйте.
SSD кэш на контроллере, тоже может помочь - хотя бы иногда на запись.

Vlad-76 ★★★ ()
Ответ на: комментарий от zelenij

Возможно все и взлетит, но как админить такой вариант будете - если сломается что то? Подумайте исходя из аварии к.л. отдельного элемента. Днем будете аварии устранять или ночью «красноглазить»?
Чем меньше извращейний тем легче админить, больше аппаратных контроллеров, крепче спишь ночью.
Экономите на железках, потратите свое время или других админов - выбирайте. Вы один будете админить это решение или с коллегами?

Vlad-76 ★★★ ()
Последнее исправление: Vlad-76 (всего исправлений: 1)
Ответ на: комментарий от zelenij

Насколько я помню, в теории цефа тебе даже не надо делать рейд0, он сам размазывает данные по всем дискам, которые есть в наличии. Другое дело, что в нашем тестировании 3 ноды на 16 дисков проиграли в линейке и иопсах обычному рейду 10 из 8 дисков. И это еще не было релокейшна данных.

Но как такового выбора у тебя нет. Локально хранить данные на серверах - не вариант для ХА, NAS у тебя один и без репликации - точка отказа.

Тестируй цеф, авось нормально со скоростью будет.

stave ★★★★★ ()
Ответ на: комментарий от zelenij

диски - это расходники. Вылетать по любому будут. Поэтому просто RAID страйп - скорость прибавит, но надежности нет. софтварный RAID еще и админить нужно уметь.

Vlad-76 ★★★ ()
Ответ на: комментарий от zelenij

а еще лучше - перед тестами на IOPSы проведите тесты на аварии - смоделируйте замену диска в Вашем решении, выдергивайте на горячую и меняйте на другой. Корзина позволяет это делать? Пройдитесь заранее по возможным вариантам аварий.

Vlad-76 ★★★ ()
Ответ на: комментарий от stave

Если nas с двумя контроллерами, то точкой отказа можно считать всё остальное. Цеф можно даже не тестировать, ибо в данной конфе заведомо проигрышный вариант, да и вообще цеф по 1g - это боль и страдания.

anonymous ()
Ответ на: комментарий от anonymous

спасибо за советы.. уже кой-чего почитал и слегка у меня в башке проясняться стало...
Добавлю вводных данных:
1) К доисторическому насу ХП нашлась еще одна архаичная коробка от инфотренда. На 8 дисков (умеет двойки сата) с контроллером scsi320 Такой себе раритетный ДАС... Ну а контроллеров на объявлениях - кучи за копье. Вот еще одна бекапная точка. Да медленно, но скорость для бекапа вроде как не принципиальна?
2) Тут писали про цеф на 1Г. Согласен - это изврат. Но я же говорил, что на всех мамках по 2 сетевухи 1г, и свитч умеет 802,3ad; и медь я буду юзать только для отладки — когда все со стенда переползет в стойку - я поставлю 4гб сетевухи (которые все 2х головые) и опять мне бондинг в помощь.
3) Спасибо за наколку про lvmcache!

Теперь как я вижу свою конструкцию: - на каждой ноде 2*1tb = raid0 + 1ssd=lvmcache + загрузка операционки по pxeboot
- все 4 ноды и «нас» связаны псевдо-2G сетью (бондинг) - цеф обслуживает как локальные стореджи так и нас (какой рейд выберу - еще не знаю, но это сейчас не принципиально)
- настраиваю репликацию локальних стореджей на нас (и таким образом при вылете диска на локальной ноде - имею тормоза, но все продолжает крутиться)
- для пущей безопасности настраиваю резервное копирование на доисторический инфотренд (в который предварительно натолкаю каких-то дисков)
- когда все, наконец-то, закрутится - заменю сеть 1Г+1Г на 2Г+2Г, а может поизвращаюсь и запилю все 4 канала в 1 интерфейс... Ну это если совсем легко жить будет :)
Прошу - попинайте подобную конструкцию, желательно с разъяснениями... Спасибо!

zelenij ()
Ответ на: комментарий от zelenij

«загрузка операционки по pxeboot» операционки, которая поверх железки будет крутиться? Собственно сам proxmox?
«Да медленно, но скорость для бекапа вроде как не принципиальна?» главное успеть забекапить во вне рабочее время, то что необходимо забекапить.
Задачи HA я так понимаю Вы решили не реализовывать?
«цеф обслуживает как локальные стореджи так и нас» планируется один shared ceph сторадж на дисках 5 серваков поверх 1Г сети? Не все свичи одинаково хорошо умеют 802,3ad или в связке с сетвухами (дровами)
«но все продолжает крутиться)» - )) вопрос с какой скоростью после выхода одного диска ноды или стораджа и какие действия нужно будет сделать после выхода диска. Да даже до выхода одного диска как это будет работать.
какая модель 4ГБ (которые все 2х головые) сетевух ?
"- когда все, наконец-то, закрутится - заменю сеть 1Г+1Г на 2Г+2Г" свич какой у Вас будет после замены?

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

Vlad-76 ★★★ ()
Последнее исправление: Vlad-76 (всего исправлений: 1)
Ответ на: комментарий от Vlad-76

Собственно сам proxmox?

ну да... а чем плохо? есть еще постоянно включенный серверочек на «маложрущих» xeon l5420 с 24 гб оперативки, который закрывает все мелко-насущные вопросы моей конторки (lamp, ftp, samba, addc, vpn.. )ничто мне не мешает поставить на него еще сервер pxeboot, а заодно воткнуть доисторический контроллер scsi320 (например такой - LSI LSI20320IE или по-проще на pci-x) чтобы запустить бекапный инфотренд...
Вроде слотов хватает - могу и оптику воткнуть...
Ну а если не воткну - 2 гигабитных интерфейса на матери есть.

планируется один shared ceph...

ну да... хотя я еще не владею нужным объемом информации для запуска его.. в теории-то — все гладко :) как обычно :)
свитч медный точно умеет 802,3ad (hp procurve 4104) - уже проверил. в линейном режиме 160+мегабайт/сек(2 машины с ссд дали скорость :) походу уперлось все на уровне ИО, что меня вполне устраивает), с мелочевкой пока не игрался.. но вечером опробую

какая модель 4ГБ сетевух ?

Сетевушки qlogic qle2462

свич какой

Свитч ibm 2005-r18

все ЭТО хотите под бизнес

честно говря бизнесом это назвать сложно.. основное мое дело совсем далёко от серверов.. но определенный опыт работы с серверами есть. по случаю свалилось на меня железо. вот решил завернуть все свои задачи (1с небольшого предприятия-база с конфигурацией весят до гига, спецуха для моей работы - специфическая база с привязкой к 1с гигов 300, учет первички - ворд-ексель-пдф — пару гигов, параноидальное облако для телефонов и прочих гаджетов, файлопомойка для меня и всех моих родственников, сервер видеонаблюдения, ип-телефония и другие мелкие подобные ништяки, которые можно бесплатно и эффективно использовать в малом бизнесе) в виртуалки, а несколько знакомых когда увидели кучу железяк в конторе - предложили скинуть ко мне свои бухгалтерии.. и заодно компенсировать мои расходы по электроэнергии и интернету :)
У них потребление ресурсов где-то как и у меня...
Учитывая микроскопические объемы наших «бизнесов» откровенно горячей замены нафиг не надо.. подойдет теплая, или даже «прохладная».. Никто не начнет хиппишить если все упадет даже на сутки :)
Покупать готовые сервера на амазоне, хетцнере и т.п. для меня накладно..
Тем более, что техника уже есть. И самое главное - мне это в кайф.

вот как-то так

zelenij ()
Ответ на: комментарий от zelenij

«есть еще постоянно включенный серверочек на «маложрущих» xeon l5420 с 24 гб оперативки» еще одна точка отказа. разве нельзя загрузку proxmox и lvmcache сделать на одном SSD диске? все равно после загрузки proxmox Вам нужен будет swap раздел для ядра linux. Конфиг linux и proxmox при такой загрузке где у Вас будет храниться?
У Вас с linux большой опыт работы?
«160+мегабайт/сек» - это ничто для двух машин с SSD, 240МБ/с - бандл двух гигабитных интерфейсов на проводах. Или у Вас файлы по одному байту были в тесте?

Если у Вас уже есть картинка в голове, собирайте помаленьку - тем более что Вам это в кайф и тестируйте. Может что еще по дороге вылезет.

бизнес задачи - имелось ввиду, когда у Вас останавливается сервер или сервисы, а на нем 100 человек сидят для которых или 1С или файлы или база какая нибудь нужна и 100 человек просидели сутки без работы. + клиенты, которые позвонили в офис и были посланы нафиг по причине аварии сервера. А если еще бизнес задачи без выходных?

Vlad-76 ★★★ ()
Последнее исправление: Vlad-76 (всего исправлений: 1)
Ответ на: комментарий от Vlad-76

разве нельзя загрузку proxmox и lvmcache сделать на одном SSD диске

Вот точно шикарная идея! :)
Еще одно спасибо!

«160+мегабайт/сек» - это ничто для двух машин с SSD

машины тормозные - по сути тонкие клиенты (на древних материнках с какими-то старинными пнями 4 на 478 сокете + ссд подключен через контроллер на pci) так что 160 - это предел

У Вас с linux большой опыт работы?

Ну если считать количество реализованных на linux задач - то не очень...
А вообще-то первый линукс который узнал — это в году эдак в 97-98 ставил слакварь и поднимал свой первый роутер :)
Ну и потом эпизодически решал какие-то мелкие задачи особо не углубляясь в детали.. Запустилось - и хорошо, благо, на линуксе все работает так, как ты его запустил :)
Если, конечно, никто не «помогает» тому что запущено работать.
А последние года 2-3 плотно использую убунту в решении своих офисно-производственных задач, по сути на бытовом уровне при помощи готовых решений. Юзаю в основном консоль ну и какие-то мелкие иксовые утилитки, для решения абсолютно тривиальных задач, для которых как правило написаны подробные гайды (впн, астериск, оунклауд и т.п.)

zelenij ()
Ответ на: комментарий от zelenij

Поругайте или посоветуйте :) (первый пост не получается отредактировать)

Схемка стойки немного изменилась:
1) На 2х нодах (конфиг в первом посте) добавил памяти до 48г и выкинул терабайтники.
2) 2 другие ноды ушли в теплый резерв.
3) Разорился на более производительный комплект для СХД - (g6, 2*xeon5645, 24г, lsi9266 с кешкейд2 и всеми остальными возможными плюшками, 4*ssd slc 64g в рейд0 на кеш; полка на 16*2tb sata).
Все это (ноды и хранилка) теперь связано через FC (на схд 2х головая qle2462, на нодах одноголовые 2460, свитч brocade 7500).
4) На хранилке BSD c ZFS транслирует 2 волюма по 8 тб (по сути просто блочные устройства...)
на нодах создал по лвм волюмгруппе на подключенных с хранилки томах и сообветственно виртуалки перепозли в свои волюмы.
по меди теперь бегает только сетевой трафик (все блочные дела ушли в FC)

Вроде как все работает... Производительность приемлемая...
Понимаю, что 4 гб по фс не много, но мне пока хватает. Также понимаю что надо копить денег еще на один комплект для резервной СХД, но пока обхожусь просто бекапом по меди на старый нас (места на нем не много, но пару-тройку копий имею).

Ну и есть философские (или не очень) вопросы:
- нафига я ЗФС городил ? или все таки оно надо? если да, то какую пользу можно с нее получить?
- мне кажется что такая конструкция слишком «шаткая».. или я не прав? а если прав по где может «взорваться»?
- может нужно все таки смотреть в сторону drbd?

zelenij ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.