You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1884 lines
41 KiB

  1. <!doctype html>
  2. <html lang="en" class="no-js">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1">
  6. <meta name="description" content="mergerfs - a featureful union filesystem">
  7. <link rel="canonical" href="https://trapexit.github.io/mergerfs/project_comparisons/">
  8. <link rel="prev" href="../known_issues_bugs/">
  9. <link rel="next" href="../performance/">
  10. <link rel="icon" href="../assets/images/favicon.png">
  11. <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.49">
  12. <title>Project Comparisons - mergerfs</title>
  13. <link rel="stylesheet" href="../assets/stylesheets/main.6f8fc17f.min.css">
  14. <link rel="stylesheet" href="../assets/stylesheets/palette.06af60db.min.css">
  15. <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  16. <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
  17. <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
  18. <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
  19. </head>
  20. <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
  21. <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
  22. <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
  23. <label class="md-overlay" for="__drawer"></label>
  24. <div data-md-component="skip">
  25. <a href="#project-comparisons" class="md-skip">
  26. Skip to content
  27. </a>
  28. </div>
  29. <div data-md-component="announce">
  30. </div>
  31. <header class="md-header md-header--shadow" data-md-component="header">
  32. <nav class="md-header__inner md-grid" aria-label="Header">
  33. <a href=".." title="mergerfs" class="md-header__button md-logo" aria-label="mergerfs" data-md-component="logo">
  34. <img src="../logo.jpeg" alt="logo">
  35. </a>
  36. <label class="md-header__button md-icon" for="__drawer">
  37. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
  38. </label>
  39. <div class="md-header__title" data-md-component="header-title">
  40. <div class="md-header__ellipsis">
  41. <div class="md-header__topic">
  42. <span class="md-ellipsis">
  43. mergerfs
  44. </span>
  45. </div>
  46. <div class="md-header__topic" data-md-component="header-topic">
  47. <span class="md-ellipsis">
  48. Project Comparisons
  49. </span>
  50. </div>
  51. </div>
  52. </div>
  53. <form class="md-header__option" data-md-component="palette">
  54. <input class="md-option" data-md-color-media="(prefers-color-scheme)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_0">
  55. <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
  56. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m14.3 16-.7-2h-3.2l-.7 2H7.8L11 7h2l3.2 9zM20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zm-9.15 3.96h2.3L12 9z"/></svg>
  57. </label>
  58. <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_1">
  59. <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
  60. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
  61. </label>
  62. <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to system preference" type="radio" name="__palette" id="__palette_2">
  63. <label class="md-header__button md-icon" title="Switch to system preference" for="__palette_0" hidden>
  64. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
  65. </label>
  66. </form>
  67. <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
  68. <label class="md-header__button md-icon" for="__search">
  69. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
  70. </label>
  71. <div class="md-search" data-md-component="search" role="dialog">
  72. <label class="md-search__overlay" for="__search"></label>
  73. <div class="md-search__inner" role="search">
  74. <form class="md-search__form" name="search">
  75. <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
  76. <label class="md-search__icon md-icon" for="__search">
  77. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
  78. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
  79. </label>
  80. <nav class="md-search__options" aria-label="Search">
  81. <a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
  82. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
  83. </a>
  84. <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
  85. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
  86. </button>
  87. </nav>
  88. </form>
  89. <div class="md-search__output">
  90. <div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
  91. <div class="md-search-result" data-md-component="search-result">
  92. <div class="md-search-result__meta">
  93. Initializing search
  94. </div>
  95. <ol class="md-search-result__list" role="presentation"></ol>
  96. </div>
  97. </div>
  98. </div>
  99. </div>
  100. </div>
  101. <div class="md-header__source">
  102. <a href="https://github.com/trapexit/mergerfs" title="Go to repository" class="md-source" data-md-component="source">
  103. <div class="md-source__icon md-icon">
  104. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
  105. </div>
  106. <div class="md-source__repository">
  107. mergerfs
  108. </div>
  109. </a>
  110. </div>
  111. </nav>
  112. </header>
  113. <div class="md-container" data-md-component="container">
  114. <main class="md-main" data-md-component="main">
  115. <div class="md-main__inner md-grid">
  116. <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
  117. <div class="md-sidebar__scrollwrap">
  118. <div class="md-sidebar__inner">
  119. <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
  120. <label class="md-nav__title" for="__drawer">
  121. <a href=".." title="mergerfs" class="md-nav__button md-logo" aria-label="mergerfs" data-md-component="logo">
  122. <img src="../logo.jpeg" alt="logo">
  123. </a>
  124. mergerfs
  125. </label>
  126. <div class="md-nav__source">
  127. <a href="https://github.com/trapexit/mergerfs" title="Go to repository" class="md-source" data-md-component="source">
  128. <div class="md-source__icon md-icon">
  129. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
  130. </div>
  131. <div class="md-source__repository">
  132. mergerfs
  133. </div>
  134. </a>
  135. </div>
  136. <ul class="md-nav__list" data-md-scrollfix>
  137. <li class="md-nav__item">
  138. <a href=".." class="md-nav__link">
  139. <span class="md-ellipsis">
  140. Home
  141. </span>
  142. </a>
  143. </li>
  144. <li class="md-nav__item">
  145. <a href="../quickstart/" class="md-nav__link">
  146. <span class="md-ellipsis">
  147. QuickStart
  148. </span>
  149. </a>
  150. </li>
  151. <li class="md-nav__item md-nav__item--nested">
  152. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
  153. <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
  154. <span class="md-ellipsis">
  155. Installation
  156. </span>
  157. <span class="md-nav__icon md-icon"></span>
  158. </label>
  159. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
  160. <label class="md-nav__title" for="__nav_3">
  161. <span class="md-nav__icon md-icon"></span>
  162. Installation
  163. </label>
  164. <ul class="md-nav__list" data-md-scrollfix>
  165. <li class="md-nav__item">
  166. <a href="../setup/installation/" class="md-nav__link">
  167. <span class="md-ellipsis">
  168. Installation
  169. </span>
  170. </a>
  171. </li>
  172. <li class="md-nav__item">
  173. <a href="../setup/upgrade/" class="md-nav__link">
  174. <span class="md-ellipsis">
  175. Upgrade
  176. </span>
  177. </a>
  178. </li>
  179. <li class="md-nav__item">
  180. <a href="../setup/build/" class="md-nav__link">
  181. <span class="md-ellipsis">
  182. Build
  183. </span>
  184. </a>
  185. </li>
  186. </ul>
  187. </nav>
  188. </li>
  189. <li class="md-nav__item md-nav__item--nested">
  190. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
  191. <label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
  192. <span class="md-ellipsis">
  193. Config
  194. </span>
  195. <span class="md-nav__icon md-icon"></span>
  196. </label>
  197. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
  198. <label class="md-nav__title" for="__nav_4">
  199. <span class="md-nav__icon md-icon"></span>
  200. Config
  201. </label>
  202. <ul class="md-nav__list" data-md-scrollfix>
  203. <li class="md-nav__item">
  204. <a href="../config/terminology/" class="md-nav__link">
  205. <span class="md-ellipsis">
  206. Terminology
  207. </span>
  208. </a>
  209. </li>
  210. <li class="md-nav__item">
  211. <a href="../config/options/" class="md-nav__link">
  212. <span class="md-ellipsis">
  213. Options
  214. </span>
  215. </a>
  216. </li>
  217. <li class="md-nav__item">
  218. <a href="../config/deprecated_options/" class="md-nav__link">
  219. <span class="md-ellipsis">
  220. Deprecated Options
  221. </span>
  222. </a>
  223. </li>
  224. <li class="md-nav__item">
  225. <a href="../config/branches/" class="md-nav__link">
  226. <span class="md-ellipsis">
  227. branches
  228. </span>
  229. </a>
  230. </li>
  231. <li class="md-nav__item">
  232. <a href="../config/functions_categories_and_policies/" class="md-nav__link">
  233. <span class="md-ellipsis">
  234. functions, categories and policies
  235. </span>
  236. </a>
  237. </li>
  238. <li class="md-nav__item">
  239. <a href="../config/func_readdir/" class="md-nav__link">
  240. <span class="md-ellipsis">
  241. func.readdir
  242. </span>
  243. </a>
  244. </li>
  245. <li class="md-nav__item">
  246. <a href="../config/rename_and_link/" class="md-nav__link">
  247. <span class="md-ellipsis">
  248. rename and link
  249. </span>
  250. </a>
  251. </li>
  252. <li class="md-nav__item">
  253. <a href="../config/cache/" class="md-nav__link">
  254. <span class="md-ellipsis">
  255. caching
  256. </span>
  257. </a>
  258. </li>
  259. <li class="md-nav__item">
  260. <a href="../config/readahead/" class="md-nav__link">
  261. <span class="md-ellipsis">
  262. readahead
  263. </span>
  264. </a>
  265. </li>
  266. <li class="md-nav__item">
  267. <a href="../config/inodecalc/" class="md-nav__link">
  268. <span class="md-ellipsis">
  269. inodecalc
  270. </span>
  271. </a>
  272. </li>
  273. <li class="md-nav__item">
  274. <a href="../config/threads/" class="md-nav__link">
  275. <span class="md-ellipsis">
  276. threads
  277. </span>
  278. </a>
  279. </li>
  280. <li class="md-nav__item">
  281. <a href="../config/pin-threads/" class="md-nav__link">
  282. <span class="md-ellipsis">
  283. pin-threads
  284. </span>
  285. </a>
  286. </li>
  287. <li class="md-nav__item">
  288. <a href="../config/link_cow/" class="md-nav__link">
  289. <span class="md-ellipsis">
  290. link_cow
  291. </span>
  292. </a>
  293. </li>
  294. <li class="md-nav__item">
  295. <a href="../config/fuse_msg_size/" class="md-nav__link">
  296. <span class="md-ellipsis">
  297. fuse_msg_size
  298. </span>
  299. </a>
  300. </li>
  301. <li class="md-nav__item">
  302. <a href="../config/follow-symlinks/" class="md-nav__link">
  303. <span class="md-ellipsis">
  304. follow-symlinks
  305. </span>
  306. </a>
  307. </li>
  308. <li class="md-nav__item">
  309. <a href="../config/link-exdev/" class="md-nav__link">
  310. <span class="md-ellipsis">
  311. link-exdev
  312. </span>
  313. </a>
  314. </li>
  315. <li class="md-nav__item">
  316. <a href="../config/rename-exdev/" class="md-nav__link">
  317. <span class="md-ellipsis">
  318. rename-exdev
  319. </span>
  320. </a>
  321. </li>
  322. <li class="md-nav__item">
  323. <a href="../config/symlinkify/" class="md-nav__link">
  324. <span class="md-ellipsis">
  325. symlinkify
  326. </span>
  327. </a>
  328. </li>
  329. <li class="md-nav__item">
  330. <a href="../config/nullrw/" class="md-nav__link">
  331. <span class="md-ellipsis">
  332. nullrw
  333. </span>
  334. </a>
  335. </li>
  336. <li class="md-nav__item">
  337. <a href="../config/xattr/" class="md-nav__link">
  338. <span class="md-ellipsis">
  339. xattr
  340. </span>
  341. </a>
  342. </li>
  343. <li class="md-nav__item">
  344. <a href="../config/nfsopenhack/" class="md-nav__link">
  345. <span class="md-ellipsis">
  346. nfsopenhack
  347. </span>
  348. </a>
  349. </li>
  350. <li class="md-nav__item">
  351. <a href="../config/ioctl/" class="md-nav__link">
  352. <span class="md-ellipsis">
  353. ioctl
  354. </span>
  355. </a>
  356. </li>
  357. <li class="md-nav__item">
  358. <a href="../config/statfs/" class="md-nav__link">
  359. <span class="md-ellipsis">
  360. statfs / statvfs
  361. </span>
  362. </a>
  363. </li>
  364. <li class="md-nav__item">
  365. <a href="../config/flush-on-close/" class="md-nav__link">
  366. <span class="md-ellipsis">
  367. flush-on-close
  368. </span>
  369. </a>
  370. </li>
  371. <li class="md-nav__item">
  372. <a href="../config/export-support/" class="md-nav__link">
  373. <span class="md-ellipsis">
  374. export-support
  375. </span>
  376. </a>
  377. </li>
  378. </ul>
  379. </nav>
  380. </li>
  381. <li class="md-nav__item">
  382. <a href="../error_handling/" class="md-nav__link">
  383. <span class="md-ellipsis">
  384. Error Handling
  385. </span>
  386. </a>
  387. </li>
  388. <li class="md-nav__item">
  389. <a href="../runtime_interfaces/" class="md-nav__link">
  390. <span class="md-ellipsis">
  391. Runtime Interfaces
  392. </span>
  393. </a>
  394. </li>
  395. <li class="md-nav__item">
  396. <a href="../remote_filesystems/" class="md-nav__link">
  397. <span class="md-ellipsis">
  398. Remote Filesystems
  399. </span>
  400. </a>
  401. </li>
  402. <li class="md-nav__item">
  403. <a href="../tips_notes/" class="md-nav__link">
  404. <span class="md-ellipsis">
  405. Tips and Notes
  406. </span>
  407. </a>
  408. </li>
  409. <li class="md-nav__item">
  410. <a href="../known_issues_bugs/" class="md-nav__link">
  411. <span class="md-ellipsis">
  412. Known Issues and Bugs
  413. </span>
  414. </a>
  415. </li>
  416. <li class="md-nav__item md-nav__item--active">
  417. <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
  418. <label class="md-nav__link md-nav__link--active" for="__toc">
  419. <span class="md-ellipsis">
  420. Project Comparisons
  421. </span>
  422. <span class="md-nav__icon md-icon"></span>
  423. </label>
  424. <a href="./" class="md-nav__link md-nav__link--active">
  425. <span class="md-ellipsis">
  426. Project Comparisons
  427. </span>
  428. </a>
  429. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  430. <label class="md-nav__title" for="__toc">
  431. <span class="md-nav__icon md-icon"></span>
  432. Table of contents
  433. </label>
  434. <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
  435. <li class="md-nav__item">
  436. <a href="#mhddfs" class="md-nav__link">
  437. <span class="md-ellipsis">
  438. mhddfs
  439. </span>
  440. </a>
  441. </li>
  442. <li class="md-nav__item">
  443. <a href="#aufs" class="md-nav__link">
  444. <span class="md-ellipsis">
  445. aufs
  446. </span>
  447. </a>
  448. </li>
  449. <li class="md-nav__item">
  450. <a href="#linux-unionfs" class="md-nav__link">
  451. <span class="md-ellipsis">
  452. Linux unionfs
  453. </span>
  454. </a>
  455. </li>
  456. <li class="md-nav__item">
  457. <a href="#unionfs-fuse" class="md-nav__link">
  458. <span class="md-ellipsis">
  459. unionfs-fuse
  460. </span>
  461. </a>
  462. </li>
  463. <li class="md-nav__item">
  464. <a href="#overlayfs" class="md-nav__link">
  465. <span class="md-ellipsis">
  466. overlayfs
  467. </span>
  468. </a>
  469. </li>
  470. <li class="md-nav__item">
  471. <a href="#raid0-jbod-drive-concatenation-striping" class="md-nav__link">
  472. <span class="md-ellipsis">
  473. RAID0, JBOD, drive concatenation, striping
  474. </span>
  475. </a>
  476. </li>
  477. <li class="md-nav__item">
  478. <a href="#unraid" class="md-nav__link">
  479. <span class="md-ellipsis">
  480. UnRAID
  481. </span>
  482. </a>
  483. </li>
  484. <li class="md-nav__item">
  485. <a href="#zfs" class="md-nav__link">
  486. <span class="md-ellipsis">
  487. ZFS
  488. </span>
  489. </a>
  490. </li>
  491. <li class="md-nav__item">
  492. <a href="#stablebits-drivepool" class="md-nav__link">
  493. <span class="md-ellipsis">
  494. StableBit's DrivePool
  495. </span>
  496. </a>
  497. </li>
  498. <li class="md-nav__item">
  499. <a href="#plan9-binds" class="md-nav__link">
  500. <span class="md-ellipsis">
  501. Plan9 binds
  502. </span>
  503. </a>
  504. </li>
  505. </ul>
  506. </nav>
  507. </li>
  508. <li class="md-nav__item">
  509. <a href="../performance/" class="md-nav__link">
  510. <span class="md-ellipsis">
  511. Tweaking Performance
  512. </span>
  513. </a>
  514. </li>
  515. <li class="md-nav__item">
  516. <a href="../benchmarking/" class="md-nav__link">
  517. <span class="md-ellipsis">
  518. Benchmarking
  519. </span>
  520. </a>
  521. </li>
  522. <li class="md-nav__item">
  523. <a href="../tooling/" class="md-nav__link">
  524. <span class="md-ellipsis">
  525. Tooling
  526. </span>
  527. </a>
  528. </li>
  529. <li class="md-nav__item md-nav__item--nested">
  530. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_14" >
  531. <label class="md-nav__link" for="__nav_14" id="__nav_14_label" tabindex="0">
  532. <span class="md-ellipsis">
  533. FAQ
  534. </span>
  535. <span class="md-nav__icon md-icon"></span>
  536. </label>
  537. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_14_label" aria-expanded="false">
  538. <label class="md-nav__title" for="__nav_14">
  539. <span class="md-nav__icon md-icon"></span>
  540. FAQ
  541. </label>
  542. <ul class="md-nav__list" data-md-scrollfix>
  543. <li class="md-nav__item">
  544. <a href="../faq/reliability_and_scalability/" class="md-nav__link">
  545. <span class="md-ellipsis">
  546. Reliability and Scalability
  547. </span>
  548. </a>
  549. </li>
  550. <li class="md-nav__item">
  551. <a href="../faq/usage_and_functionality/" class="md-nav__link">
  552. <span class="md-ellipsis">
  553. Usage and Functionality
  554. </span>
  555. </a>
  556. </li>
  557. <li class="md-nav__item">
  558. <a href="../faq/configuration_and_policies/" class="md-nav__link">
  559. <span class="md-ellipsis">
  560. Configuration and Policies
  561. </span>
  562. </a>
  563. </li>
  564. <li class="md-nav__item">
  565. <a href="../faq/compatibility_and_integration/" class="md-nav__link">
  566. <span class="md-ellipsis">
  567. Compatibility and Integration
  568. </span>
  569. </a>
  570. </li>
  571. <li class="md-nav__item">
  572. <a href="../faq/recommendations_and_warnings/" class="md-nav__link">
  573. <span class="md-ellipsis">
  574. Recommendations and Warnings
  575. </span>
  576. </a>
  577. </li>
  578. <li class="md-nav__item">
  579. <a href="../faq/technical_behavior_and_limitations/" class="md-nav__link">
  580. <span class="md-ellipsis">
  581. Technical Behavior and Limitations
  582. </span>
  583. </a>
  584. </li>
  585. <li class="md-nav__item">
  586. <a href="../faq/limit_drive_spinup/" class="md-nav__link">
  587. <span class="md-ellipsis">
  588. Limit drive spinup
  589. </span>
  590. </a>
  591. </li>
  592. </ul>
  593. </nav>
  594. </li>
  595. <li class="md-nav__item">
  596. <a href="../related_projects/" class="md-nav__link">
  597. <span class="md-ellipsis">
  598. Related Projects
  599. </span>
  600. </a>
  601. </li>
  602. <li class="md-nav__item">
  603. <a href="../media_and_publicity/" class="md-nav__link">
  604. <span class="md-ellipsis">
  605. Media and Publicity
  606. </span>
  607. </a>
  608. </li>
  609. <li class="md-nav__item">
  610. <a href="../support/" class="md-nav__link">
  611. <span class="md-ellipsis">
  612. Support
  613. </span>
  614. </a>
  615. </li>
  616. <li class="md-nav__item">
  617. <a href="../sponsorship_and_donations/" class="md-nav__link">
  618. <span class="md-ellipsis">
  619. Sponsorship and Donations
  620. </span>
  621. </a>
  622. </li>
  623. </ul>
  624. </nav>
  625. </div>
  626. </div>
  627. </div>
  628. <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
  629. <div class="md-sidebar__scrollwrap">
  630. <div class="md-sidebar__inner">
  631. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  632. <label class="md-nav__title" for="__toc">
  633. <span class="md-nav__icon md-icon"></span>
  634. Table of contents
  635. </label>
  636. <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
  637. <li class="md-nav__item">
  638. <a href="#mhddfs" class="md-nav__link">
  639. <span class="md-ellipsis">
  640. mhddfs
  641. </span>
  642. </a>
  643. </li>
  644. <li class="md-nav__item">
  645. <a href="#aufs" class="md-nav__link">
  646. <span class="md-ellipsis">
  647. aufs
  648. </span>
  649. </a>
  650. </li>
  651. <li class="md-nav__item">
  652. <a href="#linux-unionfs" class="md-nav__link">
  653. <span class="md-ellipsis">
  654. Linux unionfs
  655. </span>
  656. </a>
  657. </li>
  658. <li class="md-nav__item">
  659. <a href="#unionfs-fuse" class="md-nav__link">
  660. <span class="md-ellipsis">
  661. unionfs-fuse
  662. </span>
  663. </a>
  664. </li>
  665. <li class="md-nav__item">
  666. <a href="#overlayfs" class="md-nav__link">
  667. <span class="md-ellipsis">
  668. overlayfs
  669. </span>
  670. </a>
  671. </li>
  672. <li class="md-nav__item">
  673. <a href="#raid0-jbod-drive-concatenation-striping" class="md-nav__link">
  674. <span class="md-ellipsis">
  675. RAID0, JBOD, drive concatenation, striping
  676. </span>
  677. </a>
  678. </li>
  679. <li class="md-nav__item">
  680. <a href="#unraid" class="md-nav__link">
  681. <span class="md-ellipsis">
  682. UnRAID
  683. </span>
  684. </a>
  685. </li>
  686. <li class="md-nav__item">
  687. <a href="#zfs" class="md-nav__link">
  688. <span class="md-ellipsis">
  689. ZFS
  690. </span>
  691. </a>
  692. </li>
  693. <li class="md-nav__item">
  694. <a href="#stablebits-drivepool" class="md-nav__link">
  695. <span class="md-ellipsis">
  696. StableBit's DrivePool
  697. </span>
  698. </a>
  699. </li>
  700. <li class="md-nav__item">
  701. <a href="#plan9-binds" class="md-nav__link">
  702. <span class="md-ellipsis">
  703. Plan9 binds
  704. </span>
  705. </a>
  706. </li>
  707. </ul>
  708. </nav>
  709. </div>
  710. </div>
  711. </div>
  712. <div class="md-content" data-md-component="content">
  713. <article class="md-content__inner md-typeset">
  714. <a href="https://github.com/trapexit/mergerfs/tree/master/mkdocs/docs/project_comparisons.md" title="Edit this page" class="md-content__button md-icon">
  715. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4zm10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1z"/></svg>
  716. </a>
  717. <a href="https://github.com/trapexit/mergerfs/tree/master/mkdocs/docs/project_comparisons.md" title="View source of this page" class="md-content__button md-icon">
  718. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 18c.56 0 1 .44 1 1s-.44 1-1 1-1-.44-1-1 .44-1 1-1m0-3c-2.73 0-5.06 1.66-6 4 .94 2.34 3.27 4 6 4s5.06-1.66 6-4c-.94-2.34-3.27-4-6-4m0 6.5a2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5M9.27 20H6V4h7v5h5v4.07c.7.08 1.36.25 2 .49V8l-6-6H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.5a8.2 8.2 0 0 1-1.23-2"/></svg>
  719. </a>
  720. <h1 id="project-comparisons">Project Comparisons</h1>
  721. <h2 id="mhddfs">mhddfs</h2>
  722. <p>mhddfs had not been updated in over a decade and has known stability
  723. and security issues. mergerfs provides a superset of mhddfs' features
  724. and offers better performance.</p>
  725. <p>Below is an example of mhddfs and mergerfs setup to work similarly.</p>
  726. <p><code>mhddfs -o mlimit=4G,allow_other /mnt/drive1,/mnt/drive2 /mnt/pool</code></p>
  727. <p><code>mergerfs -o minfreespace=4G,category.create=ff /mnt/drive1:/mnt/drive2 /mnt/pool</code></p>
  728. <h2 id="aufs">aufs</h2>
  729. <p>aufs is abandoned and no longer available in most Linux distros.</p>
  730. <p>While aufs can offer better peak performance mergerfs provides more
  731. configurability and is generally easier to use. mergerfs however does
  732. not offer the overlay / copy-on-write (CoW) features which aufs has.</p>
  733. <h2 id="linux-unionfs">Linux unionfs</h2>
  734. <p>FILL IN</p>
  735. <h2 id="unionfs-fuse">unionfs-fuse</h2>
  736. <p>unionfs-fuse is more like aufs than mergerfs in that it offers overlay
  737. / copy-on-write (CoW) features. If you're just looking to create a
  738. union of filesystems and want flexibility in file/directory placement
  739. then mergerfs offers that whereas unionfs-fuse is more for overlaying
  740. read/write filesystems over read-only ones. Largely unionfs-fuse has
  741. been replaced by overlayfs.</p>
  742. <h2 id="overlayfs">overlayfs</h2>
  743. <p>overlayfs is similar to aufs and unionfs-fuse in that it also is
  744. primarily used to layer a read/write filesystem over one or more
  745. read-only filesystems. It does not have the ability to spread
  746. files/directories across numerous filesystems. It is the successor to
  747. unionfs, unionfs-fuse, and aufs and widely used by container platforms
  748. such as Docker.</p>
  749. <p>If your usecase is layering a writable filesystem on top of readonly
  750. filesystems then you should look first to overlayfs.</p>
  751. <h2 id="raid0-jbod-drive-concatenation-striping">RAID0, JBOD, drive concatenation, striping</h2>
  752. <p>With simple JBOD / drive concatenation / stripping / RAID0 a single
  753. drive failure will result in full pool failure. mergerfs performs a
  754. similar function without the possibility of catastrophic failure and
  755. the difficulties in recovery. Drives may fail but all other
  756. filesystems and their data will continue to be accessible.</p>
  757. <p>The main practical difference with mergerfs is the fact you don't
  758. actually have contiguous space as large as if you used those other
  759. technologies. Meaning you can't create a 2TB file on a pool of 2 1TB
  760. filesystems.</p>
  761. <h2 id="unraid">UnRAID</h2>
  762. <p>UnRAID is a full OS and offers a (FUSE based?) filesystem which
  763. provides a union of filesystems like mergerfs but with the addition of
  764. live parity calculation and storage. Outside parity calculations
  765. mergerfs offers more features and due to the lack of realtime parity
  766. calculation can have high peak performance. Some users also prefer an
  767. open source solution.</p>
  768. <p>For semi-static data mergerfs + <a href="http://www.snapraid.it">SnapRaid</a>
  769. provides a similar solution.</p>
  770. <h2 id="zfs">ZFS</h2>
  771. <p>mergerfs is very different from ZFS. mergerfs is intended to provide
  772. flexible pooling of arbitrary filesystems (local or remote), of
  773. arbitrary sizes, and arbitrary filesystems. Primarily in <code>write once, read
  774. many</code> usecases such as bulk media storage. Where data integrity and
  775. backup is managed in other ways. In those usecases ZFS can introduce a
  776. number of costs and limitations as described
  777. <a href="http://louwrentius.com/the-hidden-cost-of-using-zfs-for-your-home-nas.html">here</a>,
  778. <a href="https://markmcb.com/2020/01/07/five-years-of-btrfs/">here</a>, and
  779. <a href="https://utcc.utoronto.ca/~cks/space/blog/solaris/ZFSWhyNoRealReshaping">here</a>.</p>
  780. <h2 id="stablebits-drivepool">StableBit's DrivePool</h2>
  781. <p>DrivePool works only on Windows so not as common an alternative as
  782. other Linux solutions. If you want to use Windows then DrivePool is a
  783. good option. Functionally the two projects work a bit
  784. differently. DrivePool always writes to the filesystem with the most
  785. free space and later rebalances. mergerfs does not currently offer
  786. rebalance but chooses a branch at file/directory create
  787. time. DrivePool's rebalancing can be done differently in any directory
  788. and has file pattern matching to further customize the
  789. behavior. mergerfs, not having rebalancing does not have these
  790. features, but similar features are planned for mergerfs v3. DrivePool
  791. has builtin file duplication which mergerfs does not natively support
  792. (but can be done via an external script.)</p>
  793. <p>There are a lot of misc differences between the two projects but most
  794. features in DrivePool can be replicated with external tools in
  795. combination with mergerfs.</p>
  796. <p>Additionally, DrivePool is a closed source commercial product vs
  797. mergerfs a ISC licensed open source project.</p>
  798. <h2 id="plan9-binds">Plan9 binds</h2>
  799. <p>Plan9 has the native ability to bind multiple paths/filesystems
  800. together which can be compared to a simplified union filesystem. Such
  801. bind mounts choose files in a "first found" in the order they are
  802. listed similar to mergerfs' <code>ff</code> policy. File creation is limited
  803. to... FILL ME IN. REFERENCE DOCS.</p>
  804. </article>
  805. </div>
  806. <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
  807. </div>
  808. <button type="button" class="md-top md-icon" data-md-component="top" hidden>
  809. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
  810. Back to top
  811. </button>
  812. </main>
  813. <footer class="md-footer">
  814. <nav class="md-footer__inner md-grid" aria-label="Footer" >
  815. <a href="../known_issues_bugs/" class="md-footer__link md-footer__link--prev" aria-label="Previous: Known Issues and Bugs">
  816. <div class="md-footer__button md-icon">
  817. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
  818. </div>
  819. <div class="md-footer__title">
  820. <span class="md-footer__direction">
  821. Previous
  822. </span>
  823. <div class="md-ellipsis">
  824. Known Issues and Bugs
  825. </div>
  826. </div>
  827. </a>
  828. <a href="../performance/" class="md-footer__link md-footer__link--next" aria-label="Next: Tweaking Performance">
  829. <div class="md-footer__title">
  830. <span class="md-footer__direction">
  831. Next
  832. </span>
  833. <div class="md-ellipsis">
  834. Tweaking Performance
  835. </div>
  836. </div>
  837. <div class="md-footer__button md-icon">
  838. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"/></svg>
  839. </div>
  840. </a>
  841. </nav>
  842. <div class="md-footer-meta md-typeset">
  843. <div class="md-footer-meta__inner md-grid">
  844. <div class="md-copyright">
  845. Made with
  846. <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
  847. Material for MkDocs
  848. </a>
  849. </div>
  850. </div>
  851. </div>
  852. </footer>
  853. </div>
  854. <div class="md-dialog" data-md-component="dialog">
  855. <div class="md-dialog__inner md-typeset"></div>
  856. </div>
  857. <script id="__config" type="application/json">{"base": "..", "features": ["content.action.edit", "content.action.view", "content.code.copy", "content.code.select", "navigation.footer", "navigation.instant", "navigation.instant.prefetch", "navigation.path", "navigation.top", "navigation.tracking", "optimize", "search.share", "toc.follow"], "search": "../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
  858. <script src="../assets/javascripts/bundle.88dd0f4e.min.js"></script>
  859. </body>
  860. </html>