Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Следующая версия Следующая версия справа и слева | ||
wiki:btrfs [2019/03/22 11:30] [Варианты восстановления много-дисковых конфигураций btrfs] |
wiki:btrfs [2019/06/28 01:36] [swap файл на btrfs] |
||
---|---|---|---|
Строка 684: | Строка 684: | ||
btrfs device delete missing <путь куда смонтирована btrfs> | btrfs device delete missing <путь куда смонтирована btrfs> | ||
- | | + | |
missing - специальное значение, которое можно указать для устройств, которые уже просто отключены или недоступны (для них просто сложно указать путь). | missing - специальное значение, которое можно указать для устройств, которые уже просто отключены или недоступны (для них просто сложно указать путь). | ||
Строка 795: | Строка 795: | ||
Вот собственно и всё. Потом устанавливаем ОС, выбрав для разделов btrfs. Сразу после установки (не перегружаясь) нужно добавить опции монтирования со сжатием - compress=lzo в fstab только что установленной системы (который будет находиться в /target/etc/fstab). | Вот собственно и всё. Потом устанавливаем ОС, выбрав для разделов btrfs. Сразу после установки (не перегружаясь) нужно добавить опции монтирования со сжатием - compress=lzo в fstab только что установленной системы (который будет находиться в /target/etc/fstab). | ||
=====swap файл на btrfs===== | =====swap файл на btrfs===== | ||
- | <note important>Предложенный метод не самый надежный и, кроме того, созданный таким путем swap потребует для своей работы дополнительных объемов оперативной памяти и будет заметно медленнее swap, созданного на разделе диска или в файле обычной ФС (например EXT4).</note> | + | Начиная с версии 5.0+ на btrfs можно создать swap-файл, но с некоторыми ограничениями. swap-файл должен создаваться обязательно с отключенным COW и сжатием. Сделать это (если у вас подходящая версия ядра 5.0+) довольно просто: |
- | swapfile невозможно создать на btrfs, т.к. это приведёт к разрушению файловой системы (подробнее обсуждалось [[http://forum.ubuntu.ru/index.php?topic=207432.msg2167728#msg2167728|тут]]). Разработчики btrfs прорабатывают вариант специального [[https://btrfs.wiki.kernel.org/index.php/Project_ideas#Swap_file_support|API для работы со swap-файлом на btrfs]], но есть и обходной путь: | + | |
- | swapfile можно создать как loop устройство. Давайте рассмотрим пример создания своп-файла размером 4Gb в файле /swap. | + | touch /swap # создаем пустой файл /swap - только на пустом файле можно отключить COW и компрессию |
+ | chattr +C /swap # отключаем COW | ||
+ | chattr -c /swap # отключаем компрессию | ||
+ | truncate -s 4G /swap # создаем пустой файл размером 4Gib | ||
+ | mkswap /swap # создаем внутреннюю разметку в файле для swap-а | ||
+ | swapon /swap # подключаем swap | ||
+ | |||
+ | Для автоматического монтирования файла в последующем нужно в /etc/fstab добавить следующую строку: | ||
+ | |||
+ | /swap none swap swap 0 0 | ||
- | Для избежания фрагментации swap-файла на HDD (на SSD это не так критично) стоит отключить COW механизм, это надо делать на пустом файле: | + | До версии 5.0 использование swap-файла на btrfs привадило [[http://forum.ubuntu.ru/index.php?topic=207432.msg2167728#msg2167728|к разрушению структуры файловой системы]] (отключение COW и компрессии не помогало избежать проблем). Однако можно было создать не очень быстрый и с дополнительными расходами оперативной памяти swap-файл через loop-устройство. Давайте рассмотрим пример создания своп-файла этим методом. |
- | touch /swap | + | |
- | chattr +C /swap | + | |
- | Далее код | + | Несмотря на то, что отключение COW не помогает, но для избежания фрагментации swap-файла на HDD (на SSD это не так критично) стоит все-таки отключить COW. Компрессию тоже стоит отключить т.к. это еще сильнее затормозит и без того не быстрое решение. |
- | swapfile=$(losetup -f) | + | |
- | truncate -s 4G /swap | + | |
- | losetup $swapfile /swap | + | |
- | mkswap $swapfile | + | |
- | swapon $swapfile | + | |
- | добавляется в файл /etc/rc.local до строки exit 0, после чего выполняется | + | touch /swap # создаем пустой файл /swap - только на пустом файле можно отключить COW и компрессию |
- | sudo chmod +x /etc/rc.local | + | chattr +C /swap # отключаем COW |
+ | chattr -c /swap # отключаем компрессию | ||
+ | truncate -s 4G /swap # создаем пустой файл размером 4Gib | ||
+ | swapfile=$(losetup -f) # находим первое свободное loop-устройство | ||
+ | losetup $swapfile /swap # настраиваем доступ к файлу /swap через loop-устройство | ||
+ | mkswap $swapfile # создаем внутреннюю разметку для swap-а на loop-устройстве | ||
+ | swapon $swapfile # подключаем swap | ||
+ | Для подключения такого swap после перезагрузки добавьте код начиная с swapfile=$(losetup -f) в файл /etc/rc.local (до строки exit 0). | ||
======Обслуживание btrfs====== | ======Обслуживание btrfs====== | ||
Как и любая другая ФС, btrfs может работать много лет, не требуя какого-то особого обслуживания, однако мы озвучим те действия, которые полезно периодически проводить для поддержания "здоровья" btrfs. | Как и любая другая ФС, btrfs может работать много лет, не требуя какого-то особого обслуживания, однако мы озвучим те действия, которые полезно периодически проводить для поддержания "здоровья" btrfs. |