Настройка хранилища для SQL Server на виртуальных машинах Azure
Область применения:SQL Server на виртуальной машине Azure
В этой статье описывается, как настроить хранилище для SQL Server на виртуальных машинах Azure, развернутых через Azure Marketplace с использованием SSD премиум-класса.
Виртуальные машины SQL Server, развернутые с помощью образов Marketplace, автоматически выполняют рекомендации для хранилища по умолчанию, которые можно изменить во время развертывания. Некоторые из этих параметров конфигурации можно изменить после развертывания.
Примечание.
Эта статья применима только к SQL Server на виртуальных машинах Azure с использованием хранилища категории Premium, а не хранилища SSD уровня "Premium" версии 2.
Пререквизиты
Для поддержки параметров автоматической настройки хранилища виртуальная машина должна:
- быть подготовлена с помощью коллекции образов SQL Server;
- использовать модель развертывания с помощью Resource Manager;
- Использует твердотельные накопители класса Premium.
Новые виртуальные машины
В следующих разделах описаны действия по настройке хранилища для новых виртуальных машин SQL Server.
Портал Azure
При подготовке виртуальной машины Azure с помощью образа из коллекции SQL Server нажмите Изменить конфигурацию в разделе Хранилище на вкладке Параметры SQL Server, чтобы открыть страницу Настройка хранилища. Можно либо оставить значения по умолчанию, либо изменить тип конфигурации диска на тот, который лучше соответствует вашим потребностям в зависимости от рабочей нагрузки.
Примечание.
Если выбран поддерживаемый размер виртуальной машины, можно использовать SSD уровня "Премиум" версии 2, что обеспечивает детальный контроль размера диска, операций ввода-вывода в секунду и пропускной способности.
Выберите расположение диска для файлов данных и файлов журналов, указав тип диска и количество дисков. С помощью значений операций ввода-вывода в секунду определите оптимальную конфигурацию хранилища, которая соответствует потребностям вашей компании. Выбор хранилища класса Premium задает кэшированиеReadOnly для диска данных и None для кэширования диска журнала, согласно рекомендациям по производительности виртуальных машин SQL Server.
Снимок экрана из портала Azure страницы конфигурации хранилища виртуальной машины SQL Server во время развертывания.
Конфигурация диска полностью настраивается, чтобы можно было настроить топологию хранилища, тип диска и операции ввода-вывода в секунду, необходимые для рабочей нагрузки виртуальной машины SQL Server. Вы также можете использовать Ultradisk в качестве параметра для типа диска, если виртуальная машина SQL Server находится в одном из поддерживаемых регионов, и вы включили диски ультра для вашей подписки.
tempdb
Настройте параметры базы данных в хранилище TempDb, например расположение файлов базы данных, а также количество файлов, начального размера и автоматического увеличения размера в МБ.
- В настоящее время во время развертывания максимальное количество
tempdb
файлов составляет 8, но после развертывания виртуальной машины SQL Server можно добавить больше файлов. - Если вы настроите экземпляр
tempdb
SQL Server на локальном SSD-томе D, как рекомендуется, расширение агента IaaS SQL управляет папками и разрешениями, необходимыми при повторной конфигурации. Это не требует создания виртуальной машины SQL с изображением из Azure Marketplace.
Кроме того, вы можете задать кэширование для дисков. На виртуальных машинах Azure есть многоуровневая технология кэширования, называемая кэшем BLOB, которая используется с дисками класса "Премиум". Кэширование с использованием Blob Cache задействует комбинацию ОЗУ виртуальной машины и локального SSD.
Кэширование дисков для SSD уровня "Премиум" может быть readOnly, *ReadWrite или None.
Кэширование ReadOnly (только для чтения) особенно полезно для файлов данных SQL Server, расположенных в хранилище класса Premium. Кэширование ReadOnly обеспечивает низкую задержку чтения, высокую скорость операций чтения и пропускную способность, так как операции чтения выполняются из кэша, который находится в памяти виртуальной машины и на локальном SSD. Чтение выполняется гораздо быстрее, чем чтение с диска данных, который находится в Хранилище BLOB-объектов Azure. Хранилище класса «Премиум» не учитывает операции чтения из кэша в счет операций ввода-вывода на диск (IOPS) и пропускной способности. Таким образом, приложение может выполнять больше операций ввода-вывода и достичь высокой пропускной способности.
Следует использовать конфигурацию без кэширования для дисков, на которых размещен файл журнала SQL Server, так как файл журнала записывается последовательно и не использует кэширование только для чтения.
Кэширование ReadWrite не следует использовать для размещения файлов SQL Server, так как SQL Server не поддерживает согласованность данных с кэшем ReadWrite. Операции записи тратят производительность кэша BLOB-объектов в режиме ReadOnly, а также происходит увеличение задержек, если записи проходят через уровни кэша BLOB-объектов в режимеReadOnly.
Совет
Конфигурация хранилища должна соответствовать ограничениям, накладываемым выбранным размером виртуальной машины. Выбор параметров хранилища, превышающих ограничение производительности для размера виртуальной машины, приведет к ошибке:
The desired performance might not be reached due to the maximum virtual machine disk performance cap
. Либо сократите число операций ввода-вывода, изменив тип диска, либо увеличьте ограничение производительности, увеличив размер виртуальной машины. Это не остановит предоставление услуг.
После создания виртуальной машины в зависимости от вашего выбора Azure выполняет следующие задачи по настройке хранилища:
- Создает и подключает к виртуальной машине SSD премиумного класса.
- настраивает доступность дисков данных для SQL Server;
- Настраивает диски данных в пул хранения на основе указанных требований к размеру и производительности (IOPS и пропускной способности).
- связывает пул носителей с новым диском на виртуальной машине;
Полное пошаговое руководство по созданию виртуальной машины SQL Server на портале Azure см. в статье Подготовка виртуальной машины SQL Server на портале Azure.
Шаблоны Resource Manager
При использовании следующих шаблонов Resource Manager по умолчанию к виртуальной машине присоединяются два диска данных класса Premium. В этом случае пул носителей не настраивается. Однако эти шаблоны можно настроить, чтобы изменить количество дисков данных класса Premium, присоединенных к виртуальной машине.
- Создание виртуальной машины с поддержкой автоматической архивации
- Создание виртуальной машины с автоматической установкой исправлений
- Создание виртуальной машины с интеграцией AKV
Шаблон быстрого запуска
Для развертывания виртуальной машины SQL Server с помощью оптимизации хранилища можно использовать следующий шаблон быстрого запуска.
- Создание виртуальной машины с оптимизацией хранилища
- Создание виртуальной машины с помощью Ultradisk
Примечание.
Некоторые размеры виртуальных машин могут не иметь временного или локального хранилища. При развертывании SQL Server на виртуальной машине Azure без временного хранилища tempdb
файлы данных и журналов помещаются в папку данных.
Существующие виртуальные машины
Примечание.
Хранилище можно настроить только для виртуальных машин SQL Server, развернутых с образа SQL Server в Azure Marketplace, и в настоящее время не поддерживается для дисков SSD уровня "Премиум" версии 2 . Чтобы изменить конфигурации дисков на виртуальной машине Azure с помощью самостоятельно установленного SQL Server, используйте область "Диски".
Изменение существующих дисков
Для существующих виртуальных машин SQL Server, развернутых через Azure Marketplace, можно изменить некоторые параметры хранилища в портал Azure с помощью ресурса виртуальных машин SQL или на панели "Диски".
Чтобы изменить параметры хранилища, откройте ресурс виртуальных машин SQL и выберите конфигурацию хранилища в разделе "Параметры", где можно:
- Добавление дополнительных дисков
- Настройка или развертывание существующих дисков
При выборе "Настройка" откроется страница расширения диска данных, которая позволяет изменить тип диска, а также добавить дополнительные диски. Вы также можете добавить диски на панели "Диски".
Если вы уже достигли максимального объема дисков, поддерживаемых для определенного размера виртуальной машины, может потребоваться изменить размер виртуальной машины.
Изменение tempdb
Кроме того, можно изменить tempdb
параметры с помощью страницы конфигурации хранилища, например количество tempdb
файлов, а также начальный размер и коэффициент автоматического увеличения. Выберите Настроить рядом с tempdb, чтобы открыть страницу конфигурации tempdb.
Выберите Да рядом с Настроить файлы данных tempdb, чтобы изменить параметры, а затем выберите Да рядом с Управление папками базы данных tempdb при перезапуске, чтобы позволить Azure управлять вашей конфигурацией, папкой и разрешениями при следующем запуске службы SQL Server. Это не требует создания виртуальной машины SQL с изображением из Azure Marketplace.
Перезапустите службу SQL Server, чтобы применить изменения.
Увеличение размера временного диска
Чтобы увеличить размер временного диска, измените размер виртуальной машины на номер SKU, поддерживающий более высокий размер диска для временного хранилища.
Автоматические изменения
В этом разделе приведена справочная информация по изменениям конфигурации хранилища, которые Azure выполняет автоматически во время подготовки или настройки виртуальной машины SQL Server на портале Azure.
- Azure настраивает пул носителей из хранилища, выбранного на виртуальной машине. В следующем разделе этой статьи содержатся сведения о конфигурации пула носителей.
- При автоматической настройке хранилища всегда используются диски данных P30 премиальные SSD. Таким образом, существует сопоставление 1:1 между выбранным числом Terabytes и количеством дисков данных, подключенных к виртуальной машине.
Сведения о ценах см. на странице Цены на хранилища Azure на вкладке Хранилище дисков.
Создание пула хранения
Для создания пула носителей на виртуальных машинах SQL Server Azure использует следующие параметры.
Настройки | Значение |
---|---|
Размер полосы | 64 КБ |
РАЗМЕР ДИСКА | 1 ТБ каждый |
Кэш | Читать |
Размер выделения | Единица распределения NTFS размером 64 КБ |
Восстановление | Простая модель восстановления (без устойчивости) |
Число столбцов | Количество дисков данных: до 81 |
1 После создания пула носителей нельзя изменить количество столбцов в пуле носителей.
Примечание.
Используйте Optimize-StoragePool и Optimize-Volume для перераспределения места в пуле и оптимизации производительности для типов рабочих нагрузок с случайными глубокоочередными шаблонами ввода-вывода.
Включить кэширование
Для SSD уровня "Премиум" можно изменить политику кэширования на уровне диска. Это можно сделать через портал Azure, PowerShell или Azure CLI.
Чтобы изменить политику кэширования на портале Azure, сделайте следующее.
Остановите службу SQL Server.
Войдите на портал Azure.
Перейдите к виртуальной машине. Для этого в разделе Параметры выберите Диски.
Выберите соответствующую политику кэширования для диска из раскрывающегося списка — только для чтения или Нет.
После того как изменение вступает в силу, перезапустите виртуальную машину SQL Server и запустите службу SQL Server.
Включение Ускорителя записи
Ускоритель записи — это функция диска, доступная только для виртуальных машин серии M. Цель ускорения записи — уменьшить задержку ввода-вывода при записи в хранилище Azure класса Premium, когда вам нужна задержка ввода-вывода, не превышающая однозначное значение, из-за критически важных рабочих нагрузок OLTP большого объема или сред хранилищ данных.
Прежде чем включить ускоритель записи, просмотрите некоторые ограничения , чтобы убедиться, что они приемлемы для вашего бизнеса.
Остановите все действия SQL Server и завершите работу службы SQL Server, прежде чем вносить изменения в политику ускорения записи.
Если диски чередуются, включите ускорение записи для каждого диска отдельно, а перед внесением изменений следует завершить работу виртуальной машины Azure.
Чтобы включить ускорение записи с помощью портала Azure, выполните следующие действия.
Остановите службу SQL Server. Если диски находятся в конфигурации RAID 0, завершите работу виртуальной машины.
Войдите на портал Azure.
Перейдите к виртуальной машине. Для этого в разделе Параметры выберите Диски.
Выберите параметр кэша с ускорителем записи для диска в раскрывающемся списке.
Когда изменение вступит в силу, запустите виртуальную машину и службу SQL Server.
Полосование дисков
Для повышения пропускной способности можно добавить дополнительные диски с данными и использовать чередование дисков. Чтобы определить количество дисков для данных, проанализируйте производительность и ширину канала, необходимые для файлов данных SQL Server, включая журналы и tempdb
. Ограничения пропускной способности и полосы пропускания зависят от размера виртуальной машины. Дополнительные сведения см. в разделе "Размер виртуальной машины".
Для Windows 8 и Windows Server 2012 или более поздней версии используйте дисковые пространства, придерживаясь приведенных ниже рекомендаций.
Установите размер стрипинга на 64 КБ (65 536 байт), чтобы избежать снижения производительности из-за несовпадения разделов. Это следует сделать в PowerShell.
Задайте число столбцов равным количеству физических дисков. Используйте PowerShell (не пользовательский интерфейс диспетчера сервера) при настройке более 8 дисков.
Например, следующая команда PowerShell создает пул хранения с размером чередования 64 КБ и количеством столбцов, равным количеству физических дисков в пуле хранения.
$PhysicalDisks = Get-PhysicalDisk | Where-Object {$_.FriendlyName -like "*2" -or $_.FriendlyName -like "*3"}
New-StoragePool -FriendlyName "DataFiles" -StorageSubsystemFriendlyName "Windows Storage on <VM Name>" `
-PhysicalDisks $PhysicalDisks | New-VirtualDisk -FriendlyName "DataFiles" `
-Interleave 65536 -NumberOfColumns $PhysicalDisks.Count -ResiliencySettingName simple `
-UseMaximumSize |Initialize-Disk -PartitionStyle GPT -PassThru |New-Partition -AssignDriveLetter `
-UseMaximumSize |Format-Volume -FileSystem NTFS -NewFileSystemLabel "DataDisks" `
-AllocationUnitSize 65536 -Confirm:$false
В Windows Server 2016 и более поздних версий значение по умолчанию для параметра -StorageSubsystemFriendlyName
равно Windows Storage on <VM Name>
Для Windows 2008 R2 или более ранней версии можно воспользоваться динамическими дисками (чередующимися томами операционной системы), при этом размер чередования всегда составляет 64 КБ. Эта возможность не поддерживается в Windows 8 и Windows Server 2012. Дополнительные сведения см. в заявлении о поддержке в статье Virtual Disk Service is transitioning to Windows Storage Management API (Служба виртуальных дисков переходит на API управления хранилищами Windows).
Если вы используете Локальные дисковые пространства (S2D) с экземплярами отказоустойчивого кластера SQL Server, необходимо настроить один пул. Хотя в одном пуле можно создавать разные тома, они будут иметь одинаковые характеристики, например, ту же политику кэширования.
Определите число дисков, связанных с пулом хранилищ, на основании ожидаемой нагрузки. Помните, что в разных размерах виртуальной машины можно подключать различное число дисков данных. Дополнительные сведения см. в разделе Размеры виртуальных машин.
Известные проблемы
Настройка параметра диска или панели конфигурации хранилища на ресурсе виртуальной машины SQL неактивна
Страница хранилища может быть серой в панеле ресурсов виртуальных машин SQL в портале Azure по следующим причинам:
- Расширение агента IaaS SQL находится в состоянии сбоя. Удалите и затем с помощью расширения зарегистрируйте свою виртуальную машину SQL Server еще раз.
- Вы настроили пул хранения.
- Вы используете изображение, не принадлежащее Marketplace.
- Вы создали виртуальную машину с неуправляемыми дисками. Поддерживаются только управляемые диски.
Опция расширения диска неактивна
Параметр "Расширить диск" может быть серым по следующим причинам:
- Вы настроили пул хранения. Если необходимо расширить диск, добавьте диски в пул носителей, чтобы увеличить виртуальный диск.
- Вы изменили имена виртуальных дисков или томов из значений по умолчанию:
- Именование пула носителей: SQLVMStoragePool1, SQLVMStoragePool2, SQLVMStoragePool3
- Виртуальный диск: SQLVMVirtualDisk1, SQLVMVirtualDisk2, SQLVMVirtualDisk3
- Тома: SQLVMDATA1, SQLVMLOG и SQLVMTEMPDB
- Кластер Windows установлен на виртуальной машине SQL Server, поэтому расширение дисков не поддерживается.
У меня есть диск с 1 ТБ нераспределенного пространства, который не удается удалить из пула носителей
Нет возможности удалить нераспределированное пространство с диска, который принадлежит пулу носителей.
Мой журнал транзакций заполнен
Если ваш журнал станет полным, просмотрите инструкции по устранению неполадок полного журнала транзакций.
Не удалось настроить хранилище с помощью ресурса виртуальных машин SQL
Область конфигурации хранилища для ресурса виртуальных машин SQL в портале Azure может быть недоступна, неактивна или при выборе Расширить диски не происходит никаких действий в следующих сценариях:
- Виртуальные машины с самоустановленными экземплярами SQL Server. В настоящее время поддерживаются только образы виртуальных машин SQL Server из Azure Marketplace.
- Виртуальные машины SQL Server с использованием SSDv2 класса Premium. В настоящее время поддерживаются только виртуальные машины SQL Server с SSD уровня "Премиум".
- Когда TCP/IP отключен в диспетчере конфигурации SQL Server.