Настройка хранилища для SQL Server на виртуальных машинах Azure

Область применения: SQL Server на виртуальной машине Azure

В этой статье описано, как настроить хранилище для SQL Server в Azure Виртуальные машины (виртуальных машинах), развернутых с помощью Azure Marketplace с помощью SSD уровня "Премиум".

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

Примечание.

Эта статья применима только к SQL Server на виртуальных машинах Azure с помощью хранилище класса Premium, а не хранилища SSD уровня "Премиум" версии 2.

Необходимые компоненты

Для поддержки параметров автоматической настройки хранилища виртуальная машина должна:

Новые виртуальные машины

В следующих разделах описаны действия по настройке хранилища для новых виртуальных машин 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.

Снимок экрана, на котором показано, где можно настроить хранилище tempdb для виртуальной машины SQL.

Кроме того, вы можете задать кэширование для дисков. На виртуальных машинах Azure есть многоуровневая технология кэширования, называемая кэшем BLOB, которая используется с дисками класса "Премиум". При таком кэшировании используется ОЗУ виртуальной машины и локальный SSD.

Кэширование дисков для SSD уровня "Премиум" может быть readOnly, *ReadWrite или None.

  • Кэширование ReadOnly (только для чтения) особенно полезно для файлов данных SQL Server, расположенных в хранилище класса Premium. Кэширование ReadOnly обеспечивает низкую задержку чтения, высокую скорость операций чтения и пропускную способность, так как операции чтения выполняются из кэша, который находится в памяти виртуальной машины и на локальном SSD. Чтение выполняется гораздо быстрее, чем чтение с диска данных, который находится в Хранилище BLOB-объектов Azure. Хранилище класса "Премиум" не учитывает операции чтения из кэша в сторону операций ввода-вывода в секунду на диск и пропускную способность. Таким образом, приложение может выполнять больше операций ввода-вывода и достичь высокой пропускной способности.

  • Конфигурация кэша не должна использоваться для дисков, включающих файл журнала SQL Server, так как файл журнала записывается последовательно и не использует кэширование ReadOnly .

  • Кэширование 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;
  • настраивает диски данных в пуле носителей в зависимости от указанных требований к размеру и производительности (операции ввода-вывода в секунду и пропускная способность);
  • связывает пул носителей с новым диском на виртуальной машине;

Полное пошаговое руководство по созданию виртуальной машины SQL Server на портале Azure см. в статье Подготовка виртуальной машины SQL Server на портале Azure.

Шаблоны Resource Manager

При использовании следующих шаблонов Resource Manager по умолчанию к виртуальной машине присоединяются два диска данных класса Premium. В этом случае пул носителей не настраивается. Однако эти шаблоны можно настроить, чтобы изменить количество дисков данных класса Premium, присоединенных к виртуальной машине.

Шаблон быстрого запуска

Для развертывания виртуальной машины SQL Server с помощью оптимизации хранилища можно использовать следующий шаблон быстрого запуска.

Примечание.

Некоторые размеры виртуальных машин могут не иметь временного или локального хранилища. При развертывании SQL Server на виртуальной машине Azure без временного хранилища tempdb файлы данных и журналов помещаются в папку данных.

Существующие виртуальные машины

Примечание.

Хранилище можно настроить только для виртуальных машин SQL Server, развернутых с образа SQL Server в Azure Marketplace, и в настоящее время не поддерживается для дисков SSD уровня "Премиум" версии 2 . Чтобы изменить конфигурации дисков на виртуальной машине Azure с помощью самостоятельно установленного SQL Server, используйте область "Диски".

Изменение существующих дисков

Для существующих виртуальных машин SQL Server, развернутых через Azure Marketplace, можно изменить некоторые параметры хранилища в портал Azure с помощью ресурса виртуальных машин SQL или на панели "Диски".

Чтобы изменить параметры хранилища, откройте ресурс виртуальных машин SQL и выберите конфигурацию хранилища в разделе "Параметры", где можно:

  • Добавление дополнительных дисков
  • Настройка или развертывание существующих дисков

Снимок экрана, на котором выделены кнопка

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

Снимок экрана с портал Azure, на котором показана страница расширения диска данных, используемая для настройки хранилища для существующей виртуальной машины SQL Server.

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

Изменение tempdb

Кроме того, можно изменить tempdb параметры с помощью страницы конфигурации хранилища, например количество tempdb файлов, а также начальный размер и коэффициент автоматического увеличения. Выберите "Настроить рядом с tempdb", чтобы открыть страницу конфигурации tempdb.

Нажмите кнопку "Да" рядом с настройкой файлов данных tempdb для изменения параметров, а затем нажмите кнопку "Да" рядом с папкой базы данных tempdb при перезапуске, чтобы разрешить Azure управлять tempdb конфигурацией, папкой и разрешениями при следующем запуске службы SQL Server. Это не требует создания виртуальной машины SQL с изображением из Azure Marketplace.

Снимок экрана: страница конфигурации tempdb портал Azure на странице ресурсов виртуальных машин SQL.

Перезапустите службу SQL Server, чтобы применить изменения.

Увеличение размера временного диска

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

Автоматические изменения

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

  • Azure настраивает пул носителей из хранилища, выбранного на виртуальной машине. В следующем разделе этой статьи содержатся сведения о конфигурации пула носителей.
  • При автоматической настройке хранилища всегда используются диски данных P30 на базе твердотельных накопителей класса Premium. Таким образом, существует сопоставление 1:1 между выбранным числом Terabytes и количеством дисков данных, подключенных к виртуальной машине.

Сведения о ценах см. на странице Цены на хранилища Azure на вкладке Хранилище дисков.

Создание пула носителей

Для создания пула носителей на виртуальных машинах SQL Server Azure использует следующие параметры.

Параметр Значение
Размер полосы 64 КБ
РАЗМЕР ДИСКА 1 ТБ каждый
Cache Читать
Размер выделения Размер единицы распределения NTFS в 64 КБ
Восстановление Простая модель восстановления (без устойчивости)
Число столбцов Количество дисков данных: до 81

1 После создания пула носителей нельзя изменить количество столбцов в пуле носителей.

Примечание.

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

Включить кэширование

Для SSD уровня "Премиум" можно изменить политику кэширования на уровне диска. Это можно сделать через портал Azure, PowerShell или Azure CLI.

Чтобы изменить политику кэширования на портале Azure, сделайте следующее.

  1. Остановите службу SQL Server.

  2. Войдите на портал Azure.

  3. Перейдите к виртуальной машине. Для этого в разделе Параметры выберите Диски.

    Снимок экрана: область конфигурации диска виртуальной машины в портал Azure.

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

    Снимок экрана, на котором показана конфигурация политики кэширования диска на портале Azure.

  5. После того как изменение вступает в силу, перезапустите виртуальную машину SQL Server и запустите службу SQL Server.

Включение Ускорителя записи

Ускоритель записи — это функция диска, доступная только для Виртуальные машины серии M (виртуальных машин). Цель ускорения записи — уменьшить задержку ввода-вывода при записи в хранилище Azure класса Premium, когда вам нужна задержка ввода-вывода, не превышающая однозначное значение, из-за критически важных рабочих нагрузок OLTP большого объема или сред хранилищ данных.

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

Остановите все действия SQL Server и завершите работу службы SQL Server, прежде чем вносить изменения в политику ускорения записи.

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

Чтобы включить ускорение записи с помощью портала Azure, выполните следующие действия.

  1. Остановите службу SQL Server. Если диски чередуются, завершите работу виртуальной машины.

  2. Войдите на портал Azure.

  3. Перейдите к виртуальной машине. Для этого в разделе Параметры выберите Диски.

    Снимок экрана: область конфигурации диска виртуальной машины в портал Azure.

  4. Выберите параметр кэша с ускорителем записи для диска в раскрывающемся списке.

    Снимок экрана, на котором показана политика кэширования ускорителя записи.

  5. Когда изменение вступит в силу, запустите виртуальную машину и службу SQL Server.

Чередование дисков

Для повышения пропускной способности можно добавить дополнительные диски с данными и использовать чередование дисков. Чтобы определить количество дисков данных, проанализируйте пропускную способность и пропускную способность, необходимые для файлов данных SQL Server, включая журнал и tempdb. Ограничения пропускной способности и полосы пропускания зависят от размера виртуальной машины. Дополнительные сведения см. в разделе "Размер виртуальной машины".

  • Для Windows 8 и Windows Server 2012 или более поздней версии используйте дисковые пространства, придерживаясь приведенных ниже рекомендаций.

    1. Задайте для чередования значение 64 КБ (65 536 байт), чтобы избежать снижения производительности из-за рассогласования разделов. Это следует сделать в PowerShell.

    2. Задайте число столбцов равным количеству физических дисков. Используйте 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 and 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.