mirror of
https://github.com/amadvance/snapraid.git
synced 2026-10-26 10:51:54 -04:00
2287 lines
126 KiB
HTML
2287 lines
126 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<meta name="description" content="A backup program for disk arrays. It stores parity information of your data and it recovers from up to six disk failures">
|
||
<meta name="keywords" content="snapraid snapshot raid backup disk array redundancy parity">
|
||
<title>SnapRAID CLI Manual</title>
|
||
<link rel="stylesheet" href="style.css">
|
||
<link rel="apple-touch-icon" sizes="180x180" href="/beta/apple-touch-icon.png">
|
||
<link rel="icon" type="image/png" sizes="32x32" href="/beta/favicon-32x32.png">
|
||
<link rel="icon" type="image/png" sizes="16x16" href="/beta/favicon-16x16.png">
|
||
<link rel="manifest" href="/beta/site.webmanifest">
|
||
<script src="script.js"></script>
|
||
|
||
<!-- Google Analytics 4 -->
|
||
<!-- Google tag (gtag.js) -->
|
||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-W1Z5FKHYQ4"></script>
|
||
<script>
|
||
window.dataLayer = window.dataLayer || [];
|
||
function gtag(){dataLayer.push(arguments);}
|
||
gtag('js', new Date());
|
||
|
||
gtag('config', 'G-W1Z5FKHYQ4');
|
||
</script>
|
||
|
||
<!-- Google Universal Analytics -->
|
||
<script type="text/javascript">
|
||
|
||
var _gaq = _gaq || [];
|
||
_gaq.push(['_setAccount', 'UA-21967501-1']);
|
||
_gaq.push(['_trackPageview']);
|
||
|
||
(function() {
|
||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||
})();
|
||
</script>
|
||
|
||
</head>
|
||
<body>
|
||
<header>
|
||
<div class="container nav-container">
|
||
<a href="index" class="logo">
|
||
<img src="android-chrome-192x192.png" width="32" height="32"/>
|
||
SnapRAID
|
||
</a>
|
||
<nav>
|
||
<input type="checkbox" id="menu-toggle">
|
||
<label for="menu-toggle" class="menu-icon"><svg viewBox="0 0 24 24" width="24" height="24" fill="currentColor"><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></svg></label>
|
||
<ul>
|
||
<li><a href="index" >Home</a></li>
|
||
<li><a href="ui" >UI & Daemon</a></li>
|
||
<li><a href="howitworks" >How it Works</a></li>
|
||
<li><a href="design" >Design</a></li>
|
||
<li><a href="compare" >Compare</a></li>
|
||
<li><a href="manual" class="active">Manual</a></li>
|
||
<li><a href="faq" >FAQ</a></li>
|
||
<li><a href="support" >Support</a></li>
|
||
<li><a href="download" class="nav-cta">Download</a></li>
|
||
<li>
|
||
<button class="theme-toggle" aria-label="Toggle theme">
|
||
<svg class="sun-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg>
|
||
<svg class="moon-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path></svg>
|
||
</button>
|
||
</li>
|
||
</ul>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
|
||
<div class="container manual-layout">
|
||
|
||
<aside class="manual-sidebar">
|
||
|
||
<h4>Components</h4>
|
||
<select id="manual-selector" style="width: 100%; padding: 5px; background: var(--bg-surface); color: var(--text-primary); border: 1px solid var(--border-color); border-radius: 4px; margin-bottom: 2rem;">
|
||
<option value="manual">Command Line</option>
|
||
<option value="manual-daemon">Daemon</option>
|
||
<option value="manual-log">Log</option>
|
||
</select>
|
||
|
||
<h4>Languages</h4>
|
||
<select id="language-selector" style="width: 100%; padding: 5px; background: var(--bg-surface); color: var(--text-primary); border: 1px solid var(--border-color); border-radius: 4px; margin-bottom: 2rem;">
|
||
<option value="manual">English</option>
|
||
<option value="manual-de">German</option>
|
||
<option value="manual-es">Spanish</option>
|
||
<option value="manual-fr">French</option>
|
||
<option value="manual-it">Italian</option>
|
||
<option value="manual-ja">Japanse</option>
|
||
<option value="manual-ko">Korean</option>
|
||
<option value="manual-pl">Polish</option>
|
||
<option value="manual-pt">Portuguese</option>
|
||
<option value="manual-ro">Romanian</option>
|
||
<option value="manual-ru">Russian</option>
|
||
<option value="manual-sv">Swedish</option>
|
||
<option value="manual-uk">Ukranian</option>
|
||
<option value="manual-zh">Simplified Chinese</option>.
|
||
|
||
</select>
|
||
|
||
<h4>Contents</h4>
|
||
<ul id="manual-toc-list">
|
||
<!-- Populated by JavaScript -->
|
||
</ul>
|
||
</aside>
|
||
|
||
|
||
<main id="manual-container">
|
||
|
||
<div class="manual-doc">
|
||
|
||
<div class="manual-section-level-1">
|
||
<h1 id="sec1" class="manual-title-level-1">
|
||
Короткий опис
|
||
</h1>
|
||
<pre>
|
||
snapraid [-c, --conf CONFIG]
|
||
[-f, --filter PATTERN] [-d, --filter-disk NAME]
|
||
[-m, --filter-missing] [-e, --filter-error]
|
||
[-a, --audit-only] [-h, --pre-hash] [-i, --import DIR]
|
||
[-p, --plan PERC|bad|new|full]
|
||
[-o, --older-than DAYS] [-l, --log FILE]
|
||
[-s, --spin-down-on-error] [-w, --bw-limit RATE]
|
||
[-t, --tail]
|
||
[-Z, --force-zero] [-E, --force-empty]
|
||
[-U, --force-uuid] [-D, --force-device]
|
||
[-N, --force-nocopy] [-F, --force-full]
|
||
[-R, --force-realloc] [-W, --force-realloc-tail]
|
||
[-S, --start BLKSTART] [-B, --count BLKCOUNT]
|
||
[-L, --error-limit NUMBER]
|
||
[-A, --stats]
|
||
[-v, --verbose] [-q, --quiet]
|
||
status|smart|probe|up|down|diff|sync|scrub|fix|check
|
||
|list|dup|pool|devices|touch|rehash|locate
|
||
</pre>
|
||
<pre>
|
||
snapraid [-V, --version] [-H, --help] [-C, --gen-conf CONTENT]
|
||
</pre>
|
||
</div>
|
||
<div class="manual-section-level-1">
|
||
<h1 id="sec2" class="manual-title-level-1">
|
||
Опис
|
||
</h1>
|
||
<p>SnapRAID — це програма резервного копіювання, розроблена для
|
||
дискових масивів, яка зберігає інформацію парності для
|
||
відновлення даних у випадку відмови до шести дисків.
|
||
</p><p>В першу чергу призначена для домашніх медіацентрів з великими
|
||
файлами, що рідко змінюються, SnapRAID пропонує кілька функцій:
|
||
</p><ul>
|
||
<li>
|
||
Ви можете використовувати диски, вже заповнені файлами, без
|
||
необхідності їх переформатування, отримуючи доступ до них
|
||
як зазвичай.
|
||
</li>
|
||
<li>
|
||
Усі ваші дані хешуються для забезпечення цілісності даних
|
||
та запобігання прихованому пошкодженню.
|
||
</li>
|
||
<li>
|
||
Коли кількість дисків, що відмовили, перевищує кількість
|
||
дисків парності, втрата даних обмежується дисками, що
|
||
постраждали; дані на інших дисках залишаються доступними.
|
||
</li>
|
||
<li>
|
||
Якщо ви випадково видалили файли на диску, можливе
|
||
відновлення.
|
||
</li>
|
||
<li>
|
||
Диски можуть мати різний розмір.
|
||
</li>
|
||
<li>
|
||
Ви можете додавати диски в будь-який час.
|
||
</li>
|
||
<li>
|
||
SnapRAID не блокує ваші дані; ви можете припинити його
|
||
використання в будь-який час без переформатування або
|
||
переміщення даних.
|
||
</li>
|
||
<li>
|
||
Для доступу до файлу потрібно розкрутити лише один диск, що
|
||
заощаджує електроенергію та зменшує шум.
|
||
</li>
|
||
</ul>
|
||
<p>Для отримання додаткової інформації відвідайте офіційний сайт
|
||
SnapRAID:
|
||
</p><pre>
|
||
<a href="https://www.snapraid.it/">https://www.snapraid.it/</a>
|
||
</pre>
|
||
</div>
|
||
<div class="manual-section-level-1">
|
||
<h1 id="sec3" class="manual-title-level-1">
|
||
Обмеження
|
||
</h1>
|
||
<p>SnapRAID є гібридом між RAID та програмою резервного копіювання,
|
||
прагнучи поєднати найкращі переваги обох. Однак, він має деякі
|
||
обмеження, які слід врахувати перед його використанням.
|
||
</p><p>Основне обмеження полягає в тому, що якщо диск виходить з ладу,
|
||
а ви нещодавно не виконували синхронізацію, ви можете не
|
||
змогти повністю відновити дані.
|
||
Конкретніше, ви можете втратити можливість відновлення даних
|
||
обсягом до розміру змінених або видалених файлів з моменту
|
||
останньої операції синхронізації.
|
||
Це відбувається, навіть якщо змінені або видалені файли не
|
||
знаходяться на диску, що вийшов з ладу. Ось чому SnapRAID
|
||
краще підходить для даних, які рідко змінюються.
|
||
</p><p>З іншого боку, щойно додані файли не перешкоджають відновленню
|
||
вже існуючих файлів. Ви втратите лише нещодавно додані файли,
|
||
якщо вони знаходяться на диску, що вийшов з ладу.
|
||
</p><p>Інші обмеження SnapRAID:
|
||
</p><ul>
|
||
<li>
|
||
З SnapRAID у вас все ще є окремі файлові системи для
|
||
кожного диска. З RAID ви отримуєте одну велику файлову
|
||
систему.
|
||
</li>
|
||
<li>
|
||
SnapRAID не використовує чергування (striping) даних.
|
||
З RAID ви отримуєте прискорення завдяки чергуванню.
|
||
</li>
|
||
<li>
|
||
SnapRAID не підтримує відновлення в реальному часі.
|
||
З RAID вам не потрібно припиняти роботу, коли диск
|
||
виходить з ладу.
|
||
</li>
|
||
<li>
|
||
SnapRAID може відновлювати дані лише з обмеженої кількості
|
||
дисків, що вийшли з ладу. З резервним копіюванням ви
|
||
можете відновити дані навіть після повної відмови
|
||
всього дискового масиву.
|
||
</li>
|
||
<li>
|
||
Зберігаються лише імена файлів, часові мітки, символічні
|
||
та жорсткі посилання. Права доступу, власність та
|
||
розширені атрибути не зберігаються.
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="manual-section-level-1">
|
||
<h1 id="sec4" class="manual-title-level-1">
|
||
Початок роботи
|
||
</h1>
|
||
<p>Щоб використовувати SnapRAID, спершу потрібно вибрати один диск
|
||
у вашому дисковому масиві, щоб присвятити його інформації
|
||
<b>парності</b>. З одним диском для парності ви зможете відновити
|
||
дані після відмови одного диска, подібно до RAID5.
|
||
</p><p>Якщо ви хочете відновити дані після більшої кількості
|
||
дисків, що відмовили, подібно до RAID6, ви повинні зарезервувати
|
||
додаткові диски для парності. Кожен додатковий диск парності
|
||
дозволяє відновити дані після відмови ще одного диска.
|
||
</p><p>Як диски парності ви повинні вибрати найбільші диски в масиві,
|
||
оскільки інформація парності може зрости до розміру найбільшого
|
||
диска даних у масиві.
|
||
</p><p>Ці диски будуть присвячені зберіганню файлів <b>парності</b>. Ви
|
||
не повинні зберігати на них свої дані.
|
||
</p><p>Потім ви повинні визначити диски <b>даних</b>, які ви хочете
|
||
захистити за допомогою SnapRAID. Захист є більш ефективним,
|
||
якщо ці диски містять дані, що рідко змінюються. З цієї причини
|
||
краще НЕ включати диск Windows C:\ або каталоги Unix /home,
|
||
/var та /tmp.
|
||
</p><p>Список файлів зберігається у файлах <b>content</b> (вміст), які
|
||
зазвичай зберігаються на дисках даних, парності або завантажувальних
|
||
дисках.
|
||
Цей файл містить деталі вашої резервної копії, включаючи
|
||
всі контрольні суми для перевірки її цілісності.
|
||
Файл <b>content</b> зберігається в кількох копіях, і кожна копія
|
||
повинна бути на окремому диску, щоб гарантувати, що навіть у
|
||
разі відмови кількох дисків, принаймні одна копія буде доступна.
|
||
</p><p>Наприклад, припустимо, вас цікавить лише один рівень захисту
|
||
парності, а ваші диски розташовані за адресами:
|
||
</p><pre>
|
||
/mnt/diskp <- вибраний диск для парності
|
||
/mnt/disk1 <- перший диск для захисту
|
||
/mnt/disk2 <- другий диск для захисту
|
||
/mnt/disk3 <- третій диск для захисту
|
||
</pre>
|
||
<p>Ви повинні створити конфігураційний файл /etc/snapraid.conf з
|
||
наступними опціями:
|
||
</p><pre>
|
||
parity /mnt/diskp/snapraid.parity
|
||
content /var/snapraid/snapraid.content
|
||
content /mnt/disk1/snapraid.content
|
||
content /mnt/disk2/snapraid.content
|
||
data d1 /mnt/disk1/
|
||
data d2 /mnt/disk2/
|
||
data d3 /mnt/disk3/
|
||
</pre>
|
||
<p>Якщо ви працюєте в Windows, ви повинні використовувати формат
|
||
шляху Windows, з літерами дисків та зворотними скісними рисками
|
||
замість прямих.
|
||
</p><pre>
|
||
parity E:\snapraid.parity
|
||
content C:\snapraid\snapraid.content
|
||
content F:\array\snapraid.content
|
||
content G:\array\snapraid.content
|
||
data d1 F:\array\
|
||
data d2 G:\array\
|
||
data d3 H:\array\
|
||
</pre>
|
||
<p>Якщо у вас багато дисків і закінчилися літери дисків, ви можете
|
||
монтувати диски безпосередньо у вкладені папки. Див:
|
||
</p><pre>
|
||
<a href="https://www.google.com/search?q=Windows+mount+point">https://www.google.com/search?q=Windows+mount+point</a>
|
||
</pre>
|
||
<p>На цьому етапі ви готові запустити команду <b>sync</b> для побудови
|
||
інформації парності.
|
||
</p><pre>
|
||
snapraid sync
|
||
</pre>
|
||
<p>Цей процес може зайняти кілька годин вперше, залежно від розміру
|
||
даних, які вже є на дисках. Якщо диски порожні, процес
|
||
відбувається миттєво.
|
||
</p><p>Ви можете зупинити його в будь-який час, натиснувши Ctrl+C,
|
||
і під час наступного запуску він відновить роботу з місця,
|
||
де був перерваний.
|
||
</p><p>Коли ця команда завершиться, ваші дані БЕЗПЕЧНІ.
|
||
</p><p>Тепер ви можете почати використовувати свій масив як вам подобається
|
||
і періодично оновлювати інформацію парності, запускаючи команду <b>sync</b>.
|
||
</p><div class="manual-section-level-2">
|
||
<h2 id="sec4-1" class="manual-title-level-2">
|
||
Скрабування (Scrubbing)
|
||
</h2>
|
||
<p>Щоб періодично перевіряти дані та парність на наявність помилок,
|
||
ви можете запустити команду <b>scrub</b>.
|
||
</p><pre>
|
||
snapraid scrub
|
||
</pre>
|
||
<p>Ця команда порівнює дані у вашому масиві з хешем, обчисленим
|
||
під час команди <b>sync</b>, для перевірки цілісності.
|
||
</p><p>Кожен запуск команди перевіряє приблизно 8% масиву, виключаючи
|
||
дані, які вже були скрабовані протягом попередніх 10 днів.
|
||
Ви можете використовувати опцію -p, --plan, щоб вказати іншу
|
||
кількість, і опцію -o, --older-than, щоб вказати інший вік
|
||
у днях.
|
||
Наприклад, щоб перевірити 5% масиву на блоки старші за 20 днів,
|
||
використовуйте:
|
||
</p><pre>
|
||
snapraid -p 5 -o 20 scrub
|
||
</pre>
|
||
<p>Якщо під час процесу виявлено приховані помилки або помилки
|
||
введення/виведення, відповідні блоки позначаються як погані у
|
||
файлі <b>content</b> і перераховуються у команді <b>status</b>.
|
||
</p><pre>
|
||
snapraid status
|
||
</pre>
|
||
<p>Щоб їх виправити, ви можете використовувати команду <b>fix</b>,
|
||
фільтруючи погані блоки за допомогою опції -e, --filter-error:
|
||
</p><pre>
|
||
snapraid -e fix
|
||
</pre>
|
||
<p>Під час наступного <b>scrub</b> помилки зникнуть зі звіту <b>status</b>,
|
||
якщо вони справді виправлені. Щоб зробити це швидше, ви можете
|
||
використовувати -p bad, щоб скрабувати лише блоки, позначені
|
||
як погані.
|
||
</p><pre>
|
||
snapraid -p bad scrub
|
||
</pre>
|
||
<p>Запуск <b>scrub</b> на несинхронізованому масиві може повідомити
|
||
про помилки, спричинені видаленими або зміненими файлами.
|
||
Ці помилки відображаються у виведенні <b>scrub</b>, але пов'язані
|
||
блоки не позначаються як погані.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec4-2" class="manual-title-level-2">
|
||
Об'єднання (Pooling)
|
||
</h2>
|
||
<p>Примітка: Функція об'єднання, описана нижче, була замінена
|
||
інструментом mergerfs, який тепер є рекомендованою опцією для
|
||
користувачів Linux у спільноті SnapRAID. Mergefs забезпечує
|
||
більш гнучкий та ефективний спосіб об'єднання кількох дисків
|
||
в єдину уніфіковану точку монтування, дозволяючи безперешкодний
|
||
доступ до файлів у вашому масиві без використання символічних
|
||
посилань. Він добре інтегрується з SnapRAID для захисту
|
||
парності і зазвичай використовується в налаштуваннях, таких
|
||
як OpenMediaVault (OMV) або користувацьких конфігураціях NAS.
|
||
</p><p>Щоб відобразити всі файли у вашому масиві в одному дереві
|
||
каталогів, ви можете ввімкнути функцію <b>pooling</b> (об'єднання).
|
||
Вона створює віртуальне представлення всіх файлів у вашому
|
||
масиві лише для читання, використовуючи символічні посилання.
|
||
</p><p>Ви можете налаштувати каталог <b>pooling</b> у конфігураційному
|
||
файлі за допомогою:
|
||
</p><pre>
|
||
pool /pool
|
||
</pre>
|
||
<p>або, якщо ви працюєте в Windows, за допомогою:
|
||
</p><pre>
|
||
pool C:\pool
|
||
</pre>
|
||
<p>а потім запустити команду <b>pool</b> для створення або оновлення
|
||
віртуального представлення.
|
||
</p><pre>
|
||
snapraid pool
|
||
</pre>
|
||
<p>Якщо ви використовуєте платформу Unix і хочете надати спільний
|
||
доступ до цього каталогу через мережу для машин Windows або
|
||
Unix, ви повинні додати наступні опції до вашого
|
||
/etc/samba/smb.conf:
|
||
</p><pre>
|
||
# У глобальному розділі smb.conf
|
||
unix extensions = no
|
||
</pre>
|
||
<pre>
|
||
# У розділі спільного доступу smb.conf
|
||
[pool]
|
||
comment = Pool
|
||
path = /pool
|
||
read only = yes
|
||
guest ok = yes
|
||
wide links = yes
|
||
follow symlinks = yes
|
||
</pre>
|
||
<p>У Windows спільний доступ до символічних посилань через мережу
|
||
вимагає від клієнтів віддаленого їх розпізнавання. Щоб
|
||
увімкнути це, окрім спільного доступу до каталогу pool, ви
|
||
також повинні надати спільний доступ до всіх дисків незалежно,
|
||
використовуючи імена дисків, визначені у конфігураційному
|
||
файлі, як точки спільного доступу. Ви також повинні вказати у
|
||
опції <b>share</b> конфігураційного файлу шлях Windows UNC, який
|
||
потрібен віддаленим клієнтам для доступу до цих спільних дисків.
|
||
</p><p>Наприклад, працюючи з сервера з іменем <b>darkstar</b>, ви можете
|
||
використовувати опції:
|
||
</p><pre>
|
||
data d1 F:\array\
|
||
data d2 G:\array\
|
||
data d3 H:\array\
|
||
pool C:\pool
|
||
share \\darkstar
|
||
</pre>
|
||
<p>і надати спільний доступ до наступних каталогів через мережу:
|
||
</p><pre>
|
||
\\darkstar\pool -> C:\pool
|
||
\\darkstar\d1 -> F:\array
|
||
\\darkstar\d2 -> G:\array
|
||
\\darkstar\d3 -> H:\array
|
||
</pre>
|
||
<p>щоб дозволити віддаленим клієнтам отримати доступ до всіх файлів
|
||
за адресою \\darkstar\pool.
|
||
</p><p>Вам також може знадобитися налаштувати віддалені клієнти, щоб
|
||
увімкнути доступ до віддалених символічних посилань за допомогою
|
||
команди:
|
||
</p><pre>
|
||
fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1
|
||
</pre>
|
||
</div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec4-3" class="manual-title-level-2">
|
||
Відновлення видалених файлів (Undeleting)
|
||
</h2>
|
||
<p>SnapRAID функціонує більше як програма резервного копіювання,
|
||
ніж система RAID, і його можна використовувати для відновлення
|
||
або повернення файлів до їх попереднього стану за допомогою
|
||
опції -f, --filter:
|
||
</p><pre>
|
||
snapraid fix -f FILE
|
||
</pre>
|
||
<p>або для каталогу:
|
||
</p><pre>
|
||
snapraid fix -f DIR/
|
||
</pre>
|
||
<p>Ви також можете використовувати його для відновлення лише випадково
|
||
видалених файлів усередині каталогу за допомогою опції -m,
|
||
--filter-missing, яка відновлює лише відсутні файли,
|
||
залишаючи всі інші недоторканими.
|
||
</p><pre>
|
||
snapraid fix -m -f DIR/
|
||
</pre>
|
||
<p>Або для відновлення всіх видалених файлів на всіх дисках за допомогою:
|
||
</p><pre>
|
||
snapraid fix -m
|
||
</pre>
|
||
</div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec4-4" class="manual-title-level-2">
|
||
Відновлення (Recovering)
|
||
</h2>
|
||
<p>Сталося найгірше, і ви втратили один або кілька дисків!
|
||
</p><p>НЕ ПАНІКУЙТЕ! Ви зможете їх відновити!
|
||
</p><p>Перше, що ви повинні зробити, це уникнути подальших змін у
|
||
вашому дисковому масиві. Вимкніть будь-які віддалені
|
||
підключення до нього та будь-які заплановані процеси,
|
||
включаючи будь-яку заплановану нічну синхронізацію або
|
||
скрабування SnapRAID.
|
||
</p><p>Потім виконайте наступні кроки.
|
||
</p><div class="manual-section-level-3">
|
||
<h3 id="sec4-4-1" class="manual-title-level-3">
|
||
КРОК 1 -> Переналаштування
|
||
</h3>
|
||
<p>Вам потрібен деякий простір для відновлення, в ідеалі на
|
||
додаткових запасних дисках, але зовнішній USB-диск або
|
||
віддалений диск підійде.
|
||
</p><p>Змініть конфігураційний файл SnapRAID, щоб опція <b>data</b> або
|
||
<b>parity</b> диска, що вийшов з ладу, вказувала на місце розташування
|
||
з достатньою кількістю вільного місця для відновлення файлів.
|
||
</p><p>Наприклад, якщо диск <b>d1</b> вийшов з ладу, змініть з:
|
||
</p><pre>
|
||
data d1 /mnt/disk1/
|
||
</pre>
|
||
<p>на:
|
||
</p><pre>
|
||
data d1 /mnt/new_spare_disk/
|
||
</pre>
|
||
<p>Якщо диск, який потрібно відновити, є диском парності, оновіть
|
||
відповідну опцію <b>parity</b>.
|
||
Якщо у вас кілька дисків, що вийшли з ладу, оновіть усі їхні
|
||
конфігураційні опції.
|
||
</p></div>
|
||
<div class="manual-section-level-3">
|
||
<h3 id="sec4-4-2" class="manual-title-level-3">
|
||
КРОК 2 -> Виправлення (Fix)
|
||
</h3>
|
||
<p>Запустіть команду fix, зберігаючи журнал у зовнішньому файлі
|
||
за допомогою:
|
||
</p><pre>
|
||
snapraid -d NAME -l fix.log fix
|
||
</pre>
|
||
<p>Де NAME — це ім'я диска, наприклад <b>d1</b> у нашому попередньому
|
||
прикладі.
|
||
Якщо диск, який потрібно відновити, є диском парності,
|
||
використовуйте імена <b>parity</b>, <b>2-parity</b>, тощо.
|
||
Якщо у вас кілька дисків, що вийшли з ладу, використовуйте
|
||
кілька опцій -d, щоб вказати їх усі.
|
||
</p><p>Ця команда займе багато часу.
|
||
</p><p>Переконайтеся, що у вас є кілька гігабайт вільного місця для
|
||
зберігання файлу fix.log.
|
||
Запустіть її з диска з достатньою кількістю вільного місця.
|
||
</p><p>Тепер ви відновили все, що можна відновити. Якщо деякі файли
|
||
частково або повністю неможливо відновити, вони будуть перейменовані
|
||
з додаванням розширення <b>.unrecoverable</b>.
|
||
</p><p>Ви можете знайти детальний список усіх невідновлюваних блоків
|
||
у файлі fix.log, перевіривши всі рядки, що починаються з
|
||
<b>unrecoverable:</b>.
|
||
</p><p>Якщо ви не задоволені відновленням, ви можете повторити його
|
||
стільки разів, скільки забажаєте.
|
||
</p><p>Наприклад, якщо ви видалили файли з масиву після останньої
|
||
<b>sync</b>, це може призвести до того, що деякі файли не будуть
|
||
відновлені.
|
||
У цьому випадку ви можете повторити <b>fix</b>, використовуючи
|
||
опцію -i, --import, вказавши, де ці файли знаходяться зараз,
|
||
щоб знову включити їх у процес відновлення.
|
||
</p><p>Якщо ви задоволені відновленням, ви можете продовжити, але
|
||
зауважте, що після синхронізації ви більше не зможете повторити
|
||
команду <b>fix</b>!
|
||
</p></div>
|
||
<div class="manual-section-level-3">
|
||
<h3 id="sec4-4-3" class="manual-title-level-3">
|
||
КРОК 3 -> Перевірка (Check)
|
||
</h3>
|
||
<p>Як обережну перевірку, ви можете тепер запустити команду
|
||
<b>check</b>, щоб переконатися, що на відновленому диску все
|
||
правильно.
|
||
</p><pre>
|
||
snapraid -d NAME -a check
|
||
</pre>
|
||
<p>Де NAME — це ім'я диска, наприклад <b>d1</b> у нашому попередньому
|
||
прикладі.
|
||
</p><p>Опції -d та -a вказують SnapRAID перевіряти лише вказаний
|
||
диск та ігнорувати всі дані парності.
|
||
</p><p>Ця команда займе багато часу, але якщо ви не надто обережні,
|
||
ви можете її пропустити.
|
||
</p></div>
|
||
<div class="manual-section-level-3">
|
||
<h3 id="sec4-4-4" class="manual-title-level-3">
|
||
КРОК 4 -> Синхронізація (Sync)
|
||
</h3>
|
||
<p>Запустіть команду <b>sync</b>, щоб повторно синхронізувати масив
|
||
з новим диском.
|
||
</p><pre>
|
||
snapraid sync
|
||
</pre>
|
||
<p>Якщо все відновлено, ця команда виконується миттєво.
|
||
</p></div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-section-level-1">
|
||
<h1 id="sec5" class="manual-title-level-1">
|
||
Команди
|
||
</h1>
|
||
<p>SnapRAID надає кілька простих команд, які дозволяють:
|
||
</p><ul>
|
||
<li>
|
||
Вивести статус масиву -> <b>status</b>
|
||
</li>
|
||
<li>
|
||
Керувати дисками -> <b>smart</b>, <b>probe</b>, <b>up</b>, <b>down</b>
|
||
</li>
|
||
<li>
|
||
Створити резервну копію/знімок -> <b>sync</b>
|
||
</li>
|
||
<li>
|
||
Періодично перевіряти дані -> <b>scrub</b>
|
||
</li>
|
||
<li>
|
||
Відновити останню резервну копію/знімок -> <b>fix</b>.
|
||
</li>
|
||
</ul>
|
||
<p>Команди повинні бути написані малими літерами.
|
||
</p><div class="manual-section-level-2">
|
||
<h2 id="sec5-1" class="manual-title-level-2">
|
||
status
|
||
</h2>
|
||
<p>Виводить зведення стану дискового масиву.
|
||
</p><p>Включає інформацію про фрагментацію парності, вік блоків без
|
||
перевірки та всі записані приховані помилки, виявлені під
|
||
час скрабування.
|
||
</p><p>Представлена інформація стосується останнього часу, коли ви
|
||
запустили <b>sync</b>. Пізніші модифікації не враховуються.
|
||
</p><p>Якщо виявлено погані блоки, перераховуються їхні номери блоків.
|
||
Щоб їх виправити, ви можете використовувати команду <b>fix -e</b>.
|
||
</p><p>Також показує графік, що представляє останній час, коли
|
||
кожен блок був скрабований або синхронізований. Скрабовані
|
||
блоки позначаються символом <b>*</b>, блоки, синхронізовані,
|
||
але ще не скрабовані, - <b>o</b>.
|
||
</p><p>Нічого не змінюється.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec5-2" class="manual-title-level-2">
|
||
smart
|
||
</h2>
|
||
<p>Виводить звіт SMART усіх дисків у системі.
|
||
</p><p>Включає оцінку ймовірності відмови протягом наступного року,
|
||
дозволяючи вам планувати планову заміну дисків, які
|
||
виявляють підозрілі атрибути.
|
||
</p><p>Ця оцінка ймовірності отримана шляхом кореляції атрибутів
|
||
SMART дисків з даними Backblaze, доступними за адресою:
|
||
</p><pre>
|
||
<a href="https://www.backblaze.com/hard-drive-test-data.html">https://www.backblaze.com/hard-drive-test-data.html</a>
|
||
</pre>
|
||
<p>Якщо SMART повідомляє, що диск виходить з ладу, для цього
|
||
диска виводиться <b>FAIL</b> або <b>PREFAIL</b>, і SnapRAID повертає
|
||
помилку. У цьому випадку настійно рекомендується негайна
|
||
заміна диска.
|
||
</p><p>Інші можливі рядки стану:
|
||
</p><div class="manual-tag-list">
|
||
<div class="manual-tag-entry">
|
||
<div class="manual-tag-name">
|
||
logfail
|
||
</div><div class="manual-tag-description">
|
||
У минулому деякі атрибути були нижчими за
|
||
поріг.
|
||
</div>
|
||
</div>
|
||
<div class="manual-tag-entry">
|
||
<div class="manual-tag-name">
|
||
logerr
|
||
</div><div class="manual-tag-description">
|
||
Журнал помилок пристрою містить помилки.
|
||
</div>
|
||
</div>
|
||
<div class="manual-tag-entry">
|
||
<div class="manual-tag-name">
|
||
selferr
|
||
</div><div class="manual-tag-description">
|
||
Журнал самотестування пристрою містить помилки.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p>Якщо вказано опцію -v, --verbose, надається глибший
|
||
статистичний аналіз. Цей аналіз може допомогти вам вирішити,
|
||
чи потрібна вам більша або менша парність.
|
||
</p><p>Ця команда використовує інструмент <b>smartctl</b> і еквівалентна
|
||
запуску <b>smartctl -a</b> на всіх пристроях.
|
||
</p><p>Якщо ваші пристрої не виявляються автоматично правильно, ви
|
||
можете вказати користувацьку команду, використовуючи опцію
|
||
<b>smartctl</b> у конфігураційному файлі.
|
||
</p><p>Нічого не змінюється.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec5-3" class="manual-title-level-2">
|
||
probe
|
||
</h2>
|
||
<p>Виводить стан ЖИВЛЕННЯ всіх дисків у системі.
|
||
</p><p><b>Standby</b> означає, що диск не обертається. <b>Active</b> означає,
|
||
що диск обертається.
|
||
</p><p>Ця команда використовує інструмент <b>smartctl</b> і еквівалентна
|
||
запуску <b>smartctl -n standby -i</b> на всіх пристроях.
|
||
</p><p>Якщо ваші пристрої не виявляються автоматично правильно, ви
|
||
можете вказати користувацьку команду, використовуючи опцію
|
||
<b>smartctl</b> у конфігураційному файлі.
|
||
</p><p>Нічого не змінюється.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec5-4" class="manual-title-level-2">
|
||
up
|
||
</h2>
|
||
<p>Розкручує всі диски масиву.
|
||
</p><p>Ви можете розкрутити лише певні диски, використовуючи
|
||
опцію -d, --filter-disk.
|
||
</p><p>Одночасне розкручування всіх дисків вимагає багато енергії.
|
||
Переконайтеся, що ваш блок живлення може це витримати.
|
||
</p><p>Нічого не змінюється.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec5-5" class="manual-title-level-2">
|
||
down
|
||
</h2>
|
||
<p>Зупиняє всі диски масиву.
|
||
</p><p>Ця команда використовує інструмент <b>smartctl</b> і еквівалентна
|
||
запуску <b>smartctl -s standby,now</b> на всіх пристроях.
|
||
</p><p>Ви можете зупинити лише певні диски, використовуючи
|
||
опцію -d, --filter-disk.
|
||
</p><p>Для автоматичної зупинки при помилці ви можете
|
||
використовувати опцію -s, --spin-down-on-error з будь-якою
|
||
іншою командою, що еквівалентно ручному запуску <b>down</b>
|
||
при виникненні помилки.
|
||
</p><p>Нічого не змінюється.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec5-6" class="manual-title-level-2">
|
||
diff
|
||
</h2>
|
||
<p>Виводить список усіх файлів, змінених з моменту останньої
|
||
<b>sync</b>, для яких необхідно перерахувати дані парності.
|
||
</p><p>Ця команда не перевіряє дані файлів, а лише часову мітку
|
||
файлу, розмір та inode.
|
||
</p><p>Після перерахування всіх змінених файлів представляється
|
||
зведення змін, згруповане за:
|
||
</p><div class="manual-tag-list">
|
||
<div class="manual-tag-entry">
|
||
<div class="manual-tag-name">
|
||
equal (рівні)
|
||
</div><div class="manual-tag-description">
|
||
Файли, незмінені з попереднього стану.
|
||
</div>
|
||
</div>
|
||
<div class="manual-tag-entry">
|
||
<div class="manual-tag-name">
|
||
added (додані)
|
||
</div><div class="manual-tag-description">
|
||
Файли, додані, яких не було раніше.
|
||
</div>
|
||
</div>
|
||
<div class="manual-tag-entry">
|
||
<div class="manual-tag-name">
|
||
removed (видалені)
|
||
</div><div class="manual-tag-description">
|
||
Файли, видалені.
|
||
</div>
|
||
</div>
|
||
<div class="manual-tag-entry">
|
||
<div class="manual-tag-name">
|
||
updated (оновлені)
|
||
</div><div class="manual-tag-description">
|
||
Файли з іншим розміром або часовою
|
||
міткою, що означає, що вони були змінені.
|
||
</div>
|
||
</div>
|
||
<div class="manual-tag-entry">
|
||
<div class="manual-tag-name">
|
||
moved (переміщені)
|
||
</div><div class="manual-tag-description">
|
||
Файли, переміщені в інший каталог
|
||
на тому ж диску. Вони ідентифікуються за тим же
|
||
іменем, розміром, часовою міткою та inode, але іншим
|
||
каталогом.
|
||
</div>
|
||
</div>
|
||
<div class="manual-tag-entry">
|
||
<div class="manual-tag-name">
|
||
copied
|
||
</div><div class="manual-tag-description">
|
||
файли, скопійовані на той самий або інший диск, де
|
||
оригінальний файл все ще існує.
|
||
Вони ідентифікуються за однаковою назвою, розміром та міткою
|
||
часу.
|
||
Якщо мітка часу з точністю до часток секунди дорівнює нулю, для
|
||
ідентифікації має збігатися повний шлях, а не лише назва.
|
||
</div>
|
||
</div>
|
||
<div class="manual-tag-entry">
|
||
<div class="manual-tag-name">
|
||
relocated
|
||
</div><div class="manual-tag-description">
|
||
файли, переміщені на той самий або інший диск, де
|
||
оригінал зник.
|
||
Вони ідентифікуються за однаковою назвою, розміром та міткою
|
||
часу.
|
||
Якщо мітка часу з точністю до часток секунди дорівнює нулю, для
|
||
ідентифікації має збігатися повний шлях.
|
||
На відміну від файлів 'moved' на тому ж диску, переміщені файли
|
||
мають інший inode.
|
||
</div>
|
||
</div>
|
||
<div class="manual-tag-entry">
|
||
<div class="manual-tag-name">
|
||
restored
|
||
</div><div class="manual-tag-description">
|
||
файли з іншим inode, але зі збігом каталогу, назви,
|
||
розміру та мітки часу.
|
||
Зазвичай це файли, відновлені після видалення.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p>Якщо потрібна <b>sync</b>, код повернення процесу дорівнює 2,
|
||
замість стандартного 0. Код повернення 1 використовується для
|
||
загальної умови помилки.
|
||
</p><p>Нічого не змінюється.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec5-7" class="manual-title-level-2">
|
||
sync
|
||
</h2>
|
||
<p>Оновлює інформацію парності. Всі змінені файли у дисковому
|
||
масиві зчитуються, і відповідні дані парності оновлюються.
|
||
</p><p>Ви можете зупинити цей процес у будь-який час, натиснувши
|
||
Ctrl+C, не втрачаючи вже виконану роботу.
|
||
Під час наступного запуску процес <b>sync</b> відновить роботу
|
||
з місця, де був перерваний.
|
||
</p><p>Якщо під час процесу виявлено приховані помилки або помилки
|
||
введення/виведення, відповідні блоки позначаються як погані.
|
||
</p><p>Файли ідентифікуються за шляхом та/або inode та перевіряються
|
||
за розміром та часовою міткою.
|
||
Якщо розмір або часова мітка файлу відрізняються, дані
|
||
парності перераховуються для всього файлу.
|
||
Якщо файл переміщено або перейменовано на тому ж диску,
|
||
зберігаючи той самий inode, парність не перераховується.
|
||
Якщо файл переміщено на інший диск, парність перераховується,
|
||
але раніше обчислена інформація хешу зберігається.
|
||
</p><p>Файли <b>content</b> та <b>parity</b> змінюються за потреби.
|
||
Файли в масиві НЕ змінюються.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec5-8" class="manual-title-level-2">
|
||
scrub
|
||
</h2>
|
||
<p>Скрабує масив, перевіряючи на наявність прихованих помилок
|
||
або помилок введення/виведення на дисках даних та парності.
|
||
</p><p>Кожен виклик перевіряє приблизно 8% масиву, виключаючи
|
||
дані, які вже були скрабовані протягом останніх 10 днів.
|
||
Це означає, що скрабування раз на тиждень забезпечує
|
||
перевірку кожного біта даних принаймні раз на три місяці.
|
||
</p><p>Ви можете визначити інший план скрабування або кількість
|
||
за допомогою опції -p, --plan, яка приймає:
|
||
bad - Скрабувати блоки, позначені як погані.
|
||
new - Скрабувати щойно синхронізовані блоки, які ще не були
|
||
</p><p>скрабовані.
|
||
</p><div class="manual-tag-list">
|
||
<div class="manual-tag-entry">
|
||
<div class="manual-tag-name">
|
||
full
|
||
</div><div class="manual-tag-description">
|
||
Скрабувати все.
|
||
</div>
|
||
</div>
|
||
<div class="manual-tag-entry">
|
||
<div class="manual-tag-name">
|
||
0-100
|
||
</div><div class="manual-tag-description">
|
||
Скрабувати вказаний відсоток блоків.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p>Якщо ви вказуєте відсоткове значення, ви також можете
|
||
використовувати опцію -o, --older-than, щоб визначити,
|
||
яким має бути вік блоку.
|
||
Найстаріші блоки скрабуються першими, забезпечуючи оптимальну
|
||
перевірку.
|
||
Якщо ви хочете скрабувати лише щойно синхронізовані блоки,
|
||
які ще не були скрабовані, використовуйте опцію <b>-p new</b>.
|
||
</p><p>Щоб отримати деталі статусу скрабування, використовуйте команду
|
||
<b>status</b>.
|
||
</p><p>Для будь-якої знайденої прихованої помилки або помилки
|
||
введення/виведення відповідні блоки позначаються як погані
|
||
у файлі <b>content</b>.
|
||
Ці погані блоки перераховуються у <b>status</b> і можуть бути
|
||
виправлені за допомогою <b>fix -e</b>.
|
||
Після виправлення, під час наступного скрабування, вони будуть
|
||
повторно перевірені, і якщо виявиться, що вони виправлені,
|
||
позначка "поганий" буде видалена.
|
||
Щоб скрабувати лише погані блоки, ви можете використовувати
|
||
команду <b>scrub -p bad</b>.
|
||
</p><p>Рекомендується запускати <b>scrub</b> лише на синхронізованому
|
||
масиві, щоб уникнути повідомлень про помилки, спричинені
|
||
несинхронізованими даними. Ці помилки розпізнаються як
|
||
не приховані помилки, і блоки не позначаються як погані,
|
||
але такі помилки повідомляються у виведенні команди.
|
||
</p><p>Файл <b>content</b> змінюється для оновлення часу останньої перевірки
|
||
для кожного блоку та для позначення поганих блоків.
|
||
Файли <b>parity</b> НЕ змінюються.
|
||
Файли в масиві НЕ змінюються.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec5-9" class="manual-title-level-2">
|
||
fix
|
||
</h2>
|
||
<p>Виправляє всі файли та дані парності.
|
||
</p><p>Усі файли та дані парності порівнюються зі станом знімка,
|
||
збереженим під час останньої <b>sync</b>.
|
||
Якщо знайдено різницю, вона повертається до збереженого знімка.
|
||
</p><p>УВАГА! Команда <b>fix</b> не розрізняє помилки та навмисні
|
||
модифікації. Вона безумовно повертає стан файлу до останньої
|
||
<b>sync</b>.
|
||
</p><p>Якщо не вказано жодної іншої опції, обробляється весь масив.
|
||
Використовуйте опції фільтра, щоб вибрати підмножину файлів
|
||
або дисків для роботи.
|
||
</p><p>Щоб виправити лише блоки, позначені як погані під час <b>sync</b>
|
||
та <b>scrub</b>, використовуйте опцію -e, --filter-error.
|
||
На відміну від інших опцій фільтра, ця застосовує виправлення
|
||
лише до файлів, які не змінилися з моменту останньої <b>sync</b>.
|
||
</p><p>SnapRAID перейменовує всі файли, які не можуть бути виправлені,
|
||
додаючи розширення <b>.unrecoverable</b>.
|
||
</p><p>Перед виправленням сканується весь масив, щоб знайти будь-які
|
||
файли, переміщені з моменту останньої <b>sync</b>.
|
||
Ці файли ідентифікуються за їхньою часовою міткою, ігноруючи
|
||
їхнє ім'я та каталог, і використовуються в процесі відновлення,
|
||
якщо це необхідно.
|
||
Якщо ви перемістили деякі з них за межі масиву, ви можете
|
||
використовувати опцію -i, --import, щоб вказати додаткові
|
||
каталоги для сканування.
|
||
</p><p>Файли ідентифікуються лише за шляхом, а не за inode.
|
||
</p><p>Файл <b>content</b> НЕ змінюється.
|
||
Файли <b>parity</b> змінюються за потреби.
|
||
Файли в масиві змінюються за потреби.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec5-10" class="manual-title-level-2">
|
||
check
|
||
</h2>
|
||
<p>Перевіряє всі файли та дані парності.
|
||
</p><p>Працює як <b>fix</b>, але лише імітує відновлення, і жодні зміни
|
||
не записуються в масив.
|
||
</p><p>Ця команда в першу чергу призначена для ручної перевірки,
|
||
наприклад, після процесу відновлення або в інших особливих
|
||
умовах. Для періодичних та запланованих перевірок використовуйте
|
||
<b>scrub</b>.
|
||
</p><p>Якщо ви використовуєте опцію -a, --audit-only, перевіряється
|
||
лише хеш файлів, а дані парності ігноруються для швидшого
|
||
запуску.
|
||
</p><p>Файли ідентифікуються лише за шляхом, а не за inode.
|
||
</p><p>Нічого не змінюється.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec5-11" class="manual-title-level-2">
|
||
list
|
||
</h2>
|
||
<p>Виводить список усіх файлів, що містяться в масиві на момент
|
||
останньої <b>sync</b>.
|
||
</p><p>З -v або --verbose також показується час з точністю до
|
||
долі секунди.
|
||
</p><p>Нічого не змінюється.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec5-12" class="manual-title-level-2">
|
||
dup
|
||
</h2>
|
||
<p>Виводить список усіх дублікатів файлів. Два файли вважаються
|
||
рівними, якщо їхні хеші збігаються. Дані файлів не
|
||
зчитуються; використовуються лише попередньо обчислені хеші.
|
||
</p><p>Нічого не змінюється.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec5-13" class="manual-title-level-2">
|
||
pool
|
||
</h2>
|
||
<p>Створює або оновлює віртуальне представлення всіх файлів
|
||
у вашому дисковому масиві в каталозі <b>pooling</b>.
|
||
</p><p>Файли не копіюються, а пов'язуються за допомогою символічних
|
||
посилань.
|
||
</p><p>Під час оновлення всі існуючі символічні посилання та порожні
|
||
підкаталоги видаляються та замінюються новим
|
||
представленням масиву. Будь-які інші звичайні файли залишаються
|
||
на місці.
|
||
</p><p>Нічого не змінюється за межами каталогу pool.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec5-14" class="manual-title-level-2">
|
||
devices
|
||
</h2>
|
||
<p>Виводить низькорівневі пристрої, які використовуються масивом.
|
||
</p><p>Ця команда відображає асоціації пристроїв у масиві і в
|
||
основному призначена як інтерфейс для сценаріїв.
|
||
</p><p>Перші два стовпці — це низькорівневий ідентифікатор пристрою
|
||
та шлях.
|
||
Наступні два стовпці — це високорівневий ідентифікатор пристрою
|
||
та шлях.
|
||
Останній стовпець — це ім'я диска в масиві.
|
||
</p><p>У більшості випадків у вас є один низькорівневий пристрій для
|
||
кожного диска в масиві, але в деяких складніших конфігураціях
|
||
у вас може бути кілька низькорівневих пристроїв, які використовуються
|
||
одним диском у масиві.
|
||
</p><p>Нічого не змінюється.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec5-15" class="manual-title-level-2">
|
||
touch
|
||
</h2>
|
||
<p>Встановлює довільну часову мітку з точністю до долі секунди
|
||
для всіх файлів, у яких вона встановлена на нуль.
|
||
</p><p>Це покращує здатність SnapRAID розпізнавати переміщені та
|
||
скопійовані файли, оскільки робить часову мітку майже
|
||
унікальною, зменшуючи можливі дублікати.
|
||
</p><p>Зокрема, якщо часова мітка з точністю до долі секунди не
|
||
дорівнює нулю, переміщений або скопійований файл ідентифікується
|
||
як такий, якщо він збігається з іменем, розміром та часовою
|
||
міткою. Якщо часова мітка з точністю до долі секунди дорівнює
|
||
нулю, він вважається копією, лише якщо повний шлях, розмір та
|
||
часова мітка збігаються.
|
||
</p><p>Часова мітка з точністю до секунди не змінюється, тому
|
||
всі дати та час ваших файлів будуть збережені.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec5-16" class="manual-title-level-2">
|
||
rehash
|
||
</h2>
|
||
<p>Планує повторне хешування всього масиву.
|
||
</p><p>Ця команда змінює тип хешу, що використовується, як правило,
|
||
при оновленні з 32-розрядної системи на 64-розрядну, щоб
|
||
переключитися з MurmurHash3 на швидший SpookyHash.
|
||
</p><p>Якщо ви вже використовуєте оптимальний хеш, ця команда
|
||
нічого не робить і повідомляє, що жодних дій не потрібно.
|
||
</p><p>Повторне хешування не виконується негайно, а відбувається
|
||
поступово під час <b>sync</b> та <b>scrub</b>.
|
||
</p><p>Ви можете перевірити стан повторного хешування за допомогою
|
||
<b>status</b>.
|
||
</p><p>Під час повторного хешування SnapRAID зберігає повну
|
||
функціональність, за єдиним винятком, що <b>dup</b> не може
|
||
виявити дублікати файлів, використовуючи інший хеш.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec5-17" class="manual-title-level-2">
|
||
locate
|
||
</h2>
|
||
<p>Знаходить файли, що зберігаються на дисках парності. Для кожного знайденого
|
||
файлу виводиться його розташування всередині файлу парності та кількість
|
||
фрагментів, які він займає.
|
||
</p><p>Ви можете використовувати параметр -t, --tail, щоб обмежити операцію файлами,
|
||
що займають зазначену кінцеву частину (хвіст) парності.
|
||
</p><p>Якщо ви хочете перерозподілити ці файли, ви можете скористатися параметром
|
||
-W, --force-realloc-tail.
|
||
Майте на увазі, що такі файли не будуть захищені парністю під час процесу
|
||
перерозподілу.
|
||
</p></div>
|
||
</div>
|
||
<div class="manual-section-level-1">
|
||
<h1 id="sec6" class="manual-title-level-1">
|
||
Опції
|
||
</h1>
|
||
<p>SnapRAID надає наступні опції:
|
||
</p><div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-c, --conf CONFIG
|
||
</div><div class="manual-option-description">
|
||
Вибирає конфігураційний файл для використання. Якщо не
|
||
вказано, в Unix використовується файл <b>/usr/local/etc/snapraid.conf</b>,
|
||
якщо він існує, інакше <b>/etc/snapraid.conf</b>.
|
||
У Windows використовується файл <b>snapraid.conf</b> у тому
|
||
самому каталозі, що й <b>snapraid.exe</b>.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-f, --filter PATTERN
|
||
</div><div class="manual-option-description">
|
||
Фільтрує файли для обробки у <b>check</b> та <b>fix</b>.
|
||
Обробляються лише файли, що відповідають вказаному
|
||
шаблону. Цю опцію можна використовувати кілька разів.
|
||
Дивіться розділ PATTERN для отримання додаткової
|
||
інформації про специфікації шаблонів.
|
||
В Unix переконайтеся, що символи глоббінгу взяті
|
||
в лапки, якщо вони використовуються.
|
||
Цю опцію можна використовувати лише з <b>check</b> та <b>fix</b>.
|
||
Її не можна використовувати з <b>sync</b> та <b>scrub</b>, оскільки
|
||
вони завжди обробляють весь масив.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-d, --filter-disk NAME
|
||
</div><div class="manual-option-description">
|
||
Фільтрує диски для обробки у <b>check</b>, <b>fix</b>, <b>up</b> та <b>down</b>.
|
||
Ви повинні вказати ім'я диска, як визначено у
|
||
конфігураційному файлі.
|
||
Ви також можете вказати диски парності з іменами:
|
||
<b>parity</b>, <b>2-parity</b>, <b>3-parity</b>, тощо, щоб обмежити
|
||
операції певним диском парності.
|
||
Якщо ви поєднуєте кілька опцій --filter, --filter-disk
|
||
та --filter-missing, вибираються лише файли, що
|
||
відповідають усім фільтрам.
|
||
Цю опцію можна використовувати кілька разів.
|
||
Цю опцію можна використовувати лише з <b>check</b>, <b>fix</b>,
|
||
<b>up</b> та <b>down</b>.
|
||
Її не можна використовувати з <b>sync</b> та <b>scrub</b>, оскільки
|
||
вони завжди обробляють весь масив.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-m, --filter-missing
|
||
</div><div class="manual-option-description">
|
||
Фільтрує файли для обробки у <b>check</b> та <b>fix</b>.
|
||
Обробляються лише файли, що відсутні або видалені з
|
||
масиву. При використанні з <b>fix</b> це діє як команда
|
||
<b>undelete</b> (відновлення видалених файлів).
|
||
Якщо ви поєднуєте кілька опцій --filter, --filter-disk
|
||
та --filter-missing, вибираються лише файли, що
|
||
відповідають усім фільтрам.
|
||
Цю опцію можна використовувати лише з <b>check</b> та <b>fix</b>.
|
||
Її не можна використовувати з <b>sync</b> та <b>scrub</b>, оскільки
|
||
вони завжди обробляють весь масив.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-e, --filter-error
|
||
</div><div class="manual-option-description">
|
||
Обробляє файли з помилками у <b>check</b> та <b>fix</b>.
|
||
Обробляє лише файли, які мають блоки, позначені
|
||
прихованими помилками або помилками введення/виведення
|
||
під час <b>sync</b> та <b>scrub</b>, як зазначено у <b>status</b>.
|
||
Цю опцію можна використовувати лише з <b>check</b> та <b>fix</b>.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-p, --plan PERC|bad|new|full
|
||
</div><div class="manual-option-description">
|
||
Вибирає план скрабування. Якщо PERC є числовим
|
||
значенням від 0 до 100, воно інтерпретується як відсоток
|
||
блоків для скрабування.
|
||
Замість відсотка ви можете вказати план: <b>bad</b>
|
||
скрабує погані блоки, <b>new</b> скрабує блоки, які ще не
|
||
були скрабовані, і <b>full</b> скрабує все.
|
||
Цю опцію можна використовувати лише з <b>scrub</b>.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-o, --older-than DAYS
|
||
</div><div class="manual-option-description">
|
||
Вибирає найстарішу частину масиву для обробки у <b>scrub</b>.
|
||
DAYS — це мінімальний вік у днях для блоку, який
|
||
повинен бути скрабований; за замовчуванням 10.
|
||
Блоки, позначені як погані, завжди скрабуються
|
||
незалежно від цієї опції.
|
||
Цю опцію можна використовувати лише з <b>scrub</b>.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-a, --audit-only
|
||
</div><div class="manual-option-description">
|
||
У <b>check</b> перевіряє хеш файлів без перевірки даних
|
||
парності. Якщо вас цікавить лише перевірка даних файлів,
|
||
ця опція може значно прискорити процес перевірки.
|
||
Цю опцію можна використовувати лише з <b>check</b>.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-h, --pre-hash
|
||
</div><div class="manual-option-description">
|
||
У <b>sync</b> запускає попередню фазу хешування всіх нових
|
||
даних для додаткової перевірки перед обчисленням
|
||
парності. Зазвичай у <b>sync</b> не виконується попереднє
|
||
хешування, а нові дані хешуються безпосередньо перед
|
||
обчисленням парності, коли вони зчитуються вперше.
|
||
Цей процес відбувається, коли система знаходиться під
|
||
великим навантаженням, усі диски обертаються та ЦП
|
||
зайнятий. Це екстремальна умова для машини, і якщо вона
|
||
має приховану апаратну проблему, приховані помилки
|
||
можуть залишитися невиявленими, оскільки дані ще не
|
||
були хешовані.
|
||
Щоб уникнути цього ризику, ви можете ввімкнути режим
|
||
<b>pre-hash</b>, щоб усі дані були зчитані двічі для
|
||
забезпечення їх цілісності.
|
||
Ця опція також перевіряє файли, переміщені в межах
|
||
масиву, щоб переконатися, що операція переміщення була
|
||
успішною, і, якщо необхідно, дозволяє запустити операцію
|
||
виправлення перед продовженням.
|
||
Цю опцію можна використовувати лише з <b>sync</b>.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-i, --import DIR
|
||
</div><div class="manual-option-description">
|
||
Імпортує з вказаного каталогу будь-які файли, видалені
|
||
з масиву після останньої <b>sync</b>.
|
||
Якщо у вас все ще є такі файли, вони можуть бути
|
||
використані <b>check</b> та <b>fix</b> для покращення процесу
|
||
відновлення.
|
||
Файли зчитуються, включаючи підкаталоги, та
|
||
ідентифікуються незалежно від їхнього імені.
|
||
Цю опцію можна використовувати лише з <b>check</b> та <b>fix</b>.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-s, --spin-down-on-error
|
||
</div><div class="manual-option-description">
|
||
При будь-якій помилці зупиняє всі керовані диски перед
|
||
завершенням з ненульовим кодом стану. Це запобігає
|
||
тому, щоб диски залишалися активними та оберталися
|
||
після перерваної операції, допомагаючи уникнути
|
||
зайвого нагрівання та споживання електроенергії.
|
||
Використовуйте цю опцію, щоб забезпечити безпечну
|
||
зупинку дисків, навіть коли команда завершується
|
||
помилкою.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-w, --bw-limit RATE
|
||
</div><div class="manual-option-description">
|
||
Застосовує глобальне обмеження пропускної здатності
|
||
для всіх дисків. RATE — це кількість байтів на секунду.
|
||
Ви можете вказати множник, такий як K, M або G (наприклад,
|
||
--bw-limit 1G).
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-t, --tail РОЗМІР
|
||
</div><div class="manual-option-description">
|
||
Обмежує список файлів тими, що використовують не більше зазначеного
|
||
розміру хвоста дисків парності.
|
||
Можна використовувати множники, такі як K, M, G або T (наприклад, --tail 1G).
|
||
Цей параметр дійсний лише при використанні разом із командою <b>locate</b>.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-A, --stats
|
||
</div><div class="manual-option-description">
|
||
Вмикає розширений перегляд стану, який показує
|
||
додаткову інформацію.
|
||
На екрані відображаються два графіки:
|
||
Перший графік показує кількість буферизованих смуг
|
||
(stripes) для кожного диска, разом зі шляхом до файлу,
|
||
до якого наразі здійснюється доступ на цьому диску.
|
||
Зазвичай найповільніший диск не матиме доступного
|
||
буфера, що визначає максимально досяжну пропускну
|
||
здатність.
|
||
Другий графік показує відсоток часу, витраченого на
|
||
очікування, за останні 100 секунд. Очікується, що
|
||
найповільніший диск спричинить більшу частину часу
|
||
очікування, тоді як інші диски повинні мати невеликий
|
||
час очікування або зовсім його не мати, оскільки
|
||
вони можуть використовувати свої буферизовані смуги.
|
||
Цей графік також показує час, витрачений на очікування
|
||
обчислення хешу та обчислень RAID.
|
||
Усі обчислення виконуються паралельно з операціями
|
||
диска. Тому, доки є вимірюваний час очікування
|
||
принаймні для одного диска, це вказує на те, що ЦП
|
||
достатньо швидкий, щоб справлятися з робочим навантаженням.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-Z, --force-zero
|
||
</div><div class="manual-option-description">
|
||
Форсує небезпечну операцію синхронізації файлу з
|
||
нульовим розміром, який раніше був ненульовим.
|
||
Якщо SnapRAID виявляє таку умову, він припиняє
|
||
продовження, якщо ви не вкажете цю опцію.
|
||
Це дозволяє легко виявити, коли після збою системи
|
||
деякі доступні файли були обрізані.
|
||
Це можлива умова в Linux з файловими системами
|
||
ext3/ext4.
|
||
Цю опцію можна використовувати лише з <b>sync</b>.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-E, --force-empty
|
||
</div><div class="manual-option-description">
|
||
Форсує небезпечну операцію синхронізації диска, на
|
||
якому відсутні всі оригінальні файли.
|
||
Якщо SnapRAID виявляє, що всі файли, які спочатку
|
||
були на диску, відсутні або перезаписані, він
|
||
припиняє продовження, якщо ви не вкажете цю опцію.
|
||
Це дозволяє легко виявити, коли файлова система
|
||
даних не змонтована.
|
||
Цю опцію можна використовувати лише з <b>sync</b>.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-U, --force-uuid
|
||
</div><div class="manual-option-description">
|
||
Форсує небезпечну операцію синхронізації, перевірки
|
||
та виправлення з дисками, які змінили свій UUID.
|
||
Якщо SnapRAID виявляє, що деякі диски змінили UUID,
|
||
він припиняє продовження, якщо ви не вкажете цю опцію.
|
||
Це дозволяє виявити, коли ваші диски змонтовані
|
||
в неправильних точках монтування.
|
||
Однак, дозволено мати одну зміну UUID з однією парністю
|
||
і більше з множинною парністю, оскільки це нормальний
|
||
випадок при заміні дисків після відновлення.
|
||
Цю опцію можна використовувати лише з <b>sync</b>, <b>check</b>
|
||
або <b>fix</b>.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-D, --force-device
|
||
</div><div class="manual-option-description">
|
||
Форсує небезпечну операцію виправлення з недоступними
|
||
дисками або з дисками на тому ж фізичному пристрої.
|
||
Наприклад, якщо ви втратили два диски даних і маєте
|
||
запасний диск для відновлення лише першого, ви можете
|
||
ігнорувати другий недоступний диск.
|
||
Або, якщо ви хочете відновити диск у вільному місці,
|
||
залишеному на вже використовуваному диску, що
|
||
використовує той самий фізичний пристрій.
|
||
Цю опцію можна використовувати лише з <b>fix</b>.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-N, --force-nocopy
|
||
</div><div class="manual-option-description">
|
||
У <b>sync</b>, <b>check</b> та <b>fix</b> вимикає евристику
|
||
виявлення копій. Без цієї опції SnapRAID припускає,
|
||
що файли з однаковими атрибутами, такими як ім'я,
|
||
розмір та часова мітка, є копіями з тими ж даними.
|
||
Це дозволяє ідентифікувати скопійовані або
|
||
переміщені файли з одного диска на інший і повторно
|
||
використовує вже обчислену інформацію хешу для
|
||
виявлення прихованих помилок або для відновлення
|
||
відсутніх файлів.
|
||
У деяких рідкісних випадках ця поведінка може
|
||
призвести до хибних спрацьовувань або повільного
|
||
процесу через багато перевірок хешу, і ця опція
|
||
дозволяє вирішити такі проблеми.
|
||
Цю опцію можна використовувати лише з <b>sync</b>, <b>check</b>
|
||
та <b>fix</b>.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-F, --force-full
|
||
</div><div class="manual-option-description">
|
||
У <b>sync</b> форсує повне переобчислення парності.
|
||
Цю опцію можна використовувати, коли ви додаєте
|
||
новий рівень парності або якщо ви повернулися до
|
||
старого файлу вмісту, використовуючи більш
|
||
нові дані парності.
|
||
Замість створення парності з нуля, це дозволяє
|
||
повторно використовувати хеші, присутні у файлі
|
||
вмісту, для перевірки даних та підтримки захисту
|
||
даних під час процесу <b>sync</b>, використовуючи
|
||
існуючі дані парності.
|
||
Цю опцію можна використовувати лише з <b>sync</b>.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-R, --force-realloc
|
||
</div><div class="manual-option-description">
|
||
У <b>sync</b> форсує повне перерозподілення файлів
|
||
та перебудову парності.
|
||
Цю опцію можна використовувати для повного
|
||
перерозподілу всіх файлів, усуваючи фрагментацію,
|
||
повторно використовуючи хеші, присутні у файлі
|
||
вмісту, для перевірки даних.
|
||
Цю опцію можна використовувати лише з <b>sync</b>.
|
||
УВАГА! Ця опція лише для експертів, і
|
||
настійно не рекомендується її використовувати.
|
||
Ви НЕ маєте захисту даних під час операції <b>sync</b>.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-W, --force-realloc-tail РОЗМІР
|
||
</div><div class="manual-option-description">
|
||
Працює як -R, --force-realloc, але обмежується вказаною кінцевою
|
||
частиною (останні РОЗМІР байт) кожного файлу парності.
|
||
Примусово перерозподіляє (переміщує) будь-які фрагменти/блоки файлів,
|
||
що наразі зберігаються в цій кінцевій секції, дозволяючи розмістити
|
||
їх будь-де у файлі(ах) парності, де є вільне місце (включно з
|
||
наявними пустотами).
|
||
Основна мета цього параметра — зменшити розмір файлу парності на диску.
|
||
Якщо перерозподіл успішно очистить всю кінцеву секцію (у ній не
|
||
залишиться блоків), файл парності буде обрізаний, вивільняючи
|
||
невикористаний простір хвоста.
|
||
Можна використовувати множники, такі як K, M, G або T (наприклад,
|
||
--force-realloc-tail 1G).
|
||
Ви можете використовувати locate -t, --tail, щоб заздалегідь дізнатися
|
||
про зачеплені файли.
|
||
УВАГА!
|
||
Цей параметр призначений лише для експертів, і його настійно
|
||
не рекомендується використовувати.
|
||
Під час операції <b>sync</b> захист даних для зачеплених файлів ВІДСУТНІЙ.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-l, --log FILE
|
||
</div><div class="manual-option-description">
|
||
Записує детальний журнал у вказаний файл.
|
||
Якщо ця опція не вказана, несподівані помилки
|
||
виводяться на екран, що потенційно призводить до
|
||
надмірного виведення у випадку багатьох помилок.
|
||
Коли вказано -l, --log, на екран виводяться лише
|
||
фатальні помилки, які спричиняють зупинку SnapRAID.
|
||
Якщо шлях починається з <b>>></b>, файл відкривається
|
||
у режимі доповнення. Входження <b>%D</b> та <b>%T</b> в
|
||
імені замінюються датою та часом у форматі YYYYMMDD
|
||
та HHMMSS. У пакетних файлах Windows ви повинні
|
||
подвоїти символ <b>%</b>, наприклад, result-%%D.log.
|
||
Щоб використовувати <b>>></b>, ви повинні взяти ім'я
|
||
в лапки, наприклад, <b>">>result.log"</b>.
|
||
Щоб вивести журнал на стандартний вивід або
|
||
стандартну помилку, ви можете використовувати
|
||
<b>">&1"</b> та <b>">&2"</b> відповідно.
|
||
Дивіться файл snapraid_log.txt або man-сторінку
|
||
для описів тегів журналу.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-L, --error-limit NUMBER
|
||
</div><div class="manual-option-description">
|
||
Встановлює новий ліміт помилок перед зупинкою
|
||
виконання. За замовчуванням SnapRAID зупиняється,
|
||
якщо зустрічає більше 100 помилок введення/виведення,
|
||
що вказує на ймовірну відмову диска.
|
||
Ця опція впливає на <b>sync</b> та <b>scrub</b>, яким
|
||
дозволено продовжувати після першого набору
|
||
помилок диска, щоб спробувати завершити
|
||
свої операції. Однак <b>check</b> та <b>fix</b> завжди
|
||
зупиняються при першій помилці.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-S, --start BLKSTART
|
||
</div><div class="manual-option-description">
|
||
Починає обробку з вказаного номера блоку.
|
||
Це може бути корисно для повторної спроби
|
||
перевірки або виправлення певних блоків у
|
||
випадку пошкодженого диска.
|
||
Ця опція в основному для розширеного ручного
|
||
відновлення.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-B, --count BLKCOUNT
|
||
</div><div class="manual-option-description">
|
||
Обробляє лише вказану кількість блоків.
|
||
Ця опція в основному для розширеного ручного
|
||
відновлення.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-C, --gen-conf CONTENT
|
||
</div><div class="manual-option-description">
|
||
Генерує фіктивний конфігураційний файл з існуючого
|
||
файлу вмісту.
|
||
Конфігураційний файл записується на стандартний
|
||
вивід і не перезаписує існуючий.
|
||
Цей конфігураційний файл також містить інформацію,
|
||
необхідну для реконструкції точок монтування диска
|
||
у випадку втрати всієї системи.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-v, --verbose
|
||
</div><div class="manual-option-description">
|
||
Виводить більше інформації на екран.
|
||
Якщо вказано один раз, виводить виключені файли
|
||
та додаткову статистику.
|
||
Ця опція не впливає на файли журналу.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-q, --quiet
|
||
</div><div class="manual-option-description">
|
||
Виводить менше інформації на екран.
|
||
Якщо вказано один раз, видаляє індикатор прогресу;
|
||
двічі — поточні операції; тричі — інформаційні
|
||
повідомлення; чотири рази — повідомлення про
|
||
статус. Фатальні помилки завжди виводяться на
|
||
екран. Ця опція не впливає на файли журналу.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-H, --help
|
||
</div><div class="manual-option-description">
|
||
Виводить короткий довідковий екран.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
-V, --version
|
||
</div><div class="manual-option-description">
|
||
Виводить версію програми.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-section-level-1">
|
||
<h1 id="sec7" class="manual-title-level-1">
|
||
Конфігурація
|
||
</h1>
|
||
<p>SnapRAID вимагає конфігураційний файл, щоб знати, де
|
||
розташований ваш дисковий масив і де зберігати інформацію
|
||
парності.
|
||
</p><p>В Unix використовується файл <b>/usr/local/etc/snapraid.conf</b>,
|
||
якщо він існує, інакше <b>/etc/snapraid.conf</b>.
|
||
У Windows використовується файл <b>snapraid.conf</b> у тому
|
||
самому каталозі, що й <b>snapraid.exe</b>.
|
||
</p><p>Він повинен містити наступні опції (чутливі до регістру):
|
||
</p><div class="manual-section-level-2">
|
||
<h2 id="sec7-1" class="manual-title-level-2">
|
||
parity FILE [,FILE] ...
|
||
</h2>
|
||
<p>Визначає файли, які потрібно використовувати для зберігання
|
||
інформації парності. Парність забезпечує захист від
|
||
відмови одного диска, подібно до RAID5.
|
||
</p><p>Ви можете вказати кілька файлів, які повинні бути на
|
||
різних дисках. Коли файл більше не може зростати,
|
||
використовується наступний.
|
||
Загальний доступний простір повинен бути принаймні
|
||
таким же великим, як найбільший диск даних у масиві.
|
||
</p><p>Ви можете додати додаткові файли парності пізніше,
|
||
але ви не можете їх переупорядковувати або видаляти.
|
||
</p><p>Збереження дисків парності зарезервованими для парності
|
||
забезпечує, що вони не стають фрагментованими, покращуючи
|
||
продуктивність.
|
||
</p><p>У Windows 256 МБ залишається невикористаними на кожному
|
||
диску, щоб уникнути попередження про повні диски.
|
||
</p><p>Ця опція є обов'язковою і може бути використана лише один раз.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec7-2" class="manual-title-level-2">
|
||
(2,3,4,5,6)-parity FILE [,FILE] ...
|
||
</h2>
|
||
<p>Визначає файли, які потрібно використовувати для зберігання
|
||
додаткової інформації парності.
|
||
</p><p>Для кожного вказаного рівня парності вмикається один
|
||
додатковий рівень захисту:
|
||
</p><ul>
|
||
<li>
|
||
2-parity вмикає подвійну парність RAID6.
|
||
</li>
|
||
<li>
|
||
3-parity вмикає потрійну парність.
|
||
</li>
|
||
<li>
|
||
4-parity вмикає четверну парність.
|
||
</li>
|
||
<li>
|
||
5-parity вмикає п'ятерну парність.
|
||
</li>
|
||
<li>
|
||
6-parity вмикає шестерну парність.
|
||
</li>
|
||
</ul>
|
||
<p>Кожен рівень парності вимагає наявності всіх попередніх
|
||
рівнів парності.
|
||
</p><p>Застосовуються ті самі міркування, що й для опції <b>parity</b>.
|
||
</p><p>Ці опції є необов'язковими і можуть бути використані лише
|
||
один раз.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec7-3" class="manual-title-level-2">
|
||
z-parity FILE [,FILE] ...
|
||
</h2>
|
||
<p>Визначає альтернативний файл та формат для зберігання
|
||
потрійної парності.
|
||
</p><p>Ця опція є альтернативою <b>3-parity</b>, в першу чергу
|
||
призначена для ЦП низького класу, таких як ARM або
|
||
AMD Phenom, Athlon та Opteron, які не підтримують
|
||
набір інструкцій SSSE3. У таких випадках вона
|
||
забезпечує кращу продуктивність.
|
||
</p><p>Цей формат схожий, але швидший, ніж той, що використовується
|
||
ZFS RAIDZ3. Як і ZFS, він не працює далі потрійної парності.
|
||
</p><p>При використанні <b>3-parity</b> ви будете попереджені,
|
||
якщо рекомендується використовувати формат <b>z-parity</b>
|
||
для покращення продуктивності.
|
||
</p><p>Можна конвертувати з одного формату в інший, налаштувавши
|
||
конфігураційний файл з бажаним файлом z-parity або
|
||
3-parity та використовуючи <b>fix</b> для його відтворення.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec7-4" class="manual-title-level-2">
|
||
content FILE
|
||
</h2>
|
||
<p>Визначає файл, який потрібно використовувати для зберігання
|
||
списку та контрольних сум усіх файлів, присутніх у
|
||
вашому дисковому масиві.
|
||
</p><p>Він може бути розміщений на диску, що використовується для
|
||
даних, парності або будь-якому іншому доступному диску.
|
||
Якщо ви використовуєте диск даних, цей файл автоматично
|
||
виключається з процесу <b>sync</b>.
|
||
</p><p>Ця опція є обов'язковою і може бути використана кілька
|
||
разів для збереження кількох копій одного і того ж
|
||
файлу.
|
||
</p><p>Ви повинні зберігати принаймні одну копію для кожного
|
||
використаного диска парності плюс одну. Використання
|
||
додаткових копій не зашкодить.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec7-5" class="manual-title-level-2">
|
||
data NAME DIR
|
||
</h2>
|
||
<p>Визначає ім'я та точку монтування дисків даних у
|
||
масиві. NAME використовується для ідентифікації диска
|
||
і має бути унікальним. DIR — це точка монтування
|
||
диска у файловій системі.
|
||
</p><p>Ви можете змінювати точку монтування за потреби,
|
||
поки ви зберігаєте NAME фіксованим.
|
||
</p><p>Ви повинні використовувати одну опцію для кожного
|
||
диска даних у масиві.
|
||
</p><p>Ви можете перейменувати диск пізніше, змінивши NAME
|
||
безпосередньо у конфігураційному файлі, а потім
|
||
запустивши команду <b>sync</b>. У випадку перейменування
|
||
асоціація здійснюється за допомогою збереженого
|
||
UUID дисків.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec7-6" class="manual-title-level-2">
|
||
extra NAME DIR
|
||
</h2>
|
||
<p>Визначає назву та точку монтування додаткових дисків для
|
||
моніторингу за допомогою команд <b>smart</b> та <b>probe</b>.
|
||
</p><p>Це корисно для моніторингу дисків, які не є частиною масиву, але
|
||
необхідні для функціонування системи, наприклад, завантажувального
|
||
диска.
|
||
</p><p>Зверніть увагу, що на такі диски не впливають команди <b>up</b> та <b>down</b>,
|
||
оскільки очікується, що вони завжди обертаються.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec7-7" class="manual-title-level-2">
|
||
nohidden
|
||
</h2>
|
||
<p>Виключає всі приховані файли та каталоги.
|
||
В Unix приховані файли — це ті, що починаються з <b>.</b>.
|
||
У Windows це ті, що мають прихований атрибут.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec7-8" class="manual-title-level-2">
|
||
exclude/include PATTERN
|
||
</h2>
|
||
<p>Визначає шаблони файлів або каталогів для виключення
|
||
або включення у процес синхронізації.
|
||
Усі шаблони обробляються у вказаному порядку.
|
||
</p><p>Якщо перший шаблон, який збігається, є <b>exclude</b> (виключити),
|
||
файл виключається. Якщо він є <b>include</b> (включити),
|
||
файл включається.
|
||
Якщо жоден шаблон не збігається, файл виключається,
|
||
якщо останній вказаний шаблон є <b>include</b>, або
|
||
включається, якщо останній вказаний шаблон є <b>exclude</b>.
|
||
</p><p>Дивіться розділ PATTERN для отримання додаткової
|
||
інформації про специфікації шаблонів.
|
||
</p><p>Цю опцію можна використовувати кілька разів.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec7-9" class="manual-title-level-2">
|
||
blocksize SIZE_IN_KIBIBYTES
|
||
</h2>
|
||
<p>Визначає основний розмір блоку в кібібайтах для парності.
|
||
Один кібібайт дорівнює 1024 байтам.
|
||
</p><p>Розмір блоку за замовчуванням становить 256, що має
|
||
працювати для більшості випадків.
|
||
</p><p>УВАГА! Ця опція лише для експертів, і настійно
|
||
не рекомендується змінювати це значення. Щоб змінити
|
||
це значення в майбутньому, вам потрібно буде
|
||
перестворити всю парність!
|
||
</p><p>Причина використовувати інший розмір блоку полягає
|
||
в тому, якщо у вас є багато невеликих файлів, порядку
|
||
мільйонів.
|
||
</p><p>Для кожного файлу, навіть якщо це лише кілька байтів,
|
||
виділяється цілий блок парності, і з багатьма файлами
|
||
це може призвести до значного невикористаного місця
|
||
парності. Коли ви повністю заповнюєте диск парності,
|
||
вам не дозволяється додавати більше файлів на диски
|
||
даних. Однак, витрачена парність не накопичується
|
||
між дисками даних. Витрачене місце внаслідок великої
|
||
кількості файлів на диску даних обмежує лише кількість
|
||
даних на цьому диску даних, а не на інших.
|
||
</p><p>Як наближення, ви можете припустити, що половина
|
||
розміру блоку витрачається для кожного файлу.
|
||
Наприклад, зі 100 000 файлами та розміром блоку 256 КіБ
|
||
ви витратите 12,8 ГБ парності, що може призвести до
|
||
того, що на диску даних буде на 12,8 ГБ менше місця.
|
||
</p><p>Ви можете перевірити кількість витраченого місця на
|
||
кожному диску за допомогою <b>status</b>. Це кількість
|
||
місця, яку ви повинні залишити вільною на дисках даних
|
||
або використовувати для файлів, не включених у масив.
|
||
Якщо це значення від'ємне, це означає, що ви
|
||
наближаєтеся до заповнення парності, і воно
|
||
представляє місце, яке ви ще можете витратити.
|
||
</p><p>Щоб уникнути цієї проблеми, ви можете використовувати
|
||
більший розділ для парності. Наприклад, якщо розділ
|
||
парності на 12,8 ГБ більший за диски даних, у вас є
|
||
достатньо додаткового місця для обробки до 100 000
|
||
файлів на кожному диску даних без будь-якого
|
||
витраченого місця.
|
||
</p><p>Хитрість, щоб отримати більший розділ парності в
|
||
Linux, полягає в тому, щоб відформатувати його
|
||
командою:
|
||
</p><pre>
|
||
mkfs.ext4 -m 0 -T largefile4 DEVICE
|
||
</pre>
|
||
<p>Це призводить до приблизно 1,5% додаткового місця,
|
||
приблизно 60 ГБ для диска 4 ТБ, що дозволяє
|
||
приблизно 460 000 файлів на кожному диску даних
|
||
без будь-якого витраченого місця.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec7-10" class="manual-title-level-2">
|
||
hashsize SIZE_IN_BYTES
|
||
</h2>
|
||
<p>Визначає розмір хешу в байтах для збережених блоків.
|
||
</p><p>Розмір хешу за замовчуванням становить 16 байтів
|
||
(128 біт), що має працювати для більшості випадків.
|
||
</p><p>УВАГА! Ця опція лише для експертів, і настійно
|
||
не рекомендується змінювати це значення. Щоб змінити
|
||
це значення в майбутньому, вам потрібно буде
|
||
перестворити всю парність!
|
||
</p><p>Причина використовувати інший розмір хешу полягає
|
||
в тому, якщо ваша система має обмежену пам'ять.
|
||
Як правило, SnapRAID зазвичай вимагає 1 ГіБ ОЗП
|
||
на кожні 16 ТБ даних у масиві.
|
||
</p><p>Зокрема, для зберігання хешів даних SnapRAID
|
||
вимагає приблизно $TS \times (1+HS) / BS$ байтів
|
||
ОЗП, де TS — загальний розмір вашого дискового масиву
|
||
у байтах, BS — розмір блоку у байтах, а HS —
|
||
розмір хешу у байтах.
|
||
</p><p>Наприклад, з 8 дисками по 4 ТБ, розміром блоку 256 КіБ
|
||
(1 КіБ = 1024 байта) та розміром хешу 16, ви отримуєте:
|
||
</p><pre>
|
||
RAM = $(8 \times 4 \times 10^{12}) \times (1+16) / (256 \times 2^{10}) = 1.93$ ГіБ
|
||
</pre>
|
||
<p>Перехід до розміру хешу 8, ви отримуєте:
|
||
</p><pre>
|
||
RAM = $(8 \times 4 \times 10^{12}) \times (1+8) / (256 \times 2^{10}) = 1.02$ ГіБ
|
||
</pre>
|
||
<p>Перехід до розміру блоку 512, ви отримуєте:
|
||
</p><pre>
|
||
RAM = $(8 \times 4 \times 10^{12}) \times (1+16) / (512 \times 2^{10}) = 0.96$ ГіБ
|
||
</pre>
|
||
<p>Перехід до розміру хешу 8 та розміру блоку 512, ви отримуєте:
|
||
</p><pre>
|
||
RAM = $(8 \times 4 \times 10^{12}) \times (1+8) / (512 \times 2^{10}) = 0.51$ ГіБ
|
||
</pre>
|
||
</div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec7-11" class="manual-title-level-2">
|
||
autosave SIZE_IN_GIGABYTES
|
||
</h2>
|
||
<p>Автоматично зберігає стан під час синхронізації або
|
||
скрабування після обробки вказаної кількості ГБ.
|
||
Ця опція корисна, щоб уникнути перезапуску довгих
|
||
команд <b>sync</b> з нуля, якщо вони були перервані
|
||
збоєм машини або будь-якою іншою подією.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec7-12" class="manual-title-level-2">
|
||
temp_limit TEMPERATURE_CELSIUS
|
||
</h2>
|
||
<p>Встановлює максимальну дозволену температуру диска
|
||
в Цельсіях. Якщо вказано, SnapRAID періодично перевіряє
|
||
температуру всіх дисків за допомогою інструменту
|
||
smartctl. Поточні температури дисків відображаються
|
||
під час роботи SnapRAID. Якщо будь-який диск перевищує
|
||
цей ліміт, усі операції зупиняються, і диски
|
||
зупиняються (переходять у режим очікування) на час,
|
||
визначений опцією <b>temp_sleep</b>. Після періоду
|
||
очікування операції відновлюються, потенційно
|
||
знову призупиняючись, якщо ліміт температури знову
|
||
досягнутий.
|
||
</p><p>Під час роботи SnapRAID також аналізує криву
|
||
нагрівання кожного диска та оцінює довгострокову
|
||
стабільну температуру, якої вони, як очікується,
|
||
досягнуть, якщо активність продовжиться.
|
||
Оцінка виконується лише після того, як температура
|
||
диска підвищилася чотири рази, що гарантує наявність
|
||
достатньої кількості даних для встановлення
|
||
надійного тренду. Ця прогнозована стабільна
|
||
температура відображається в дужках поруч із
|
||
поточним значенням і допомагає оцінити, чи
|
||
достатнє охолодження системи. Ця оцінювана
|
||
температура є лише інформаційною і не впливає на
|
||
поведінку SnapRAID. Дії програми базуються
|
||
виключно на фактично виміряних температурах
|
||
дисків.
|
||
</p><p>Для виконання цього аналізу SnapRAID потрібна
|
||
довідкова інформація про температуру системи.
|
||
Спочатку він намагається зчитати її з доступних
|
||
апаратних датчиків. Якщо до системного датчика
|
||
неможливо отримати доступ, він використовує
|
||
найнижчу температуру диска, виміряну на початку
|
||
запуску, як резервну довідкову інформацію.
|
||
</p><p>Зазвичай SnapRAID показує лише температуру
|
||
найгарячішого диска. Щоб відобразити температуру
|
||
всіх дисків, використовуйте опцію -A або --stats.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec7-13" class="manual-title-level-2">
|
||
temp_sleep TIME_IN_MINUTES
|
||
</h2>
|
||
<p>Встановлює час очікування, у хвилинах, коли
|
||
досягнуто ліміту температури. Протягом цього
|
||
періоду диски залишаються зупиненими.
|
||
За замовчуванням 5 хвилин.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec7-14" class="manual-title-level-2">
|
||
pool DIR
|
||
</h2>
|
||
<p>Визначає каталог об'єднання, де створюється
|
||
віртуальне представлення дискового масиву за
|
||
допомогою команди <b>pool</b>.
|
||
</p><p>Каталог повинен вже існувати.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec7-15" class="manual-title-level-2">
|
||
share UNC_DIR
|
||
</h2>
|
||
<p>Визначає шлях Windows UNC, необхідний для
|
||
віддаленого доступу до дисків.
|
||
</p><p>Якщо ця опція вказана, символічні посилання,
|
||
створені в каталозі pool, використовують цей
|
||
шлях UNC для доступу до дисків.
|
||
Без цієї опції згенеровані символічні посилання
|
||
використовують лише локальні шляхи, що не
|
||
дозволяє спільно використовувати каталог pool
|
||
через мережу.
|
||
</p><p>Символічні посилання формуються за допомогою
|
||
вказаного шляху UNC, додаючи ім'я диска, як
|
||
зазначено в опції <b>data</b>, і, нарешті,
|
||
додаючи каталог та ім'я файлу.
|
||
</p><p>Ця опція потрібна лише для Windows.
|
||
</p></div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec7-16" class="manual-title-level-2">
|
||
smartctl DISK/PARITY OPTIONS...
|
||
</h2>
|
||
<p>Визначає користувацькі опції smartctl для
|
||
отримання атрибутів SMART для кожного диска.
|
||
Це може знадобитися для RAID-контролерів та
|
||
деяких USB-дисків, які не можуть бути
|
||
автоматично виявлені. Заповнювач %s
|
||
замінюється іменем пристрою, але він
|
||
необов'язковий для фіксованих пристроїв,
|
||
таких як RAID-контролери.
|
||
</p><p>DISK — це те саме ім'я диска, вказане в опції <b>data</b>.
|
||
PARITY — це одне з імен парності: <b>parity</b>,
|
||
<b>2-parity</b>, <b>3-parity</b>, <b>4-parity</b>, <b>5-parity</b>,
|
||
<b>6-parity</b> або <b>z-parity</b>.
|
||
</p><p>У вказаних OPTIONS рядок <b>%s</b> замінюється
|
||
іменем пристрою. Для RAID-контролерів пристрій
|
||
ймовірно фіксований, і вам може не знадобитися
|
||
використовувати <b>%s</b>.
|
||
</p><p>Зверніться до документації smartmontools
|
||
для можливих опцій:
|
||
</p><pre>
|
||
<a href="https://www.smartmontools.org/wiki/Supported_RAID-Controllers">https://www.smartmontools.org/wiki/Supported_RAID-Controllers</a>
|
||
<a href="https://www.smartmontools.org/wiki/Supported_USB-Devices">https://www.smartmontools.org/wiki/Supported_USB-Devices</a>
|
||
</pre>
|
||
<p>Наприклад:
|
||
</p><pre>
|
||
smartctl parity -d sat %s
|
||
</pre>
|
||
</div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec7-17" class="manual-title-level-2">
|
||
smartignore DISK/PARITY ATTR [ATTR...]
|
||
</h2>
|
||
<p>Ігнорує вказаний атрибут SMART при обчисленні
|
||
ймовірності відмови диска. Ця опція корисна,
|
||
якщо диск повідомляє незвичайні або
|
||
оманливі значення для певного атрибута.
|
||
</p><p>DISK — це те саме ім'я диска, вказане в опції <b>data</b>.
|
||
PARITY — це одне з імен парності: <b>parity</b>,
|
||
<b>2-parity</b>, <b>3-parity</b>, <b>4-parity</b>, <b>5-parity</b>,
|
||
<b>6-parity</b> або <b>z-parity</b>.
|
||
Спеціальне значення * можна використовувати
|
||
для ігнорування атрибута на всіх дисках.
|
||
</p><p>Наприклад, щоб ігнорувати атрибут <b>Current Pending Sector Count</b>
|
||
на всіх дисках:
|
||
</p><pre>
|
||
smartignore * 197
|
||
</pre>
|
||
<p>Щоб ігнорувати його лише на першому диску парності:
|
||
</p><pre>
|
||
smartignore parity 197
|
||
</pre>
|
||
</div>
|
||
<div class="manual-section-level-2">
|
||
<h2 id="sec7-18" class="manual-title-level-2">
|
||
Приклади
|
||
</h2>
|
||
<p>Приклад типової конфігурації для Unix:
|
||
</p><pre>
|
||
parity /mnt/diskp/snapraid.parity
|
||
content /mnt/diskp/snapraid.content
|
||
content /var/snapraid/snapraid.content
|
||
data d1 /mnt/disk1/
|
||
data d2 /mnt/disk2/
|
||
data d3 /mnt/disk3/
|
||
exclude /lost+found/
|
||
exclude /tmp/
|
||
smartctl d1 -d sat %s
|
||
smartctl d2 -d usbjmicron %s
|
||
smartctl parity -d areca,1/1 /dev/sg0
|
||
smartctl 2-parity -d areca,2/1 /dev/sg0
|
||
</pre>
|
||
<p>Приклад типової конфігурації для Windows:
|
||
</p><pre>
|
||
parity E:\snapraid.parity
|
||
content E:\snapraid.content
|
||
content C:\snapraid\snapraid.content
|
||
data d1 G:\array\
|
||
data d2 H:\array\
|
||
data d3 I:\array\
|
||
exclude Thumbs.db
|
||
exclude \$RECYCLE.BIN
|
||
exclude \System Volume Information
|
||
smartctl d1 -d sat %s
|
||
smartctl d2 -d usbjmicron %s
|
||
smartctl parity -d areca,1/1 /dev/arcmsr0
|
||
smartctl 2-parity -d areca,2/1 /dev/arcmsr0
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
<div class="manual-section-level-1">
|
||
<h1 id="sec8" class="manual-title-level-1">
|
||
Шаблон (Pattern)
|
||
</h1>
|
||
<p>Шаблони забезпечують гнучкий спосіб фільтрації файлів для включення або
|
||
виключення. Використовуючи символи підстановки (globbing), ви можете визначити правила, які
|
||
відповідають конкретним іменам файлів або цілим структурам каталогів без
|
||
ручного перерахування кожного шляху.
|
||
</p><p>Знак питання <b>?</b> відповідає будь-якому одному символу, крім роздільника
|
||
каталогів. Це робить його корисним для зіставлення імен файлів із змінними
|
||
символами, при цьому шаблон обмежується одним рівнем каталогу.
|
||
</p><p>Одинарна зірочка <b>*</b> відповідає будь-якій послідовності символів, але, як і
|
||
знак питання, вона ніколи не перетинає межі каталогів. Вона зупиняється на
|
||
прямій косій рисці, що робить її придатною для зіставлення всередині одного
|
||
компонента шляху. Це стандартна поведінка підстановочних знаків, знайома
|
||
з командної оболонки (shell globbing).
|
||
</p><p>Подвійна зірочка <b>**</b> є потужнішою, вона відповідає будь-якій послідовності
|
||
символів, включаючи роздільники каталогів. Це дозволяє шаблонам відповідати
|
||
кільком рівням каталогів. Коли <b>**</b> з'являється безпосередньо в шаблоні,
|
||
вона може відповідати нулю або більше символам, включаючи косі риски між
|
||
оточуючим літеральним текстом.
|
||
</p><p>Найважливішим використанням <b>**</b> є спеціальна форма <b>/**/</b>. Вона відповідає
|
||
нулю або більше повним рівням каталогів, що дозволяє зіставляти файли
|
||
на будь-якій глибині в дереві каталогів, не знаючи точної структури шляху.
|
||
Наприклад, шаблон <b>src/**/main.js</b> відповідає <b>src/main.js</b> (пропуск
|
||
нуля каталогів), <b>src/ui/main.js</b> (пропуск одного каталогу) та
|
||
<b>src/ui/components/main.js</b> (пропуск двох каталогів).
|
||
</p><p>Класи символів із використанням квадратних дужок <b>[]</b> відповідають одному символу з
|
||
визначеного набору або діапазону. Як і інші односимвольні шаблони, вони
|
||
не відповідають роздільникам каталогів. Класи підтримують діапазони та заперечення за допомогою
|
||
знаку оклику.
|
||
</p><p>Фундаментальна відмінність, яку слід пам'ятати, полягає в тому, що <b>*</b>, <b>?</b> та класи символів
|
||
усі дотримуються меж каталогів і відповідають лише в межах одного компонента
|
||
шляху, тоді як <b>**</b> — єдиний шаблон, який може відповідати через роздільники
|
||
каталогів.
|
||
</p><p>Існує чотири різні типи шаблонів:
|
||
</p><div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
FILE
|
||
</div><div class="manual-option-description">
|
||
Вибирає будь-який файл з ім'ям FILE.
|
||
Цей шаблон застосовується тільки до файлів, а не до директорій.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
DIR/
|
||
</div><div class="manual-option-description">
|
||
Вибирає будь-яку директорію з ім'ям DIR і все, що знаходиться всередині.
|
||
Цей шаблон застосовується тільки до директорій, а не до файлів.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
/PATH/FILE
|
||
</div><div class="manual-option-description">
|
||
Вибирає точно вказаний шлях до файлу. Цей шаблон застосовується
|
||
тільки до файлів, а не до директорій.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
/PATH/DIR/
|
||
</div><div class="manual-option-description">
|
||
Вибирає точно вказаний шлях до директорії і все, що знаходиться
|
||
всередині. Цей шаблон застосовується тільки до директорій, а не до файлів.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p>Коли ви вказуєте абсолютний шлях, що починається
|
||
з /, він застосовується до кореневого каталогу
|
||
масиву, а не до кореневого каталогу локальної
|
||
файлової системи.
|
||
</p><p>У Windows ви можете використовувати зворотну
|
||
скісну риску \ замість прямої скісної риски /.
|
||
Системні каталоги Windows, з'єднання, точки
|
||
монтування та інші спеціальні каталоги Windows
|
||
розглядаються як файли, що означає, що для
|
||
їх виключення ви повинні використовувати правило
|
||
файлу, а не правило каталогу.
|
||
</p><p>Якщо ім'я файлу містить символи <b>*</b>, <b>?</b>, <b>[</b>,
|
||
або <b>]</b>, ви повинні екранувати їх, щоб уникнути
|
||
їх інтерпретації як символу глоббінгу.
|
||
В Unix символом екранування є <b>\</b>; у Windows — <b>^</b>.
|
||
Коли шаблон знаходиться в командному рядку,
|
||
ви повинні подвоїти символ екранування, щоб
|
||
запобігти його інтерпретації командною оболонкою.
|
||
</p><p>У конфігураційному файлі ви можете використовувати
|
||
різні стратегії для фільтрації файлів, які потрібно
|
||
обробити.
|
||
Найпростіший підхід — використовувати лише
|
||
правила <b>exclude</b> для видалення всіх файлів та
|
||
каталогів, які ви не хочете обробляти.
|
||
Наприклад:
|
||
</p><pre>
|
||
# Виключає будь-який файл з іменем <b>*.unrecoverable</b>
|
||
exclude *.unrecoverable
|
||
# Виключає кореневий каталог <b>/lost+found</b>
|
||
exclude /lost+found/
|
||
# Виключає будь-який підкаталог з іменем <b>tmp</b>
|
||
exclude tmp/
|
||
</pre>
|
||
<p>Протилежний підхід — визначити лише файли,
|
||
які ви хочете обробити, використовуючи лише
|
||
правила <b>include</b>. Наприклад:
|
||
</p><pre>
|
||
# Включає лише деякі каталоги
|
||
include /movies/
|
||
include /musics/
|
||
include /pictures/
|
||
</pre>
|
||
<p>Останній підхід — змішувати правила <b>exclude</b>
|
||
та <b>include</b>. У цьому випадку порядок правил
|
||
важливий. Раніші правила мають пріоритет
|
||
над пізнішими.
|
||
Для спрощення ви можете спочатку перерахувати
|
||
всі правила <b>exclude</b>, а потім усі правила <b>include</b>.
|
||
Наприклад:
|
||
</p><pre>
|
||
# Виключає будь-який файл з іменем <b>*.unrecoverable</b>
|
||
exclude *.unrecoverable
|
||
# Виключає будь-який підкаталог з іменем <b>tmp</b>
|
||
exclude tmp/
|
||
# Включає лише деякі каталоги
|
||
include /movies/
|
||
include /musics/
|
||
include /pictures/
|
||
</pre>
|
||
<p>У командному рядку, використовуючи опцію -f,
|
||
ви можете використовувати лише шаблони <b>include</b>.
|
||
Наприклад:
|
||
</p><pre>
|
||
# Перевіряє лише файли .mp3.
|
||
# В Unix використовуйте лапки, щоб уникнути
|
||
# розширення глоббінгу оболонкою.
|
||
snapraid -f "*.mp3" check
|
||
</pre>
|
||
<p>В Unix, при використанні символів глоббінгу в
|
||
командному рядку, ви повинні взяти їх у лапки,
|
||
щоб запобігти їх розширенню оболонкою.
|
||
</p></div>
|
||
<div class="manual-section-level-1">
|
||
<h1 id="sec9" class="manual-title-level-1">
|
||
Ігнорування файлів (Ignore File)
|
||
</h1>
|
||
<p>На додаток до глобальних правил у файлі конфігурації, ви можете розміщувати
|
||
файли <b>.snapraidignore</b> в будь-якому каталозі всередині масиву для визначення
|
||
децентралізованих правил виключення.
|
||
</p><p>Правила, визначені в <b>.snapraidignore</b>, застосовуються після правил у файлі
|
||
конфігурації. Це означає, що вони мають вищий пріоритет і можуть бути використані
|
||
для виключення файлів, які раніше були включені глобальною конфігурацією.
|
||
Фактично, якщо локальне правило збігається, файл виключається незалежно від
|
||
глобальних налаштувань включення.
|
||
</p><p>Логіка шаблонів у <b>.snapraidignore</b> повторює глобальну конфігурацію, але
|
||
прив'язує шаблони до каталогу, в якому знаходиться файл:
|
||
</p><div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
FILE
|
||
</div><div class="manual-option-description">
|
||
Вибирає будь-який файл із ім'ям FILE у цьому каталозі або нижче.
|
||
Це відповідає тим самим правилам підстановки, що і в глобальному шаблоні.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
DIR/
|
||
</div><div class="manual-option-description">
|
||
Вибирає будь-який каталог із ім'ям DIR та весь його вміст, що
|
||
знаходиться в цьому каталозі або нижче.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
/PATH/FILE
|
||
</div><div class="manual-option-description">
|
||
Вибирає точно вказаний файл відносно розташування
|
||
файлу <b>.snapraidignore</b>.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="manual-option-list">
|
||
<div class="manual-option-entry">
|
||
<div class="manual-option-name">
|
||
/PATH/DIR/
|
||
</div><div class="manual-option-description">
|
||
Вибирає точно вказаний каталог та весь його вміст відносно
|
||
розташування файлу <b>.snapraidignore</b>.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p>На відміну від глобальної конфігурації, файли <b>.snapraidignore</b> підтримують
|
||
лише правила виключення; ви не можете використовувати шаблони <b>include</b> або заперечення (!).
|
||
</p><p>Наприклад, якщо у вас є <b>.snapraidignore</b> у <b>/mnt/disk1/projects/</b>:
|
||
</p><pre>
|
||
# Виключає ТІЛЬКИ /mnt/disk1/projects/output.bin
|
||
/output.bin
|
||
# Виключає будь-який каталог із назвою <b>build</b> всередині projects/
|
||
build/
|
||
# Виключає будь-який .tmp файл всередині projects/ або його підпапок
|
||
*.tmp
|
||
</pre>
|
||
</div>
|
||
<div class="manual-section-level-1">
|
||
<h1 id="sec10" class="manual-title-level-1">
|
||
Вміст (Content)
|
||
</h1>
|
||
<p>SnapRAID зберігає список та контрольні суми
|
||
ваших файлів у файлі вмісту.
|
||
</p><p>Це бінарний файл, який перераховує всі файли,
|
||
присутні у вашому дисковому масиві, разом з
|
||
усіма контрольними сумами для перевірки їх
|
||
цілісності.
|
||
</p><p>Цей файл зчитується та записується командами
|
||
<b>sync</b> та <b>scrub</b> та зчитується командами <b>fix</b>,
|
||
<b>check</b> та <b>status</b>.
|
||
</p></div>
|
||
<div class="manual-section-level-1">
|
||
<h1 id="sec11" class="manual-title-level-1">
|
||
Парність (Parity)
|
||
</h1>
|
||
<p>SnapRAID зберігає інформацію парності вашого
|
||
масиву у файлах парності.
|
||
</p><p>Це бінарні файли, що містять обчислену
|
||
парність усіх блоків, визначених у файлі
|
||
<b>content</b>.
|
||
</p><p>Ці файли зчитуються та записуються командами
|
||
<b>sync</b> та <b>fix</b> і лише зчитуються командами
|
||
<b>scrub</b> та <b>check</b>.
|
||
</p></div>
|
||
<div class="manual-section-level-1">
|
||
<h1 id="sec12" class="manual-title-level-1">
|
||
Кодування (Encoding)
|
||
</h1>
|
||
<p>SnapRAID в Unix ігнорує будь-яке кодування.
|
||
Він зчитує та зберігає імена файлів з
|
||
тим самим кодуванням, що використовується
|
||
файловою системою.
|
||
</p><p>У Windows усі імена, зчитані з файлової
|
||
системи, конвертуються та обробляються
|
||
у форматі UTF-8.
|
||
</p><p>Щоб імена файлів відображалися правильно,
|
||
ви повинні встановити консоль Windows
|
||
у режим UTF-8 за допомогою команди
|
||
<b>chcp 65001</b> та використовувати шрифт
|
||
TrueType, такий як <b>Lucida Console</b>, як
|
||
шрифт консолі.
|
||
Це впливає лише на надруковані імена
|
||
файлів; якщо ви перенаправляєте вивід
|
||
консолі у файл, отриманий файл завжди
|
||
буде у форматі UTF-8.
|
||
</p></div>
|
||
<div class="manual-section-level-1">
|
||
<h1 id="sec13" class="manual-title-level-1">
|
||
Авторське право (Copyright)
|
||
</h1>
|
||
<p>Цей файл захищений авторським правом (C) 2025 Andrea Mazzoleni
|
||
</p></div>
|
||
<div class="manual-section-level-1">
|
||
<h1 id="sec14" class="manual-title-level-1">
|
||
Див. також (See Also)
|
||
</h1>
|
||
<p>snapraid_log(1), snapraidd(1)
|
||
</p></div>
|
||
|
||
|
||
</div>
|
||
</main>
|
||
</div>
|
||
|
||
<!-- Footer -->
|
||
<footer>
|
||
<div class="container footer-content">
|
||
<div class="footer-col">
|
||
<div class="logo">
|
||
<img src="android-chrome-192x192.png" width="32" height="32"/>
|
||
SnapRAID
|
||
</div>
|
||
<p>Copyright © 2026 Andrea Mazzoleni</p>
|
||
<p class="license">Distributed under GPL v3 License</p>
|
||
</div>
|
||
<div class="footer-col">
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
</body>
|
||
</html>
|
||
|
||
|