Lvm, mdadm, btrfs, ZFS, в каких случаях, что лучше использовать?
Я не особо продвинутый пользователь Linux, по этому как доходит дело до выбора файловой системы, возникают мысли, что я делаю что то не так)))
Постараюсь сначала описать, применение (с вопросами) и разделить по темам, что бы не было каши как у меня в голове)))
Btrfs:
В жизни приходилось использовать Btrfs, это был не сервер а рабочая станция, что понравилось и что использовал:
1. Устанавливал среднее сжатие данных, так как диск был SSD всего на 128 гигабайт, а процессор I7? было довольно не плохо)
2. Пользовался снапшотами, проблем не было, я ведь правильно понимаю, жаль, что для отката нужно перезагружать машину, но я так понимаю, что в любом случае, при откате со снапшота, нужно перезагружать машину?
ZFS:
Не использовал, но на сколько я понял, что основные отличия от Btrfs это:
1. RAID-Z и сразу вопрос правильно ли я понимаю, что RAID-Z, это по структуре тоже самое что RAID 5?
2. Пространство диска можно только расширять, а уменьшать нельзя.
LVM + mdadm, использовал на сервере, проблем нет, работает годами:
1. LVM делит диски, можно доставлять диски, убирать и расширять пространства на лету
2. Также в LVM использовал снапшоты и тут интересная реализация, для создания снапшота выделяется объем памяти и когда новые данные записанные на диск превысят этот объем, то снапшот автоматически удалится, правильно ли я это понимаю?
3. Еще я так и не понял, если я восстанавливаю снапшот системного диска, то в некоторых случаях, перезагрузка не требуется?
4. Еще момент, после того как создаешь снапшот с помощью LVM, это достаточно сильно напрягает компьютер, по сравнению со снапшотами созданными при помощи btrfs ?
5 Ну mdadm позволяет создать пул из нескольких дисков и писать данные на них параллельно, то есть делать копии данных на несколько носителей
Еще хотел бы услышать мнения, о том, что у Btrfs бывают проблемы в моменты когда становится мало памяти на диске?
Кто-то сталкивался с подобной проблемой?
Пишу не ответ на вопрос а просто некое частное мнение. ИМХО.
1. Устанавливал среднее сжатие данных, так как диск был SSD всего на 128 гигабайт, а процессор I7? было довольно не плохо)
Будь осторожен со сжатием. Оно эффективно только на определенном роде информации и на юзкейсе. Как только юз-кейс этой информации меняется (например решил обновлять на регулярной основе много документов) то может появится неконтролируемая нагрузка. И самое плохое что когда это случится - ты скорее всего забудешь о сжатии и не будешь понимать что происходит. Почему все стало медленно.
У меня стоит диск под бигдату. 3G. Учебные наборы данных. И он отформатирован под XFS. Если мне нужно сжать какой-то крупный dataset - то я его сжимаю bzip-ом. Взамен получаю splittable архив по которому биг-датавские фреймворки умеют бегать и работать с его частями независимо. Это опция только bzip2. Другие архивы эту опцию не поддерживают поэтому я их не использую. Данные не меняются в силу природы датасетов. Все работает хорошо.
Если-бы я сжимал на уровне ФС все подряд каким-то жлобским GZip или Snappy, то я-бы не получил этой возможности. Более того я мог-бы получить неконтролируемую просадку в производительности например на операциях многократного сохранения датасета в файл. А я люблю по много раз пересоздавать датасет-файл добиваясь толи индексирования толи еще чего.
По поводу Btrfs - это хорошая и умная система. Но ее возможности шире чем ты используешь. Она сильна снапшотами и программными рейдами. Но это все - фичи которые "дома" тебе практически никогда не потребуются. Более того. Если какая-то ситуация случается (что-то отмонтировалось) у тебя обычно нет времени и желания с этим разбираться глубоко. Если ты создавал снапшот для задач разработки а потом "забыл" его - то получишь невидимый технически долг на диске. В чем этот долг проявится - чорт его знает но обязательно он проявится. Вобщем мораль такова что если ты хочешь быть дежурным админом или девопсом - то ставь сложные файловые системы. Если просто надо работать - то ставь ext4 или xfs.
Zfs позволяет хранить частоиспольуемое в оперативке
Brtfs - для не критичных данных, либо конкретных для сжатия - типа мп3, фоток...
Mdadm - просто программная технология организации рейда
Lvm - по сути «разделы диска», как в винде, но с плюшками
Xfs - для хранения больших файлов
Как по мне - в линукс надо юзать etx4, если нет специфичечкой задачи
Собрали всё в кучу, это нормально, когда только постигаешь linux.
btrfs и zfs - файловые системы, буквы fs в аббревиатурах намекаю.
lvm и mdadm - не файловые системы, это технологии ниже файловых систем. lvm - менеджер логических томов, с его помощью вы создаете разделы на дисках, только функционал у него больше чем просто разделы на диске.
mdadm - ПО для создания raid - объединения дисков в отказоустойчивый кластер, скажем так.
получается следующее:
mdadm - уровень дисков
lvm - уровень разделов
btrfs,zfs и прочие fs - уровень файловой системы
Что применять и как - решать только Вам исходя из Ваших задач и желаний
Только вот ZFS это далеко не только файловая система. Там есть ZVOL, с помощью которого ты можешь получить блочное устройство и накатить свою файловую систему.