понедельник, 27 апреля 2009 г.

multicore vCPU

Коллеги, уже известно, что vSphere позволит отдавать ВМ до 8 vCPU. Это хорошо. Однако, не все гостевые ОС смогут столько переварить. Например, Win2003 Standart увидит только 4. Обидно, да?

Однако, в ESX\ESXi 4 есть возможность(экспериментальная, правда) представить X vCPU не как X одноядерных процессоров, а как X ядер одного(или там x\2 ядер 2х CPU и т.д.).

Инструкция:

  1. Выключаем ВМ
  2. Заходим в "Edit Settings..."
  3. Выбираем "Options"
  4. "Advanced" -> "General"
  5. Выбираем "Configuration Parameters..."
  6. Выбираем "Add Row"
  7. Пишем опцию "cpuid.coresPerSocket" в столбце "Name"
  8. Указываем значение (2, 4, или 8) в столбце "Value"
  9. "OK"
  10. Включаем ВМ
Что мы получили:
В свойствах ВМ указано кол-во CPU для ВМ. Оно делится на число из п.7 - это число ядер, которое видит ВМ в vCPU. Полученное после деления число - это число процессоров, в каждом из которых ядер столько, сколько мы указали в п.7.

Например: для ВМ мы указали 4 процессора. Ядер на проц указали 4. ВМ видит 4\4= 1 процессор, с 4мя ядрами.

11 комментариев:

  1. интересно. А вот ещё вопрос по vSphere. Кто-нибудь уже успел разобраться, в чём разница между виртуальными контроллерами дисков «LSI Logic SAS» и «VMware Paravirtual»?

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

    а) Драйверы под первый уже встроены в ОС, а под второй надо добавлять их отдельно при установке. Так почему же VMware не положила эти драйверы отдельно на диск с VMware Tools? Вытянуть их из MSI для того, чтобы получить возможность сразу установить ОС на контроллер типа «VMware Paravirtual», оказалось совсем нетривиальной задачей.

    б) Логично было бы предположить, что при прочих равных производительность синтетического контроллера окажется выше.

    Но меня сильно смущает слово «Paravirtual». Раньше оно у меня ассоциировалось исключительно с виртуализацией Linux. Поэтому интересует разница по функциям между двумя этими типами контроллеров. Когда лучше использовать первый, а когда второй?

    К сожалению, в Интерете информации по этому вопросу я пока не нашёл.

    ОтветитьУдалить
  2. я лично пока не могу давать окончательных ответов. На текущий момент мое видение такое:

    про LSI Logic SAS в теории написано следующиее - выбирайте его для дисков под MFC - он поддерживает SCSI 3, ему необходимый. Нужен ли такой контроллер подо что то еще - нет данных.

    "Паравиртуализация" применительно к железу означает следующее: если какая то железка паравиртуализированна, то часть соответствующей работы внутри ВМ выполняется на самой железке. Например, в ESX 3 паравиртуализованы видеоконтроллер(для задействования физической видюхи вы вытягиваете ползунок аппаратного ускорения после установки vmware tools) и NIC - TCP Segmentation Offload.

    Про производительность контроллера сложно что то утверждать. Зачастую, паравиртуализация дает не увеличение скорости, а уменьшение накладных расходов.

    ОтветитьУдалить
  3. хм, но паравиртуализованный контроллер — тоже SAS. Т.е. должен поддерживать SCSI-3. Завтра или послезавтра проверю, подойдёт ли он для кластера.

    ОтветитьУдалить
  4. Из неприятного. Четвёртый клиент не работает на Windows 7. Пробова на бете (7000) и на RC (7100). Клиент 2.5 работает без проблем, а 4.0 — нет. Надеюсь, к релизу (сферы, а не Windows 7) починят :)

    ОтветитьУдалить
  5. Успешно собрал кластер из двух виртуалок с Windows Server 2008 R2 RC, используя только контроллеры PVSCSI (т.е. как для загрузки, так и для общих дисков).

    Правда, валидация не проходит с камими-то дурацкими ошибками, с этим ещё придётся разбираться. Но она точно так же не проходит и с контроллерами LSI. Т.е. это скорее похоже на баг Windows RC, чем vSphere RC :)

    Но при всём при этом кластер выглядит вполне рабочим. Завтра буду ставить на него SQL Server 2008 SP1. Надеюсь, что vCenter умеет таки с ним работать :)

    Кстати, я правильно понимаю, что кластеризовать сам vCenter всё ещё нельзя?

    ОтветитьУдалить
  6. про кластер vCenter 4 пока не скажу.

    ОтветитьУдалить
  7. в общем, да. Установил на тот кластер SQL Server 2008 SP1 CU1, на другую виртуалку поставил vCenter. Тоже на Windows Server 2008 R2 x64 RC (2.5 категорически не работал под 64-битными ОС).

    Этот vCenter подключил к SQL Server 2008, используя Windows Authentication (в 2.5 была возможна только SQL Server Authentication). Всё неплохо работает. Особенно порадовала возможность отдавать кластеру vmdk, а не только RDM (тоже новинка vSphere).

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

    ОтветитьУдалить
  8. Добрый день, Артем. Отдавать под кластер vmdk могла и VI3,5. Есть даже официальные гайды, как это делать. Внятные видел на этом сайте (VM4.RU) и на http://boche.net/blog.

    ОтветитьУдалить
  9. Написал про запуск нового клиента для vSphere под Windows 7 RC.

    http://vmind.ru/2009/05/25/oda-o-windows-7-rc-and-vsphere-client/#more-483

    ОтветитьУдалить
  10. и ни одного комментария по теме... А что будет, если я укажу 2 vcpu и cpuid.coresPerSocket = 8? -> 2/8=0.25 cpu?

    ОтветитьУдалить