Виртуализированный SQL Server: Почему нет?

Я использовал следующий подход:

public class A<T> {

    protected Class<T> clazz;

    public A() {
        this.clazz = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
    }

    public Class<T> getClazz() {
        return clazz;
    }
}

public class B extends A<C> {
   /* ... */
    public void anything() {
       // here I may use getClazz();
    }
}
33
задан Joel Coehoorn 18 January 2009 в 23:39
поделиться

12 ответов

Я могу сказать это от личного опыта, потому что я имею дело с этой самой проблемой, поскольку мы говорим. Место я в настоящее время работаю подрядчиком, имеет этот тип среды для их систем разработки SQL Server. Я пытаюсь разработать довольно скромную систему B.I. на этой среде и действительно борюсь с проблемами производительности.

TLB промахи и эмулированный ввод-вывод являются очень медленными на наивной виртуальной машине. Если Ваш O/S имеет поддержку паравиртуализации (который все еще не является сформировавшейся технологией в Windows), Вы используете, паравиртуализировал ввод-вывод (по существу драйвер устройства, который сцепляется в API в VM). Последние версии Opteron имеют поддержку вложенных таблиц страниц, которая устраняет необходимость эмулировать MMU в программном обеспечении (который является действительно медленным).

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

Вставленная перспектива системы, которые я использую, работают на блейдах (сервер IBM) на SAN с 4x 2gbit ссылки F/C. Это - средний SAN. VM имеет 4 ГБ RAM IIRC и теперь два виртуальных центральных процессора. В своих лучших проявлениях (когда SAN тих) это - все еще только половина скорости моего XW9300, который имеет 5 дисков SCSI (система, tempdb, журналы, данные, данные) на 1 шине U320 и 4 ГБ RAM.

Ваш пробег может варьироваться, но я рекомендовал бы идти с системами рабочей станции как та, которая я описал для разработки чего-либо ввод-вывод, тяжелый в предпочтении к виртуальным серверам на SAN. Если Ваши требования использования ресурсов не вне этого вида набора (в этом случае, они далеко за пределами виртуального сервера так или иначе), это - намного лучшее решение. Аппаратные средства не являются настолько дорогими - конечно, намного более дешевый, чем SAN, блейд-шасси и лицензирование VMware. Выпуск разработчика SQL Server идет с V.S. Pro и выше.

Это также обладает преимуществом, что Ваша группа разработчиков вынуждена иметь дело с развертыванием прямо от слова, идут - необходимо придумать архитектуру, это легко к 'одному щелчку', развертываются. Это не настолько твердо, как это звучит. SQL Redgate Выдерживает сравнение, Pro является Вашим другом здесь. Ваши разработчики также получают основное практическое знание администрирования баз данных.

А быстрое прохождение на веб-сайт л. с. получил меня объявленная цена приблизительно в 4 600$ для XW8600 (их текущая основанная на xeon модель) с четырехъядерной микросхемой xeon, 4 ГБ RAM и 1x146 и 4x73 ГБ 15k жесткие диски SAS. Розничная цена, вероятно, будет несколько меньше. Сравните это с ценой за SAN, блейд-шасси и лицензирование VMware и стоимость резервного копирования для той установки. Для резервного копирования можно предоставить сетевому ресурсу резервное копирование, где люди могут отбросить, сжал файлы резервных копий DB по мере необходимости.

РЕДАКТИРОВАНИЕ: Это техническое описание на веб-сайте AMD обсуждает некоторые сравнительные тесты на VM. От сравнительных тестов в спине тяжелый ввод-вывод и рабочая нагрузка MMU действительно ударяют производительность VM. Их сравнительный тест (чтобы быть взятым с мелкой частицей соли, поскольку это - поставщик, предоставил статистическую величину) предлагает 3.5x штраф скорости на сравнительном тесте OLTP. В то время как это - поставщик, предоставленный, нужно принять во внимание:

  • Это сравнивает наивной виртуализации и сравнивает его с паравиртуализированным решением, не производительностью без операционной системы.

  • сравнительный тест OLTP будет иметь более произвольный доступ рабочей нагрузкой ввода-вывода и проведет больше времени, ожидая поиска на диске. Более последовательный шаблон доступа к диску (характеристика запросов хранилища данных) будет иметь более высокий штраф и тяжелую памятью операцию (SSAS, например, библейский пожиратель ресурсов памяти), который имеет большое количество TLB, промахи также подвергнутся дополнительным штрафам. Это означает, что замедление на этом типе обработки, вероятно, было бы более явным, чем штраф сравнительного теста OLTP, процитированный в техническом описании.

, Что мы видели, вот то, что TLB промахи и ввод-вывод являются очень дорогими на VM. Хорошая архитектура с паравиртуализированными драйверами и поддержкой оборудования в MMU смягчит некоторых или все это. Однако я полагаю, что Windows Server 2003 не поддерживает паравиртуализацию вообще, и я не уверен, какой уровень поддержки обеспечивается в сервере Windows 2008. Это, конечно, был мой опыт, что VM радикально замедлит сервер при работе над процессом ETL и сборками куба SSAS по сравнению с относительно скромными аппаратными средствами спецификации без операционной системы.

36
ответ дан 27 November 2019 в 18:15
поделиться

SQL Server поддерживается в виртуальной среде. На самом деле я рекомендовал бы это, видя, что один из вариантов лицензирования на сокет. Это означает, что можно поместить столько экземпляров SQL Server в виртуализированный (например, Центр обработки данных Windows 2008 Server) система, сколько Вы любите и платите только на сокет процессора, который имеет машина.

Это лучше, чем это, потому что DataCenter лицензируют на сокет с неограниченными лицензиями Виртуальной машины также.

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

0
ответ дан 27 November 2019 в 18:15
поделиться

Самое большое беспокойство мне при виртуализации программного обеспечения обычно лицензирует.

Вот является статья о нем для MS SQL. Не уверенный в Вашей ситуации так не может выбрать угловые точки.

http://www.microsoft.com/sql/howtobuy/virtualization.mspx

0
ответ дан 27 November 2019 в 18:15
поделиться

Проблемы безопасности, которые могут быть представлены, когда контакт с Оживлением нужно также рассмотреть. безопасность Виртуализации является хорошей статьей PandaLabs, который покрывает некоторые проблемы.

0
ответ дан 27 November 2019 в 18:15
поделиться

Примечание там является некоторыми специализированными продуктами виртуализации там, которые сделаны для баз данных, которые могло бы стоить изучить вместо общего продукта как VMware.

Наша компания (более чем 200 SQL-серверов) в настоящее время находится в процессе развертывания HP Polyserve на некоторых наших серверах:

HP PolyServe Software for Microsoft SQL Server позволяет нескольким экземплярам Microsoft SQL Server быть консолидированными на существенно меньше серверов и централизовал устройство хранения данных SAN. HP уникальная архитектура "совместно используемых данных" PolyServe обеспечивает доступность класса предприятия и подобную виртуализации гибкость в служебной платформе.

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

1
ответ дан 27 November 2019 в 18:15
поделиться

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

Как очень простой пример, скажем, Вы выполнили поле SQL Server в Виртуальном сервере 2005 R2, и диски отмены были включены (так, основной "дисковый" файл остается таким же, и все изменения внесены в отдельный файл, который может быть очищен или объединен позже). Затем что-то происходит (обычно, Вы сталкиваетесь с пределом на 128 ГБ или независимо от того, что размер), и некоторая середина ночного невежественного администратора должна перезагрузить и выясняет, что он не может сделать так, пока он не удаляет диски отмены. Вы завинчены - даже если он сохраняет дисковые файлы отмены для более позднего анализа, возможности слияния данных вместе являются довольно тонкими.

Настолько отзывающийся эхом другие сообщения в этом потоке - для разработки это является большим, но для производства это не хорошая идея. Ваш код может быть восстановлен и повторно развернут (это - другая вещь, VM's для управления исходным кодом не хорошая идея ни один), но Ваши живые производственные данные являются более важным путем.

0
ответ дан 27 November 2019 в 18:15
поделиться

Вот некоторое тестирование VMWARE на нем.. http://www.vmware.com/files/pdf/SQLServerWorkloads.pdf

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

Мы в настоящее время выполняем SQL Server 2005 в среде VMWARE. НО, это - очень слегка загруженная база данных, и это является большим. Выполнения без проблем.

, Поскольку большинство указало, это будет зависеть от Вашей загрузки базы данных.

, Возможно, можно убедить Отдел ИТ делать некоторое хорошее тестирование перед слепой реализацией.

2
ответ дан 27 November 2019 в 18:15
поделиться

Мы выполняем систему начисления заработной платы для 900 + люди на VMware без проблем. Это работало в течение 10 месяцев. Это - загрузка среднего размера насколько DB идет, и мы предварительно выделили дисковое пространство в VM для предотвращения проблем IO. Необходимо дефрагментировать и Хост VM и часть VM регулярно для поддержания приемлемой производительности.

3
ответ дан 27 November 2019 в 18:15
поделиться

Я хотел добавить этот ряд статей Brent Ozar:

Это не точно авторитетно в смысле, на который я надеялся (прибывающий из команды, которая создает сервер или официальное руководство некоторого вида), но Brent Ozar вполне прилично уважают, и я думаю, что он делает отличную работу, охватывающую все проблемы здесь.

6
ответ дан 27 November 2019 в 18:15
поделиться

SAN - конечно, и кластеризация, но относительно Виртуализации - Вы получите Удар Производительности (можете, или может не стоить того Вам):

http://blogs.technet.com/andrew/archive/2008/05/07/virtualized-sql-server.aspx

http://sswug.org имел некоторые примечания об этом в их ежедневной новостной рассылке в последнее время

8
ответ дан 27 November 2019 в 18:15
поделиться

Существует некоторая информация относительно этого в Conor Cunningham Виртуализация Базы данных статьи блога - Грязный Небольшой Секрет, о котором Никто не Говорит... . Заключить в кавычки:

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

  1. все центральные процессоры одинаково мощны
  2. , все центральные процессоры обрабатывают инструкции приблизительно на том же уровне.
  3. сброс к диску должен, вероятно, произойти за ограниченное количество времени.

И сообщение продолжает разрабатывать эти проблемы несколько далее также. Я думаю хорошее чтение, рассматривая дефицит доступной информации, рассматривая эту проблему в целом.

1
ответ дан 27 November 2019 в 18:15
поделиться

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

Это хорошо для разработки. Возможно даже тестирование (на теории, что, если это хорошо работает при нагрузке на виртуальное поле, оно собирается хорошо работать на prodcution), но не в производстве.

Это - здравый смысл действительно. Вы хотите свои аппаратные средства, выполняющие две операционных системы и Ваш SQL-сервер или одну операционную систему и SQL-сервер?

Редактирование: Мой опыт сместил мой ответ. Я работал с большими базами данных при тяжелой постоянной загрузке. Если у Вас есть меньшая база данных при легкой загрузке, виртуализация может хорошо работать для Вас.

1
ответ дан 27 November 2019 в 18:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: