Виртуальные машины и высокая нагрузка ввода / вывода, это когда-нибудь вменяемое?

14

Я видел множество служб виртуализации (Azure) и продуктов (vmware, kvm, hyperv) ввода-вывода и системных зависаний при большой рабочей нагрузке ввода-вывода.

Мои вопросы:

  • Всегда ли разумно использовать виртуализированное решение при выполнении тяжелых рабочих нагрузок ввода-вывода?
  • Каковы лучшие практики вокруг такого рода вещей?
  • Каковы причины этих проблем, хорошо ли известны узкие места в системе или это просто вопрос чрезмерной конкуренции?
Брайан Хант
источник
Соответствующая исследовательская работа IBM . Я также хотел бы рассмотреть возможность использования контейнеров, например Docker. Из статьи: «Контейнеры также могут устранить разницу между IaaS и« виртуальными »не виртуализированными серверами [...], поскольку они предлагают контроль и изоляцию виртуальных машин с производительностью« чистого железа »».
Алексей
1
1. Какие исследования вы провели? Мы ожидаем, что вы проведете значительное количество исследований, прежде чем спрашивать. Показ ваших исследований помогает другим и помогает людям дать вам лучшие ответы. См. Serverfault.com/help/how-to-ask и справочный центр . 2. Этот вопрос довольно широкий, возможно, слишком широкий для этого сайта. Стандартный совет: один вопрос на вопрос. 3. Этот сайт не подходит для вопросов, которые требуют мнения. Можете ли вы спросить что-то более конкретное и более объективное, чем "лучшие практики в отношении подобных вещей"?
DW
1. 10 лет работы с различными виртуальными машинами, kvn, xen, virtualbox, amazon, azure, hyperv. Я считаю, что производительность в целом катастрофична, но вокруг текущей ИТ-ортодоксальности так много шумихи и венчурного капитала, что все должно быть виртуализировано. Интересно, был ли это только я, или другие специалисты по операциям чувствуют степень скептицизма также.
Брайан Хант
2
Если вы обнаружили, что производительность в целом ужасна, то - после 10 лет работы с виртуализацией - пришло время принять поражение в качестве администратора и искать то, что вы можете сделать, когда у остального мира нет проблем с этим. Серьезно, я думаю, что вы драматизируете здесь. Или никогда не осознает, что для виртуализации нужна покупка достойной подсистемы ввода-вывода. Я всегда нахожу ужасным, когда люди загружают более 10 виртуальных машин - на диск рабочего стола и жалуются на скорость ввода-вывода.
TomTom
Это больше наблюдение. У меня не всегда есть право голоса в выбранном решении. Я опс. Я просто держу все, что мне бросают, и работает.
Брайан Хант

Ответы:

19

Всегда ли разумно использовать виртуализированное решение при выполнении тяжелых рабочих нагрузок ввода-вывода?

Да, действительно очень разумно, фактически для большинства организаций виртуальная среда используется по умолчанию, а работа с физическими блоками - исключение. У нас более 100 тыс. Виртуальных машин всех форм, и многие из них> 40 тыс. IOPS без каких-либо проблем.

Каковы лучшие практики вокруг такого рода вещей?

Главное здесь не в том, виртуализирован он или нет - он хорошо понимает потребности вашего ввода-вывода и соответствует ресурсам виртуальной памяти. Это очень просто, если вы знаете, что вам нужно / хотите, и у вас есть бюджет, соответствующий бюджету ваших систем хранения, тогда уровень виртуализации действительно играет незначительную роль или не играет никакой роли - если, конечно, вы ДЕЙСТВИТЕЛЬНО не продвигаете вещи (я говорю десятки / сотни миллионов IOP).

Каковы причины этих проблем, хорошо ли известны узкие места в системе или это просто вопрос чрезмерной конкуренции?

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

Chopper3
источник
10

Всегда ли разумно использовать виртуализированное решение при выполнении тяжелых рабочих нагрузок ввода-вывода?

Регулярно ли сервер баз данных получает 1 Гб / с случайного количества операций ввода-вывода? Есть один здесь.

Или виртуальный файловый сервер, обеспечивающий скорость до 600 Мбит / с для кластера HPC. Тот убегает от 8 великорапторов в рейде 10, посвященном.

Каковы лучшие практики вокруг такого рода вещей?

Обеспечить много IO. Я думаю, что эта виртуальная машина SQL имеет около 8 или 10 выделенных SSD.

Что вызывает эти проблемы, хорошо известны узкие места системы,

Люди не занимаются математикой. Если подсистема ввода-вывода не способна обрабатывать нагрузку, она также не будет делать это при виртуализации. Нужно МНОГО IO - тогда предоставьте выделенную подсистему хранения соответствующего размера.

TomTom
источник
10
«Обеспечить много UI» - вы, вероятно, имели в виду IO
oleksii
2

Помимо базовой математики и концепции, что вам все еще нужны те же операции ввода-вывода, что и для не виртуализации, есть также QOS / расстановка приоритетов. Большинство платформ виртуализации предлагают, по крайней мере, базовую поддержку для этого, очень помогут предотвратить неправильную работу виртуальной машины, приводящей к сбою вашей рабочей базы.

Мило де Врис
источник
1
Да. Нужно 5000IOPS, тогда жесткий диск с 350 не будет его резать. Загрузите больше vms на тот же диск, и нет, он не будет работать волшебным образом. Я всегда удивляюсь, сколько людей игнорируют основную математику.
TomTom