Оптимизируйте хранение SSD на Centos 6,6 - KVM
У меня Dell R610 с аппаратным обеспечением:
- Рейдовая карта H700
- 4xMicron MX100 512GB -> настроенный рейд 10
Я установил Centos 6.6 на этом сервере и настроил:
- Виртуализация KVM
- Группа томов для массива raid 10
- Каждая гостевая виртуальная машина использует логические тома из группы томов
У меня есть несколько вопросов:
- Нужно ли включать dicard (TRIM) и LVM (KVM host), и гостевую файловую систему VM (vda)? Если да, то как это сделать?
- Как я могу контролировать выносливость SSD?
- Как я могу оптимизировать производительность?
3 ответа
TRIM работает на уровне файловой системы, поэтому, когда вы предоставляете своим доменам KVM необработанное блочное устройство, вам необходимо включить TRIM из домена; Ваш хост не может узнать об использовании файловой системы доменов, не изучив ее. Для этого вам нужно убедиться, что есть discard='unmap'
атрибут добавлен в определение диска в XML для домена, это задокументировано по адресу https://libvirt.org/formatdomain.html.
настройка issue_discards = 1
в /etc/lvm/lvm.conf означает, что LVM выдаст TRIM на базовый PV, если какой-либо логический том будет уменьшен или удален. Это не обязательно для нормальной работы файловой системы TRIM.
Для запуска реальных операций TRIM обычно рекомендуется использовать fstrim
утилита, а не добавление discard
опция монтирования Периодически запускайте это из cron или аналогичного. Запуск его вручную также покажет вам, правильно ли все настроено.
Для мониторинга ваших SSD я бы предположил, что инструментов SMART должно быть достаточно, взгляните на вывод smartctl -a /dev/sdX
,
Оптимизация обычно подразумевает, что все ваши разделы выровнены правильно и так же, как с обычными дисками; минимизируйте ваши записи, где это необходимо. Добавление параметров монтирования, таких как noatime
, nodiratime
, так далее.
Как я могу контролировать выносливость SSD?
Устанавливая SMARTmontools, SMART специально разработан для мониторинга жестких дисков, и в настоящее время он может контролировать параметры твердотельных накопителей, а также производить определение циклов записи, включения часов, включения счета.
Узнайте, какие флеш-чипы у вас есть в вашем SSD, найдите спецификации для этого чипа и получите средние циклы записи.
По моему опыту, твердотельные накопители ломались только из-за проблем с контроллером, а не из-за циклов записи, когда избыточное выделение ресурсов должно вступать во владение и заменять неисправные запасными.
Как я могу оптимизировать производительность?
Выровняйте его по размеру "сектора" чипов, вы можете узнать это через спецификации вашего SSD.
Кроме того (хотя это верно для старых дисков, это может больше не понадобиться), вам не следует полностью записывать SSD, если у вас есть другие варианты.
Таким образом, сборка мусора может работать лучше.
Я думаю, что на http://www.storagesearch.com/ssd.html есть много информации, которую вы, возможно, захотите прочитать, чтобы лучше понять преимущества и недостатки SSD.
Настройка планировщика ввода-вывода Linux. Я обычно использую NOOP для VM или SSD сервера, по умолчанию используется планировщик CFQ. Вы можете прочитать больше здесь:
http://dev.nuodb.com/techblog/tuning-linux-io-scheduler-ssds