Компьютерный Сервис
Наши услуги
Статьи

Политики кэширования RAID-контроллера

Политики чтения (Read Policies):
  • No Read-Ahead — не используется политика кэширования Read-Ahead.
  • Read-Ahead — кэшируются последовательно секторы диска, которые предшествуют сектору, считываемому в данный момент. Эта политика может повысить производительность при последовательном хранении данных. Обычно эта политика не дает преимуществ при операциях произвольного чтения. (Она полезна для доступа к файлам большого размера и/или последовательно сохраненным файлам.)
  • Adaptive Read-Ahead — кэширование Read-Ahead используется только в том случае, если при выполнении двух предыдущих запросов чтения считывались данные из последовательных секторов диска. В остальных случаях используется политика No Read-Ahead.

Политики записи (Write Policies):
  • Write-Through (WT) — операция записи завершается только после того, как диск назначения сообщает об успешном завершении записи.
  • Write-Back (WB) — операция записи завершается после переноса данных в кэш контроллера, даже если данные еще не записаны на диск назначения.
    Эта политика создает дополнительный риск потери данных, так как любые данные, не сохраненные на диске, могут быть потеряны при отключении питания системы. Для снижения этого риска можно использовать кэш-память с питанием от аккумулятора.
    Если заряд аккумулятора недостаточен для хранения данных в кэш-памяти, вместо политики WB используется политика WT.
  • Force Write-Back — политика записи Write-Back применяется независимо от состояния аккумулятора.

Другие политики
  • Политика доступа (Access Policy):
    • Read/Write — разрешены операции чтения и записи на устройство.
    • Read Only — разрешены только операции чтения с устройства, операции записи запрещены.
      • На SSD-накопителях имеются ограниченные возможности записи. Когда количество операций записи достигает максимального значения, вместо политики доступа используется политика Read Only, при этом дополнительные операции записи не выполняются.
    • Blocked — операции чтения и записи запрещены.
  • Политика кэширования на диске (Disk Cache Policy):
    Disk Cache Policy — если эта политика включена, разрешена запись в кэш диска перед записью на носитель.
    • Для виртуальных дисков, содержащих диски SATA, эта политика по умолчанию ВКЛЮЧЕНА.
    • Для виртуальных дисков, содержащих диски SAS, эта политика по умолчанию ОТКЛЮЧЕНА.
    • Для RAID-контроллеров на основе драйверов (например, SAS 6/iR и H200) эта политика доступна только ПОСЛЕ создания виртуального диска.
Во многих случаях в серверных технологиях используются системы счисления, отличные от десятичной (например, двоичная и шестнадцатеричная системы). Нередко для полного понимания определенных значений требуется их преобразование из одной системы счисления в другую.

Набор из 4 бит в двоичной системе часто представляется одной шестнадцатеричной цифрой. Шестнадцатеричные числа часто используются для представления больших двоичных значений. При преобразовании двузначного шестнадцатеричного значения в двоичное используются 8 бит (по 4 бита на одну шестнадцатеричную цифру). Преобразуем шестнадцатеричное число 0d в двоичное: первая шестнадцатеричная цифра 0 преобразуется в 0000 в двоичной системе, а вторая шестнадцатеричная цифра d преобразуется в 1101 в двоичной системе. В совокупности шестнадцатеричное число 0d равно 0000 1101 в двоичной системе. 4 бита в двоичной системе называются полубайтом, 8 бит — байтом.

0000 = 0 0100 = 4 1000 = 8 1100 = c

0001 = 1 0101 = 5 1001 = 9 1101 = d

0010 = 2 0110 = 6 1010 = a 1110 = e

0011 = 3 0111 = 7 1011 = b 1111 = f

Рис. 1. Преобразование двоичного кода в шестнадцатеричный

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

Для политик кэширования RAID битовая маска определяется следующим образом:

  • dcp = политика кэширования по умолчанию и ccp = текущая политика кэширования
    x01 = Write Back
    x04 = Read Ahead
    x08 = Adaptive Read-Ahead
    x10 = кэширование записей при недостаточном заряде батареи (Force Write Back)
    x20 = кэширование операций записей разрешено
    x40 = кэширование операций чтения разрешено
  • ap — политика доступа
    0 = Read/Write
    2 = Read Only
    3 = Blocked
  • dc — политика кэширования на диске
    0 = без изменений, использовать значение по умолчанию для диска = (для SAS отключена, для SATA включена)
    1 = кэширование операций записи на диске включено
    2 = кэширование операций записи на диске отключено

x01 означает анализ значения 1 во втором двоичном слове данных — 0000 0001 (выделенной цифры)

x04 означает анализ значения 4 во втором двоичном слове данных — 0000 0100 (выделенной цифры)

x08 означает анализ значения 8 во втором двоичном слове данных — 0000 1000 (выделенной цифры)

x10 означает анализ значения 1 в первом двоичном слове данных — 0001 0000 (выделенной цифры)

x20 означает анализ значения 2 в первом двоичном слове данных — 0010 0000 (выделенной цифры)

x40 означает анализ значения 4 в первом двоичном слове данных — 0100 0000 (выделенной цифры)

Анализируя выходные данные из журналов контроллера, можно определить конкретные настройки кэша, преобразовав отдельные политики кэширования. На рис. 2 показаны настройки политик кэширования.

07/18/12 5:16:37: EVT#28008-07/18/12
07/18/12 5:16:37: 54=Policy change on VD 00/0 to [ID=00,dcp=0d,ccp=0d,ap=0,dc=0,dbgi=0] from [ID=00,dcp=0d,ccp=0c,ap=0,dc=0,dbgi=0]

Рис. 2. Пример выходных данных в журнале контроллера, показывающих изменение политик кэширования

Политика кэширования по умолчанию (DCP) — это набор политик кэширования, заданных при создании массива или заданных пользователем вручную в какой-то момент. Текущая политика кэширования (CCP) — политики кэширования, применяемые в настоящее время с учетом автоматической реакции контроллера на определенное событие.

В каждом 4-битном слове данных каждый бит представляет отдельную функцию. Битовая маска используется для определения значения каждого бита. На рис. 3 показана корреляция между двоичными значениями и настройкой политик кэширования для каждого бита.



Рис. 3. Значения битовой маски и их интерпретация для каждого бита


На рис. 2 значения DCP и CCP равны 0d или 0c.

Значение «0c» фактически указывает на то, что виртуальный диск использует политики кэширования Adaptive Read Ahead, Read Ahead и Write Through.

Значение «0d» указывает на то, что для виртуального диска используются политики кэширования Adaptive Read Ahead, Read Ahead и Write Back.

Если значение «DCP» или «CCP» равно «00», это означает, что виртуальный диск НЕ использует политику кэширования Adaptive Read Ahead, НЕ использует Read Ahead и ИСПОЛЬЗУЕТ Write Through.

Если значение «DCP» или «CCP» равно «01», это означает, что виртуальный диск НЕ использует политику кэширования Adaptive Read Ahead, НЕ использует Read Ahead и ИСПОЛЬЗУЕТ Write Back.

Примечание: Ссылка на статью