Форум на Kuban.ru (http://forums.kuban.ru/)
-   Сети и их администрирование (http://forums.kuban.ru/f1029/)
-   -   Старый вопрос про кэш записи без BBU (http://forums.kuban.ru/f1029/staryj_vopros_pro_kesh_zapisi_bez_bbu-4028825.html)

freddyb 10.04.2013 13:02

Старый вопрос про кэш записи без BBU
 
Много лет назад выяснил, что на контроллере без bbu кэш записи надо отключать. Отключил на серверах с контроллерами без bbu. Но что-то опять сомнение взяло...
Есть WS2003 и RAID1 на двух физических дисках HDD. На RAID-контроллере нет батарейки.

Правильно ли я понимаю:
Если я включу кэш записи, то самая большая неприятность, которая может случиться, это то, что при неправильном выключении сервера (например ИБП сгорел) мой RAID1 может разбиться и будет долго собираться, т.е. сам диск на сервере будет доступен, но на время rebuild я потеряю в производительности дисковой системы?

П.С. Как я понимаю, для заданного мною вопроса не важно, какой тип контроллера (программно-виндовый, программно-встроенно-материночный или полупрограммно-дискретно-контроллерный) и о каком кэше речь (на физическом диске или на контроллере или оба сразу).

П.С.2 или однозначного ответа нет?

NOVIchok 10.04.2013 14:03

ты потеряешь очередь\речь о кэше физического диска\риск потеря данных а вот каких именно зависит от текущей операции

NOVIchok 10.04.2013 14:04

пользуй ssd в качестве диска кэширования в рэйд масиве все современные контроллеры в том или ином виде умеют так делать

krotov 11.04.2013 12:38

freddyb. Однозначного ответа, что произойдет нет. Объясню почему:
если кэш не используется, то ответ (в данном случае будем говорить о процедуре записи на диск) об успешной записи будет получен, собственно, после успешной записи на [b][u]диск[/u][/b];
если кэш используется, то ответ об успешной записи будет получен, собственно, после успешной записи в [b][u]кэш[/u][/b].
Что произойдет, в случае аварийного отключения питания, зависит от типа файловой системы и/или от того, как карты лягут. Т.к. [b]блоки данных[/b], которые были в кэше, при отсутствии батареи, разумеется, будут утеряны.
PS: Вышесказанное справедливо в случае использования RAID уровней 5 и 6, т.к. в этом случае в кэше хранятся результаты математических операций, до сбрасывания их на диск, ведь какое-то время их надо где-то хранить в момент расчета контрольных сумм. "Зеркало", как правило, отправляет ответ об успешной записи непосредственно на диск, а кэш использует для чтения, соответственно данные потеряны не будут, в случае аварийного выключения электропитания. Но и производительность RAID-1 с кэшом и без него не сильно отличается (в обычных контроллерах, конечно, а не в специализированных массивах хранения).
PSPS: Сейчас уже вовсю используется энергонезависимая кэш-память.

krotov 11.04.2013 12:54

PSPSPS, хотя, в случае RAID 5 6, на "глупых" безтранзакционных контроллерах, RAID просто развалится, не знаю делают еще такие контроллеры или уже нет.

701054 11.04.2013 21:13

3-krotov > спасибо, про энергонезависимую кэш-память нынче даж не знал

freddyb 13.04.2013 20:59

Итак, мой RAID1 с файловой системой NTFS при аварийном завершении питания, кроме того, что может развалиться, может ещё потерять данные, т.е. некий файл на диске останется доступным, но могут пропасть последние изменения, которые в него вносились.
Ну тогда об чём речь, последние изменения в документе\базе_данных_ 1с\ещё_в_чём_то можно внести опять, это не так опасно. Главное, сам документ\база_данных_ 1с\ещё_чего_то останется живым и доступным.

P.S. контроллеров, где хочу включить кэш, собственно два: встроенный интелловский MegaRaid и HP Smart Array E200i. На последнем кэш есть, но отдан под другие диски, а RAID1 на 2-х дисках SATA остался без контроллерного кэша и кэш физического диска отключён.

Добрых дел мастер 13.04.2013 22:15

2krotov
>"Зеркало", как правило, отправляет ответ об успешной записи непосредственно на диск, а кэш использует для чтения,
Это действительно так? Насколько я помню (на старых мегарейдах) включение writeback было совсем не привязано к типу рейда.
>Но и производительность RAID-1 с кэшом и без него не сильно отличается
Разве так? Произвдительность диска - десятки\сотни айопсов, а кеша - тысячи.

krotov 14.04.2013 10:36

Добрых дел мастер, [em]Насколько я помню (на старых мегарейдах) включение writeback было совсем не привязано к типу рейда.[/em]
Не привязано, но привязано к наличию/отсутствию BBU, ни один вменяемый контроллер не даст включить отложную запись без наличия батареи, собственно поэтому кэш, в зеркале без батареи, будет работать в write through, т.е. скорость записи останется той-же, что и без кэша. RAID 5,6, вообще не будет работать, т.к. writeback без батареи не включится и промежуточные данные хранить негде будет.
[em]Произвдительность диска - десятки\сотни айопсов, а кеша - тысячи.[/em]
А толку? Супер-быстрый кэш, объемом пару гигов, куда в итоге данные-то пишет?
Это вендоры СХД любят писками мериться у кого ёпсов больше, только то что ёпсы из кэша, написано очень маленьким шрифтом в конце документов. Если не рассматривать SSD, то все равно, производительность дисковой подсистемы прямо-пропорциальна количеству шпинделей.

Добрых дел мастер 14.04.2013 13:16

2krotov
>Не привязано, но привязано к наличию/отсутствию BBU
Согласен, но я ведь про кеш, а не про батарейку. (вообще, я подразумевал, что батарейка есть, так как writeback действительно не заработает без нее)
>RAID 5,6, вообще не будет работать, т.к. writeback без батареи не включится и промежуточные данные хранить негде будет.
Вот это неправда. У меня лично работал raid5 без батарейки (с write through).
>А толку? Супер-быстрый кэш, объемом пару гигов, куда в итоге данные-то пишет?
Это только при характере нагрузки близком к "равномерная последовательная запись" (например, видеорегистратор) кеш не имеет смысла (так как заполнится и снова упрется в дисковую подсистему), а когда запись неравномерна - очень помогает(мне лично очень помогало на файловом сервере 3000+ пользователей. Разница между "до батарейки" \(читай до writeback\) и "после батарейки была значительна).
>Если не рассматривать SSD, то все равно, производительность дисковой подсистемы прямо-пропорциальна количеству шпинделей.
Шпиндели дают айопсы, а для пользователя, все-таки, главная характеристика - латенси. Вот тут кеш очень помогает

Добрых дел мастер 14.04.2013 13:17

как глаз режет незакрытая кавычка

freddyb 17.04.2013 14:55

[quote=krotov;30010338] ни один вменяемый контроллер не даст включить отложную запись без наличия батареи, собственно поэтому кэш, в зеркале без батареи, будет работать в write through [/quote]
У меня есть встроенное в мать ASUS P5BV-E нечто под названием LSI Logic Embedded MegaRAID. Батарейкой и не пахнет. У него в настройках по умолчанию Write Through, но можно поставить и Write Back. Выходит, по вашему, настройка Write Back не сработает, или после перезагрузки опять вернётся в Write Through?

krotov 22.04.2013 11:45

Добрых дел мастер, для пользователя, все-таки, главная характеристика, чтоб не тормозило.

krotov 22.04.2013 11:56

freddyb, я ничего не знаю про Ваш контроллер, почитайте документацию.
Я пытался ответить почему [b]П.С.2 или однозначного ответа нет? [/b] А все свелось к обсуждению конкретных типов RAID, а потом и вовсе к конкретному железу.
Попробую короче, в трех взаимосвязанных пунктах:
1. Наличие кэша повышает производительность дисковой системы, т.к. подтверждение об успешном выполнении операций ввода/вывода сообщается после окончания операции ввода/вывода непосредственно в кэш, а не на физические диски(речь о шпиндельных дисках), которые разумеется работают медленнее чем микросхема кэша.
2. BBU служит для сохранения данных в энергозависимом кэшэ, после нештатного отключения электропитания.
3. Если в системе присутствует энергозависимый кэш и отсутствует BBU, после нештатного выключения электропитания, данные из кэша будут безвозвратно утеряны.
--
Дальше сами думайте, что, в этом случае бюудет с Вашей системой.

freddyb 23.04.2013 12:54

[quote=krotov;30129592] Дальше сами думайте, что, в этом случае будет с Вашей системой. [/quote]

В этом то и была цель создания этой темы: что будет? Если бы знал, не задавал бы вопрос: может ли раздел на зеркале пропасть полностью, безвозвратно, или максимум пропадут данные в кэше?

Добрых дел мастер 23.04.2013 15:05

2krotov
>для пользователя, все-таки, главная характеристика, чтоб не тормозило.
Именно. И латенси - ближайшая измеримая величина к "не тормозило".

Добрых дел мастер 23.04.2013 15:11

2freddyb. Вы, видимо, сильно недооцениваете "данные в кеше". Если они пропадут - может безвозвратно повредиться база данных, качественно поломаться файловая система (не "не сохранились изменения за последние N минут", а "сломались насовсем файлы, с которыми вы работали недавно")

krotov 23.04.2013 15:45

[em]И латенси - ближайшая измеримая величина к "не тормозило".[/em]
Не совсем так, повышение латенси, первый показатель проблем с производительностью, например, не хватает шпинделей ))

Добрых дел мастер 23.04.2013 16:06

2krotov
Совсем так. Низкая латенси - значит не тормозит. Неважно, какими средствами это достигается.

krotov 23.04.2013 16:18

[em]Шпиндели дают айопсы, а для пользователя, все-таки, главная характеристика - латенси. Вот тут кеш очень помогает[/em]
При расчете производительности массива, надо полагаться только на шпиндели, т.к. точно не известен процент записи/чтения из кэша. Т.е. повышение латенси происходит из-за малого количество шпиндельных дисков и/или из-за использования слишком медленных дисков (например SAS 7200 rpm вместо 10k или 15k rpm)

krotov 23.04.2013 16:22

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

Добрых дел мастер 23.04.2013 16:56

2krotov
>При расчете производительности массива, надо полагаться только на шпиндели,
Насколько я помню, для каждого характера нагрузки есть оценочный "кеш хит", который и закладывается при расчете
>Т.е. повышение латенси происходит из-за малого количество шпиндельных дисков и/или из-за использования слишком медленных дисков
>т.е. когда кэш заполняется, начинают выстраиваться очереди непосредственно к дискам, как результат повышаются задержки, кстати, длина очереди, так же измеримая велечина.
Повышение латенси происходит из-за того, что система недостаточно быстрая. Длина очереди - всего лишь вероятная причина высокого латенси (а может быть и нет. Очередь из 10 запросов к SSD-диску - это сколько милисекунд?)
Высокое латенси - это означает, что мы создали такую нагрузку на систему, какую она не способна выдержать (или технология в принципе не способна выдержать нужный уровень. Например, меньше 4-х милисекунд на чтение невозможно получить от диска. И если в ТЗ указано 2 милисекунды - диск не подходит), значит - система тормозит.

Добрых дел мастер 23.04.2013 17:01

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


Текущее время: 05:22. Часовой пояс GMT +3.