FreeBSD планирует перейти на ZFSonLinux

    На прошлой неделе один из разработчиков FreeBSD Matt Macy выдвинул предложение об использовании реализации ZFS от проекта ZFSonLinux. Таким образом все требуемые изменения для FreeBSD будут сразу интегрированы в кодовую базу ZFSonLinux. Предложением это не завершилось, уже создан форк, в котором производятся требуемые доработки, а также получено одобрение core разработчиков ZFSonLinux на включение доработок для FreeBSD в единую кодовую базу.


    image

    Положительная ли это новость? Конечно же да! Суть в концентрации всех причастных к проекту OpenZFS разработчиков в одном месте, в одной кодовой базе.


    До настоящего момента OpenZFS предлагал в качестве опорного пункта репозиторий проекта Illumos, через который должен был происходить обмен кодом между всеми участниками коллаборации (ZFSonLinux, FreeBSD, Illumos, ZFSonOSX). Стоит отметить, что совместимость между реализациями поддерживалась на должном уровне. Но, к сожалению, портирование изменений при условии не 100% идентичности кода — операция весьма трудозатратная.


    Основной же мотивацией является де факто полный переход ключевых разработчиков в проект ZFSonLinux. Ранее основной организацией, поддерживающей кодовую базу Illumos, была Delphix. Однако, в начале этого года ими было принято решение о миграции на Linux.


    Основная жизнь происходит в (как ни странно) проекте ZFSonLinux. За несколько лет в нём появилось множество новых функций, основные:


    • Встроенное шифрование (с возможностью проверки целостности без ключа!)
    • Последовательный "scrub" — теперь проверка целостности данных проводится оптимальным способом
    • Metadata allocation class — можно выделить на отдельные носители (SSD/NVME):
      • Метаданные
      • Данные дедупликации
      • Блоки, размером меньше заданного (например, файлы размером до 4KB)
    • Large dnodes — оптимизации для систем, генерируюих большое число метаданных (разработано специально для Lustre)
    • Механизм кеширования ARC переработан с целью минимизации фрагментации (используется механизм scatter/gather)
    • Векторизация кода RAIDZ, векторизация контрольных сумм

    Стоит отметить, что наравне с новым функционалом, разработчики FreeBSD отметили включение многих правок по стабилизации и deadlock'ам в ZFSonLinux, которые также не были портированы в другие проекты.


    Будем надеяться, что данный шаг позволит и дальше улучшать продукт, а также сконцентрирует все ресурсы в одной единой кодовой базе.


    Ура, товарищи!


    P.S. Почему вам может быть интересен ZFS.

    Поделиться публикацией

    Похожие публикации

    Комментарии 11

      0
      А никто не подскажет — это будет полноценное портирование кода и поддержка на уровне ядра, или очередная прослойка вроде linuxkpi?
        +3
        Нет, это будет не прослойка. Архитектурно для FreeBSD ничего не поменяется, просто в части ZFS будет использоваться общая кодовая база с Linux, с OS-specific кусками lists.freebsd.org/pipermail/freebsd-current/2018-December/072463.html.
          0
          ZFS нативен для соляриса, под FreeBSD работает через слой совместимости — модуль ядра opensolaris.ko.
          0
          можно выделить на отдельные носители (SSD/NVME): Блоки, размером меньше заданного (например, файлы размером до 4KB)
          Это интересно, надо посмотреть. На Ubuntu уже есть?
            0

            Эта функция будет в версии 0.8 (она уже в кодовой базе master ветки, в статусе rc).

              0
              Там что-то поменяли, и теперь вроде как у пулов не версии, а флаги какие-то. Как и где мне своевременно узнать о том, что я теперь так могу? И в существующий пул можно будет такую функцию добавить?
                0
                Верно, в OpenZFS теперь у пула всегда версия 5000 и набор флагов. Если хотя бы один флаг пула не поддерживается конкретной реализацией — он не импортируется (но есть и read-only флаги, то есть с ними пул можно примонтировать, но только в режиме чтения). Флаги можно активировать выборочно.

                Самые актуальные новости — в описании релизов ZFSonLinux github.com/zfsonlinux/zfs/releases. Описания флагов — man zpool-features
                  0
                  А по второму вопросу можете ответить? С существующим пулом такое можно сделать?
                    0

                    В рамках поддерживаемых запущенным кодом флагов — можете любые активировать, а некоторые — даже отключать.


                    zpool set feature@multi_vdev_crash_dump=enabled tank1

                      0
                      И после установки флага все файлы размером 4кб и меньше начнут копироваться на SSD? Этот диск добавляется в пул отдельно по аналогии с ARC? Где можно про эту функцию почитать в подробностях? Что будет при отказе диска?

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

        Самое читаемое