Как мне установить KVM на сервер с SSD и HDD и только с одной картой RAID, чтобы максимально использовать мое оборудование?

Я купил Dell Poweredge на местном аукционе, главным образом потому, что это было слишком выгодное предложение, но я имею опыт работы только с виртуальными серверами через AWS и Linode (то есть я новичок, так что это не имеет большого смысла).

Я планирую установить KVM поверх Ubuntu, чтобы ускорить работу многих виртуальных серверов Linux, чтобы заменить мои платные экземпляры VPS, но я не уверен, как наилучшим образом использовать все ресурсы серверного оборудования. В частности, технические характеристики: Dell R720, 2x E5-2640 12 ядер (2,5 ГГц), 1 карта RAID (PERC H710P Mini - Embedded), 128 ГБ ОЗУ, 8,2 ТБ дискового пространства (2 SSD при 185 ГБ ea.; 13 жестких дисков @ 558GB ea.). Из того, что я мало знаю, создается впечатление, что создание виртуального диска с использованием как SSD, так и HDD не рекомендуется. Лучший вариант, о котором я мог подумать, - это отказаться от производительности двух SSD и просто использовать все диски для создания одного виртуального диска, затем установить и запустить один экземпляр Ubuntu (выбранный произвольно), после чего я устанавливаю KVM, а затем раскручиваю виртуальные серверы через KVM.

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

Изменить: наиболее близкой вещью, которую я смог найти на сервере, был вопрос: can-i-mix-ssd-with-spindle-hdds

Edit2: или, может быть, сам KVM предоставляет способы обнаружения, подключения и / или управления аппаратными ресурсами?

2 ответа

Решение

Это полностью зависит от вас в соответствии с вашими требованиями с точки зрения количества хранения, производительности и резервирования.

Вы можете догадаться, что назначение нескольких виртуальных дисков одной виртуальной машине возможно. Виртуальная машина видит каждый виртуальный диск как отдельный блок (например, /dev/vda и /dev/vdb).

Допустим, ваши виртуальные машины должны иметь производительность SSD для загрузки системы и выполнения программ и иметь более медленное, но большее хранилище для хранения файлов (например, носителей).

Вы можете собрать два SSD в массив RAID-1, установить хост-систему на этот массив. Вы можете выбрать: использовать весь массив для своей хост-системы и хранить SSD-диски виртуальных машин в каталоге (не рекомендуется) или установить хост-систему в меньшем разделе (как можно меньшего размера, но с запасом) и использовать оставшееся пространство для другой раздел, смонтированный в /mnt/guest-ssd/ (рекомендуется).

Вы можете собрать все жесткие диски в один массив RAID-10 или RAID-5, создать один, но очень большой раздел в массиве RAID и смонтировать его в качестве примера в /mnt/guest-hdd/.

Оба RAID-массива выиграют от избыточности. Массив RAID-10 или RAID-5, изготовленный из жестких дисков, обеспечит лучшую производительность по сравнению с одним жестким диском.

Первое преимущество этой архитектуры: диски гостей хранятся в виде файлов в двух разделах / каталогах, которые называются / mnt / guest-ssd / и /mnt/guest-hdd/. Изображения могут быть легко переданы для резервного копирования или миграции. Вторым преимуществом является то, что существует реальная емкость HDD. Виртуальные диски в /mnt/guest-hdd/ могут быть меньше или больше 558 ГБ.

Недостаток этого сценария: у вас недостаточно емкости SSD. Если SSD находятся в массиве RAID-1, вы получите только 185 ГБ в качестве хранилища SSD для систем хоста и гостя. Это не так много в отношении количества виртуальных машин, которые вы можете создать с таким большим количеством оперативной памяти. Может быть диспропорция между вашими ресурсами (RAM против SSD против HDD), но это зависит от ваших потребностей. Если вы хотите создать несколько виртуальных машин для хранения, им потребуется маленький SSD (только для OS + NFS/FTP/...) и большой HDD. Если вам нужно много виртуальных машин с базами данных (много iops) или другими приложениями, интенсивно использующими диски, вам следует заменить два SSD на более крупные и, вероятно, заменить несколько жестких дисков на SSD. Или используйте решения для кэширования, предложенные здесь другими людьми.

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

  • Если для одной виртуальной машины требуется среднее хранилище (500 ГБ), вы можете создать массив RAID-1 из двух жестких дисков и передать этот блок / массив виртуальной машине.

  • Если для одной виртуальной машины требуется большое хранилище, вы можете создать массив RAID-10 с 4 жесткими дисками, чтобы получить виртуальный диск 1.1 TiB с избыточностью и улучшенными показателями скорости чтения / записи (в 2 раза быстрее по сравнению с одним жестким диском).

  • Если для одной виртуальной машины требуется хранилище XL, вы можете создать массив RAID-10 с 8 жесткими дисками, чтобы получить блок емкостью 2,2 ТБ с избыточностью и улучшенными показателями скорости записи (в 4 раза быстрее по сравнению с одним жестким диском).

Вы можете видеть, что есть больше вариантов и больше настроек. Существует очень мало сценариев, которые требуют такой настройки.

или, может быть, сам KVM предоставляет способы обнаружения, подключения и / или управления аппаратными ресурсами?

KVM не управляет хранилищем / дисками на хосте. Libvirt позволяет вам настраивать пулы хранения (локальные, по сети, ...), но он не будет настраивать RAID (аппаратное или программное обеспечение) и не будет строить вашу архитектуру для вас, он не будет принимать решения вместо вас относительно того, как вы планируйте свое хранилище, сеть, узлы и другие ресурсы.

Вы можете развлекаться только с этим зверем, играя с KVM/libvirt;)

Я согласен, что вы не должны смешивать SSD и HDD в одном массиве (контроллеры PERC даже не позволяют, если я правильно помню).

Я хотел бы создать два массива: SSD для ОС и кэширования и HDD для хранения необработанных изображений. Я вижу две разные настройки:

  • основанный на lvmthin (HDD RAID6 или 10) + lvmcache (SSD RAID1), с классическими ext4 и / или xfs в качестве файловых систем;
  • основанный на ZFS с разделом L2ARC на SSD. ПРИМЕЧАНИЕ. PERC H710 не поддерживает диски без raid/passthrough. Это означает, что такая настройка была бы несколько ограничена по сравнению со случаем собственного переноса диска. Вы можете создать основной массив RAID6/10, используемый в качестве одного vdev, или несколько массивов RAID0 для использования в двухсторонних зеркальных vdevs.

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

Другие вопросы по тегам