Старый вопрос про кэш записи без BBU Много лет назад выяснил, что на контроллере без bbu кэш записи надо отключать. Отключил на серверах с контроллерами без bbu. Но что-то опять сомнение взяло... Есть WS2003 и RAID1 на двух физических дисках HDD. На RAID-контроллере нет батарейки. Правильно ли я понимаю: Если я включу кэш записи, то самая большая неприятность, которая может случиться, это то, что при неправильном выключении сервера (например ИБП сгорел) мой RAID1 может разбиться и будет долго собираться, т.е. сам диск на сервере будет доступен, но на время rebuild я потеряю в производительности дисковой системы? П.С. Как я понимаю, для заданного мною вопроса не важно, какой тип контроллера (программно-виндовый, программно-встроенно-материночный или полупрограммно-дискретно-контроллерный) и о каком кэше речь (на физическом диске или на контроллере или оба сразу). П.С.2 или однозначного ответа нет? |
ты потеряешь очередь\речь о кэше физического диска\риск потеря данных а вот каких именно зависит от текущей операции |
пользуй ssd в качестве диска кэширования в рэйд масиве все современные контроллеры в том или ином виде умеют так делать |
freddyb. Однозначного ответа, что произойдет нет. Объясню почему: если кэш не используется, то ответ (в данном случае будем говорить о процедуре записи на диск) об успешной записи будет получен, собственно, после успешной записи на [b][u]диск[/u][/b]; если кэш используется, то ответ об успешной записи будет получен, собственно, после успешной записи в [b][u]кэш[/u][/b]. Что произойдет, в случае аварийного отключения питания, зависит от типа файловой системы и/или от того, как карты лягут. Т.к. [b]блоки данных[/b], которые были в кэше, при отсутствии батареи, разумеется, будут утеряны. PS: Вышесказанное справедливо в случае использования RAID уровней 5 и 6, т.к. в этом случае в кэше хранятся результаты математических операций, до сбрасывания их на диск, ведь какое-то время их надо где-то хранить в момент расчета контрольных сумм. "Зеркало", как правило, отправляет ответ об успешной записи непосредственно на диск, а кэш использует для чтения, соответственно данные потеряны не будут, в случае аварийного выключения электропитания. Но и производительность RAID-1 с кэшом и без него не сильно отличается (в обычных контроллерах, конечно, а не в специализированных массивах хранения). PSPS: Сейчас уже вовсю используется энергонезависимая кэш-память. |
PSPSPS, хотя, в случае RAID 5 6, на "глупых" безтранзакционных контроллерах, RAID просто развалится, не знаю делают еще такие контроллеры или уже нет. |
3-krotov > спасибо, про энергонезависимую кэш-память нынче даж не знал |
Итак, мой RAID1 с файловой системой NTFS при аварийном завершении питания, кроме того, что может развалиться, может ещё потерять данные, т.е. некий файл на диске останется доступным, но могут пропасть последние изменения, которые в него вносились. Ну тогда об чём речь, последние изменения в документе\базе_данных_ 1с\ещё_в_чём_то можно внести опять, это не так опасно. Главное, сам документ\база_данных_ 1с\ещё_чего_то останется живым и доступным. P.S. контроллеров, где хочу включить кэш, собственно два: встроенный интелловский MegaRaid и HP Smart Array E200i. На последнем кэш есть, но отдан под другие диски, а RAID1 на 2-х дисках SATA остался без контроллерного кэша и кэш физического диска отключён. |
2krotov >"Зеркало", как правило, отправляет ответ об успешной записи непосредственно на диск, а кэш использует для чтения, Это действительно так? Насколько я помню (на старых мегарейдах) включение writeback было совсем не привязано к типу рейда. >Но и производительность RAID-1 с кэшом и без него не сильно отличается Разве так? Произвдительность диска - десятки\сотни айопсов, а кеша - тысячи. |
Добрых дел мастер, [em]Насколько я помню (на старых мегарейдах) включение writeback было совсем не привязано к типу рейда.[/em] Не привязано, но привязано к наличию/отсутствию BBU, ни один вменяемый контроллер не даст включить отложную запись без наличия батареи, собственно поэтому кэш, в зеркале без батареи, будет работать в write through, т.е. скорость записи останется той-же, что и без кэша. RAID 5,6, вообще не будет работать, т.к. writeback без батареи не включится и промежуточные данные хранить негде будет. [em]Произвдительность диска - десятки\сотни айопсов, а кеша - тысячи.[/em] А толку? Супер-быстрый кэш, объемом пару гигов, куда в итоге данные-то пишет? Это вендоры СХД любят писками мериться у кого ёпсов больше, только то что ёпсы из кэша, написано очень маленьким шрифтом в конце документов. Если не рассматривать SSD, то все равно, производительность дисковой подсистемы прямо-пропорциальна количеству шпинделей. |
2krotov >Не привязано, но привязано к наличию/отсутствию BBU Согласен, но я ведь про кеш, а не про батарейку. (вообще, я подразумевал, что батарейка есть, так как writeback действительно не заработает без нее) >RAID 5,6, вообще не будет работать, т.к. writeback без батареи не включится и промежуточные данные хранить негде будет. Вот это неправда. У меня лично работал raid5 без батарейки (с write through). >А толку? Супер-быстрый кэш, объемом пару гигов, куда в итоге данные-то пишет? Это только при характере нагрузки близком к "равномерная последовательная запись" (например, видеорегистратор) кеш не имеет смысла (так как заполнится и снова упрется в дисковую подсистему), а когда запись неравномерна - очень помогает(мне лично очень помогало на файловом сервере 3000+ пользователей. Разница между "до батарейки" \(читай до writeback\) и "после батарейки была значительна). >Если не рассматривать SSD, то все равно, производительность дисковой подсистемы прямо-пропорциальна количеству шпинделей. Шпиндели дают айопсы, а для пользователя, все-таки, главная характеристика - латенси. Вот тут кеш очень помогает |
как глаз режет незакрытая кавычка |
[quote=krotov;30010338] ни один вменяемый контроллер не даст включить отложную запись без наличия батареи, собственно поэтому кэш, в зеркале без батареи, будет работать в write through [/quote] У меня есть встроенное в мать ASUS P5BV-E нечто под названием LSI Logic Embedded MegaRAID. Батарейкой и не пахнет. У него в настройках по умолчанию Write Through, но можно поставить и Write Back. Выходит, по вашему, настройка Write Back не сработает, или после перезагрузки опять вернётся в Write Through? |
Добрых дел мастер, для пользователя, все-таки, главная характеристика, чтоб не тормозило. |
freddyb, я ничего не знаю про Ваш контроллер, почитайте документацию. Я пытался ответить почему [b]П.С.2 или однозначного ответа нет? [/b] А все свелось к обсуждению конкретных типов RAID, а потом и вовсе к конкретному железу. Попробую короче, в трех взаимосвязанных пунктах: 1. Наличие кэша повышает производительность дисковой системы, т.к. подтверждение об успешном выполнении операций ввода/вывода сообщается после окончания операции ввода/вывода непосредственно в кэш, а не на физические диски(речь о шпиндельных дисках), которые разумеется работают медленнее чем микросхема кэша. 2. BBU служит для сохранения данных в энергозависимом кэшэ, после нештатного отключения электропитания. 3. Если в системе присутствует энергозависимый кэш и отсутствует BBU, после нештатного выключения электропитания, данные из кэша будут безвозвратно утеряны. -- Дальше сами думайте, что, в этом случае бюудет с Вашей системой. |
[quote=krotov;30129592] Дальше сами думайте, что, в этом случае будет с Вашей системой. [/quote] В этом то и была цель создания этой темы: что будет? Если бы знал, не задавал бы вопрос: может ли раздел на зеркале пропасть полностью, безвозвратно, или максимум пропадут данные в кэше? |
2krotov >для пользователя, все-таки, главная характеристика, чтоб не тормозило. Именно. И латенси - ближайшая измеримая величина к "не тормозило". |
2freddyb. Вы, видимо, сильно недооцениваете "данные в кеше". Если они пропадут - может безвозвратно повредиться база данных, качественно поломаться файловая система (не "не сохранились изменения за последние N минут", а "сломались насовсем файлы, с которыми вы работали недавно") |
[em]И латенси - ближайшая измеримая величина к "не тормозило".[/em] Не совсем так, повышение латенси, первый показатель проблем с производительностью, например, не хватает шпинделей )) |
2krotov Совсем так. Низкая латенси - значит не тормозит. Неважно, какими средствами это достигается. |
[em]Шпиндели дают айопсы, а для пользователя, все-таки, главная характеристика - латенси. Вот тут кеш очень помогает[/em] При расчете производительности массива, надо полагаться только на шпиндели, т.к. точно не известен процент записи/чтения из кэша. Т.е. повышение латенси происходит из-за малого количество шпиндельных дисков и/или из-за использования слишком медленных дисков (например SAS 7200 rpm вместо 10k или 15k rpm) |
т.е. когда кэш заполняется, начинают выстраиваться очереди непосредственно к дискам, как результат повышаются задержки, кстати, длина очереди, так же измеримая велечина. |
2krotov >При расчете производительности массива, надо полагаться только на шпиндели, Насколько я помню, для каждого характера нагрузки есть оценочный "кеш хит", который и закладывается при расчете >Т.е. повышение латенси происходит из-за малого количество шпиндельных дисков и/или из-за использования слишком медленных дисков >т.е. когда кэш заполняется, начинают выстраиваться очереди непосредственно к дискам, как результат повышаются задержки, кстати, длина очереди, так же измеримая велечина. Повышение латенси происходит из-за того, что система недостаточно быстрая. Длина очереди - всего лишь вероятная причина высокого латенси (а может быть и нет. Очередь из 10 запросов к SSD-диску - это сколько милисекунд?) Высокое латенси - это означает, что мы создали такую нагрузку на систему, какую она не способна выдержать (или технология в принципе не способна выдержать нужный уровень. Например, меньше 4-х милисекунд на чтение невозможно получить от диска. И если в ТЗ указано 2 милисекунды - диск не подходит), значит - система тормозит. |
И наоборот, хоть миллион айопсов нагрузки ты создал на систему хранения - если латенси достаточно низкое - система справляется. |
Текущее время: 05:22. Часовой пояс GMT +3. |