Comments 117
Если вы хотите использовать ZFS на Linux, вы сможете её использовать как файловую систему только для хранения. Насколько мне известно, никакой из дистрибутивов не даёт возможности установить ZFS, так, чтобы она работала сразу.
Как минимум Ubuntu и Arch могут устанавливаться на ZFS-корень. Я этот финт проделывал на Gentoo ещё лет 5 назад, но Gentoo, конечно это совсем не «работает сразу»))
Начиная от огромного потребления памяти и заканчивая убогой производительностью в многопоточной загрузке.
На домашний комп или резервный стор пойдет, но для high load категорически не годится, увы.
Чтобы ZFS не тормозила, ей надо много оперативки, желательно от 16 Гб и больше
Вполне себе нормально эксплуатировал на 1 Г оперативки. Притом, что официально рекомендуют 4 Г минимум.
Только на ZFS я видел, как папка с фотками открывается в файловом менеджере 40 секунд.
Была такая бага на Фринасе. При доступе через SMB. Но вроде пофиксили давно. По крайней мере и папки с фотками и 4 терабайта торрентов (включая скачанный либрусек) открывает сейчас без проблем. И это на HP Microserver G7 N36L с самым дохлым процессором.
Из потенциальных недостатков (особенно если мало памяти) можно считать отсутствие как класса возможности дефрагментации. Тут надо заранее думать. Например в настройках торрентокачалки делать выделение места сразу под всё, что скачивается. Иначе есть шанс, что здоровый цельный фильм будет раскидан мелкими кусочками по всему тому.
Например в настройках торрентокачалки делать выделение места сразу под всё, что скачивается. Иначе есть шанс, что здоровый цельный фильм будет раскидан мелкими кусочками по всему тому.
А разве copy-on-write не предполагает что при скачивании новые данные все равно будут помещены в другое место, а не перезаписаны в месте нахождения пустого файла заглушки?
Например в настройках торрентокачалки делать выделение места сразу под всё, что скачивается
Как уже сказали, CoW делает такую настройку бессмысленной.
Тем не менее, есть рекомендации, как лучше настраивать датасеты, используемые для торрентов, а так же как лучше настраивать различные Bittorrent клиенты.
Дедуп, как раз, поумолчанию выключен. В ZFS используется online подход к дедупу, что требует держать в памяти хэши всех блоков. Отсюда требования к объему RAM. Но этот объем можно оценить сверху, зная объем стораджа и накладных расходов дедупа на блок. AFAIK сейчас ведутся работы по выносу таблицы хэшей на отдельные устройства (SSD и т.п.). Это должно существенно облегчить использование… В данный момент использование дедупа не рекомендуется, если вы только точно знаете, что вы делаете...
Но производительность — дело десятое. Мне в ZFS нравится неубиваемость ( верно только для фришника ). Мало кто может себе позволить запасной петабайт дисков.
Хм… Я как раз видел описания, где это указывалось — правда, в виде "для комфортного пользования надо дохрена памяти и мощный проц". После чего раздумал пробовать на резервный стор, решив ограничиться снэпшотами через rsync с хардлинками.
P.S. а если отключить автоматическую дедупликацию — всё равно тормозит на ваших задачах?
Можете поделиться источниками, откуда взялось утверждение про тормознутость? У нас весь прод, включая реляционную БД, и все личные домашние компы на ZFS. Проблем с тормознутостью не было. Все просто — если это файловое хранилище (для чего ZFS, собственно, и задумывалось) — не трогаем arc_max, если просто поиграться дома — ставим лимит и пользуем все плюшки (шифрование, сжатие, снепшоты и т.п.) в удовольствие, без перерасхода памяти.
А какой смысл иметь её на домашнем компе?
Спасибо, очень интересно.
А прикладной софт весь в виртуальных машинах запускаете? Видеокарту получилось пробросить (PCIe passthrough)?
Я как раз думаю собрать комп помощнее на замену старому макбуку, собирался установить Ubuntu LTS основной системой, сижу читаю о ZFS и FreeBSD теперь.
вот давеча только уперся в ruby 1.9 на одной из рабочих балалаек, и все, не поставишь там без извращений новую web софтинку, зависимости понимаете лиDocker?
1 А зачем? И как вообще теоретически, самое главное?Мне иногда приходится работать в Windows, и я люблю, чтобы окошки плавненько перемещались, чтобы скроллинг в браузере был не 3 FPS и т.п.
Win достаточно через терминал.
Мне иногда приходится работать в Windows, и я люблю, чтобы окошки плавненько перемещались, чтобы скроллинг в браузере был не 3 FPS и т.п.
На современном железе вполне можно и без проброски видеокарты напрямую.
Драйвера видео в виртуальной машине вменяемые быстрые.
Проброска карты нужна только для игр.
Поэтому она не «тормознутая», а это вы ее не там использовали и сделали таки еже выводы.
Памяти используется много, потому-то, опять же по-умолчанию, она старается всё закешировать, но и этим поведением можно управлять. Да, комфортную работу на 1Гб оперативной памяти вы точно не получите, и, если у вас 1Гб — то лучше выбрать другую ФС.
На домашний комп или резервный стор пойдет, но для high load категорически не годится, увы.
Системы Sun, для которых эта ФС и создавалась — самый что ни на есть highload
Раздел про снапшоты требует прям ещё одного прохода и вычитки.
Чего стоит одно только переселение автора из США в Великобританию:
Even though I’m from the US, I prefer to pronounce it ZedFS instead of ZeeFS because it sounds cooler.
Хотя я из Великобритании, я предпочитаю произносить ZedFS вместо ZeeFS, потому что это звучит круче.
P.S. Это примерно как перепутать РФ с РБ. :)
Я согласен, как по мне это худший перевод на Хабре, что доводилось читать.
Спасибо!
А не могли бы вы написать подобную статью о btrfs или сравнение zfs-vs-btrfs?
К достоинствам ZFS в вашей статье я бы добавил:
- отсутствие так называемого RAID "write hole" эффекта.
- легкое управление квотами.
Прочитал вашу статью по диагонали, поэтому мог не заметить...
Возможность хранить не только файлы/файловые системы, но и просто эмулируемые блочные устройства (vdev), получая абсолютно все возможности для них.вы, вероятно, имели в виду zvol, а не vdev? Во всяком случае у меня AoE на zvol работает, а способа адресовать данные конкретному vdev я не знаю.
В линуксе root на zfs возможен, сейчас уже достаточно просто (zfsonlinux на github). FreeBSD из коробки ставится. Для некоторых задач очень удобна, но нюансов много, да.
Только "поезд ZFS ушел" кажись. Популярные дистрибутивы Linux легко ставятся на BtrFS, который и задумывался, как замена ZFS.
Особенно по таким важным для серверного применения фичам, как замена диска.
Только «поезд ZFS ушел» кажись. Популярные дистрибутивы Linux легко ставятся на BtrFS, который и задумывался, как замена ZFS.
Только вот ZFS является production ready уже лет 15.
А использовать Btrfs на нагруженных проектах рискованно до сих пор. Ей еще ключевые фичи не допилили
btrfs вроде бы тоже в основном разрабатывалась силами разработчиков из Oracle, и Oracle потеряла к ней интерес. Читал, что из-за этого развитие btrfs затормозилось почти до полной остановки.
Впрочем, я использую btrfs дома, и особых проблем не испытываю.
Большое количество разработчиков ZFS разочаровалось из-за таких изменений.
«Были разочарованы этими изменениями»
Хотя, если вы учили русский как иностранный, то можно и так как вы написали — в принципе, понятно.
Согласно сайту OpenZFS, изменение лицензии влечёт за собой контакт разработчиков которые вносили изменения в релиз OpenZFS (включая тех, кто начал этот проект и код ZFS до OpenSolaris) и получить их разрешение
Во время когда большинство файловых систем были 64-битными, создатели ZFS решили сделать её 128-битной, для будущего подтверждения этого
Или все же вы нам впаривайте Google Translate?
«Были разочарованы этими изменениями»
Вот это как раз не по-русски, а по-канцелярски. Впрочем, у автора тоже неудачно сформулировано, надо было так: «эти изменения разочаровали многих разработчиков ZFS»
Большое количество разработчиков ZFS разочаровалось из-за таких изменений.
Заглянем в оригинал:
Shortly after Oracle purchased Sun Microsystems, OpenSolaris became close-source. All further development of ZFS became closed source, as well. Many of the developers of ZFS where unhappy about this turn of events. Two-thirds of the core ZFS devlopers, including Ahrens and Bonwick, left Oracle due to this decision. They joined other companies and created the OpenZFS project in September of 2013. The project has spearheaded the open-source development of ZFS.
Подчеркнутое предложение можно перевести, например, так:
Такой поворот событий вызвал недовольство многих разработчиков ZFS.
P.S. Возможен и такой вариант перевода:
Такой поворот событий расстроил/обескуражил многих разработчиков ZFS.
Однако мне больше нравится первый вариант («вызвал недовольство»).
unhappy about — Translation into Russian — examples English | Reverso Context
В данном случае выбор какого-то варианта — это больше дело вкуса.
При использовании «недоволен» или «недовольны» я испытываю некую незаконченность рассказываемого и требуется уже детальное пояснение событий. Здесь коротко и ясно, но это мои «тараканы».
Хорошего дня!
При использовании «недоволен» или «недовольны» я испытываю некую незаконченность рассказываемого и требуется уже детальное пояснение событий. Здесь коротко и ясно, но это мои «тараканы».
Первый вариант («вызвал недовольство») мне нравится больше потому, что он «активный»: (недовольные) разработчики не стали мириться с несправедливостью, а уволились из Oracle и разработали OpenZFS.
Хорошего дня!
Спасибо, взаимно.
Или все же вы нам впаривайте Google Translate?
Это врядли. В оригинале:
Even though I’m from the US
Перевод:
Хотя я из Великобритании
Сомневаюсь, что Google Translate на такое способен.
А ещё она зачем-то умеет CIFS/SMB sharing. Фича странная и удивительно, что её до сих не выкинули.
Адепты ZFS на /r/DataHoarder любят замалчивать этот факт и навязывать ZFS тем, кто строит свою первую файлопомойку для дома. А потом у людей проблемы: построить новый сервер оказывается дешевле, чем добавить места в старый.
Для "мелких нужд" скопировать-то как раз не проблема — объёмы позволяют. Отчасти из-за этого на домашнем NAS собирал vdev из разделов, а не дисков.
Адепты ZFS на /r/DataHoarder любят замалчивать этот факт и навязывать ZFS тем, кто строит свою первую файлопомойку для дома
Фанбои — они такие. На лоре тоже есть пара-тройка восторженных мальчиков-зайчиков, которые суют ZFS в каждую щель, умалчивая о её минусах.
На больший диск поменять как раз можно. А когда будут заменены все диски, размер пространства
ни поменять сдохший диск на диск большего размера: все эти операции требуют одновременного форматирования всех дисков сразу.
У меня сейчас полусдохший 2терабайтник поменян на 4терабайтник с прицелом на будущее удвоение объёма (как все поменяю — так и удвоится). Потребовалось 2 раза выключать систему — для подсоединения нового диска и для убирания в коробку старого. Не рискнул выключать на горячую — хотя можно было.Данные вообще не трогал. Я что-то не так сделал? Надо было форматировать?
А в других системах — если у вас зеркало из 2х дисков, вы сможете без форматирования добавить третий диск?
Я что-то не так сделал?Сидите с диском, половина которого не используется.
А в других системахВ Btrfs если у вас есть Raid1 из двух 2Тб, можно на лету, даже не отмонтируя, добавить диск на 4Тб. Система сходу станет хранить каждый файл на нём и на одном из мелких дисков, утилизируя всё пространство. В Gluster так же, только (кажется) придётся ручками объяснять, что от него требуется.
Сидите с диском, половина которого не используется.
Но форматировать то мне не пришлось. Так что не всё настолько ужасно, как вы расписывали.
хотя вариант интересный — когда запилят что-то типа Фринаса или OMV чтобы из коробки работало.
«The parity RAID code has multiple serious data-loss bugs in it. It should not be used for anything other than testing purposes.»
«The first two of these problems mean that the parity RAID code is not suitable for any system which might encounter unplanned shutdowns (power failure, kernel lock-up), and it should not be considered production-ready. „
btrfs.wiki.kernel.org/index.php/RAID56
Как-то после этого всего хочется подождать, пока допилят. Лучше я посижу с недоиспользованным диском, чем буду рисковать.
Да, кстати — а в RAID5 на btrfs также можно добавить диск большего объёма и она всё там сама перераспределит? Или это только с зеркалами работает?
Баг появляется только на RAID5 и только при аварийном пропадании питания на двух и более дисках одновременно
Кажется, что два диска из строя не выходят одновременно, маленькая вероятность, но это не так.
Вы не поверите, но это встречается.
В пору моего админства — лет 10 назад — встречалось дважды.
Выходит из строя один диск, пока суд да дело, пока диагностика, пока шеф утвердит покупку диска, пока счет от поставщика, пока бухгалтерия оплатит — дохнет второй диск. Всего то через 2 дня после первого.
Как позже я прочитал — ситуация нередкая. По причине того, что после выхода из строя первого диска, идет повышенная нагрузка и риски для выхода второго резко увеличивается.
Да, я понимаю, что нужно иметь в запасе дорогущий серверный диск, а лучше несколько, даже если здоровье массива 100%. С тех пор старался делать RAID только с 2-мя Hot Spare.
Однако далеко не каждого «шефа» удается убедить это профинансировать. Один из двух грамотных с точки зрения знакомства с ИТ «шефов» как раз напротив — категорически хотел, чтобы все его деньги шли в дело, ничего не «лежало без дела» в HotSpare, и вроде бы я купил для него диски под Hot Spare, но когда дело дошло инициализации RAID, то он настоял включить все диски в рабочий набор RAID, чтобы «было быстрее».
В случае с ZFS переехать с raid1 2x2T на raid1 4T + (raid0 2x2T) тоже можно без остановки.
Чтобы ZFS не била по CPU и MEM, надо отключать deduplication и compression.
Но лучше её вообще не использовать, кроме того случая, когда у вас vendor-lock от Oracle :-}
Ясно-понятно.
Статья вообще ниочем, годится разве что как вступительная часть.
Получается, если сделать снапшот, а потом во время дальнейшей работы удалить файл, то этот файл удалится и в снапшоте?
После того как вы сделали снапшот, то все последующие изменения будут касаться только текущего (в оригинале live) состояния (то что пользователь видит). Для доступа к данным внутри снапшота есть два метода: смотреть прямо в снашот или делать клон со снапшота. Оба метода являются ReadOnly. Данные внутри снапшота не могут быть изменены. «клон» это новая ФС\Блочное устройство и всё, что будет изменено внутри клона, будет относится только к этому клону, а поэтому все изменения будут потеряны вместе с удалением клона.
Пару лет назад однако (может полтора)
создал несколько зеркальных двухдисковых RAID для данных на ZFS
каково же было мое удивление что уменьшить размер RAID (не было дисков в наличии на замену) можно только бэкапом/переносом данных
даже в dmraid можно выкрутится миграцией на меньший диск в онлайне
Но всё равно укажу на фактические ошибки
Это гарантирует что если файловая система сломается (или случится что-либо подобное) во время записи, старая информация будет фиксирована. Это означает что системе не нужно запускать fsck после сбоя.
Мутно сформулировано. Отвечает за это атомарность ЕМНИП. А если файловая систем сломалась — то запускать fsk как раз нужно. Только его нет для ZFS, поэтому в тех редких случаях, когда сломалась танцы особые. Больше всего увлекательности IMHO в can't replace replacing disk
Если же файл был удален, упоминание о нём из снимка исчезает.
Ровно наоборот
Снимки могут быть смонтированы в формате read-only для восстановления старой версии файла. Также можно откатить систему к предыдущему снимку.
А ещё есть клоны.
Тем не менее RAID-Z разработан так, что бы превзойти RAID-5 в плане ошибки
Описывать raidz и не упомянуть дыру по записи — это примерно как рассказать что такое хлеб, но не упомянуть, что его можно есть.
(RAID-Z1) вам необходимо минимум два диска для хранения и один для контроля по чётности.Отнюдь. Можно сделать Raidz и из двух дисков, проверяется экспериментально. Другое дело, что смысла в этом немного.
Как только диски добавлены к группам RAID-Z они должны быть кратны двум.Эту фразу я не понял. А если добавлен один диск — он чему будет равен? И что за группа? если vdev — то как добавить?
Какой-то странный текст…
Смысл в этом есть и довольно ощутимый.
In addition to handling whole-disk failures, RAID-Z can also detect and correct silent data corruption, offering «self-healing data»: when reading a RAID-Z block, ZFS compares it against its checksum, and if the data disks did not return the right answer, ZFS reads the parity and then figures out which disk returned bad data. Then, it repairs the damaged data and returns good data to the requestor.
Хотя я из США, я предпочитаю произносить ZedFS вместо ZeeFS, потому что это звучит круче.
— Чей это мотоцикл?
— Это не мотоцикл, это файловая система, дорогая.
— А чья это файловая система?
— Зеда.
— А кто такой Зед?
— Зед мёртв, детка. Зед мёртв.
Что такое ZFS? И почему люди от неё без ума?