LINUX.ORG.RU
ФорумAdmin

Трёх уровневое кэширование для HDD.


0

2

На сервере есть HDD (SATA), SSD. Можно ли на СentOS5 реализовать кэш таким образом, что бы данные с диска кэшировались в памяти, при вытеснении из памяти кэшировались на SSD и при нехватке SSD старые данные удалялись с SSD. То же самое с отложенной записью на HDD, сначала на SSD, и уже потом, по мере возможности на HDD c SSD, с какой нибудь оптимизацией для того, что бы данные были как можно меньше фрагментированы.
Кажется вполне логичное решения для ускорения работы с SATA дисками (когда они по несколько терабайт), но чего то такого решения не нашёл.


«трехуровневый» пишется слитно :3

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

поэтому я и прошу описать где именно затык

dreamer ★★★★★
()

изобрели zfs? O_o

zgen ★★★★★
()

ZFS имеет две замечательные функции, которые резко увеличивают производительность операций чтения. Это ARC и L2ARC. ARC предназначена для замены кэша. ARC - это очень быстрый кэш, располагающийся в ОЗУ - памяти сервера.Объем доступной ARC памяти это обычна вся память сервера минус 1ГБ.

Например, Ваш ZFS сервер имеет с 12 ГБ ОЗу имеет 11ГБ выделенной под AR, что значит что ZFS сервер сможет закешировать до 11ГБ часто-используемых данных. То есть любые запросы к частоиспользуемым данных будут идти не на медленный жесткий диск, а прямо к в память. Это значительно повышает скорость доступа к часто-используемым данным.

Чем больше памяти в сервере тем больше Вы можете выделить ARC, в конце концов это вопрос стоимости. Вот тут нам помогу L2ARC - это адаптивный кэш второго уровня. В ZFS система L2ARC обычно называются кэширующими дисками (cache drivers).

Быстро-быстро, вприпрыжку бежать и читать про L2ARC >>>

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

Потому что столько обращений к S-ATA дискам на чтение, что они перестали справляться по количеству выдаваемых IOPS. Пока решил проблему увеличением памяти с 8 гигов до 32 на сервере. Теперь многое в кэше, который в памяти. Но время от времени бывает нет-нет да и начнутся лаги, когда из кэша вытеснятся «горячие» данные кем-нибудь. Вот и пришла идея использовать в качестве второго уровня кэша SSD диски, это ещё + 256GB кэша (два SSD в RAID0). Данное решение будет дешевле чем организовывать хранилище из SAS дисков хотя бы объёмом в половину меньшего, чем текущий объём.

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

2iZEN. ARC - это тот же файловые кэш в Linux, а вот L2ARC как бы получить на Linux-е без FUSE.

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

Просто сказал программистам заливать на отдельный сервер самые популярные файлы и отдавать с него. Остальное держать на основном сервере.

Это не то же самое что ты предложил, но тоже задачу решает. Вместо отдельного сервера можно использовать отдельный ssd. Ну а с памятью ничего не сделаешь, тут ещё очень многое можно улучшить.

Я так же видел патч для freebsd(от Сысоева) который позволял как можно дольше держать те страницы памяти к которым больше всего обновлений. Но результаты бенчмарков не выявили серьёзных преимуществ такого подхода.

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

>>Потому что столько обращений к S-ATA дискам на чтение

если записи немного, может стоит попробовать собрать raid1 из этих 4 дисков? 4-way, естественно Ж)
в некоторых случаях помогает.

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

Что-то мне кажется что один ssd уделает «скока-хошь-raid» на обычных винтах ибо обычные винты у меня бОльшую часть временем занимаются позиционированием головок.

Блин, вот энергию бы лора да в нормальное русло. Давно бы уже сделали :)

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

Давно уже сделали. Линаксоеды тормозят только.

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

>Что-то мне кажется что один ssd уделает «скока-хошь-raid» на обычных винтах

уделает-то да, но не всегда это оправдано по затратам, да и не только seek'ом едины
потому порой лучше/выгоднее комбинировать.

Блин, вот энергию бы лора да в нормальное русло. Давно бы уже сделали :)


4 звезды жеж, давно пора понять, что тут эта масса не управляется, разве что на уровне коллективно-бессознательного попробовать, хотя и так большинство :D

Давно бы уже сделали :)


дак давно сделали, аж 4 порта, только в каком они все состоянии без понятия и проверять тоже особо не тянет ))

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

да и не только seek'ом едины

я поэтому и уточнил что в моих условиях.

давно пора понять

просто мечтаю в слух

аж 4 порта

не интересно, жду когда в btrfs запилят. Вообще, возникла сумасшедшая идея на fuse написать обёртку которая это всё сделает. Но пока лень.

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

>жду когда в btrfs запилят А btrfs обещают функционал кэширования не только в памяти, но и на более быстрых устройствах чем HDD? ИМХО, в моих условиях, 4TB дискового массив на SATA, плюс 256GB для кэша на SSD и 16GB кэша в RAM, было бы по производительности не сильно хуже, чем дисковый массив на дисках SAS, а зато на сколько дешевле.

Viper
() автор топика

>Можно ли на СentOS5 реализовать кэш таким образом, что бы данные с диска кэшировались в памяти, при вытеснении из памяти кэшировались на SSD и при нехватке SSD старые данные удалялись с SSD

Поместить своп на SSD.

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

Осталось найти способ, что бы ядро при нехватке памяти в оперативке не удалял из кэша файлы, а переносил их в swap.

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

btrfs обещают функционал кэширования не только в памяти, но и на более быстрых устройствах чем HDD?

да.

в моих условиях

тут ключевой момент у кого какие условия :). У нас стояли sas 15k rpm, их как-то в притык хватало. Всё в seek упиралось.

true_admin ★★★★★
()

По формулировке своп. Но ты явно хочешь не этого, а кеша для дисков попробуй dm-cache, но оно старье.

testuser123
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.