LINUX.ORG.RU

Как лучше сделать кеширование на SSD?

 , , , ,


1

3

По итоам предыдущего треда решил делать не так, как хотел изначально (потому что это вряд ли осуществимо), а использовать SSD под кеш с дублированием данных на HDD (чтобы если отвалится SSD, ничего не потерять).
Но тут у меня тоже возник вопрос выбора. Сделать ли это с использованием btrfs и dm-cache/bcache/etc, или же зафигачить всё на LVM? В btrfs привлекает оптимизированность под SSD, но отталкивает потенциальная нестабильность. В LVM привлекает возможность сделать нативно кеш и то, что ещё не видел отзывов о том, что с LVM всё ломается и падает.
Короче, что бы вы выбрали и почему (желательно ответить как можно аргументированней)?
ZFS не предлагать, там TRIM нет.

★★★★★

Я для кэша использую LVM, потому что оно не дает выстрелить в ногу и при этом по сути просто обертка над dm-cache. Минусы: кэшировать можно только отдельные LV и ресайзить их можно только после отключения кэша, ну и всякие мелочи типа такого.

Сейчас сделал для теста раздел btrfs поверх lvm чтобы там образы виртуалок хранить. Тестирую как хорошо будет работать со сжатием и дедупликацией.

o-
()
Ответ на: комментарий от o-

Сейчас сделал для теста раздел btrfs поверх lvm чтобы там образы виртуалок хранить.

Это очень, очень плохая идея http://www.ilsistemista.net/index.php/virtualization/47-zfs-btrfs-xfs-ext4-an...

King_Carlo ★★★★★
()
Последнее исправление: King_Carlo (всего исправлений: 1)

У меня вопрос в тему всем. Допустим, есть LVM cache на SSD (writethrough, не writeback). На HDD есть EFI-раздел + криптоконтейнер, в криптоконтейнере есть LVM, поверх LVM - файловые системы и своп.

Если накроется SSD, можно ли просто так взять и отнести его в магазин, сдать по гарантии? Если на SSD не было криптоконтейнера dm-crypt, сможет ли кто-то теоретически что-то конфиденциальное увести?

Или нужно на SSD делать криптоконтейнер на весь диск, а поверх него - уже LVM cache writethrough?

ns_ramesses
()
Ответ на: комментарий от ns_ramesses

Почему он должен выйти из строя? Максимум что будет - это деградация скорости записи. Ну и LVM таки может discard'ить свободные экстенты, не выделенные под LV.

Deleted
()
Ответ на: комментарий от Deleted

Почему он должен выйти из строя

1. Рассогласование зарядов затворов транзисторов в ячейках. Ячейки будут становиться read-only.

2. Плохая изоляция заряда.

3. Влияние повышенных температур.

4. Возможность повреждения данных в соседних ячейках NAND при чтении. Стопиццот чтений ячейки подряд без перезаписи может повредить ее и соседние.

5. К постоянно работающему компу это не относится, но если SSD отключить и положить на полочку на три недельки, данных во многих ячейках может не стать.

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

ns_ramesses
()
Ответ на: комментарий от ns_ramesses

И какое отношение LVM имеет ко всему этому?

Deleted
()

А я вот просто жесткими дисками пользуюсь. Один на NTFS, другой на ext4 со свапом. Всё работает прекрасно.

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

otasan
()

Btrfs на HDD не советую.

Deleted
()

Я бы выбрал размещение горячих данных на SSD, без каких-либо кэшей. Их не так много, чтобы городить лишние слои.

intelfx ★★★★★
()
Ответ на: комментарий от ns_ramesses

Насколько вообще TRIM необходим в 2016 году?

Настолько, насколько был нужен всегда (и будет нужен всегда). Прошивка собирается без libastral и понятия не имеет, какие блоки нужно регулярно переписывать на новые места, а какие могут этим самым новым местом послужить «просто так».

intelfx ★★★★★
()
Ответ на: комментарий от ns_ramesses

SSD сейчас - гнилая технология, годится только под LVM cache, имхо.

И вот ты сейчас такой взял и привёл репрезентативную статистику смертей SSD. Нести ахинею-то все горазды.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от sudopacman

Но работоспособность системы при отключении SSD — одна из главных моих целей.

Хреновая цель. Больше ничего не могу сказать.

Зачем?

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

В смысле 'зачем'? А если SSD того? У меня это уже было, не хочу чтобы после этого ОС превратилась в тыкву и надо было 3 часа танцевать с бекапами.

sudopacman ★★★★★
() автор топика
Ответ на: комментарий от sudopacman

Нормальную схему в прошлом треде предложил ещё: накатить btrfs на ssd и раз в сутки и после каждого обновления делать btrfs send корня и хомяка на hdd. В случае чего просто загрузитесь с hdd и будете работать дальше.

Deleted
()

а что за тред был, где ssd дохнут как мухи ?

x905 ★★★★★
()

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

Deleted
()
Ответ на: комментарий от o-

btrfs поверх lvm

гипербессмысленное действо

как хорошо будет работать со сжатием и дедупликацией.

не будет

vxzvxz ★★★
()
Ответ на: комментарий от ns_ramesses

Голосую за 3) и, наверное 5) тые пункты. У меня вот +обычный нотХДД за два дня разогрелся- ещё на шесть градусов (тепло становится), даже чересчур?

anonymous
()

Идея ниочем. Как уже сказали, btrfs с LVM — очень плохая идея. Кроме того, зачем городить еще один слой? Если ты параноик и у тебя много денег, делай RAID1 из SSDшек, если ты параноик и нищий, то делай бэкапы (особенно если у тебя на SSD только система). Собственно, бэкапы придуманы в том числе для того, чтобы восстановить данные при выходе из строя носителя.

Хочу напомнить, что жесткие диски (особенно современные) тоже выходят из строя, в том числе без предупреждения от смарта.

lu4nik ★★★
()

LVM привлекает возможность сделать нативно кеш

а нужен ли он этот кэш? каков профит? как влияет на количество операций ввода/вывода? что будет с кэшем по потере питания? например тестил я writeback на рейдах iops-ы растут, а линейная скорость просаживается по сравнению с write, кто вам сказал что отложенная запись это гуд? кэш а-ля writethrough - писать сразу в два места, а смысл?

vxzvxz ★★★
()
Ответ на: комментарий от King_Carlo

Умножаю плохость идеи с btrfs на lvm.

Хотя, ТС славится своим наркоманством, так что вряд ли его это остановит.

r3lgar ★★★★★
()
Ответ на: комментарий от sudopacman

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

vxzvxz ★★★
()
Ответ на: комментарий от vxzvxz

а нужен ли он этот кэш? каков профит?

Тестил на рабочей машине flashcache и b-cache. Профит заметен особенно при сборке крупных проектов да и вообще при частых операциях записи/чтения, тем более что хард у меня был не самый быстрый. Такую штуку проще всего рассматривать как персистентный файловый кеш большого объёма, т.е. при заполнении кеша профита нет, но когда в него попали все часто используемые данные все становится значительно шустрее, более того его состояние сохраняется между перезагрузками, т.е. при следующем включении система будет шустрее сразу со старта.

ya-betmen ★★★★★
()
Ответ на: комментарий от Deleted

пичал. А в лвм есть замена функционалу TRIM?

sudopacman ★★★★★
() автор топика
Ответ на: комментарий от Deleted

А можно схему опыта? А то все источники утверждают, что все работает из коробки, а если еще и issue_discards = 1 поставить, то и lvreduce/lvremove будет тримить освободившееся место.

deadNightTiger ★★★★★
()
Ответ на: комментарий от sudopacman

Ну там же написано, что

As such it does not seem to be required for «regular» TRIM requests (file deletions inside a filesystem) to be functional.

Трим будет работать только для свободных экстентов в пуле LVM, не для блоков фс.

Deleted
()
Ответ на: комментарий от sudopacman

Не то предложение скопипастил, там должно быть первое из синего блока.

А в этом говорится что issue_discards не требуется для обычного трима. Хотя у меня с ним, что без, трим не работал.

Deleted
()
Ответ на: комментарий от deadNightTiger

SSD - Samsung 840 evo, насколько помню, он поддерживает трим. Без LVM не проверял.

lsblk -D /dev/sdb
NAME                DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sdb                        0      512B       2G         0
├─sdb1                     0      512B       2G         0
├─sdb2                     0      512B       2G         0
├─sdb3                     0      512B       2G         0
├─sdb4                     0      512B       2G         0
├─sdb5                     0      512B       2G         0
├─sdb6                     0      512B       2G         0
└─sdb7                     0      512B       2G         0
  ├─lvm1-root              0      512B       2G         0
  ├─lvm1-home              0      512B       2G         0
  └─lvm1-containers        0      512B       2G         0
Deleted
()
Последнее исправление: MyLittleLoli (всего исправлений: 1)
Ответ на: комментарий от Deleted

Ну так у вас (на уровне блок-девайса) TRIM работает, если еще discard в fstab есть, то и на уровне ФС работает. А нули в hdparm быть вовсе не обязаны:

There are different types of TRIM defined by SATA Words 69 and 169 returned from an ATA IDENTIFY DEVICE command:

  • Non-deterministic TRIM: Each read command to the Logical block address (LBA) after a TRIM may return different data.

  • Deterministic TRIM (DRAT): All read commands to the LBA after a TRIM shall return the same data, or become determinate.

  • Deterministic Read Zero after TRIM (RZAT): All read commands to the LBA after a TRIM shall return zero.

https://en.wikipedia.org/wiki/Trim_(computing)#ATA

deadNightTiger ★★★★★
()
Последнее исправление: deadNightTiger (всего исправлений: 1)
Ответ на: комментарий от Deleted

интел смарт кэш..

Софтовое проприетарное вендовое говно.

Deleted
()

Короче, остановился на варианте с btrfs. Сейчас на HHD установлю генту, а потом, как установлю, на работающей системе попробую настроить кеш.

sudopacman ★★★★★
() автор топика
Ответ на: комментарий от sudopacman

Btrfs - ФС, основанная на Copy-on-write. То есть, в ней высокая фрагментация by design. Советую готовиться к дико харатящему харду и тормозам.

Deleted
()
Ответ на: комментарий от Deleted

Ну так CoW, насколько я знаю, можно выключить или включить автоматическую дефрагментацию.
http://forum.ubuntu.ru/index.php?topic=269710.0 тут вон тестирование показывает, что производительность довольно хорошая.

sudopacman ★★★★★
() автор топика
Последнее исправление: sudopacman (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.