Search
Write a publication
Pull to refresh

Объединение FS в Linux с балансировкой записи

MHDDFS, UnionFS, LVM, и зачем вообще все это надо


С приобретением второго веника к домашнему серверу понадобилось совместить старую и новую ФС. Попробовал разные варианты и остановился на MHDDFS.
Unionfs, mhddfs, lvm позволяют использовать несколько жестких дисков в Linux как одну файловую систему. UnionFS и MHDDFS «накладывают» файловые системы друг на друга, LVM же работает по принципам RAID.
При этом MHDDFS позволяет балансировать диски при записи, выбирая для новых файлов диск с наибольшим количеством свободного места. Если в процессе записи место на диске закончится, записанная часть файла будет перенесена на другой носитель без прерывания процесса записи, а перенос останется незаметным для приложения. А если один из дисков безвременно прекратит свое существование, данные не потеряются целиком, как с LVM или RAID.

Настройка mhddfs на Debian/Ubuntu


В моем случае имеются /dev/sdb1 и /dev/sdb2, которые нужно было объединить в один диск.

Устанавливаем, создаем точки монтирования и монтируем диски по одному:
Copy Source | Copy HTML
  1. root@punkoff-desktop:/# aptitude install mhddfs
  2. root@punkoff-desktop:/# cd /mnt
  3. root@punkoff-desktop:/mnt# mkdir a b c
  4. root@punkoff-desktop:/mnt# mount /dev/sdb1 a
  5. root@punkoff-desktop:/mnt# mount /dev/sdb2 b
  6.  

А теперь — самое интересное:
Copy Source | Copy HTML
  1. root@punkoff-desktop:/mnt# mhddfs a,b c


Теперь можно протестировать файловую систему. Размер sdb1 и sdb2 — по 400 Mb. Размер video.avi — около 320 Mb.
Copy Source | Copy HTML
  1. root@punkoff-desktop:/mnt/c# cp ~/video.avi video1.avi
  2. root@punkoff-desktop:/mnt/c# cp ~/video.avi video2.avi
  3. root@punkoff-desktop:/mnt/c# ls
  4. video1.avi
  5. video2.avi
  6. root@punkoff-desktop:/mnt/c# ls ../a/
  7. video1.avi
  8. root@punkoff-desktop:/mnt/c# ls ../b/
  9. video2.avi

Видно, что файлы записались по одному на диск.

Размонтировать ФС:
Copy Source | Copy HTML
  1. root@punkoff-desktop:/mnt# fusermount -u c


Строка fstab для mhddfs:
Copy Source | Copy HTML
  1. mhddfs#/mnt/a,/mnt/b /mnt/c fuse defaults 0 0
  2.  

Нужно отметить, что mhddfs объединяет не диски, а директории.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.