The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Раздел полезных советов: Логическое объединение нескольких ф..."
Отправлено auto_tips, 02-Май-20 17:43 
FUSE-модуль [[https://github.com/trapexit/mergerfs Mergerfs]] позволяет логически объединить несколько файловых систем в одну, например, для объединения разнесённых на разные диски коллекции видео или музыки в одну иерархию.


В отличие от aufs и overlayfs в mergerfs не создаётся отдельного слоя для записи и данная ФС не может применяться поверх разделов, доступных в режиме только для чтения. Но mergerfs даёт возможность прямой записи в примонтированный раздел в соответствии с заданной политикой, например, запись может осуществляться в ФС, в которой больше свободного места. Также можно включить в один сводный раздел ФС, доступную на запись, и ФС только для чтения. В такой конфигурации операции записи будут производиться в разделе, который допускает запись.

Среди особенностей mergerfs:  настройка поведения размещения новых файлов, работа в пространстве пользователей через FUSE,  поддержка расширенных атрибутов (xattrs) и смены атрибутов chattr, работа с различными ФС, поддержка POSIX ACL.

Проектом [[https://github.com/trapexit/mergerfs/releases собираются]] пакеты для Fedora, Debian и Ubuntu.

Устанавливаем mergerfs в Fedora 31:

   wget https://github.com/trapexit/mergerfs/releases/download/2.29....

   sudo dnf install mergerfs-2.29.0-1.fc31.x86_64.rpm


Допустим, в системе есть два раздела /disk1 и /disk2, на которых имеются  каталоги с видео:

   $ df -hT | grep disk
   /dev/sdb1      ext4      23M  386K 21M 2% /disk1
   /dev/sdc1      ext4      44M  1.1M 40M 3% /disk2

   $ ls -l /disk1/Videos/
   total 1
   -rw-r--r--. 1 curt curt 0 Mar 8 17:17 file1.mkv

   $ ls -l /disk2/Videos/
   total 2
   -rw-r--r--. 1 curt curt 0 Mar 8 17:17 file2.mkv
   -rw-rw-r--. 1 curt curt 0 Mar 8 17:21 file3.mkv


Создадим логический раздел /media, который будет включать в себя как  /disk1, так и /disk2:

   $ sudo mergerfs -o defaults,allow_other,use_ino,category.create=mfs,moveonenospc=true,minfreespace=1M /disk1:/disk2 /media

где

    defaults - применение настроек по умолчанию
    allow_other - возможность доступа непривилегированных пользователей, а не только root
    use_ino - манипуляция исходными inode вместо libfuse для того, чтобы связанные файлы имели одинаковые inode.
    category.create=mfs - распределение новых файлов в зависимости от доступного свободного пространства.
    moveonenospc=true - в случае сбоя записи искать раздел с большим свободным местом.
    minfreespace=1M - минимальное свободное место для записи.
    disk1 - первый подключаемый раздел
    disk2 - второй подключаемый раздел
    /media - точка монтирования


После монтирования получим:

   $ df -hT | grep media
   1:2        fuse.mergerfs  66M      1.4M 60M 3% /media


Если скопировать в /media/Videos/ большой новый файл, для которого не хватает места в /disk1, но который вмещается в /disk2, то это файл будет размещён в разделе /disk2. Разделы /disk1 и /disk2 после монтирования остаются доступны для любых операций, /media объединяет их лишь логически.

   $ ls -lh file4.mkv
   -rw-rw-r--. 1 curt curt 30M Apr 20 08:45 file4.mkv

   $ cp file4.mkv /media/Videos/


   $ ls -l /disk1/Videos/
   total 1
   -rw-r--r--. 1 curt curt 0 Mar 8 17:17 file1.mkv

   $ ls -l /disk2/Videos/
   total 30003
   -rw-r--r--. 1 curt curt 0 Mar 8 17:17 file2.mkv
   -rw-rw-r--. 1 curt curt 0 Mar 8 17:21 file3.mkv
   -rw-rw-r--. 1 curt curt 30720000 Apr 20 08:47 file4.mkv

   $ ls -l /media/Videos/
   total 30004
   -rw-r--r--. 1 curt curt 0 Mar 8 17:17 file1.mkv
   -rw-rw-r--. 1 curt curt 0 Mar 8 17:21 file2.mkv
   -rw-r--r--. 1 curt curt 0 Mar 8 17:17 file3.mkv
   -rw-rw-r--. 1 curt curt 30720000 Apr 20 08:47 file4.mkv


URL: https://fedoramagazine.org/using-mergerfs-to-increase-your-v.../
Обсуждается: http://www.opennet.ru/tips/info/3147.shtml

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру