Включение TRIM для SSD дисков в Ubuntu
Сегодня на почте я прочитал комментарий от читателя моего блога “ещё TRIM включить?” к статье “Настройка Ubuntu для рабоыт на SSD диске“. И действительно, самое главное то я и забыл. В этой заметке опишу процесс настройки поддержки команды TRIM в Ubuntu.
TRIM — команда, позволяющая операционной системе уведомить твердотельный накопитель о том, какие блоки данных больше не используются и могут быть очищены накопителем самостоятельно. TRIM входит в спецификацию интерфейса ATA, стандартизацией которого занимается группа T13 в составе INCITS. Интересующихся подробностями сразу отправляю на Wikipedia. В Windows 7 поддержка TRIM уже встроена, но мы же не будем ставить это решето. А будем продолжать работать в идеологически правильной Ubuntu 🙂
Перед работой, всячески убедитесь, что ваши фотки, документы и коллекция видео 🙂 надежно скопированы на флешки, оптику и куда подальше. После этого приступим:
Проверка, а не включён ли trim уже сейчас
Пусть /dev/sdX – наш SSD диск
- Меняем пользователя на root:
sudo -i - Пишем файл 50Мб со случайными данными:
dd if=/dev/urandom of=tempfile count=100 bs=512k oflag=direct - Ищем стартовый LBA адрес у файла
hdparm --fibmap tempfile - Читаем данные со стартового LBA адреса файла, замените [ADDRESS] на свой Starting LBA address из вывода предыдущей команды:
hdparm --read-sector [ADDRESS] /dev/sdX - Теперь удалим временный файл и синхронизируем ФС:
rm tempfile
sync - Повторяем пункт 4:
hdparm --read-sector [ADDRESS] /dev/sdX
Включаем TRIM
Замечания:
- Вам нужно ядро Linux 2.6.33 или старше. У меня стоит 2.6.36, какой там в репозитарии для Ubuntu 10.10 я не понмю, но вроде старше (2.6.35).
- Для бенчмарка использовалась Disk Utility. В Ubutnu этот пакет называется “gnome-disk-utility” и в десктопной версии ставится по-умолчанию.
- ВНИМАНИЕ: Некоторые пользователи рекомендуют использовать отключение журнала для Ext-4 и увеличенные таймауты для сброса грязных буферов (в т.ч. и я). Вы сами должны понимать, что в случае отключения питания ваши данные могут быть повреждены. Либо используйте UPS либо делайте это на ноутбуке (т.к. там есть батарейка). Делайте это, только в случае, если вы реально знаете, что вы делаете. Для стабильности данных просто используйте опцию “discard”, как показано ниже.. Контроллер жесткого диска должен быть в хорошей форме, в смысле хранения данных и скорости. У меня стоит Samsung и я использовал его только с опцией
discardи как вы видите из тестов скорость осталась на прежнем уровне ~250MB/s после всех манипуляций.
Большинство существующих SSDs поддерживают команду ATA_TRIM для устойчивой долгосрочной производительности и выравнивания износа. На Linux trim поддерживается файловыми системами Ext4 и Btrfs. Для включения TRIM мы должны сделать следущее:
-
Открываем наш fstab gksudo gedit /etc/fstab - Для каждого раздела Ext4 добавляем опцию
discardв список параметров.Например, если у нас только один корневой раздел “/”:UUID=[NUMS-AND-LETTERS] / ext4 errors=remount-ro 0 1we change the entry to:
UUID=[NUMS-AND-LETTERS] / ext4 discard,errors=remount-ro 0 1 - Сохраняем файл и выходим
- Перезагружаем компьютер
Всё, теперь TRIM должен работать. Проводим тест из предыдущего абзаца и убеждаемся в этом.
Литература
https://sites.google.com/site/lightrush/random-1/checkiftrimonext4isenabledandworking
https://sites.google.com/site/lightrush/random-1/howtoconfigureext4toenabletrimforssdsonubuntu