В этой статье приведена информация о политиках кэширования RAID-контроллера.
Журнал TTY (журнал RAID-контроллера) содержит ссылки на политики чтения, записи и кэширования, назначенные для виртуальных дисков. Эти политики могут влиять на производительность виртуальных дисков, а при неправильном использовании могут повышать риск потери данных в случае отключения электропитания.
Политики чтения
- No Read-Ahead — не используется политика кэширования Read-Ahead.
- Read-Ahead — кэшируются последовательно секторы диска, которые предшествуют сектору, считываемому в данный момент. Эта политика может повысить производительность при последовательном хранении данных. Обычно эта политика не дает преимуществ при операциях произвольного чтения. (Она полезна для доступа к файлам большого размера и/или последовательно сохраненным файлам.)
- Adaptive Read-Ahead — кэширование Read-Ahead используется только в том случае, если при выполнении двух предыдущих запросов чтения считывались данные из последовательных секторов диска. В остальных случаях используется политика No Read-Ahead.
Политики записи
- Write-Through (WT) — операция записи завершается только после того, как диск назначения сообщает об успешном завершении записи.
- Write-Back (WB) — операция записи завершается после переноса данных в кэш контроллера, даже если данные еще не записаны на диск назначения.
- Эта политика создает дополнительный риск потери данных, так как любые данные, не сохраненные на диске, могут быть потеряны при отключении питания системы. Для снижения этого риска можно использовать кэш-память с питанием от аккумулятора.
- Если заряд аккумулятора недостаточен для хранения данных в кэш-памяти, вместо политики WB используется политика WT.
- Force Write-Back — политика записи Write-Back применяется независимо от состояния аккумулятора.
Другие политики
- Политика доступа:
- Read/Write — разрешены операции чтения и записи на устройство.
- Read Only — разрешены только операции чтения с устройства, операции записи запрещены.
- На SSD-накопителях имеются ограниченные возможности записи. Когда количество операций записи достигает максимального значения, вместо политики доступа используется политика Read Only, при этом дополнительные операции записи не выполняются.
- Blocked — операции чтения и записи запрещены.
- Политика кэширования на диске — если эта политика включена, разрешена запись в кэш диска перед записью на носитель.
- Для виртуальных дисков, содержащих диски 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 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.