Обновить

Комментарии 58

10 лет назад я занимался проектами с использованием PostgreSQL. И в связи с этим на одной из конференций (highload, кажется) пообщался с нашими постгри-профовцами. О правильности подбора/организации железного сета для БД.

Так вот, они мне тогда посоветовали использовать hdd контроллеры "с батарейкой". Сейчас я моделей уже не помню, а тогда пошёл и нашёл - на рынке было много предложений.

Смысл железки заключался в следующем. У hdd/ssd есть батарейка и своя память. И потому при внезапном отключении питания батарейка позволит hdd ещё сколько-то проработать и своя память контроллера окажется сброшенной на диск с гарантией.

Это приводило к тому, что системный вызов fsync происходил условно-мгновенно.

А что сейчас с этими технологиями? Всё ещё нужны или канули в Лету?

или вот эта пара, что Вы описали (ssd внутри hdd) именно для этого и предназначена?

Они вам не советовали ups купить :)? Действительно некогда были контроллеры с отдельным питанием, но сейчас то вам это зачем ? Питание любого сервера и так обеспечивается, а обслуживать отдельные батарейки "такое себе".

Подозреваю с кешем на ssd ничего не будет и при потери питания. Он же там физически записан. Ну т.е. хороший контроллер доперепишет на hdd когда сможет.

Питание любого сервера и так обеспечивается

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

когда железо даёт гарантию чего-то, то эта гарантия всегда небесплатна.

Подозреваю с кешем на ssd ничего не будет и при потери питания. Он же там физически записан. Ну т.е. хороший контроллер доперепишет на hdd когда сможет.

да похоже это и есть реинкарнация той же технологии просто на современном уровне

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

ещё разок (мне кажется я эту мысль высказал, но она осталась незамеченной).
Сколько бы UPS вы ни делали, а софт будет писаться исходя из парадигмы, что его могут выключить в произвольный момент времени. По крайней мере, к БД это относится напрямую.

Потому аппаратные решения, позволяющие сократить время fsync будут популярны в любое время. И, как я понял, сегодня ssd заменяет ту батарейку, что была популярна 10-15 лет назад.

Дело тут не в батарейке, а в логике работы системы либо рейд контроллера

Вообще-то ведь даже в windows раньше точно можно было переключать политику. И если выбрать менее безопасные режимы, то все будет работать как вы пишите. Совершенно без батареек.

но если переключить режимы на менее безопасные, то станет менее безопасно :)

даже в windows раньше точно можно было переключать политику

Что винда, что Линукс предоставляют api для прямой записи, минуя системные кэши, а примерно любой софт, который сам беспокоится о сохранности собственных данных (те же сервера SQL), ими пользуется. Поэтому энергонезависимый кэш оказывается востребован вне зависимости от ситуации в ЦОДах и кэширования ОС.

 Питание любого сервера и так обеспечивается, а обслуживать отдельные батарейки "такое себе".

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

У вас есть опыт долговременного использования ионисторов ? Там не всё так благополучно, как кажется. Менять их тоже может понадобится. Ну т.е. это всё совершенно невечное.

Сейчас то вам это в сервере зачем ? Зарезервировано же обычно питание даже на уровне отдельных дублирующих бп.

У вас есть опыт долговременного использования ионисторов ? 

Видеорегистратор в авто 5 лет уже пашет. Пока жив и признаков сбоев не подает.

В RAID контроллерах уже лет 15 вместо BBU ставят FBWC (Flash-Backed Write Cache), там как раз ионистор в сочетании с NAND flash. Заряда ионистора с запасом хватает чтобы скинуть данные кэша на флеш память, и это намного надежнее, потому что ионистор в сравнении с LiPo аккумом практически вечный.

Регистратор 70mai с супер конденсатором ( так заявлял производитель, что по факту внутри я не знаю) работает с 2017 года, пока вроде не заметно деградации по питанию

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

Ну, по крайней мере у тех контроллеров, с которыми я дело имел.

Там есть два варианта - более старый, когда батарейка кэш подпитывает (а когда заряд кончился - то ой), и более новый, когда суперконденсатор нужен затем,чтобы кэш сбросить на ssd - после чего уже "условно сколько угодно" можно ждать, пока восстановится питание.

И да, в отличии от ИБП - это сработает независимо от ОС и даже от значительной части остального железа. Так что для любителей бюджетных решений с допустимыми рисками - ИБП "на всё", для тех, кому не охота рисковать - и ИБП, и контроллер с внутренним сохранением кэша.

Серьёзные NVMe SSD энтерпрайз класса на борту имеют конденсаторы предназначенные ровно для этого же - сбросить при потере питания данные из набортного RAM кэша на флеш. Если это накопитель в формфакторе обычной PCI-E карты, то там прям внушительный такой набор электролитов стоит. В M2 формфакторе конечно поскромнее но тоже есть.

Всё поменялось.
Вы говорите, скорее всего, о write-back cache.
Корпоративные SSD-диски, которые мы, в частности, используем, давно встраивают power loss protection. Поэтому сам по себе вопрос отпал.

Наличие батареи конденсаторов для сброса кеша у корпоративного диска никак его не защитит от того, что кеш аппаратного рейда уйдёт в небытие при неожиданной потере питания, если конечно включен write-back на этом самом рейде (благо многие рейды на попытку его включить без BBU либо красно-красно ругаются и предупреждают, либо просто шлют лесом и не включают).

Вообще рано хоронить HDD-диски, Western Digital разрабатывает HBD и Dual Pivot, что позволит приблизиться к скоростным характеристикам SSD. На сколько я знаю, диск в целом надежнее.

Не позволит ни то, ни то. Вернее, может сократить отрыв в сценариях линейного чтения, но в случайном ощутимо ничего не поменяет. А основные преимущества SSD - именно в скорости случайного доступа.

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

восемь - быстрее двух.

Потому что если вы с HDD снимете не 200 IOPS, а 800, это никак не поменяет того, что даже у SATA SSD все равно останется 80К, что на пару порядков больше. И не забываем, что скорости SSD тоже на месте не стоят.

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

Статистика по простому бытовому использованию, сколько умерло носителей за ~20+ лет пользования ПК:
0 HDD - примерно 7 было.
1 SSD - было 4 диска.
Плюс HDD еще в том, что он не умирает мгновенно, вполне вероятно что еще успеете сохранить нужные для себя данные перед смертью диска.

У вас просто слишком мало статистики.
И HDD и SSD иногда мрут мгновенно.

Но для hdd есть гораздо больше ведь вариантов реанимации. Включая "считать с блинов напрямую в условиях лаборатории"

Но HDD и повредить гораздо проще. Достаточно ноут с ним уронить.
Сколько их таким образом убито было?

Но HDD и повредить гораздо проще. Достаточно ноут с ним уронить

Понятие "уронить сервер" заиграло новыми красками 😁

Бойан! ;)

Ага! “-Вот Вася идиот!” Сервер уронил.

  • Что, опять обновления непроверенные накатил?

  • Нет, физически уронил."

У меня статистика ровно обратная. Из десятка примерно HDD в личном пользовании сдохли своей смертью 6. Из 5 SSD - ни один, замена только из-за морального устаревания (120 гигабайт нынче ни о чём)

С SSD иногда бывает такая раскоряка, что умирают несколько сразу. У меня такое было давно с нынче почившими OCZ - померли сразу два в зеркале RAID.

Может оно сейчас и получше, но недавние ошибки в прошивках вроде бы HP, когда они дозли просто через Х часов аптайма уверенности не добавляют... софт старых HDD всё же сильно проще.

В RAID-ах не только SSD массово мрут.

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

Возможно ошибка выжившего, но тем не менее.

Это Вы дисков пачками не покупали, типа из одной серии :)

померли сразу два в зеркале RAID.

(Зловещим голосом:) Осталось семь дней тысяч часов...

А сдохли, случайно, не одно-двухтерабайтные Сигейты?

Из тех, кого я могу припомнить сдохли:

  • 1 Quantum Fireball 6.5 Гб

  • 2 20-гиговых сигейта

  • 1 40-гиговый сигейт

  • 2 250-гиговых сигейта (не с концами, но покрылись бедами прилично)

  • 1 ноутбучный WD Blue

Это личные. По работе я HDD пачками списывал (и разбирал на магнитики), но к моменту массового пришествия SSD я с пользовательским железом уже перестал работать, так что сравнить не могу.

Неудачник серии были у всех производителей. Одни Дятлы чего стоили!

Свят-свят-свят...

В организации, где много десктопных компов, и не очень много серверов статистика такая, что потребительские hdd мрут, но не очень часто, потребительские ssd мрут заметно чаще, целый мешок (полу-)трупов уже от разных производителей. Серверные hdd мрут редко, за 20 лет всего несколько штук, серверных ssd за 10 лет пока не умерло ни одного из где-то полусотни intel и kioxia.

Backblaze по поводу надёжности с вами не очень согласится, думаю.

Да и я сам не так давно присматривал за фермой с около 35 тысяч дисков (150ПБайт или около того) - они, конечно, дохли, но совсем не так часто. Раз в неделю меняли несколько штук, вроде бы. И те часто по SMART, а не фактической смерти.

Внутри идут вращение шпинделя, позиционирование головки, трение. Из-за этого количество операций ввода-вывода IOPS физически ограничено.

Я все еще не могу убить 15-ти летний HDD торентокачалкой...

В то время как у меня уже два SSD подохло.

+1, включил быстренько мониторинг обновлений, который раз в пару минут для этой цели делал apt update(сей момент был упущен по принципу "ну не будет же он реально на конфиге по умолчанию каждый запуск это делать"). Потребительского TLC диска не стало через год по самодиагностике (остаточный ресурс 10%) и это с учетом того, что занятое место на диске не превышало 20% от его объёма. Блины же живут и есть не просят, до сих пор жив рейд-5 на Samsung F1 хардах.

У меня пара десятков Hitachi 3Тб уже трудится больше десяти лет 24х7, часов наработки на них 100 тысяч (11.3 года нон-стоп). И хоть бы один, гад, сдох :)

SMART
=== START OF INFORMATION SECTION ===
Model Family:     Hitachi Ultrastar 7K3000
Device Model:     Hitachi HUA723030ALA640
Serial Number:    MK0371YVH9Y0RA
LU WWN Device Id: 5 000cca 234d29bcb
Firmware Version: MKAOAA10
User Capacity:    3,000,592,982,016 bytes [3.00 TB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS T13/1699-D revision 4
SATA Version is:  SATA 2.6, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Tue Mar 31 19:48:28 2026 MSK
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000b   100   100   016    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0005   136   136   054    Pre-fail  Offline      -       83
  3 Spin_Up_Time            0x0007   146   146   024    Pre-fail  Always       -       525 (Average 534)
  4 Start_Stop_Count        0x0012   100   100   000    Old_age   Always       -       233
  5 Reallocated_Sector_Ct   0x0033   100   100   005    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000b   100   100   067    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0005   123   123   020    Pre-fail  Offline      -       31
  9 Power_On_Hours          0x0012   086   086   000    Old_age   Always       -       99512
 10 Spin_Retry_Count        0x0013   100   100   060    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       178
192 Power-Off_Retract_Count 0x0032   098   098   000    Old_age   Always       -       2758
193 Load_Cycle_Count        0x0012   098   098   000    Old_age   Always       -       2758
194 Temperature_Celsius     0x0002   120   120   000    Old_age   Always       -       50 (Min/Max 8/71)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0022   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0008   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x000a   200   200   000    Old_age   Always       -       1

Недавно поменял часть их только потому, что размер уж очень маленький...

Раньше было лучше 😁

  • HDD выдаёт около 150–200 IOPS. Задержка — миллисекунды.

  • SSD (SATA/SAS) — десятки тысяч IOPS.

  • SSD NVMe — сотни тысяч IOPS.

Разница — не в разы, а на порядки.

Как с жптишкой пообщался

Вы выдаете желаемое за действительность

Я бы только не торопился совсем уж хоронить HDD. Для архивов, бэкапов и всякого редкого чтения они ещё долго проживут, просто как рабочая основа под живую многопользовательскую нагрузку это уже сильно компромиссная штука

Нам проще и надёжнее обслуживать парк SSD (нет движущихся частей, ниже риск внезапного отказа)

Вы хороший человек, но немного наивный (C)

С внезапными отказами у SSD всё "хорошо"

Зачастую мрут быстро.

И "надежно" захватывают с собой информацию.

SSD конечно должен перейти, в случае отказа, в режим только чтение... Но так происходит далеко не всегда.

Главная проблема HDD в том, что о потере данных узнаешь только при обращении к ним. Проблемы с механикой компенсирует RAID. По поводу кэширования. Увы, но ресурс SSD тает быстро. Из-за этого, в свое время, перестали выпускать т.н. "гибридные" диски. Вообще можно было бы рассмотреть вариант с кэшированием в оперативную память с дальнейшим разделением. Мелкие файлы копятся и пачкой отправляются в SSD, крупные - сразу пишутся на жесткий диск.

Проблемы с механикой компенсирует RAID

Только RAIDZ2, только хардкор!

ZFS он, скорее, не от механики, а от всяких bit rot и прочих silent data corruption. Ну и память ECC - must have.

RAIDZ2 вполне себе от механики, потому что он выдерживает выпадание двух дисков одновременно, а механика тенденции сыпаться вся одновременно, как SSD, не имеет.

Рейд ничего не компенсирует, он просто повышает доступность. Механика все равно изнашивается, а ребилд терабайтного массива на hdd может занять несколько суток

У нас тоже есть тариф с HDD-хранилищем, но он довольно давно тариф с HDD-содержащим хранилищем, потому что уже пять-шесть лет (в зависимости от страны) мы закупаем SSD вместо HDD. Совсем скоро последние хрустящие диски уйдут из эксплуатации, и это будет тариф типа SSD с ограничением по скорости для совместимости с легаси-ценами.

То есть, в описании тарифа будет обещано HDD , а по факту это будут SSD ?

Для бэкапов и холодных архивов механика все еще топ. Списывать hdd в утиль пока рано, магнитные ленты это вообще отдельный мир для параноиков с петабайтами логов

У меня есть сигейт 120гб, который работает уже не помню сколько лет, вот же делали вещи :)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Информация

Сайт
ruvds.com
Дата регистрации
Дата основания
Численность
11–30 человек
Местоположение
Россия
Представитель
ruvds