Кирилл Панов MCITP, MCDBA Введение Консолидация баз данных средствами SQL Server Вопросы производительности Консолидация баз данных при помощи виртуализации Вопросы производительности Построение отказоустойчивого решения и балансировка нагрузки Итоги Для чего: Для уменьшение затрат на: Электроэнергию Сопровождение Лицензирование Увеличение надежности: При переходе на сервер с дисками или хранилищем поддерживающем большую отказоустойчивость При переходе на сервер в кластере ○ Кластер SQL серверов ○ Кластер виртуальных машин Методы консолидации: Средствами SQL Server Виртуализация 4 Введение Консолидация баз данных средствами SQL Server Вопросы производительности Консолидация баз данных при помощи виртуализации Вопросы производительности Построение отказоустойчивого решения и балансировка нагрузки Итоги Перенос баз данных Особенности ○ Так же требуется перенести Имена пользователей и пароли Задания, оповещения и операторы ○ Если разные версии серверов то фактически, у нас проект по обновлению SQL Server Не подходит, если: Для приложения требуется определенное имя базы данных, а такая база уже есть в данном экземпляре Обновление не возможно ,так как приложение некорректно работает с базой данных, даже в режиме совместимости 6 Протестируйте обеспечивает ли сервер необходимую производительность Важные параметры которые, возможно, придется пересмотреть: Расположению файлов данных ○ Рассмотрите возможность использовать компрессию SQL Server 2008 Настроить tempdb согласно лучшим рекомендациям Настройкам памяти Рассмотрите возможность использовать регулятор ресурсов SQL Server 2008 7 Более высокий уровень изоляции Перенос экземпляра Создаем новый экземпляр сервера и переносим все базы, включая системные Особенности ○ Поддержка нескольких экземпляров возможна начиная с SQL Server 2000 ○ Редакция Enterprise и Developer SQL Server 2008 поддерживает до 50 экземпляров ○ Остальные редакции SQL Server 2008 поддерживают до 16 экземпляров 8 Протестируйте обеспечивает ли сервер необходимую производительность Важные параметры которые, возможно, придется пересмотреть для всех экземпляров: Распределение памяти и процессоров между экземплярами Расположению файлов данных ○ Рассмотрите возможность использовать компрессию SQL Server 2008 9 Введение Консолидация баз данных средствами SQL Server Вопросы производительности Консолидация баз данных при помощи виртуализации Вопросы производительности Построение отказоустойчивого решения и балансировка нагрузки Итоги Максимальная уровень изоляции Самый универсальный метод: Можно консолидировать абсолютно разные приложения: ○ ○ ○ ○ SQL Server Exchange Сервера приложений Различные операционные системы Дополнительная нагрузка по сравнению с рассмотренными ранее: ○ Затраты на виртуализацию ○ На каждой виртуальной машине – на операционную систему 11 Microsoft Hyper-V Server 2008 R2 Бесплатный Microsoft Windows Server 2008 R2 Включает в себя бесплатные лицензии на гостевые ОС Требуются сервера поддерживающие аппаратную виртуализацию 12 Возможности Лицензионное ограничение на количество сокетов Microsoft Hyper-V Server 2008 R2 Windows Server 2008 R2 EE, DC До 8 До 8 в EE, до 64 в DC Ограничение по поддержке на количество ядер 32 Память До 1TB Миграция виртуальных машин Административный интерфейс Quick and Live Migration Командная строка, консольная конфигурационная утилита и удаленное управление через RSAT Управление через SCVMM R2 Право на бесплатное использование гостевых ОС Количество одновременно запущенных виртуальных машин Поддержка гостевых ОС Командная строка, удаленное управление через RSAT, Hyper-V Manager MMC SCVMM 2008 R2 Нет До 4 на EE, неограничено - на DC До 256, если позволяют ресурсы сервера Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows 7, Windows Vista SP1, Windows XP SP2/SP3, SUSE Linux Enterprise Server 10 и 11, Red Hat Enterprise Linux (RHEL) 5.2 и 5.3 13 Вручную В гостевых операционных системах устанавливаем SQL Server и переносим базы данных Автоматически P2V Другими утилитами 14 Продукт для управления виртуализацией на основе: Windows 2008 Server Hyper-V v1 и v2 Virtual Server VMware VI3 Обеспечивает централизованные: Конфигурирование хостов Создание виртуальных машин Инструменты консолидации серверов (P2V, V2V) Управление библиотеками образов Размещение и развертывание виртуальных машин Мониторинг и отчетность Быстрое восстановление / миграция Для малого и среднего бизнеса: Virtual Machine Manager 2008 Virtual Machine Manager 2008 R2 Workgroup Edition: $505 за управление 5 физическим серверами Для корпоративных заказчиков: Virtual Machine Manager 2008 R2 Enterprise License: $869 за управление каждым физическим сервером http://www.microsoft.com/systemcenter/virtualmachinemanage r/en/us/pricing-licensing.aspx 16 Support policy for Microsoft SQL Server products that are running in a hardware virtualization environment http://support.microsoft.com/kb/956893 Для SQL Server 2005 и SQL Server 2008 в виртуальной среде среде: Операционные системой Windows Server 2008 и Windows Server 2008 R2 с Hyper-V Microsoft Hyper-V Server 2008 и Hyper-V Server 2008 R2 Конфигурация должна быть подтверждена Server Virtualization Validation Program (SVVP). http://windowsservercatalog.com/svvp.aspx?svvppage=svvp.htm 17 Редакция Enterprise: Лицензируется физический сервер Количество виртуальных машин не ограничено Редакция Standard и Workgroup Лицензируется SQL Server на всех виртуальных машинах 18 Использование SQL Server 2008 в среде Hyper-V Рекомендации и вопросы производительности На русском языке: http://sqlcat.com/whitepapers_russian/archive/2009/10/22/sqlserver-2008-hyper-v.aspx Для тестирования определили: Тестовая рабочая нагрузка Приблизительная загрузка ЦП OLTP: низкая 30 % OLTP: средняя 50 %-60 % OLTP: высокая 80 % 19 Низкая Пак. Пак Запр. ет/Ц /сек П% Издержки Основная конфигура ция1 Корневой раздел2 VM_PT3 VM_VHD4 Средняя Высокая Пак. Пак. запр./с Пакет/Ц Издержк запр./с Пакет/ ек П% и ек ЦП% Издержки 566 19,2 0,00 % 908 16 0,00 % 1069 14,8 0,00 % 566 17,5 565 16,1 8,85 % 16,15 % 907 897 14,8 14 7,50 % 12,50 % 1113 1075 13,5 13,1 8,78 % 11,49 % 563 15,7 18,23 % 876 13,9 13,13 % 1029 13,2 10,81 % 1. Основная конфигурация: собственная среда Windows Server 2008 с выключенным Hyper-V. Переключатель виртуальной сети отключен. 2. Корневой раздел: корневой раздел Windows Server 2008 со включенным Hyper-V. 3. VM_PT: гостевая виртуальная машина, сконфигурированная для использования дисков прямого доступа, 4 логических процессоров и 14 ГБ ОЗУ. 4. VM_VHD: гостевая виртуальная машина, сконфигурированная для использования виртуальных жестких дисков фиксированного размера, 4 логических процессоров и 14 ГБ ОЗУ. 5. Издержки вычислены путем сравнения с основной конфигурацией ((Пакеты в основной конфигурации/ЦП — Пакеты на виртуальной машине/ЦП) / Пакеты в основной конфигурации/ЦП). 20 Reads Per Second for Data Volumes 2000 1800 Disk Reads/sec 1600 1400 Native OS - Hyper-V Disabled 1200 Root Partition - Hyper-V Enabled 1000 800 Single VM (Passthrough Disks) 600 Single VM (Fixed Size VHD) 400 200 0 Low OLTP Workload Med OLTP Workload High OLTP Workload 21 Average Disk Latency in Seconds 0.009 0.008 Native OS - Hyper-V Disabled Avg. Disk/sec Read 0.007 0.006 Root Partition - Hyper-V Enabled 0.005 0.004 Single VM (Passthrough Disks) 0.003 0.002 Single VM (Fixed Size VHD) 0.001 0 Low OLTP Workload Med OLTP Workload High OLTP Workload 22 Запросы с MAXDOP 0 Общее время и % процент загрузки CPU 70 650 60 630 620 600 600 605 50 550 %Guest Run Time Time to Completeion (seconds) 700 500 450 40 30 Total Time (seconds) Hyper-V %Guest Run Time 20 400 10 350 300 0 Native OS - Hyper-V Disabled Root Partition - Hyper-V Enabled Guest (Passthrough) Guest (VHD) 23 Основная среда Пропускная способность при резервном копировании (МБ/с) Общее время резервного копирования (сек) Пропускная способность при восстановлении (МБ/с) Общее время восстановления (сек) Корневой раздел Гостевая виртуальная машина (диски прямого доступа) Гостевая виртуальная машина (виртуальные жесткие диски фиксированного размера) 181,00 158,00 154,00 157,00 764,00 875,00 874,00 874,00 241,00 218,00 173,00 167,00 573 634 799 824 24 2500 100 2400 90 2300 80 2220 2200 2160 2220 2176 70 % Guest CPU Time Time to Completion (seconds) Время перестройки индексов и % загрузки CPU 2100 2000 1900 1800 60 50 40 30 1700 20 1600 10 1500 Total Time (seconds) Hyper-V %Guest Run Time 0 Root OS - Hyper-V Disabled Root OS - Hyper-V Enabled Guest (Passthrough) Guest (VHD) 25 2000 100 1900 90 1800 80 1680 1700 1600 1560 1700 Total Time (seconds) 70 1590 60 1500 50 1400 40 1300 30 1200 20 1100 10 1000 % Guest CPU Time Time to Completion (seconds) DBCC CHECKDB , MAXDOP 0 Время выполнения и % загрузки CPU Hyper-V - %Guest Run Time 0 Root OS - Hyper-V Disabled Root OS - Hyper-V Enabled Guest (Passthrough) Guest (VHD) 26 Пакетов /секунду и Время выполнения гостевой машины, 2 и 4 ВМ 4000 100 3,612 90 3500 Total Batches/sec 2 VMs 3,245 Пакетов /секунду 80 3000 70 2500 60 2,244 2102 2000 50 1779 40 1500 1128 30 1000 20 500 10 0 Total Batches/sec 4 VMs Hyper-V - %Guest Run Time (2 VMs) Hyper-V - %Guest Run Time (4 VMs) Hyper-V - %Total Run Time Hyper-V - %Total Run Time 0 Low OLTP Workload Med OLTP Workload High OLTP Workload 27 Тестируйте производительность при планируемой рабочей нагрузке. Максимальное количество виртуальными процессоров - 4 Рассчитывайте из соответствия 1 к 1, виртуальный к физическому процессору Используйте диски прямого доступа или виртуальные жесткие диски фиксированного размера. Диски прямого доступа быстрее, но виртуальными жесткими дисками легче управлять Не используйте динамические виртуальные жесткие диски. Используйте синтетические устройства ввода-вывода, сетевые устройства и так далее. Не используйте эмулированные устройства. Мониторинг виртуальной среды : Performance Tuning Guidelines for Windows Server 2008 R2, раздел Performance Tuning for Virtualization Servers http://www.microsoft.com/whdc/system/sysperf/Perf_tun_srv-R2.mspx Рекомендации по оптимизации сети в подразделе Network I/O Performance 28 Введение Консолидация баз данных средствами SQL Server Вопросы производительности Консолидация баз данных при помощи виртуализации Вопросы производительности Построение отказоустойчивого решения и балансировка нагрузки Итоги Автоматическое переключение клиентов: Отказоустойчивый кластер SQL Server Hyper-V Зеркальное отображение баз данных Если требуется высокий уровень отказоустойчивости то Кластер+ Зеркалирование Вручную, требуется дополнительная логика на уровне приложения Одноранговая репликация (Peer-2- Peer) 30 Heartbeat Network Разделяемая дисковая система Виртуальный сервер Клиенты 31 В сценарии Active/Passive пассивный узел простаивает, ожидая падения активного узла Мы можем вручную распределить нагрузку между двумя серверами т.е. Active/Active Нужно убедиться , что при падении одного из узлов, второй узел справится с нагрузкой Использовать сценарий N+1:Active/Active/Passive или Active/Active/Active/Passive и т.д. 32 Любое оборудование Любые расстояния, в режиме высокой производительности 33 Принцип действия, режим высокой безопасности Зеркальный Основной сервер сервер (Principal) (Mirror) Клиенты Серверсвидетель (Witness) Зеркальный Основной сервер сервер (Mirror) (Principal) Обе технологии обеспечивают Автоматическое обнаружение сбоя и восстановление Ручное восстановление Прозрачный доступ из клиентских приложений Отсутствие потерь данных Database Mirroring Уровень БД Два сервера и два устройства хранения данных Стандартное оборудование Быстрое восстановление В ручную копирование системных данных Для автоматического переключения приложение должно работать c БД через ADO.Net или SQL Native клиент Failover Clustering Уровень системы Специализированное оборудование Не защищает от сбоев дисковой системы 35 Использование моментальных снимков на резервном сервере Зеркалирование баз данных OLTP клиенты Свидетель Основной сервер Резервный сервер Snapshot2 в 14:00 Snapshot1 в 13:00 Клиенты, запускающие отчеты 36 Сохраняет копии данных на нескольких серверах (узлах) Данные сохраняются на узлах почти в режиме реального времени Все узлы являются одновременно и издателем, подписчиком и как правило дистрибутором 37 Основные сценарии: Cлучай гео-распределенной компании, как на предыдущем слайде Балансировка нагрузки на уровне приложения, варианты балансировки: 38 Зеркальное отображение баз данных Standard - только в режим полной безопасности Моментальные снимки баз данных только в Enterprise Mirror сервер не требует лицензирования, если используется только для зеркального отображения баз данных ○ При использовании моментальных снимков БД или других баз данных сервера – требуется Сервером свидетелем может быть бесплатный Experss Кластер Standard – только 2 узла Узел Passive не требует лицензирования Одноранговая репликация Только в версии Enterprise 39 Введение Консолидация баз данных средствами SQL Server Вопросы производительности Консолидация баз данных при помощи виртуализации Вопросы производительности Построение отказоустойчивого решения и балансировка нагрузки Итоги Не сильно загруженные SQL серверакандидаты на консолидацию Три метода консолидации (с меньшего уровня изоляции – до высокого): Баз данных Экземпляров Виртуализация Чем выше уровень изоляции, тем больше накладные расходы Тестируйте при рабочих нагрузках!!! Если требуется минимизировать время простоя, выберите подходящее отказоустойчивое решение Рассмотрите подходящее решение для балансировки нагрузки 41 Использование SQL Server 2008 в среде Hyper-V http://sqlcat.com/whitepapers_russian/archive/2009/10/22/sql-server2008-hyper-v.aspx Support policy for Microsoft SQL Server products that are running in a hardware virtualization environment http://support.microsoft.com/kb/956893 Performance Tuning Guidelines for Windows Server 2008 R2, раздел Performance Tuning for Virtualization Servers http://www.microsoft.com/whdc/system/sysperf/Perf_tun_srv-R2.mspx Monitoring Hyper-V Performance и Hyper-V Performance Counters http://blogs.msdn.com/tvoellm/archive/tags/HyperV+Performance+Counters/default.aspx 42 Консолидация серверов средствами SQL Server 2008 http://msdb.ru/Downloads/SQL2008/white_papers/ServerCon solidation%20RU.doc Russian Windows Virtualization Discussion http://blogs.technet.com/vm/ Green IT in Practice: SQL Server Consolidation in Microsoft IT http://msdn.microsoft.com/en-us/architecture/dd393309.aspx TechNet Webcast: Microsoft Virtualization Best Practices for SQL http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=enUS&EventID=1032428764&CountryCode=US 43 High Availability with SQL Server 2008 http://msdn.microsoft.com/enus/library/ee523927.aspx Overview of Failover Clustering with Windows Server 2008 www.microsoft.com/windowsserver2008/failover-clusters.mspx Анализ и настройка производительности MS SQL Server на Russian SQL Server Club http://www.itcommunity.ru/blogs/rsug/archive/category/2958.aspx SQL Server Customer Advisor Team,технический документ SQL Server 2008 Failover Clustering http://sqlcat.com/whitepapers/archive/2009/07/08/sql-server-2008-failoverclustering.aspx Книга: Репликация Microsoft SQL Server 2005/2008 В сборник включены переводы и статьи сообщества SQL.RU Описание книги и статья “Высокая доступность в репликации SQL Server 2008 с зеркалированием и доставкой журналов” в блоге MVP SQL Server Александра Гладченко: http://msmvps.com/blogs/gladchenko/default.aspx 44