О чём нужно помнить:
- кэш записи будет сильно изнашивать диск(и), поэтому если делать серьёзно, то надо ставить SLC или eMLC диски, в зеркало
- + сами диски обязаны иметь обвязку для сброса данных на флэш при отключении питания. То есть 99% бытовых дисков использовать себе дороже.
- Кэш чтения - можно ставить и бытовые SSD, но лучше подбирать по большому числу IOPS и большой линейной скорости. Если денег много или очень много горячих данных - eMLC предпочтительнее.
- диски кэша чтения в зеркало не объединяются, но учитывая логику работы - ошибка с SSD - читаем с основного массива, это не критично, только упадёт производительность.
- при использовании аппаратных рейдов кэш чтения крайне желательно подключать в обход рейда, в набортный сата, при его наличии и соответствию минимум sata 3gbit стандарту, лучше сата 3 - 6Гбит.
Теперь о включении.
Пусть будет пул zfspool, и вставили 2 диска ada7 и ada8. Хотим построить схему - 16 гб с кажого диска будут в зеркале и под ZIL (лог), остальное под кэш чтения. Хотя при возможности лучше, чтобы это были независимые диски. Можно собрать так и на 1 диске, для тестовых или слабо нагруженных серверов, но не рекомендуется.
Для начала необходимо убедиться, что диски выбраны правильно, например через smartctl проверить марки и серийники.
Диски размечаем в gpt
gpart create -s gpt ada7
gpart create -s gpt ada8
Далее логи
gpart add -t freebsd-zfs -b 2048 -a 4k -l log0 -s 16G ada7
gpart add -t freebsd-zfs -b 2048 -a 4k -l log1 -s 16G ada8
И кэш
gpart add -t freebsd-zfs -a 4k -l cache0 ada7
gpart add -t freebsd-zfs -a 4k -l cache1 ada8
Подключаем
zpool add zfspool log mirror gpt/log0 gpt/log1
zpool add zfspool cache gpt/cache0 gpt/cache1
если собираем на 1 диске, и очень хочется сделать зеркало, сначала создаём раздел на реальном диске или sparse диск так
mkfile -n 16g /tmp/fakedisk
после создания зеркала делаем этому "диску" offline или удаляем файл - с ним производительность упадёт сильно, а создание временного диска не на диске а в памяти чревато ростом файла и выеданием памяти, а также при любом сбое есть риск потери данных.
Или просто делаем лог без зеркала. Учитываем, что в 8 freebsd нельзя было отключить такой лог, так только через зеркала, но уже вроде с 9 версии эту проблему устранили.
Смотрим zpool status - должны появиться наши диски. И не забываем добавить их в мониторинг - если пойдут ошибки, на лог надо реагировать оперативно.
через
zpool list -v
смотрим заполненность наших кэшей.
Мониторинг.
для freebsd советую поставить
/usr/ports/sysutils/zfs-stats
текущая эффективность кэша
zfs-mon
Линки
Комментариев нет:
Отправить комментарий