Unionfs — различия между версиями

Материал из ALT Linux Wiki
Перейти к: навигация, поиск
(Import from freesource.info)
 
(пометка к викификации + bugfix)
 
Строка 1: Строка 1:
{{MovedFromFreesourceInfo|AltLinux/unionfs}}
+
{{викифицировать}}
  
== unionfs ==
 
 
В Sisyphus попали модули <tt>unionfs</tt> для ядер <tt>std26-*</tt>.
 
 
 
Как этим пользоваться:
 
Как этим пользоваться:
 
* поставить нужный пакет
 
* поставить нужный пакет
* в зависимости от задачи - создать unionfs readwrite branch или не создавать
+
* в зависимости от задачи — создать unionfs readwrite branch или не создавать
* смонтировать несколько branch'ей в один
+
* смонтировать несколько branch’ей в один
 
   
 
   
 
Например: имеем подмонтированный NFS как read-only в каталог <tt>/build</tt>, необходимо сделать данные в этом каталоге read-write.
 
Например: имеем подмонтированный NFS как read-only в каталог <tt>/build</tt>, необходимо сделать данные в этом каталоге read-write.
Строка 26: Строка 22:
  
 
<pre>mkdir /tmp/build
 
<pre>mkdir /tmp/build
mount -t unionfs -o dirs=/tmp/build=rw:/build=ro:/raid=ro null /build</pre>  
+
mount -t unionfs -o dirs=/tmp/build=rw:/build=ro:/raid=ro null /build</pre>
  
 
А вот более реальный пример.
 
А вот более реальный пример.
  
Имеем: кучу жестких дисков, NFS и т.д.
+
Имеем: кучу жестких дисков, NFS и т. д.
  
 
Задача: выложить объединенную структуру на FTP (R/O)
 
Задача: выложить объединенную структуру на FTP (R/O)
Строка 36: Строка 32:
 
Решение:
 
Решение:
 
<pre>mount -t unionfs -o
 
<pre>mount -t unionfs -o
dirs=/mnt/disk=ro,/mnt/disk1=ro,/mnt/disk2=ro..../mnt/diskN=ro none /var/ftp</pre>
+
dirs=/mnt/disk=ro:/mnt/disk1=ro:/mnt/disk2=ro..../mnt/diskN=ro none /var/ftp</pre>
  
 
Из известных ошибок:
 
Из известных ошибок:
* невозможность удаления каталогов с ro branch'ем на squashfs
+
* невозможность удаления каталогов с ro branch’ем на squashfs
* проблемы с переносом (mv) массы симлинков, реально расположенных на r/o branch'е
+
* проблемы с переносом (mv) массы симлинков, реально расположенных на r/o branch’е
 
   
 
   
 
Все остальное вроде как работает.
 
Все остальное вроде как работает.
 
   
 
   
Также в Sisyphus лежат <tt>unionfs-utils</tt>, предоставляющие возможность на лету добавлять/удалять branch'и, включать/отключать режим отладки.
+
Также в Sisyphus лежат <tt>unionfs-utils</tt>, предоставляющие возможность на лету добавлять/удалять branch’и, включать/отключать режим отладки.
  
 
Дополнительная документация: <tt>man unionfs; man unionctl; man uniondbg</tt>.
 
Дополнительная документация: <tt>man unionfs; man unionctl; man uniondbg</tt>.
Строка 51: Строка 47:
 
* testcase на C или shell
 
* testcase на C или shell
 
* логами ядра, от подмонтированного unionfs с опцией debug=19
 
* логами ядра, от подмонтированного unionfs с опцией debug=19
* информацией о ядре и файловых системах branch'ей
+
* информацией о ядре и файловых системах branch’ей

Текущая версия на 17:47, 17 сентября 2008

42px-Wikitext-ru.svg.png
Эту статью следует викифицировать.


Как этим пользоваться:

  • поставить нужный пакет
  • в зависимости от задачи — создать unionfs readwrite branch или не создавать
  • смонтировать несколько branch’ей в один

Например: имеем подмонтированный NFS как read-only в каталог /build, необходимо сделать данные в этом каталоге read-write.

Создаем каталог для rw branch:

mkdir /tmp/build

монтируем:

mount -t unionfs -o dirs=/tmp/build=rw:/build=ro null /build

Все. Данные в каталоге /build можно изменять (удалять, добавлять). При этом все изменения попадают в каталог /tmp/build/

Еще один пример, более странный ;-) Имеем: смонтированный через NFS (R/O) каталог /build, смонтированный через NFS (R/O) каталог /raid.

Задача: объединить дерево каталогов /build и /raid в /build, одновременно сделав /build как read-write с записью изменений в /tmp/build

mkdir /tmp/build
mount -t unionfs -o dirs=/tmp/build=rw:/build=ro:/raid=ro null /build

А вот более реальный пример.

Имеем: кучу жестких дисков, NFS и т. д.

Задача: выложить объединенную структуру на FTP (R/O)

Решение:

mount -t unionfs -o
dirs=/mnt/disk=ro:/mnt/disk1=ro:/mnt/disk2=ro..../mnt/diskN=ro none /var/ftp

Из известных ошибок:

  • невозможность удаления каталогов с ro branch’ем на squashfs
  • проблемы с переносом (mv) массы симлинков, реально расположенных на r/o branch’е

Все остальное вроде как работает.

Также в Sisyphus лежат unionfs-utils, предоставляющие возможность на лету добавлять/удалять branch’и, включать/отключать режим отладки.

Дополнительная документация: man unionfs; man unionctl; man uniondbg.

Просьба в случае обнаружения ошибок вешать в нашу bugzilla на пакет unionfs, сопровождая:

  • testcase на C или shell
  • логами ядра, от подмонтированного unionfs с опцией debug=19
  • информацией о ядре и файловых системах branch’ей