Файловая система для SSD. Linux и все, все, все Статьи и колонки в LinuxFormat,

Твердотельные накопители становятся все доступнее и занимают все большую часть рынка. Вот и я решил заменить hdd c windows seven своего нетбука Lenovo IdeaPad S10-2 на SSD c Ubuntu Netbook.

В этой записи я собрал нагугленные заметки по оптимизации работы Linux на SSD для рабочей станции.

Разметка диска и файловая система

В первую очередь, нужно забыть про раздел подкачки, все прекрасно работает и без него. Для SSD лучше использовать не журналируемую файловую систему. Журнал нужен для того, чтобы, после пропадании электропитания, восстановить незавершенные транзакции — не потерять данные и оставить ФС целостной. Так как большинство SSD используются в ноутбуках/нетбуках, где присутствует батарея, пропадание электропитания практически невозможно, журнал не нужен.

Я использую 100 Мб под /boot с ext2, 20 Гб как / с ext4 и все остальное под /home, так же с ext4. Файловую систему ext4 я выбрал так как она позволяет отключать журнал после создания файловой системы, делается это так:

root@localhost:~$ tune2fs -o journal_data_writeback /dev/sda1 root@localhost:~$ tune2fs -O ^has_journal /dev/sda1 root@localhost:~$ e2fsck -f /dev/sda10

Так же, для увеличения производительности, к опциям монтирования в fstab рекомендуется добавить:

relatime,nodiratime,discard,commit=60

Здесь у некоторых может возникнуть подозрение, что использование noatime эффективнее чем relatime. Это не так, relatime обновляет время доступа только при изменении файла или изменении времени доступа. Это нужно для нормальной работы некоторых программ, в том числе почтовых клиентов. Опция discard включает поддержку TRIM. Так же откладываем до раза в минуту запись изменений на накопитель commit=60.

Логи на рабочей станции мало кому нужны после перезагрузки, поэтому целесообразно разместить их, как и временные файлы, в оперативной памяти. Для этого добавим такие строки в fstab:

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0 tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0 tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0

I/O планировщик

Планировщик cfq, используемый по умолчанию в большинстве дистрибутивов лучше заманить на noop. Для этого к опциям ядра в конфиге загрузчика нужно добавить:

Параметры ядра

Включаем «режим ноутбука» для подсистемы виртуальной памяти, в таком режиме, ядро будет откладывать запись на диск, пока в этом не появится неотложная необходимость. Кроме того повысим таймаут между сбросом буферов до 15 секунд:

vm.laptop_mode = 5 vm.dirty_writeback_centisecs = 15000

Firefox & Chrome

Временные файлы мы перенесли в оперативную память, но браузеры хранят свой кеш в домашнем каталоге пользователя, который у нас на SSD. Нужно либо переместить кеш с SSD, либо выключить его. Я выбрал последний вариант.

Для этого в адресной строке Firefox введем about:config и изменим параметр:

browser.cache.disk.enable: false

В Chrome немного сложнее, запретить кеш раз и навсегда нельзя, вместо этого нужно каждый раз запускать браузер с параметром —disk-cache-size=0:

google-chrome —disk-cache-size=0

Или создать alias:

alias google-chrome=’google-chrome —disk-cache-size=0′

Кэш пакетных менеджеров

Так же может быть полезным вынести кэш менеджера пакетов в ОЗУ. Для deb-based дистрибутивов нужно добавить в fstab:

tmpfs /var/cache/apt/archives tmpfs defaults 0 0

Для rpm-based дистрибутивов нужно добавить в fstab:

tmpfs /var/cache/yum tmpfs defaults 0 0

UPD20130310: Обновлены обции монтирования, добавлен вынос кеша пакетных менеджеров в ОЗУ.

Читайте другие интересные статьи

В прошлый раз я рассказывал об установке твердотельного накопителя (SSD) в iMac. Такие накопители характеризуются очень высокой скоростью чтения (~500 МБ/с при условии подключения через 6-гигабитный SATA III) и бесшумностью.

Есть у них и минусы — высокая цена (тут навряд ли можно чем-то помочь) и ограниченный ресурс работы (точнее, количество циклов перезаписи, поскольку в режиме чтения они могут работать сколь угодно долго). И хотя у современных SSD количество циклов перезаписи измеряется миллионами, всё же имеет смысл адаптировать систему к работе с этим типом накопителя, продлив его жизнь и ускорив работу системы в целом.

Довольно много полезных советов дано на сайте Debian, я расскажу о том, что я поменял в своей системе (Ubuntu 14.10 Utopic Unicorn).

1. Используйте ext4

Файловая система ext4 является наиболее стабильной и распространённой в мире Linux. За отсутствием веских причин, используйте её в качестве основной.

2.

Объём RAM с хорошим запасом

Достаточное количество оперативной памяти (RAM) является абсолютно необходимым условием, поскольку позволяет:

  • Избежать своппинга
  • Использовать часть в качестве RAM-диска
  • Создать файловый кэш значительного объёма

Я рекомендую установить минимум 8 ГБ физической памяти, а лучше и все 16.

3. Объём SSD с хорошим запасом

Если диск забит «под завязку», системе становится очень трудно, а порой и невозможно, оптимизировать выделение свободных блоков.

Это может значительно уменьшить срок службы накопителя из-за эффекта «умножения записи» (write amplification).

4. Специальные опции монтирования SSD

Рекомендую следующие опции монтирования разделов, расположенных на SSD:

  • — запрещает обновление метаданных файла при чтении из него (рекомендуется и для обычных жёстких дисков).
  • — аналогично для директорий.
  • — устанавливает задержку записи изменений на диск в 60 секунд. Все изменения, накопленные в течение этого времени, будут записаны в один присест. Правда, если система по какой-либо причине зависнет, часть данных может быть потеряна — но со мной такого практически не случалось.

Таким образом, запись для корневого раздела в будет выглядеть примерно так:

Изменения вступят в силу после перезагрузки.

5. Еженедельный TRIM

Команда TRIM позволяет поддерживать SSD-накопитель в форме, вовремя помечая неиспользуемые блоки. Ubuntu поставляется уже с прописанной в планировщике еженедельной командой TRIM (). Если у вас другой дистрибутив, проверьте, есть ли у вас что-то подобное.

6. RAM-диск для временных файлов

Каталог очень часто используется программами для хранения временных файлов; после перезагрузки он всегда автоматически очищается. Это делает его идеальным кандидатом для вынесения в оперативную память. Имейте в виду, однако, что иногда программы пытаются поместить туда файлы очень большого объёма (например, при распаковке архивов ) — если места на RAM-диске не хватит, программа может повести себя непредсказуемо.

Чтобы создать RAM-диск, достаточно добавить в строчку:

Здесь устанавливает максимальный объём диска в половину всей физической памяти (это также и значение по умолчанию). Изменения вступят в силу после перезагрузки.

7. RAM-диск для лог-файлов

Файлы протоколов программ («лог-файлы») могут обновляться очень часто, приводя к повышенному износу диска. Если вас не беспокоит, что после перезагрузки они бесследно пропадают, их лучше также вынести на RAM-диск. Для этого надо добавить в строчку:

Здесь максимальный размер раздела установлен в 10 МБ, чего обычно хватает.

Кроме того, следующий код, добавленный в , создаёт начальную структуру каталогов при каждой загрузке:

8. Ограничение своппинга

Максимально ограничить использование системой swap-раздела можно, добавив строчку в :

9. Кэш браузера на RAM-диске

Пока вы бродите по Интернету, ваш браузер создаёт очень много маленьких, но очень вредных кэш-файлов. Если вынести его в , на RAM-диск (созданный нами на шаге 6), после перезагрузки ваш браузер будет всегда начинать с чистого листа — но никаких неудобств это не создаёт.

На примере Google Chrome:

Чтобы временный каталог автоматически создавался при каждой загрузке, добавьте следующее к (заменив на разделённый пробелами список пользователей):

Напоследок

Время от времени стоит также проверять душевное здоровье вашего SSD командой:

Для этого должен быть установлен пакет .

См. также

Статьи / Linux

Пошаговая установка Ubuntu(Kubuntu) на SSD

Нужно очень внимательно выполнить инструкцию!

Для /boot мы выбираем 600 Мегабайт(МиБ),
а для / 60000 Мегабайт(МиБ), что соответствует ~60 гигабайт.

SSD должен быть размером не менее 80Gb, а лучше взять 128.

Подумайте дважды и перепроверьте, прежде чем жать окончательно на выполнение в конце.

1. Берем чистый SSD и подключаем.
2. Грузимся в Gparted и находим неразмеченный диск SSD, его размер будет меньше (на ~10Gb, или другая цифра …), чем написано на коробке от производителя.
3. Тыкаем в Устройство->Создать таблицу разделов
4. Выбираем GPT
5. Тыкаем в неразмеченное пространство правой клавишей мыши и выбираем «новый»

далее …

6. Тыкаем в неразмеченное пространство правой клавишей мыши и выбираем «новый»

7. Правка -> Выполнить все операции

Диск готов для начала установки (K)Ubuntu Убунту на SSD.

PS: fdisk не понимает GPT, поэтому если вы в дальнейшем попробуете проверить диск в нем, то он скажет, что «моя — твоя не понимай!»
Можно выбрать MBR. Про различия читайте на вики.

8. Пишем на флешку, через Unetbootin, iso образ нужной нам (k)ubuntu и перезагружаемся.

9. В BIOS выставляем режим AHCI, вместо IDE.

10. Выбираем boot загрузку c Flash … название вашей флешки

11. Старт(try) k(ubuntu), ни в коем случае не install(установка). Инстолятор часто глючит и может вывалится в любой момент, придется перезагружать систему.

В данном случае можно просто запустить его снова. У меня упал трижды, но потом все встало без проблем.

12. Загрузились в убунту, а вот теперь кликаем по иконке install kubuntu (install ubuntu)

13. Открылся установщик, выбираем язык

14. далее Ручную разбивку диска(manual)

Везде ставим галку форматировать. Почему? Потому, что если вы уже загружались в старую убунту или другую ось, она могла примонтировать ваш диск и записать туда всякий мусор, вам не нужный. Поэтому форматим (минутное, даже возможно секундное дело)

Загрузчик ставим либо туда куда понимаем, либо по умолчанию.

Система ставится…

Если система не встала, то следует более подробно прочитать инструкцию и возможно углубиться в изучение манов, терминов и подробно разобраться в ssd,gpt,uefi,ahci …

Если (к)убунта установилась, но грузиться старая, делаем «ход конем», ищем на новом диске текстовый файл /boot/grub/grub.cfg копируем его содержимое и заменяем текст в старом /boot/grub/grub.cfg

При этом старый нужно обязательно перед копированием куда-то сохранить еще, на флешку, на другой диск, на CD … куда угодно, но сохранить обязательно нужно, чтобы восстановить в случае если «ход конем» не сработает.

После загрузки:

правим /etc/fstab
по инструкции http://help.ubuntu.ru/wiki/ssd

Добавить комментарий

Закрыть меню