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.

1681 lines
37 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/faq/recommendations_and_warnings/">
  8. <link rel="prev" href="../compatibility_and_integration/">
  9. <link rel="next" href="../technical_behavior_and_limitations/">
  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>Recommendations and Warnings - 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="#recommendations-and-warnings" 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. Recommendations and Warnings
  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/statfs/" class="md-nav__link">
  352. <span class="md-ellipsis">
  353. statfs / statvfs
  354. </span>
  355. </a>
  356. </li>
  357. <li class="md-nav__item">
  358. <a href="../../config/flush-on-close/" class="md-nav__link">
  359. <span class="md-ellipsis">
  360. flush-on-close
  361. </span>
  362. </a>
  363. </li>
  364. <li class="md-nav__item">
  365. <a href="../../config/export-support/" class="md-nav__link">
  366. <span class="md-ellipsis">
  367. export-support
  368. </span>
  369. </a>
  370. </li>
  371. </ul>
  372. </nav>
  373. </li>
  374. <li class="md-nav__item">
  375. <a href="../../error_handling/" class="md-nav__link">
  376. <span class="md-ellipsis">
  377. Error Handling
  378. </span>
  379. </a>
  380. </li>
  381. <li class="md-nav__item">
  382. <a href="../../runtime_interfaces/" class="md-nav__link">
  383. <span class="md-ellipsis">
  384. Runtime Interfaces
  385. </span>
  386. </a>
  387. </li>
  388. <li class="md-nav__item">
  389. <a href="../../remote_filesystems/" class="md-nav__link">
  390. <span class="md-ellipsis">
  391. Remote Filesystems
  392. </span>
  393. </a>
  394. </li>
  395. <li class="md-nav__item">
  396. <a href="../../tips_notes/" class="md-nav__link">
  397. <span class="md-ellipsis">
  398. Tips and Notes
  399. </span>
  400. </a>
  401. </li>
  402. <li class="md-nav__item">
  403. <a href="../../known_issues_bugs/" class="md-nav__link">
  404. <span class="md-ellipsis">
  405. Known Issues and Bugs
  406. </span>
  407. </a>
  408. </li>
  409. <li class="md-nav__item">
  410. <a href="../../project_comparisons/" class="md-nav__link">
  411. <span class="md-ellipsis">
  412. Project Comparisons
  413. </span>
  414. </a>
  415. </li>
  416. <li class="md-nav__item">
  417. <a href="../../performance/" class="md-nav__link">
  418. <span class="md-ellipsis">
  419. Tweaking Performance
  420. </span>
  421. </a>
  422. </li>
  423. <li class="md-nav__item">
  424. <a href="../../benchmarking/" class="md-nav__link">
  425. <span class="md-ellipsis">
  426. Benchmarking
  427. </span>
  428. </a>
  429. </li>
  430. <li class="md-nav__item">
  431. <a href="../../tooling/" class="md-nav__link">
  432. <span class="md-ellipsis">
  433. Tooling
  434. </span>
  435. </a>
  436. </li>
  437. <li class="md-nav__item md-nav__item--active md-nav__item--nested">
  438. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_14" checked>
  439. <label class="md-nav__link" for="__nav_14" id="__nav_14_label" tabindex="0">
  440. <span class="md-ellipsis">
  441. FAQ
  442. </span>
  443. <span class="md-nav__icon md-icon"></span>
  444. </label>
  445. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_14_label" aria-expanded="true">
  446. <label class="md-nav__title" for="__nav_14">
  447. <span class="md-nav__icon md-icon"></span>
  448. FAQ
  449. </label>
  450. <ul class="md-nav__list" data-md-scrollfix>
  451. <li class="md-nav__item">
  452. <a href="../reliability_and_scalability/" class="md-nav__link">
  453. <span class="md-ellipsis">
  454. Reliability and Scalability
  455. </span>
  456. </a>
  457. </li>
  458. <li class="md-nav__item">
  459. <a href="../usage_and_functionality/" class="md-nav__link">
  460. <span class="md-ellipsis">
  461. Usage and Functionality
  462. </span>
  463. </a>
  464. </li>
  465. <li class="md-nav__item">
  466. <a href="../configuration_and_policies/" class="md-nav__link">
  467. <span class="md-ellipsis">
  468. Configuration and Policies
  469. </span>
  470. </a>
  471. </li>
  472. <li class="md-nav__item">
  473. <a href="../compatibility_and_integration/" class="md-nav__link">
  474. <span class="md-ellipsis">
  475. Compatibility and Integration
  476. </span>
  477. </a>
  478. </li>
  479. <li class="md-nav__item md-nav__item--active">
  480. <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
  481. <label class="md-nav__link md-nav__link--active" for="__toc">
  482. <span class="md-ellipsis">
  483. Recommendations and Warnings
  484. </span>
  485. <span class="md-nav__icon md-icon"></span>
  486. </label>
  487. <a href="./" class="md-nav__link md-nav__link--active">
  488. <span class="md-ellipsis">
  489. Recommendations and Warnings
  490. </span>
  491. </a>
  492. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  493. <label class="md-nav__title" for="__toc">
  494. <span class="md-nav__icon md-icon"></span>
  495. Table of contents
  496. </label>
  497. <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
  498. <li class="md-nav__item">
  499. <a href="#what-should-mergerfs-not-be-used-for" class="md-nav__link">
  500. <span class="md-ellipsis">
  501. What should mergerfs NOT be used for?
  502. </span>
  503. </a>
  504. </li>
  505. <li class="md-nav__item">
  506. <a href="#its-mentioned-that-there-are-some-security-issues-with-mhddfs-what-are-they-how-does-mergerfs-address-them" class="md-nav__link">
  507. <span class="md-ellipsis">
  508. It's mentioned that there are some security issues with mhddfs. What are they? How does mergerfs address them?
  509. </span>
  510. </a>
  511. </li>
  512. </ul>
  513. </nav>
  514. </li>
  515. <li class="md-nav__item">
  516. <a href="../technical_behavior_and_limitations/" class="md-nav__link">
  517. <span class="md-ellipsis">
  518. Technical Behavior and Limitations
  519. </span>
  520. </a>
  521. </li>
  522. <li class="md-nav__item">
  523. <a href="../limit_drive_spinup/" class="md-nav__link">
  524. <span class="md-ellipsis">
  525. Limiting drive spinup
  526. </span>
  527. </a>
  528. </li>
  529. </ul>
  530. </nav>
  531. </li>
  532. <li class="md-nav__item">
  533. <a href="../../related_projects/" class="md-nav__link">
  534. <span class="md-ellipsis">
  535. Related Projects
  536. </span>
  537. </a>
  538. </li>
  539. <li class="md-nav__item">
  540. <a href="../../media_and_publicity/" class="md-nav__link">
  541. <span class="md-ellipsis">
  542. Media and Publicity
  543. </span>
  544. </a>
  545. </li>
  546. <li class="md-nav__item">
  547. <a href="../../support/" class="md-nav__link">
  548. <span class="md-ellipsis">
  549. Support
  550. </span>
  551. </a>
  552. </li>
  553. <li class="md-nav__item">
  554. <a href="../../sponsorship_and_donations/" class="md-nav__link">
  555. <span class="md-ellipsis">
  556. Sponsorship and Donations
  557. </span>
  558. </a>
  559. </li>
  560. </ul>
  561. </nav>
  562. </div>
  563. </div>
  564. </div>
  565. <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
  566. <div class="md-sidebar__scrollwrap">
  567. <div class="md-sidebar__inner">
  568. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  569. <label class="md-nav__title" for="__toc">
  570. <span class="md-nav__icon md-icon"></span>
  571. Table of contents
  572. </label>
  573. <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
  574. <li class="md-nav__item">
  575. <a href="#what-should-mergerfs-not-be-used-for" class="md-nav__link">
  576. <span class="md-ellipsis">
  577. What should mergerfs NOT be used for?
  578. </span>
  579. </a>
  580. </li>
  581. <li class="md-nav__item">
  582. <a href="#its-mentioned-that-there-are-some-security-issues-with-mhddfs-what-are-they-how-does-mergerfs-address-them" class="md-nav__link">
  583. <span class="md-ellipsis">
  584. It's mentioned that there are some security issues with mhddfs. What are they? How does mergerfs address them?
  585. </span>
  586. </a>
  587. </li>
  588. </ul>
  589. </nav>
  590. </div>
  591. </div>
  592. </div>
  593. <div class="md-content" data-md-component="content">
  594. <article class="md-content__inner md-typeset">
  595. <a href="https://github.com/trapexit/mergerfs/tree/master/mkdocs/docs/faq/recommendations_and_warnings.md" title="Edit this page" class="md-content__button md-icon">
  596. <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>
  597. </a>
  598. <a href="https://github.com/trapexit/mergerfs/tree/master/mkdocs/docs/faq/recommendations_and_warnings.md" title="View source of this page" class="md-content__button md-icon">
  599. <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>
  600. </a>
  601. <h1 id="recommendations-and-warnings">Recommendations and Warnings</h1>
  602. <h2 id="what-should-mergerfs-not-be-used-for">What should mergerfs NOT be used for?</h2>
  603. <ul>
  604. <li>databases: Even if the database stored data in separate files
  605. (mergerfs wouldn't offer much otherwise) the higher latency of the
  606. indirection will really harm performance. If it is a lightly used
  607. sqlite3 database then it should be fine.</li>
  608. <li>VM images: For the same reasons as databases. VM images are accessed
  609. very aggressively and mergerfs will introduce a lot of extra latency.</li>
  610. <li>As replacement for RAID: mergerfs is just for pooling branches. If
  611. you need that kind of device performance aggregation or high
  612. availability you should stick with RAID. However, it is fine to put
  613. a filesystem which is on a RAID setup in mergerfs.</li>
  614. </ul>
  615. <h2 id="its-mentioned-that-there-are-some-security-issues-with-mhddfs-what-are-they-how-does-mergerfs-address-them">It's mentioned that there are some security issues with mhddfs. What are they? How does mergerfs address them?</h2>
  616. <p><a href="https://github.com/trapexit/mhddfs">mhddfs</a> manages running as
  617. <code>root</code> by calling
  618. <a href="https://github.com/trapexit/mhddfs/blob/cae96e6251dd91e2bdc24800b4a18a74044f6672/src/main.c#L319">getuid()</a>
  619. and if it returns <code>0</code> then it will
  620. <a href="http://linux.die.net/man/1/chown">chown</a> the file. Not only is that a
  621. race condition but it doesn't handle other situations. Rather than
  622. attempting to simulate POSIX ACL behavior the proper way to manage
  623. this is to use <a href="http://linux.die.net/man/2/seteuid">seteuid</a> and
  624. <a href="http://linux.die.net/man/2/setegid">setegid</a>, in effect, becoming the
  625. user making the original call, and perform the action as them. This is
  626. what mergerfs does and why mergerfs should always run as root.</p>
  627. <p>In Linux setreuid syscalls apply only to the thread. glibc hides this
  628. away by using realtime signals to inform all threads to change
  629. credentials. Taking after Samba, mergerfs uses
  630. <code>syscall(SYS_setreuid,...)</code> to set the callers credentials for that
  631. thread only. Jumping back to <code>root</code> as necessary should escalated
  632. privileges be needed (for instance: to clone paths between
  633. filesystems).</p>
  634. <p>For non-Linux systems, mergerfs uses a read-write lock and changes
  635. credentials only when necessary. If multiple threads are to be user X
  636. then only the first one will need to change the processes
  637. credentials. So long as the other threads need to be user X they will
  638. take a readlock allowing multiple threads to share the
  639. credentials. Once a request comes in to run as user Y that thread will
  640. attempt a write lock and change to Y's credentials when it can. If the
  641. ability to give writers priority is supported then that flag will be
  642. used so threads trying to change credentials don't starve. This isn't
  643. the best solution but should work reasonably well assuming there are
  644. few users.</p>
  645. </article>
  646. </div>
  647. <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
  648. </div>
  649. <button type="button" class="md-top md-icon" data-md-component="top" hidden>
  650. <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>
  651. Back to top
  652. </button>
  653. </main>
  654. <footer class="md-footer">
  655. <nav class="md-footer__inner md-grid" aria-label="Footer" >
  656. <a href="../compatibility_and_integration/" class="md-footer__link md-footer__link--prev" aria-label="Previous: Compatibility and Integration">
  657. <div class="md-footer__button md-icon">
  658. <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>
  659. </div>
  660. <div class="md-footer__title">
  661. <span class="md-footer__direction">
  662. Previous
  663. </span>
  664. <div class="md-ellipsis">
  665. Compatibility and Integration
  666. </div>
  667. </div>
  668. </a>
  669. <a href="../technical_behavior_and_limitations/" class="md-footer__link md-footer__link--next" aria-label="Next: Technical Behavior and Limitations">
  670. <div class="md-footer__title">
  671. <span class="md-footer__direction">
  672. Next
  673. </span>
  674. <div class="md-ellipsis">
  675. Technical Behavior and Limitations
  676. </div>
  677. </div>
  678. <div class="md-footer__button md-icon">
  679. <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>
  680. </div>
  681. </a>
  682. </nav>
  683. <div class="md-footer-meta md-typeset">
  684. <div class="md-footer-meta__inner md-grid">
  685. <div class="md-copyright">
  686. Made with
  687. <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
  688. Material for MkDocs
  689. </a>
  690. </div>
  691. </div>
  692. </div>
  693. </footer>
  694. </div>
  695. <div class="md-dialog" data-md-component="dialog">
  696. <div class="md-dialog__inner md-typeset"></div>
  697. </div>
  698. <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>
  699. <script src="../../assets/javascripts/bundle.88dd0f4e.min.js"></script>
  700. </body>
  701. </html>