Назад | Перейти на главную страницу

Будет ли виртуализированный запуск Ceph (или подобных систем) ухудшать его производительность?

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

Судя по всему ... ваш клиент не понимает требований Ceph.
Сколько у них хостов виртуальных машин?

Короткий ответ:

Да, можно, но это не рекомендуется.

Длинный ответ:

Да, это сработает. Но это может отрицательно сказаться на производительности. И когда я говорю отрицательно, я имею в виду потенциально действительно отрицательно.

Пожалуйста, прочтите Рекомендации по оборудованию.

Подробности:

Ceph действительно рассчитывает записывать свои данные на выделенные диски, контролируемые узлами хранения (OSD). Помещение еще одного уровня виртуализации поверх этого может действительно повысить производительность. Особенно, когда этот диск нужно использовать совместно с другими виртуальными машинами. Но если это для тестирования с участием нескольких членов команды, почему бы и нет?

Но для производства. ПОЖАЛУЙСТА, НЕ ДЕЛАЙТЕ ЭТОГО.

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

Другая причина, Ceph интенсивно вводит-вывод во время чтения / записи в OSD. Чем больше OSD у вас на одном физическом хосте, тем более загруженным станет сетевой интерфейс на этом хосте. Вот почему вам необходимо распределить нагрузку между многими OSD и серверами.

Итак, я уже виртуализировал мониторы и серверы метаданных на Xen. Но хост виртуальной машины, который у меня был, был просто чудовищем, и я дал много ресурсов ceph. У меня также была большая пропускная способность сети на всех этих хостах. Фактически это был 56-гигабитный FDR Infiniband. Так что я не могу точно сказать, как это будет работать в условиях ограничений, я не заметил этого.

Я также раскрутил его на Amazon EC2. Но опять же, я использовал для тестирования более высокую настройку. Там он работал нормально, но мы могли видеть, что виртуализация пострадала. Это раннее тестирование было направлено на то, чтобы увидеть, сможем ли мы получить более высокую производительность, чем IOPS, предоставленные Amazon, при меньших затратах. Мы не пошли на это, но это был интересный тест.

Что касается паравиртуальных драйверов и т. Д. Да, они помогают, но, на мой взгляд, SR-IOV - лучший вариант.

Резюме:

  • Не рекомендуется, даже если это работает.
  • OSD на самом деле не следует виртуализировать.

Будет интересно посмотреть, прокомментирует ли здесь Сейдж Вейль. Если я не ошибаюсь, он делал это раньше.