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.

1633 lines
36 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/config/inodecalc/">
  8. <link rel="prev" href="../readahead/">
  9. <link rel="next" href="../threads/">
  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>inodecalc - 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="#inodecalc" 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. inodecalc
  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--active md-nav__item--nested">
  190. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" checked>
  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="true">
  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="../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="../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="../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="../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="../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="../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="../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="../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="../readahead/" class="md-nav__link">
  261. <span class="md-ellipsis">
  262. readahead
  263. </span>
  264. </a>
  265. </li>
  266. <li class="md-nav__item md-nav__item--active">
  267. <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
  268. <a href="./" class="md-nav__link md-nav__link--active">
  269. <span class="md-ellipsis">
  270. inodecalc
  271. </span>
  272. </a>
  273. </li>
  274. <li class="md-nav__item">
  275. <a href="../threads/" class="md-nav__link">
  276. <span class="md-ellipsis">
  277. threads
  278. </span>
  279. </a>
  280. </li>
  281. <li class="md-nav__item">
  282. <a href="../pin-threads/" class="md-nav__link">
  283. <span class="md-ellipsis">
  284. pin-threads
  285. </span>
  286. </a>
  287. </li>
  288. <li class="md-nav__item">
  289. <a href="../link_cow/" class="md-nav__link">
  290. <span class="md-ellipsis">
  291. link_cow
  292. </span>
  293. </a>
  294. </li>
  295. <li class="md-nav__item">
  296. <a href="../fuse_msg_size/" class="md-nav__link">
  297. <span class="md-ellipsis">
  298. fuse_msg_size
  299. </span>
  300. </a>
  301. </li>
  302. <li class="md-nav__item">
  303. <a href="../follow-symlinks/" class="md-nav__link">
  304. <span class="md-ellipsis">
  305. follow-symlinks
  306. </span>
  307. </a>
  308. </li>
  309. <li class="md-nav__item">
  310. <a href="../link-exdev/" class="md-nav__link">
  311. <span class="md-ellipsis">
  312. link-exdev
  313. </span>
  314. </a>
  315. </li>
  316. <li class="md-nav__item">
  317. <a href="../rename-exdev/" class="md-nav__link">
  318. <span class="md-ellipsis">
  319. rename-exdev
  320. </span>
  321. </a>
  322. </li>
  323. <li class="md-nav__item">
  324. <a href="../symlinkify/" class="md-nav__link">
  325. <span class="md-ellipsis">
  326. symlinkify
  327. </span>
  328. </a>
  329. </li>
  330. <li class="md-nav__item">
  331. <a href="../nullrw/" class="md-nav__link">
  332. <span class="md-ellipsis">
  333. nullrw
  334. </span>
  335. </a>
  336. </li>
  337. <li class="md-nav__item">
  338. <a href="../xattr/" class="md-nav__link">
  339. <span class="md-ellipsis">
  340. xattr
  341. </span>
  342. </a>
  343. </li>
  344. <li class="md-nav__item">
  345. <a href="../nfsopenhack/" class="md-nav__link">
  346. <span class="md-ellipsis">
  347. nfsopenhack
  348. </span>
  349. </a>
  350. </li>
  351. <li class="md-nav__item">
  352. <a href="../statfs/" class="md-nav__link">
  353. <span class="md-ellipsis">
  354. statfs / statvfs
  355. </span>
  356. </a>
  357. </li>
  358. <li class="md-nav__item">
  359. <a href="../flush-on-close/" class="md-nav__link">
  360. <span class="md-ellipsis">
  361. flush-on-close
  362. </span>
  363. </a>
  364. </li>
  365. <li class="md-nav__item">
  366. <a href="../export-support/" class="md-nav__link">
  367. <span class="md-ellipsis">
  368. export-support
  369. </span>
  370. </a>
  371. </li>
  372. </ul>
  373. </nav>
  374. </li>
  375. <li class="md-nav__item">
  376. <a href="../../error_handling/" class="md-nav__link">
  377. <span class="md-ellipsis">
  378. Error Handling
  379. </span>
  380. </a>
  381. </li>
  382. <li class="md-nav__item">
  383. <a href="../../runtime_interfaces/" class="md-nav__link">
  384. <span class="md-ellipsis">
  385. Runtime Interfaces
  386. </span>
  387. </a>
  388. </li>
  389. <li class="md-nav__item">
  390. <a href="../../remote_filesystems/" class="md-nav__link">
  391. <span class="md-ellipsis">
  392. Remote Filesystems
  393. </span>
  394. </a>
  395. </li>
  396. <li class="md-nav__item">
  397. <a href="../../tips_notes/" class="md-nav__link">
  398. <span class="md-ellipsis">
  399. Tips and Notes
  400. </span>
  401. </a>
  402. </li>
  403. <li class="md-nav__item">
  404. <a href="../../known_issues_bugs/" class="md-nav__link">
  405. <span class="md-ellipsis">
  406. Known Issues and Bugs
  407. </span>
  408. </a>
  409. </li>
  410. <li class="md-nav__item">
  411. <a href="../../project_comparisons/" class="md-nav__link">
  412. <span class="md-ellipsis">
  413. Project Comparisons
  414. </span>
  415. </a>
  416. </li>
  417. <li class="md-nav__item">
  418. <a href="../../performance/" class="md-nav__link">
  419. <span class="md-ellipsis">
  420. Tweaking Performance
  421. </span>
  422. </a>
  423. </li>
  424. <li class="md-nav__item">
  425. <a href="../../benchmarking/" class="md-nav__link">
  426. <span class="md-ellipsis">
  427. Benchmarking
  428. </span>
  429. </a>
  430. </li>
  431. <li class="md-nav__item">
  432. <a href="../../tooling/" class="md-nav__link">
  433. <span class="md-ellipsis">
  434. Tooling
  435. </span>
  436. </a>
  437. </li>
  438. <li class="md-nav__item md-nav__item--nested">
  439. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_14" >
  440. <label class="md-nav__link" for="__nav_14" id="__nav_14_label" tabindex="0">
  441. <span class="md-ellipsis">
  442. FAQ
  443. </span>
  444. <span class="md-nav__icon md-icon"></span>
  445. </label>
  446. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_14_label" aria-expanded="false">
  447. <label class="md-nav__title" for="__nav_14">
  448. <span class="md-nav__icon md-icon"></span>
  449. FAQ
  450. </label>
  451. <ul class="md-nav__list" data-md-scrollfix>
  452. <li class="md-nav__item">
  453. <a href="../../faq/reliability_and_scalability/" class="md-nav__link">
  454. <span class="md-ellipsis">
  455. Reliability and Scalability
  456. </span>
  457. </a>
  458. </li>
  459. <li class="md-nav__item">
  460. <a href="../../faq/usage_and_functionality/" class="md-nav__link">
  461. <span class="md-ellipsis">
  462. Usage and Functionality
  463. </span>
  464. </a>
  465. </li>
  466. <li class="md-nav__item">
  467. <a href="../../faq/configuration_and_policies/" class="md-nav__link">
  468. <span class="md-ellipsis">
  469. Configuration and Policies
  470. </span>
  471. </a>
  472. </li>
  473. <li class="md-nav__item">
  474. <a href="../../faq/compatibility_and_integration/" class="md-nav__link">
  475. <span class="md-ellipsis">
  476. Compatibility and Integration
  477. </span>
  478. </a>
  479. </li>
  480. <li class="md-nav__item">
  481. <a href="../../faq/recommendations_and_warnings/" class="md-nav__link">
  482. <span class="md-ellipsis">
  483. Recommendations and Warnings
  484. </span>
  485. </a>
  486. </li>
  487. <li class="md-nav__item">
  488. <a href="../../faq/technical_behavior_and_limitations/" class="md-nav__link">
  489. <span class="md-ellipsis">
  490. Technical Behavior and Limitations
  491. </span>
  492. </a>
  493. </li>
  494. <li class="md-nav__item">
  495. <a href="../../faq/limit_drive_spinup/" class="md-nav__link">
  496. <span class="md-ellipsis">
  497. Limiting drive spinup
  498. </span>
  499. </a>
  500. </li>
  501. </ul>
  502. </nav>
  503. </li>
  504. <li class="md-nav__item">
  505. <a href="../../related_projects/" class="md-nav__link">
  506. <span class="md-ellipsis">
  507. Related Projects
  508. </span>
  509. </a>
  510. </li>
  511. <li class="md-nav__item">
  512. <a href="../../media_and_publicity/" class="md-nav__link">
  513. <span class="md-ellipsis">
  514. Media and Publicity
  515. </span>
  516. </a>
  517. </li>
  518. <li class="md-nav__item">
  519. <a href="../../support/" class="md-nav__link">
  520. <span class="md-ellipsis">
  521. Support
  522. </span>
  523. </a>
  524. </li>
  525. <li class="md-nav__item">
  526. <a href="../../sponsorship_and_donations/" class="md-nav__link">
  527. <span class="md-ellipsis">
  528. Sponsorship and Donations
  529. </span>
  530. </a>
  531. </li>
  532. </ul>
  533. </nav>
  534. </div>
  535. </div>
  536. </div>
  537. <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
  538. <div class="md-sidebar__scrollwrap">
  539. <div class="md-sidebar__inner">
  540. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  541. </nav>
  542. </div>
  543. </div>
  544. </div>
  545. <div class="md-content" data-md-component="content">
  546. <article class="md-content__inner md-typeset">
  547. <a href="https://github.com/trapexit/mergerfs/tree/master/mkdocs/docs/config/inodecalc.md" title="Edit this page" class="md-content__button md-icon">
  548. <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>
  549. </a>
  550. <a href="https://github.com/trapexit/mergerfs/tree/master/mkdocs/docs/config/inodecalc.md" title="View source of this page" class="md-content__button md-icon">
  551. <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>
  552. </a>
  553. <h1 id="inodecalc">inodecalc</h1>
  554. <p>Inodes (<code>st_ino</code>) are unique identifiers within a filesystem. Each
  555. mounted filesystem has device ID (st_dev) as well and together they
  556. can uniquely identify a file on the whole of the system. Entries on
  557. the same device with the same inode are in fact references to the same
  558. underlying file. It is a many to one relationship between names and an
  559. inode. Directories, however, do not have multiple links on most
  560. systems due to the complexity they add.</p>
  561. <p>FUSE allows the server (mergerfs) to set inode values but not device
  562. IDs. Creating an inode value is somewhat complex in mergerfs' case as
  563. files aren't really in its control. If a policy changes what directory
  564. or file is to be selected or something changes out of band it becomes
  565. unclear what value should be used. Most software does not to care what
  566. the values are but those that do often break if a value changes
  567. unexpectedly. The tool find will abort a directory walk if it sees a
  568. directory inode change. NFS can return stale handle errors if the
  569. inode changes out of band. File dedup tools will usually leverage
  570. device ids and inodes as a shortcut in searching for duplicate files
  571. and would resort to full file comparisons should it find different
  572. inode values.</p>
  573. <p>mergerfs offers multiple ways to calculate the inode in hopes of
  574. covering different usecases.</p>
  575. <ul>
  576. <li><code>passthrough</code>: Passes through the underlying inode value. Mostly
  577. intended for testing as using this does not address any of the
  578. problems mentioned above and could confuse file deduplication
  579. software as inodes from different filesystems can be the same.</li>
  580. <li><code>path-hash</code>: Hashes the relative path of the entry in question. The
  581. underlying file's values are completely ignored. This means the
  582. inode value will always be the same for that file path. This is
  583. useful when using NFS and you make changes out of band such as copy
  584. data between branches. This also means that entries that do point to
  585. the same file will not be recognizable via inodes. That does not
  586. mean hard links don't work. They will.</li>
  587. <li><code>path-hash32</code>: 32bit version of path-hash.</li>
  588. <li><code>devino-hash</code>: Hashes the device id and inode of the underlying
  589. entry. This won't prevent issues with NFS should the policy pick a
  590. different file or files move out of band but will present the same
  591. inode for underlying files that do too.</li>
  592. <li><code>devino-hash32</code>: 32bit version of devino-hash.</li>
  593. <li><code>hybrid-hash</code>: Performs path-hash on directories and devino-hash on
  594. other file types. Since directories can't have hard links the static
  595. value won't make a difference and the files will get values useful
  596. for finding duplicates. Probably the best to use if not using
  597. NFS. As such it is the default.</li>
  598. <li><code>hybrid-hash32</code>: 32bit version of hybrid-hash.</li>
  599. </ul>
  600. <p>32bit versions are provided as there is some software which does not
  601. handle 64bit inodes well.</p>
  602. <p>While there is a risk of hash collision in tests of a couple of
  603. million entries there were zero collisions. Unlike a typical
  604. filesystem FUSE filesystems can reuse inodes and not refer to the same
  605. entry. The internal identifier used to reference a file in FUSE is
  606. different from the inode value presented. The former is the nodeid and
  607. is actually a tuple of 2 64bit values: nodeid and generation. This
  608. tuple is not client facing. The inode that is presented to the client
  609. is passed through the kernel uninterpreted.</p>
  610. <p>From FUSE docs for <code>use_ino</code>:</p>
  611. <blockquote>
  612. <p>Honor the st_ino field in the functions getattr() and
  613. fill_dir(). This value is used to fill in the st_ino field
  614. in the stat(2), lstat(2), fstat(2) functions and the d_ino
  615. field in the readdir(2) function. The filesystem does not
  616. have to guarantee uniqueness, however some applications
  617. rely on this value being unique for the whole filesystem.
  618. Note that this does <em>not</em> affect the inode that libfuse
  619. and the kernel use internally (also called the "nodeid").</p>
  620. </blockquote>
  621. <p><strong>NOTE:</strong> As of version 2.35.0 the use_ino option has been
  622. removed. mergerfs should always be managing inode values.</p>
  623. </article>
  624. </div>
  625. <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
  626. </div>
  627. <button type="button" class="md-top md-icon" data-md-component="top" hidden>
  628. <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>
  629. Back to top
  630. </button>
  631. </main>
  632. <footer class="md-footer">
  633. <nav class="md-footer__inner md-grid" aria-label="Footer" >
  634. <a href="../readahead/" class="md-footer__link md-footer__link--prev" aria-label="Previous: readahead">
  635. <div class="md-footer__button md-icon">
  636. <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>
  637. </div>
  638. <div class="md-footer__title">
  639. <span class="md-footer__direction">
  640. Previous
  641. </span>
  642. <div class="md-ellipsis">
  643. readahead
  644. </div>
  645. </div>
  646. </a>
  647. <a href="../threads/" class="md-footer__link md-footer__link--next" aria-label="Next: threads">
  648. <div class="md-footer__title">
  649. <span class="md-footer__direction">
  650. Next
  651. </span>
  652. <div class="md-ellipsis">
  653. threads
  654. </div>
  655. </div>
  656. <div class="md-footer__button md-icon">
  657. <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>
  658. </div>
  659. </a>
  660. </nav>
  661. <div class="md-footer-meta md-typeset">
  662. <div class="md-footer-meta__inner md-grid">
  663. <div class="md-copyright">
  664. Made with
  665. <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
  666. Material for MkDocs
  667. </a>
  668. </div>
  669. </div>
  670. </div>
  671. </footer>
  672. </div>
  673. <div class="md-dialog" data-md-component="dialog">
  674. <div class="md-dialog__inner md-typeset"></div>
  675. </div>
  676. <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>
  677. <script src="../../assets/javascripts/bundle.88dd0f4e.min.js"></script>
  678. </body>
  679. </html>