Jump to content

Союзное крепление

В компьютерных операционных системах объединенное монтирование — это способ объединения нескольких каталогов в один, который будет содержать их объединенное содержимое. [1] Монтирование Union поддерживается в Linux , BSD и некоторых его преемниках, а также в Plan 9 , с похожим, но слегка отличающимся поведением.

В качестве примера применения объединенного монтажа рассмотрим необходимость обновления информации, содержащейся на компакт-диске или DVD-диске . Хотя компакт-диск недоступен для записи, можно наложить точку монтирования компакт-диска на записываемый каталог в объединенном монтировании. Тогда обновление файлов в объединенном каталоге приведет к тому, что они окажутся в доступном для записи каталоге, создавая иллюзию, что содержимое компакт-диска было обновлено. [1] [2]

Реализации

[ редактировать ]

В операционной системе Plan 9 от Bell Labs (середина 1980-х годов) объединение каталогов является центральной концепцией, заменяющей несколько старых соглашений Unix объединенными каталогами; например, несколько каталогов, содержащих исполняемые файлы , объединенных в один /bin , замените Переменная PATH для поиска команд в оболочке. [3]

Семантика объединения Plan 9 значительно упрощена по сравнению с реализациями для операционных систем в стиле POSIX : объединение двух каталогов представляет собой просто объединение их содержимого, поэтому в списке объединенных каталогов могут отображаться повторяющиеся имена. Кроме того, не предпринимается никаких усилий по рекурсивному объединению подкаталогов, что приводит к чрезвычайно простой реализации. [4] Каталоги объединяются в контролируемом порядке; u/имя , где u — каталог объединения, обозначает файл с именем имя в первом составном каталоге, содержащем такой файл. [4]

Юникс и БСД

[ редактировать ]

Реализации объединений Unix/POSIX имеют требования, отличные от реализации Plan 9 из-за ограничений в традиционном поведении файловой системы Unix, что значительно усложняет их реализацию и часто приводит к компромиссам. [5] Проблемы, с которыми сталкивается объединение при монтировании в Unix-подобных операционных системах, включают:

  • Дублирующиеся имена файлов в каталоге недопустимы, поскольку это противоречит ожиданиям приложений относительно работы файловой системы Unix. Размещение логического стекового порядка приоритетов для составляющих объединения частично решает эту проблему, но требует памяти для записи того, какие файлы необходимо пропустить во время листинга каталогов (что в противном случае является почти операцией без сохранения состояния). [5]
  • Удаление требует специальной поддержки: если файлы с одинаковым именем существуют в нескольких компонентах объединенного каталога, простое удаление его из одного из компонентов приводит к тому, что вместо него снова появляется файл из одного из других. [5]
  • Вставка каталога в стек может привести к несогласованности кэша имен файлов ядра . [5]
  • Переименование файла в одной смонтированной файловой системе (с помощью команды системный вызов rename ) должен быть атомарной операцией , но переименование внутри объединения может потребовать внесения изменений в несколько каталогов, входящих в объединение. Возможное решение – запретить переименовывайте в таких ситуациях и вместо этого требуйте от реализаций копирования и удаления. [2]
  • Стабильные номера индексных дескрипторов для файлов, жестких ссылок и операций ввода-вывода, отображаемых в памяти ( mmap ) сложно реализовать правильно. [2]

Ранние попытки добавить объединение в файловые системы Unix включали трехмерную файловую систему ( Bell Labs ) и полупрозрачную файловую службу в SunOS ( Sun Microsystems , 1988) . [2] ). Реализация объединения объединений была добавлена ​​в версию Unix BSD в версии 4.4 (1994 г.), вдохновленной этими более ранними попытками, Plan 9 и стекируемыми файловыми системами в Spring (Sun, 1994 г.). [1] 4.4BSD реализует описанный выше подход стека каталогов. Как и в Плане 9, операции проходят через этот стек сверху вниз для разрешения имен, но в отличие от Плана 9 монтирование объединения BSD является рекурсивным, так что содержимое подкаталогов выглядит объединенным в каталоге объединения. Также, в отличие от версии Plan 9, все уровни, кроме верхнего, доступны только для чтения: изменение файлов в объединении приводит к тому, что их содержимое сначала копируется в верхний уровень стека, где затем применяются изменения. Удаление файлов реализуется путем записи в верхний каталог файла особого типа, называемого « whiteout» , что приводит к пометке имени файла как несуществующего и сокрытию файлов с таким же именем в нижних слоях стека. [1] Пробелы требуют поддержки со стороны базовой файловой системы. [4]

Монтаж Union был реализован для Linux 0.99 в 1993 году; эта первоначальная реализация называлась наследующей файловой системой, но разработчик отказался от нее из-за ее сложности. [2] Следующей крупной реализацией стала UnionFS , которая выросла из проекта FiST в Университете Стоуни-Брук . [6] [5] Попытка заменить UnionFS, aufs , была выпущена в 2006 году, за ней в 2009 году последовала OverlayFS . [2] В 2014 году OverlayFS реализация объединения была добавлена ​​в стандартный исходный код ядра Linux . [7]

Аналогичным образом, GlusterFS предлагает возможность монтировать различные файловые системы, распределенные по сети, а не расположенные на одном компьютере. [8]

MergerFS с открытым исходным кодом , первоначально выпущенный в 2014 году, представляет собой активно разрабатываемый плагин FUSE , позволяющий объединять произвольные каталоги в пул. [9]

  1. ^ Jump up to: а б с д Пендри , Ян-Симон; Маршалл Кирк МакКьюсик (декабрь 1995 г.). «Union Mounts в 4.4BSD-Lite» . Материалы технической конференции USENIX по UNIX и современным вычислительным системам : 25–33 . Проверено 25 ноября 2007 г.
  2. ^ Jump up to: а б с д и ж Аврора, Валери; Хенсон (март 2009 г.). «Объединение файловых систем: архитектура, функции и варианты дизайна» . LWN.net . Проверено 21 декабря 2009 г.
  3. ^ Пайк, Р .; Пресотто, Д.; Томпсон, К.; Трики, Х.; Уинтерботтом, П. «Использование пространств имен в Плане 9» . Веб-сайт случайной организации повстанцев-противников cat-v.org . Лаборатории Белла . Проверено 27 октября 2016 г.
  4. ^ Jump up to: а б с Аврора, Валери; Хенсон (март 2009 г.). «Объединение файловых систем: Реализации, часть I» . LWN.net . Проверено 21 декабря 2009 г.
  5. ^ Jump up to: а б с д и Райт, Чарльз П.; Джей Дэйв; Пуджа Гупта; Харикесаван Кришнан; Эрез Садок; Мохаммад Найер Зубайр. «Универсальность и семантика Unix в файловой системе с разветвленной унификацией» . Технический отчет Университета Стоуни-Брук FSL-04-01b . Проверено 25 ноября 2007 г.
  6. ^ Аврора, Валери; Хенсон (апрель 2009 г.). «Объединение файловых систем: Реализации, часть 2» . LWN.net . Проверено 21 декабря 2009 г.
  7. ^ Ларабель, Майкл (29 сентября 2014 г.). «OverlayFS предлагается для ядра Linux 3.18» . Фороникс.com . Проверено 12 октября 2015 г.
  8. ^ "О" . ГластерНьюс. 14 ноября 2009 года. Архивировано из оригинала 7 апреля 2013 года . Проверено 4 марта 2013 г. GlusterFS — это распределенная файловая система с открытым исходным кодом, способная масштабироваться до нескольких петабайт (на самом деле 72 бронтобайта!) и обслуживать тысячи клиентов. GlusterFS объединяет строительные блоки хранилища через соединение Infiniband RDMA или TCP/IP, агрегируя ресурсы диска и памяти и управляя данными в едином глобальном пространстве имен. GlusterFS основан на стекируемой конструкции пользовательского пространства и может обеспечить исключительную производительность для разнообразных рабочих нагрузок.
  9. ^ «Проект MergerFS на GitHub» . github.com . Проверено 15 сентября 2021 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: c7fb48a91ab665c2533bfa9b6829df50__1718871180
URL1:https://arc.ask3.ru/arc/aa/c7/50/c7fb48a91ab665c2533bfa9b6829df50.html
Заголовок, (Title) документа по адресу, URL1:
Union mount - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)