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

Применимо к: SQL Server на виртуальной машине Azure

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

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

Предварительные требования

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

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

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

Портал Azure

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

Снимок экрана, на котором выделены вкладка параметров SQL Server и параметр изменения конфигурации.

Выберите расположение диска для файлов данных и файлов журналов, указав тип диска и количество дисков. С помощью значений операций ввода-вывода в секунду определите оптимальную конфигурацию хранилища, которая соответствует потребностям вашей компании. Выбор хранилища уровня "Премиум" устанавливает для кэширование значение ReadOnly для диска данных, а для диска журнала значение None в соответствии с рекомендациями по повышению производительности виртуальных машин SQL Server.

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

Конфигурация диска полностью поддается настройке, поэтому вы можете настроить топологию хранилища, тип диска и число операций ввода-вывода для рабочей нагрузки виртуальной машины SQL Server. Вы также можете использовать UltraSSD (предварительная версия) в качестве параметра для типа диска, если ваша виртуальная машина SQL Server находится в одном из поддерживаемых регионов (восточная часть США 2, Юго-Восточная Азия и Северная Европа) и вы включили Ultra Disks для своей подписки.

В разделе Хранилище Tempdb настройте параметры базы данных tempdb, например расположение файлов базы данных, количество файлов, начальный размер и размер автоматического увеличения в МБ. Сейчас во время развертывания поддерживается не более 8 файлов tempdb, но после развертывания виртуальной машины SQL Server можно добавить дополнительные файлы.

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

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

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

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

  • Конфигурация кэша None не должна использоваться для дисков, на которых размещен файл журнала 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 можно изменить некоторые параметры хранилища. Откройте Ресурс виртуальных машин SQL и выберите Обзор. На странице Обзор SQL Server отображаются сведения о текущем использовании хранилища вашей виртуальной машиной. На этой диаграмме отображаются все диски, подключенные к виртуальной машине. Дисковое пространство для каждого диска разбито на 4 раздела:

  • SQL-данные
  • журнал SQL;
  • прочее (не хранилище SQL);
  • Доступно

Чтобы изменить параметры хранилища, выберите Конфигурация хранилища в разделе Параметры.

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

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

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

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

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

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

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

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

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

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

Параметр Значение
Размер полосы 256 КБ (хранение данных), 64 КБ (обработка транзакций)
Размеры диска 1 ТБ каждый
Кэш Чтение
Размер выделения Размер единицы выделения NTFS — 64 КБ
Восстановление Простая модель восстановления (без устойчивости)
Number of columns Количество дисков данных: до 81

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

Параметры оптимизации рабочей нагрузки

В следующей таблице описаны три доступных типа рабочей нагрузки и соответствующие оптимизации для каждого из них.

Тип рабочей нагрузки Описание Оптимизация
Общие сведения Значение по умолчанию, поддерживающее большинство рабочих нагрузок None
Обработка транзакций Оптимизирует хранилище для рабочих нагрузок OLTP в традиционных базах данных Флаг трассировки 1117
Флаг трассировки 1118
Хранение данных Оптимизирует хранилище для рабочих нагрузок аналитики и отчетов Флаг трассировки 610
Флаг трассировки 1117

Примечание

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

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

Измените политику кэширования на уровне диска. Это можно сделать через портал 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 Server на виртуальных машинах Azure, рассматриваются в статье SQL Server на виртуальных машинах Azure.