Идея уско­рить работу жес­тких дис­ков исполь­зовани­ем твер­дотель­ных накопи­телей не нова. «Гиб­ридные» дис­ки SSHD, мно­гочис­ленные решения для про­мыш­ленных дата‑цен­тров и мно­гоуров­невые кеши в про­фес­сиональ­ных NAS сущес­тво­вали дав­но. В отно­ситель­но дос­тупных домаш­них NAS такая воз­можность тоже есть. Но сто­ит ли овчинка выдел­ки? Мы про­вели тес­ты и готовы поделить­ся резуль­татами.

В домаш­них сетевых накопи­телях воз­можность соз­дать кеш на быс­тром SSD была всег­да, но тре­бова­ла уста­нов­ки твер­дотель­ного накопи­теля в один из дос­тупных сло­тов для дис­ков. Из‑за это­го осо­бой популяр­ностью она не поль­зовалась. Ситу­ация начала менять­ся три года назад с выходом Synology DS918+. В этой модели два выделен­ных разъ­ема для ком­пак­тных и быс­трых SSD, выпол­ненных в форм‑фак­торе M.2. В акту­аль­ной линей­ке Synology для домаш­них поль­зовате­лей и энту­зиас­тов (DS720+, DS420+ и DS920+) так­же есть сло­ты для кеша NVME. С уче­том дос­таточ­но низ­кой сто­имос­ти сов­ремен­ных NVME SSD труд­но не усту­пить соб­лазну запол­нить два пус­тующих сло­та.

 

Потенциальные проблемы

В боль­шинс­тве ста­тей раз­дел о потен­циаль­ных проб­лемах может рас­полагать­ся бли­же к кон­цу тек­ста, если вооб­ще при­сутс­тву­ет, но здесь явно не тот слу­чай. Тех­нология кеширо­вания с исполь­зовани­ем NVME — пал­ка о двух кон­цах, спо­соб­ная при­водить к вне­зап­ным перезаг­рузкам устрой­ства, неожи­дан­ной потере записы­ваемых дан­ных, дег­радации все­го тома с пос­леду­ющим дли­тель­ным (и неоче­вид­ным) вос­ста­нов­лени­ем и исклю­читель­но быс­тро­му, не оправдан­ному записы­ваемы­ми объ­ема­ми дан­ных исчерпа­нию ресур­са переза­писи яче­ек кеширу­ющих SSD. При этом боль­шинс­тва проб­лем мож­но избе­жать, пра­виль­но выб­рав накопи­тели и пра­виль­но нас­тро­ив кеш. К сожале­нию, боль­шинс­тво опи­сан­ных ниже момен­тов не наш­ли отра­жения в докумен­тации Synology, из‑за чего поль­зовате­ли сно­ва и сно­ва нас­тупа­ют на одни и те же граб­ли.

 

Спонтанные перезагрузки с потерей данных

При интенсив­ном исполь­зовании кеша в режиме r/w (для это­го тебе при­дет­ся соз­дать зер­каль­ный мас­сив из двух NVME-накопи­телей) некото­рые поль­зовате­ли отме­чали неожи­дан­ные перезаг­рузки устрой­ства, при­водив­шие к потере толь­ко что записан­ных дан­ных (воз­никно­вение так называ­емой write hole). К при­меру, поль­зователь DS918+ нас­тро­ил пару не самых дешевых дис­ков Samsung 970 Evo в качес­тве кеша, но от потери дан­ных его это не спас­ло. Ана­логич­ную проб­лему об­сужда­ют в сосед­ней вет­ке. С чем это свя­зано?

Де­ло здесь в том, что в некото­рых моделях NVME-накопи­телей, осно­ван­ных на тех­нологи­ях TLC и QLC, пос­ле исчерпа­ния объ­ема SLC-кеша могут воз­никать задер­жки обра­бот­ки команд записи. Вот готовый рецепт. Возь­ми пару самых дешевых NVME SSD самого малень­кого объ­ема. Вклю­чи кеш на чте­ние‑запись и не забудь акти­виро­вать режим сквоз­ного кеширо­вания пос­ледова­тель­ных опе­раций. Отве­ди на кеш весь дос­тупный объ­ем накопи­телей — и начинай запись.

Все сов­ремен­ные SSD кеширу­ют опе­рации записи. Записы­ваемые дан­ные спер­ва попада­ют в область псев­до-SLC, запись в которую про­исхо­дит очень быс­тро. Накопи­тель будет уплотнять дан­ные, переза­писы­вая их в TLC/QLC-ячей­ки в режиме прос­тоя.

По­ток дан­ных не прек­раща­ется. Через корот­кое вре­мя SLC-буфер перепол­няет­ся, и кон­трол­леру SSD при­ходит­ся одновре­мен­но при­нимать новые дан­ные и уплотнять уже записан­ные. Сво­бод­ные бло­ки быс­тро закан­чива­ются, и к опе­рации уплотне­ния добав­ляет­ся опе­рация очис­тки ранее записан­ных бло­ков — а она в таких накопи­телях очень мед­ленная. Через корот­кое вре­мя кон­трол­лер зах­лебыва­ется, и оче­ред­ная попыт­ка записи при­водит к тайм‑ауту.

На­пом­ню, дис­ки NVME под­клю­чают­ся не через кон­трол­лер SATA, который спо­собен самос­тоятель­но обра­ботать ошиб­ку, а нап­рямую к шине PCIe. Поль­зовате­ли модели DS918+ отме­чали, что воз­никно­вение тайм‑аута при записи при­води­ло к спон­танной перезаг­рузке устрой­ства с пос­леду­ющей дег­радаци­ей как кеша, так и все­го тома (кеш r/w ста­новит­ся его неотъ­емле­мой частью).

По­доб­ные ошиб­ки отме­чали поль­зовате­ли раз­ных моделей Kingston и ADATA с кон­трол­лерами SMI. Отдель­ные поль­зовате­ли жа­луют­ся на пери­оди­чес­кие ошиб­ки тайм‑аута с накопи­теля­ми WD Black; в то же вре­мя дис­ки Samsung 970 Evo в воз­никно­вении этой ошиб­ки не замече­ны (впро­чем, как и любые дру­гие дис­ки, эти модели так­же под­верже­ны преж­девре­мен­ному изно­су).

Спра­вед­ливос­ти ради — я не слы­шал о воз­никно­вении подоб­ных оши­бок в устрой­ствах поколе­ния 2020 года.

 

Преждевременное исчерпание ресурса SSD

Поль­зователь DS918+ и пары Samsung 960 Evo 256GB от­меча­ет преж­девре­мен­ное исчерпа­ние ресур­са SSD. На SSD записа­но все­го 30 Тбайт дан­ных, что даже отда­лен­но не приб­лижа­ется к заяв­ленно­му про­изво­дите­лем ресур­су. Брак? Воз­можно, но малове­роят­но: слу­чай не еди­нич­ный.

В этом и подоб­ных слу­чаях проб­лема в фак­торе коэф­фици­ента уси­ления записи (write amplification), а точ­нее — несов­падение опти­маль­ного для SSD сце­нария работы с фак­тичес­ким.

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Оставить мнение