У цій статті ми покажемо, як використовувати диск SSD як пристрій кешування для двох дисків SATA, поєднуючи в RAID 1 на сервері з Centos Linux, використовуючи приклад кешу LVM. У такій конфігурації пристрій кешування та кешування повинен бути включений до однієї групи томів LVM, а відключення/вмикання кешу можна виконати без перезавантаження та переміщення.
SSD кешування - Технологія, коли накопичувач SSD -держава використовується як буфер для часто запитуваних даних. Система визначає дані про ступінь «тепла» і переміщує їх на швидкий привід, який використовується як кешування диска. Кеш дозволяється отримати доступ до даних у кілька разів швидше, ніж якби вони були отримані з повільнішого жорсткого диска.Після встановлення ОС на RAID1 з двох дисків SATA ми підключили окремий SSD -диск на 240 ГБ. Давайте перевіримо, чи він доступний:
# fdisk -l
Використовуючи менеджер пакетів, встановіть утиліту LVM2, яка буде використана для реалізації кешу .
# yum Встановити lvm2 -y
Після встановлення програмного забезпечення потрібно визначити блок-пристрій SSD-диска та розділу, до якого поділяється бажаний каталог. У моєму випадку це буде домашній каталог, розділ, для якого я створив під час встановлення ОС.
Каталог /будинок відповідає розділу /Dev/md126p2. Зверніть увагу на це, оскільки подальше налаштування буде пов'язане з цим розділом.
Тепер ви можете перейти до налаштування кешу. Залишайтеся каталогом:
# Umount /home
Щоб створити кешування пристрою SSD, дотримуйтесь наступних команд
# Pvcreate /dev /md126p2
# Pvcreate /dev /sdb
# vgcreate ssdcache /dev /md126p2 /dev /sdb
# Lvcreate -l 100%безкоштовно -n hdd_data ssdcache /dev /md126p2
# lvcreate -l 16g -n ssd_meta ssdcache /dev /sdb
# lvcreate -l 90%безкоштовно ssd_data ssdcache /dev /sdb
# LVConvert-Кеш-Pool-PoolMetadata SSDCACHE/SSD_META SSDCACHE/SSD_DATA
# LvConvert -Cache -Cachemode запису -Cachepool ssdcache/ssd_data ssdcache/hdd_data
Опис команди:
-
Pvcreate
- ініціалізує фізичний об'єм для LVM -
Vgcreate
- Створіть групу томів -
Lvcreate -l
- Створіть логічний об'єм, розмір обсягу вказаний у відсотках -
Lvcreate -l
- Створення логічного обсягу з метаданими для кешу -
LvConvert
- Ми поєднуємо кеш і логічний об'єм через метадані. У нашому випадку ми встановлюємо режим кешування Зворотний запис.
Є два режими кешування:
- Зворотний запис - Дані спочатку записуються в кеш, потім на диск. Це більш продуктивний варіант. Коли кешування диска SSD не вдасться, ви втратите дані, що ви не встигли зареєструватися на жорсткий диск. Хоча не рекомендується використовувати цей режим на серверах з SSD без RAID, мені здається, враховуючи надійність дисків SSD, це повністю робоче рішення.
- Писати - Дані негайно записуються одночасно на диск і в кеш, після чого найбільш часто використовуються в кеш. Це безпечний варіант, підходить для серверів з 1*SSD, але набагато менш продуктивним.
Виконуючи всі налаштування, ви можете перевірити кеш на наявність помилок:
# LVS -a
Якщо помилок немає, то ви все зробили правильно. Ця команда покаже відсоток кешу. На даний момент розмір кешу буде трохи майже нуля.
Тепер ми створимо файлову систему в новому розділі LVM:
# MKFS.Ext4/dev/ssdcache/hdd_data
Після створення розділу потрібно визначити його UUID, щоб замінити його в Fstab:
# Blkid | кеш grep
/Dev/mapper/ssdcache-hdd_data: uuid = "a89f0b8-7bb2-4d83-87e2-39918154135b" type = "ext4"
Замініть в /etc /fstab
# nano /etc /fstab
Після заміни UUID у FSTAB для потрібного розділу перезавантажте сервер і перевірте поточні налаштування:
# df -h
Щоб дізнатися поточний режим роботи кешу SSD, використовуйте команду:
# LVS -O+cache_mode ssdcache
Щоб змінити режим, використовуються команди:
# Lvchange -cachemode запису ssdcache
# Lvchange -cachemode writeThroughthrough ssdcache
Якщо вам потрібно замінити диск SSD, вам обов'язково потрібно зняти кеш:
# lvConvert --uncache/dev/ssdcache/hdd_data
# lvremove/dev/ssdcache/ssd_meta
# vgreduce ssdcache /dev /sdb
# PvRemove /dev /sdb
Після цього ви можете безпечно вимкнути сервер, замінити диск і знову додати кеш, використовуючи наступні команди:
# Pvcreate /dev /sdb
# Vgextend ssdcache /dev /sdb
# lvcreate -l 16g -n ssd_meta ssdcache /dev /sdb
# lvcreate -l 90%безкоштовно ssd_data ssdcache /dev /sdb
# LVConvert-Кеш-Pool-PoolMetadata SSDCACHE/SSD_META SSDCACHE/SSD_DATA
# LvConvert -Cache -Cachemode запису -cachepool ssdcache/ssd_data
Це кінець налаштувань SSD-Caching закінчився. Визначте швидкість кешу SSD із звичайними утилітами для вимірювання операцій з читання/запису неможливо. Швидкість буде такою ж, як і на звичайному диску SATA, але все це пов'язано з специфікою роботи кешу, як ми описували раніше, це працює точно для "гарячих" даних. Під час тестування роботи в різних програмах зростаюча швидкість справді помітна, десь 3-4 рази.