Для багатьох термін «розшарювання» міцно асоціюється саме з відкриттям доступу до дискових накопичувачів, їх розділів і збереженої на них інформації. Навіть недосвідчені користувачі можуть похвалитися знанням слова Samba (і не бояться вбити це слово у пошуковик, щоб знайти короткий туторіал по швидкому настроюванню, попутно натикаючись на новини про черговий виявленої уразливості і масових епідемій, викликаних підступної вирусней).
Ще по темі: Як розшарити відеокарту на Linux
Того, хто звик знаходити нетривіальні рішення, напевно, буде цікавий варіант експорту дискового пристрою, за способом реалізації наближений до промисловим стандартам. В рамках можливостей Linux подібний експорт робиться за допомогою програмної системи DRBD, з 2009 року увійшла в саме ядро. Суть системи відображено в її назві — розподілене реплицируемое блоковий пристрій. Вона забезпечує миттєву синхронізацію між локальним і віддаленим блоковими пристроями.
Підготовча робота полягає в установці пакету drbd-utils. Конфігурувати його можна покроково за допомогою drbdsetup, але простіше відредагувати вміст файла налаштувань /etc/drbd.conf на обох машинах:
12345678910111213141516171819202122232425 | global { usage-count no; }common { resync-rate 100M; }resource r0 { protocol C; startup { wfc-timeout 15; degr-wfc-timeout 60; } net { cram-hmac-alg sha1; shared-secret “ПАРОЛЬ”; } on имя_хоста1 { device /dev/drbd0; disk /dev/sda5; address 192.168.0.1:7788; meta-disk internal; } on имя_хоста2 { device /dev/drbd0; disk /dev/sda7; address 192.168.0.2:7788; meta-disk internal; }} |
Опцією cram-hmac-alg задається алгоритм шифрування, підтримуваний на обох комп’ютерах. Вони перераховані у файлі /proc/crypto. Пароль shared-secret може містити до 64 символів.
Імена хостів визначаються командою uname -n, що запускається на кожній з машин окремо. Опціям disk присвоюються назви дискових накопичувачів або їх розділів, що відносяться до кожної машині. Слідом зазначаються IP-адреси і задіяні порти. Їх розмір пропорційний розміру самого пристрою.
Також на обох машинах запускаємо ініціалізацію сховища:
1 | $ sudo drbdadm create-md drbd0 |
І стартуємо демон DRBD:
12 | $ sudo systemctl enable drbd$ sudo systemctl start drbd |
Далі переходимо на ту машину, яка буде працювати з даними (одночасний доступ до сховища може отримати тільки одна з них), і робимо її майстром:
1 | $ sudo drbdadm primary all |
Потім створюємо і монтуємо файлову систему сховища:
12 | $ sudo mkfs.ext4 /dev/drbd0$ sudo mount /dev/drbd0 /mnt |
В результаті вийшов свого роду RAID-масив поверх мережі з одноразовим доступом до нього лише одного з існуючих хостів. Втім, отримати доступ до даних, перебуваючи на іншій машині, також можливо. Для цього потрібно всього лише розмонтувати файлову систему на поточному майстра, зробити майстром другу машину і змонтувати сховище на ній. Трьох елементарних команд, одну з яких можна повісити на поєднання клавіш відразу, а дві інші попередньо вставити в сценарій, буде достатньо.
Висновки
Лінукс не ідеальний і часом може серйозно програвати іншим системам по своїм функціональним можливостям, в точності як у випадку з системою Plan 9 і віддаленим доступом до апаратних ресурсів комп’ютера. У той же час, коли виникає потреба вирішити конкретну задачу, шанси знайти відповідний набір інструментів для цього практично стовідсоткові.
Рекомендую: Як отримати список розшарених папок