Проблема прикручивания ZFS к Linux’у (как будет видно из дальнейшего, прикручивание в данном случае не жаргонизм, а совершенно точное определение) имеет два аспекта — технический и юридический, причём разрешение первого упиралось во второй.

Технически портировать ZFS, созданную первоначально для Solaris, под Linux было, видимо, не так сложно. Во всяком случае, для FreeBSD этот процесс занял менее двух лет. Однако для Linux’а дело тем, что лицензия, под которой распространялась ZFS, CDDL, будучи свободной и не влияя на общую лицензию любого производного проекта, оказалась несовместимой с GPL2, под которой распространяется ядро Linux.

Изящное решение предложил весной 2010 года Брайан Белендорф (Brian Behlendorf): он разработал модуль поддержки ZFS, который может распространяться отдельно от ядра — под всё той же лицензией CDDL. Чем и обходится антагонистическое противоречие — запрет на распространение бинарников, в которых смешан код под этими лицензиями. Но совместное его использование в виде отдельных программ никто не запрещает.

На базе разработки Брайна скоро возник проект ZFS on Linux. В рамках этого проекта модуль был доведён до ума и оброс утилитами поддержки, портированными из Solaris — так называемым SPL (Solaris Porting Layer). И в результате к началу 2011 года порт ZFS on Linux стал пригоден к практическому применению — по крайней мере, в экспериментальном режиме. И только для 64-битных машин с достаточным (4 и более гигабайт) оперативной памяти. Почему так — можно прочитать здесь.

Правда, майнтайнеры основных дистрибутивов не торопились включать поддержку ZFS в свои системы даже в качестве дополнительных пакетов. Подозреваю, что не столько из косности, сколько из-за очередной сложности: по всё тем же лицензионным ограничениям zfs и spl не могут распространяться как akmod — система автоматической пересборки модулей под текущую (или изменившуюся) версию ядра. Единственно допустимая форма — собирать их в виде kmod, то есть модулей, привязанных к фиксированной версии (и даже конкретной сборке) ядра. Что, при регулярных, даже корректирующих, обновлениях последнего требует и их пересборки.

Тем не менее, разработчики проекта воплотили результаты своей работы в виде дополнительного (так называемого PPA) репозитория для Ubuntu. А также сочинили подробные инструкции по собственноручной сборке пакетов в форматах rpm и deb. Ссылки на все эти материалы можно найти на главной странице проекта.

Одними из первых эти инструкции применили к делу независимые разработчики сообщества openSUSE. А что из этого получилось — посмотрим на следующей странице.


Содержание