btrfs Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
Следующая версия Следующая версия справа и слева
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.