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.

1768 lines
39 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/limit_drive_spinup/">
  8. <link rel="prev" href="../technical_behavior_and_limitations/">
  9. <link rel="next" href="../../related_projects/">
  10. <link rel="icon" href="../../assets/images/favicon.png">
  11. <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.50">
  12. <title>Limiting drive spinup - mergerfs</title>
  13. <link rel="stylesheet" href="../../assets/stylesheets/main.a40c8224.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="#limiting-drive-spinup" 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. Limiting drive spinup
  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.2 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.2 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">
  190. <a href="../../terminology/" class="md-nav__link">
  191. <span class="md-ellipsis">
  192. Terminology
  193. </span>
  194. </a>
  195. </li>
  196. <li class="md-nav__item md-nav__item--nested">
  197. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
  198. <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
  199. <span class="md-ellipsis">
  200. Config
  201. </span>
  202. <span class="md-nav__icon md-icon"></span>
  203. </label>
  204. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
  205. <label class="md-nav__title" for="__nav_5">
  206. <span class="md-nav__icon md-icon"></span>
  207. Config
  208. </label>
  209. <ul class="md-nav__list" data-md-scrollfix>
  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_and_logging/" class="md-nav__link">
  376. <span class="md-ellipsis">
  377. Error Handling and Logging
  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">
  438. <a href="../../usage_patterns/" class="md-nav__link">
  439. <span class="md-ellipsis">
  440. Usage Patterns
  441. </span>
  442. </a>
  443. </li>
  444. <li class="md-nav__item md-nav__item--active md-nav__item--nested">
  445. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16" checked>
  446. <label class="md-nav__link" for="__nav_16" id="__nav_16_label" tabindex="0">
  447. <span class="md-ellipsis">
  448. FAQ
  449. </span>
  450. <span class="md-nav__icon md-icon"></span>
  451. </label>
  452. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_16_label" aria-expanded="true">
  453. <label class="md-nav__title" for="__nav_16">
  454. <span class="md-nav__icon md-icon"></span>
  455. FAQ
  456. </label>
  457. <ul class="md-nav__list" data-md-scrollfix>
  458. <li class="md-nav__item">
  459. <a href="../reliability_and_scalability/" class="md-nav__link">
  460. <span class="md-ellipsis">
  461. Reliability and Scalability
  462. </span>
  463. </a>
  464. </li>
  465. <li class="md-nav__item">
  466. <a href="../usage_and_functionality/" class="md-nav__link">
  467. <span class="md-ellipsis">
  468. Usage and Functionality
  469. </span>
  470. </a>
  471. </li>
  472. <li class="md-nav__item">
  473. <a href="../configuration_and_policies/" class="md-nav__link">
  474. <span class="md-ellipsis">
  475. Configuration and Policies
  476. </span>
  477. </a>
  478. </li>
  479. <li class="md-nav__item">
  480. <a href="../compatibility_and_integration/" class="md-nav__link">
  481. <span class="md-ellipsis">
  482. Compatibility and Integration
  483. </span>
  484. </a>
  485. </li>
  486. <li class="md-nav__item">
  487. <a href="../recommendations_and_warnings/" class="md-nav__link">
  488. <span class="md-ellipsis">
  489. Recommendations and Warnings
  490. </span>
  491. </a>
  492. </li>
  493. <li class="md-nav__item">
  494. <a href="../technical_behavior_and_limitations/" class="md-nav__link">
  495. <span class="md-ellipsis">
  496. Technical Behavior and Limitations
  497. </span>
  498. </a>
  499. </li>
  500. <li class="md-nav__item md-nav__item--active">
  501. <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
  502. <label class="md-nav__link md-nav__link--active" for="__toc">
  503. <span class="md-ellipsis">
  504. Limiting drive spinup
  505. </span>
  506. <span class="md-nav__icon md-icon"></span>
  507. </label>
  508. <a href="./" class="md-nav__link md-nav__link--active">
  509. <span class="md-ellipsis">
  510. Limiting drive spinup
  511. </span>
  512. </a>
  513. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  514. <label class="md-nav__title" for="__toc">
  515. <span class="md-nav__icon md-icon"></span>
  516. Table of contents
  517. </label>
  518. <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
  519. <li class="md-nav__item">
  520. <a href="#how-can-i-setup-my-system-to-limit-drive-spinup" class="md-nav__link">
  521. <span class="md-ellipsis">
  522. How can I setup my system to limit drive spinup?
  523. </span>
  524. </a>
  525. <nav class="md-nav" aria-label="How can I setup my system to limit drive spinup?">
  526. <ul class="md-nav__list">
  527. <li class="md-nav__item">
  528. <a href="#what-if-you-assume-no-out-of-band-changes-and-cache-everything" class="md-nav__link">
  529. <span class="md-ellipsis">
  530. What if you assume no out-of-band changes and cache everything?
  531. </span>
  532. </a>
  533. </li>
  534. <li class="md-nav__item">
  535. <a href="#what-if-you-only-query-already-active-drives" class="md-nav__link">
  536. <span class="md-ellipsis">
  537. What if you only query already active drives?
  538. </span>
  539. </a>
  540. </li>
  541. <li class="md-nav__item">
  542. <a href="#is-there-anything-that-can-be-done-where-mergerfs-is-involved" class="md-nav__link">
  543. <span class="md-ellipsis">
  544. Is there anything that can be done where mergerfs is involved?
  545. </span>
  546. </a>
  547. </li>
  548. </ul>
  549. </nav>
  550. </li>
  551. </ul>
  552. </nav>
  553. </li>
  554. </ul>
  555. </nav>
  556. </li>
  557. <li class="md-nav__item">
  558. <a href="../../related_projects/" class="md-nav__link">
  559. <span class="md-ellipsis">
  560. Related Projects
  561. </span>
  562. </a>
  563. </li>
  564. <li class="md-nav__item">
  565. <a href="../../media_and_publicity/" class="md-nav__link">
  566. <span class="md-ellipsis">
  567. Media and Publicity
  568. </span>
  569. </a>
  570. </li>
  571. <li class="md-nav__item">
  572. <a href="../../support/" class="md-nav__link">
  573. <span class="md-ellipsis">
  574. Support
  575. </span>
  576. </a>
  577. </li>
  578. <li class="md-nav__item">
  579. <a href="../../sponsorship_and_donations/" class="md-nav__link">
  580. <span class="md-ellipsis">
  581. Sponsorship and Donations
  582. </span>
  583. </a>
  584. </li>
  585. </ul>
  586. </nav>
  587. </div>
  588. </div>
  589. </div>
  590. <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
  591. <div class="md-sidebar__scrollwrap">
  592. <div class="md-sidebar__inner">
  593. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  594. <label class="md-nav__title" for="__toc">
  595. <span class="md-nav__icon md-icon"></span>
  596. Table of contents
  597. </label>
  598. <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
  599. <li class="md-nav__item">
  600. <a href="#how-can-i-setup-my-system-to-limit-drive-spinup" class="md-nav__link">
  601. <span class="md-ellipsis">
  602. How can I setup my system to limit drive spinup?
  603. </span>
  604. </a>
  605. <nav class="md-nav" aria-label="How can I setup my system to limit drive spinup?">
  606. <ul class="md-nav__list">
  607. <li class="md-nav__item">
  608. <a href="#what-if-you-assume-no-out-of-band-changes-and-cache-everything" class="md-nav__link">
  609. <span class="md-ellipsis">
  610. What if you assume no out-of-band changes and cache everything?
  611. </span>
  612. </a>
  613. </li>
  614. <li class="md-nav__item">
  615. <a href="#what-if-you-only-query-already-active-drives" class="md-nav__link">
  616. <span class="md-ellipsis">
  617. What if you only query already active drives?
  618. </span>
  619. </a>
  620. </li>
  621. <li class="md-nav__item">
  622. <a href="#is-there-anything-that-can-be-done-where-mergerfs-is-involved" class="md-nav__link">
  623. <span class="md-ellipsis">
  624. Is there anything that can be done where mergerfs is involved?
  625. </span>
  626. </a>
  627. </li>
  628. </ul>
  629. </nav>
  630. </li>
  631. </ul>
  632. </nav>
  633. </div>
  634. </div>
  635. </div>
  636. <div class="md-content" data-md-component="content">
  637. <article class="md-content__inner md-typeset">
  638. <a href="https://github.com/trapexit/mergerfs/edit/master/mkdocs/docs/faq/limit_drive_spinup.md" title="Edit this page" class="md-content__button md-icon">
  639. <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>
  640. </a>
  641. <a href="https://github.com/trapexit/mergerfs/raw/master/mkdocs/docs/faq/limit_drive_spinup.md" title="View source of this page" class="md-content__button md-icon">
  642. <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>
  643. </a>
  644. <h1 id="limiting-drive-spinup">Limiting drive spinup</h1>
  645. <h2 id="how-can-i-setup-my-system-to-limit-drive-spinup">How can I setup my system to limit drive spinup?</h2>
  646. <p>TL;DR: You really can't. Not through mergerfs alone. In fact mergerfs
  647. makes an attempt to do so more complicated.</p>
  648. <p>mergerfs is a proxy. Despite having some caching behaviors it is not
  649. designed to cache much more than metadata. It proxies calls between
  650. client software and underlying filesystems. If a client makes a
  651. request such as <code>open</code>, <code>readdir</code>, <code>stat</code>, etc. it must translate that
  652. into something that makes sense across multiple filesystems. For
  653. <code>readdir</code> that means running the call against all branches and
  654. aggregating the output. For <code>open</code> that means finding the file to open
  655. and doing so. The only way to find the file to open is to scan across
  656. all branches and sort the results and pick one. There is no practical
  657. way to do otherwise. Especially given so many mergerfs users expect
  658. out-of-band changes to "just work."</p>
  659. <p>The best way to limit spinup of drives is to limit their usage at the
  660. client level. Meaning keeping software from interacting with the
  661. filesystem (and therefore the drive) all together.</p>
  662. <h3 id="what-if-you-assume-no-out-of-band-changes-and-cache-everything">What if you assume no out-of-band changes and cache everything?</h3>
  663. <p>This would require a significant rewrite of mergerfs. Everything is
  664. done on the fly right now and all those calls to underlying
  665. filesystems can cause a spinup. To work around that a database of some
  666. sort would have to be used to store ALL metadata about the underlying
  667. filesystems and on startup everything scanned and stored. From then on
  668. it would have to carefully update all the same data the filesystems
  669. do. It couldn't be kept in RAM because it would take up too much space
  670. so it'd have to be on a SSD or other storage device. If anything
  671. changed out of band it would break things in weird ways. It could
  672. rescan on occasion but that would require spinning up
  673. everything. Filesystem watches could be used to get updates when the
  674. filesystem changes but that would allow for race conditions and
  675. might keep the drives from spinning down. Something as "simple" as
  676. keeping the current available free space on each filesystem isn't as
  677. easy as one might think given reflinks, snapshots, and other block
  678. level dedup technologies as well as the space used includes not just
  679. raw file usage.</p>
  680. <p>Even if all metadata (including xattrs) is cached some software will
  681. open files (media like videos and audio) to check their
  682. metadata. Granted a Plex or Jellyfin scan which may do that is
  683. different from a random directory listing but is still something to
  684. consider. Those "deep" scans can't be kept from waking drives.</p>
  685. <h3 id="what-if-you-only-query-already-active-drives">What if you only query already active drives?</h3>
  686. <p>Let's assume that is plausible (it isn't because some drives actually
  687. will spin up if you ask if they are spun down... yes... really) you
  688. would have to either cache all the metadata on the filesystem or treat
  689. it like the filesystem doesn't exist. The former has all the problems
  690. mentioned prior and the latter would break a lot of things.</p>
  691. <h3 id="is-there-anything-that-can-be-done-where-mergerfs-is-involved">Is there anything that can be done where mergerfs is involved?</h3>
  692. <p>Yes, but whether it works for you depends on your tolerance for the
  693. complexity.</p>
  694. <ol>
  695. <li>Cleanly separate writing, storing, and consuming the data.</li>
  696. <li>Use a SSD or dedicated and limited pool of drives for downloads / torrents.</li>
  697. <li>When downloaded move the files to the primary storage pool.</li>
  698. <li>When setting up software like Plex, Jellyfin, etc. point to the
  699. underlying filesystems. Not mergerfs.</li>
  700. <li>Add a bunch of bcache, lvmcache, dm-cache, or similar block level
  701. cache to your setup. After a bit of use, assuming sufficient
  702. storage space, you can limit the likelihood of the underlying
  703. spinning disks from needing to be hit.</li>
  704. </ol>
  705. <p>Remember too that while it may be a tradeoff you are willing to live
  706. with there is decent evidence that spinning down drives puts increased
  707. wear on them and can lead to their death earlier than otherwise.</p>
  708. </article>
  709. </div>
  710. <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
  711. </div>
  712. <button type="button" class="md-top md-icon" data-md-component="top" hidden>
  713. <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>
  714. Back to top
  715. </button>
  716. </main>
  717. <footer class="md-footer">
  718. <nav class="md-footer__inner md-grid" aria-label="Footer" >
  719. <a href="../technical_behavior_and_limitations/" class="md-footer__link md-footer__link--prev" aria-label="Previous: Technical Behavior and Limitations">
  720. <div class="md-footer__button md-icon">
  721. <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>
  722. </div>
  723. <div class="md-footer__title">
  724. <span class="md-footer__direction">
  725. Previous
  726. </span>
  727. <div class="md-ellipsis">
  728. Technical Behavior and Limitations
  729. </div>
  730. </div>
  731. </a>
  732. <a href="../../related_projects/" class="md-footer__link md-footer__link--next" aria-label="Next: Related Projects">
  733. <div class="md-footer__title">
  734. <span class="md-footer__direction">
  735. Next
  736. </span>
  737. <div class="md-ellipsis">
  738. Related Projects
  739. </div>
  740. </div>
  741. <div class="md-footer__button md-icon">
  742. <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>
  743. </div>
  744. </a>
  745. </nav>
  746. <div class="md-footer-meta md-typeset">
  747. <div class="md-footer-meta__inner md-grid">
  748. <div class="md-copyright">
  749. Made with
  750. <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
  751. Material for MkDocs
  752. </a>
  753. </div>
  754. </div>
  755. </div>
  756. </footer>
  757. </div>
  758. <div class="md-dialog" data-md-component="dialog">
  759. <div class="md-dialog__inner md-typeset"></div>
  760. </div>
  761. <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.f8cc74c7.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>
  762. <script src="../../assets/javascripts/bundle.60a45f97.min.js"></script>
  763. </body>
  764. </html>