Доступ к тому ZFS в Windows?
Вы могли бы подумать, что это спросили бы, но я не могу найти это так .
Допустим, у меня есть установка ZFS в этом корпусе (8-портовый USB3 JBOD):
http://www.sansdigital.com/towerraid-/tr8uplusb.html
Теперь я собираюсь запустить его на своем Mac с прямым подключением, но я бы хотел иметь возможность доступа к файлам и при загрузке в Windows. С томами HFS + Apple была достаточно любезна, чтобы предоставить средства для этого. Тем не менее, я не могу найти один для ZFS.
Единственное решение, с которым я столкнулся, — это использование Open Solaris на виртуальной машине для монтирования дисков. Тем не менее, я также слышал больше, чем несколько ночных кошмаров о том, как это сделать, и это привело к массовым неудачам . Да, как бы полная противоположность тому, что я хочу.
Итак, по сути, каковы в настоящее время наилучшие способы доступа к тому ZFS, подключенному к Windows? Я был бы рад доступу только для чтения, если это необходимо.
Ох, предполагаемая ОС — это Windows 7.
В Windows отсутствует поддержка уровня ZFS на уровне ОС.
Как говорили другие авторы, лучше всего использовать ОС с поддержкой ZFS на виртуальной машине.
- Открытый Солярис
- FreeBSD
- Linux (через zfs-fuse или zfs-on-linux)
Еще одна возможность — подключить небольшой маломощный компьютер (скажем, систему на базе Atom) для подключения к дискам и выступать в качестве головного устройства сети для дисков, обменивающихся данными по сети, через стандартный протокол, такой как CIFS ( Samba). Затем вы можете запустить ОС с поддержкой ZFS прямо на металле.
ZFS-победа
- https://github.com/dominicusin/zfs-win ( автоматически экспортируется изhttps://code.google.com/archive/p/zfs-win/ — спасибо Tiberiu-Ionuț Stan за подсказку)
- GNU GPL v2
- требует докан
… Диск только для чтения может быть установлен…
— и я думаю, что дальнейшее развитие может дать доступ для записи.
После установки в Windows 7:
Во время редактирования раздела о совместимости вики OpenZFS мне посоветовали, что zfs-win не может читать пул ZFS версии 28. (Я не пишу код, поэтому из исходного кода я не могу сказать, какая версия поддерживается — извините.)
ZFS в виртуальной машине может работать очень хорошо, если следовать одному простому правилу, никогда не лгать ZFS. ZFS делает все возможное, чтобы не допустить повреждения ваших данных (контрольных сумм, копирования при записи, дитоблоков , зеркал или raid-z и т. Д.), Поэтому вы должны сделать все, что в ваших силах, чтобы позволить ZFS иметь прямой доступ к вашим дискам. Все ужасные истории о проблемах виртуализации ZFS происходят от некоторого уровня буферизованного ввода-вывода из буферов программного обеспечения виртуализации, кэша контроллера диска или даже окон с сквозным кэшем, если вы достаточно глупы, чтобы использовать виртуальные диски вместо целых необработанных дисков. Каждый пакет виртуализации делает сырые диски немного по-своему, но VMWare Workstation , VMWare Fusion и VirtualBox поддерживают его без особых усилий.
Вы упомянули о подключении его к вашему Mac, чтобы вы могли использовать что-то родное для OSX, например ZEVO (ранее Z-410 ), или запустить виртуальную машину ZFS, как в Windows 7. Если вы перемещаете свой пул между mac / windows (ZEVO ВМ) ты захочешь zpool export poolname до переключения. Нет необходимости, если вы загружаете одну и ту же виртуальную машину с обеих сторон. Вы должны стремиться к тому, чтобы виртуальные диски (файлы vmdk) не размещались на HFS + или NTFS, а вместо этого сделать один из внешних дисков (или раздел вашего внутреннего диска) загрузочным, чтобы вы могли загружать его не виртуально без особых усилий.
Следует отметить, что если на вашем Mac есть Thunderbolt, вы можете использовать его вместо USB2 или FireWire для подключения нескольких дисков для ZFS. Что-то вроде моста SonnetTech Thunderbolt PCIe (ExpressCard или PCIe) в сочетании с картой eSATA или SAS (или даже картой USB3) будет на несколько порядков быстрее, чем обычный USB2.
Теперь (2017) реализована собственная реализация ZFS для Windows (только 10?) По адресу:
Обсуждение здесь показывает, что это высококачественный порт:
Бьюсь об заклад, по возрасту этой темы, которую вы уже перешли, но я положу свои два цента ради кого-то еще, у кого еще есть вопросы по этому вопросу.
Я собрал несколько NAS-машин, используя ZFS в качестве файловой системы. Один из самых простых в использовании — FreeNAS или NAS4Free. Я также использовал Solaris до того, как предыдущие два предложили дедупликацию и шифрование в их версиях ZFS. Как уже упоминалось, вы можете с успехом использовать процессоры Atom в качестве системной платы с низким энергопотреблением. Просто убедитесь, что они загружают столько памяти, сколько может поддерживать плата, чтобы восполнить недостаток питания от процессора. Очевидно, что NAS не так быстр, как локальный диск, но лучше, чем вообще не пользоваться преимуществами ZFS.
Я использовал виртуальную машину для доступа к некоторым USB-флешкам, которые я в свою очередь отформатировал с помощью ZFS в пуле RaidZ. Затем я поделился ими с хост-машиной через виртуальное подключение к локальной сети. Хотя это сработало, я не знаю, с какими проблемами надежности или производительности вы бы столкнулись, если бы сделали что-то подобное. USB-накопители настолько медленны, что никакие полезные данные не могли бы быть получены из этой установки . так что я никогда не удосужился проверить это. Тем не менее, я полагаю, что при такой работе будет много служебной нагрузки на процессор.
В целом, если у вас есть бюджет, я бы предложил создать NAS поверх виртуальной машины. В прошлом месяце я построил один с небольшим корпусом Chenbro и платой Supermicro Atom. Я загрузил ему 4 ГБ ОЗУ и 4×3 ТБ дисков SATA в RaidZ. Он тестировался на скорости 135 Мбит / с. Я не проводил никаких других тестов.
Использование ОС с поддержкой ZFS на виртуальной машине — ваш лучший выбор. ZFS довольно надежна и поддерживает импорт и экспорт пулов из разных операционных систем, поэтому при этом не должно быть крупных сбоев или ночных кошмаров.
ZFSin: работаем с ZFS нативно под Windows
Делая поиск на Хабру по слову ZFS, я обнаружил почти полсотни статей так или иначе упоминающих замечательную файловую систему c таким именем. Отдельно, к примеру, можно упомянуть достадочно свежие материалы «ZFS on Linux: вести с полей 2017» и «ZFS — лучшая файловая система (пока)». Делал этот поисковый запрос я вот почему…
Уже более 7 лет люди задаются вопросом, «как получить доступ к ZFS из Windows?». И приблизительно 6 лет вменяемого и практичного ответа на этот вопрос не существовало. Речь даже не о производительности, сама возможность хотя бы нативно читать данные в Windows из томов отформатированных под файловую систему ZFS будоражит мозг многих технарей и сисадминов. И вот однажды один энтузиаст решил изменить унылое положение дел c отсутствиеем поддержки ZFS в самой популярной потребительской десктопной ОС. Странно только, что за год эта новость до сих пор не добралась до Хабра. Думаю, стоит это исправить.
И так встречайте — ZFSin, нативный полнофункциональный драйвер файловой системы ZFS для Windows. Драйвер находится в альфа-стадии и не подходит для продакшн-окружений, но уже многое умеет.
Когда проект драйвера был только опубликован на GitHub, было еще не понятно, насколько серьезны намерения разработчика, и как далеко он готов зайти в развитии возможностей драйвера. Первоначально драйвер распространялся только в виде исходных текстов и годился только для отладочных экспериментов. Для этого автор предлагал скачать и запустить две виртуальные машины, в одной из которых происходила компиляция и деплоемент драйвера во вторую — тестовую (целевую) виртуальную машину с тестовым пулом ZFS.
Текущий прогресс по функционалу драйвера на момент конца мая 2018:
Теперь же, по прошествии года после первоначальной публикации, разработчик продемонстрировал намерения развивать проект, функциональность драйвера была расширена, стабильность возросла, поэтому появилась возможность распространения в драйвера виде бинарных сборок. Хотя это не указано прямо, на данный момент бинарные сборки ZFSin совместимы только с Windows 10 x64, однако недавно в исходные коды была возвращена возможность генерации 32-разрядных билдов, а автор не исключил возможности добавления поддержки более старых версий Windows.
Установка бинарного релиза:
- Скачайте и распакуйте свежий релиз драйвера
- Отключите проверку цифровой подписи драйверов, (например так bcdedit.exe -set testsigning on) и перезагрузитесь
- Запустите CMD с правами Администраиора
- Выполните ZFSinstall.bat
- Выберите «продолжить установку все равно» во всплывающем окне «неизвестный издатель»
- Выполните команду «zpool.exe status» для проверки статуса драйвера
Если установка успешна, то после последнего пункта вы увидите сообщение «No pools available«, если же произойдет ошибка, то сообщение будет «Unable to open \.ZFS: No error.«
Командный синтаксис драйвера в основном соотвествует таковому из документации к Open ZFS. Из соображений совместимости следует использовать нечувствительный к регистру символов режим файловой системы.
# zpool create [options] tank disk
— создать пул из одного диска
# zpool create [options] tank mirror disk1 disk2
— создать зеркальный пул («raid1»)
# zpool create [options] tank raidz disk1 disk2 disk3 . diskn
— создать raidz («raid5»)пул из нескольких дисков
zpool create -O casesensitivity=insensitive -O compression=lz4 -O atime=off -o ashift=12 tank disk
— пример рекомендуемой команды создания пула под Windows
Очень хотелось бы привлечь к этому проекту больше внимания других программистов, чего проект безусловно заслуживает. Разработчик драйвера ZFSin будет очень рад вашим баг-репортам, пул-реквестам, ну или на худой конец, звездочкам, которые вы отправите в его репозиторий на GitHub.
Файловая система ZFS
В наши дни все большей и большей популярности набирают файловые системы следующего поколения, которые имеют более широкую функциональность, чем в обычных файловых системах. Одни из таких файловых систем — это Btrfs и ZFS, Обе они уже стали достаточно стабильными и активно применяются пользователями. Для многих пользователей очень важна сохранность данных, и такие файловые системы могут обеспечить ее наилучшим образом.
В одной из предыдущих статей мы рассматривали файловую систему Btrfs. В нашей сегодняшней статье мы остановимся на ZFS, эти файловые системы похожи по своему применению и назначению, но имеют некоторые отличия. Мы рассмотрим как установить эту файловую систему в вашем дистрибутиве, настроить ее и использовать для решения повседневных задач.
Что такое ZFS?
ZFS — это файловая система, объединенная с менеджером логических томов. Ее разработка началась в компании Sun Microsystems для ОСhttps://losst.ru/fajlovaya-sistema-btrfs Solaris. Файловая система выпускалась под открытой лицензией Common Development and Distribution License (CDDL). Она была предназначена для высокопроизводительных серверов, поэтому уже тогда поддерживала мгновенные снимки и клонирование данных. Но после покупки ее компанией Oracle, исходный код был закрыт, а сообщество создало форк последней доступной версии под именем OpenZFS. Именно эту файловую систему сейчас и можно установить и использовать.
Файловая система ZFS имеет обычные для таких файловых систем возможности. Это просто огромный размер одного раздела, и размер файла, поддерживается возможность хранения файлов на нескольких устройствах, проверка контрольных сумм для данных и шифрование на лету, а также запись новых данных в режиме COW, когда данные не переписываются, а пишутся в новое место, что позволяет делать мгновенные снапшоты.
Возможности очень похожи на Btrfs, но есть кое-какие отличия. В Btrfs можно посмотреть все файлы, измененные с момента последнего снапшота. Второе отличие, это отсутствие в Btrfs логических блоков zvol.
Установка ZFS
В последних версиях Ubuntu файловая система ZFS была добавлена в официальный репозиторий и в установочный диск. Поэтому для того, чтобы ее установить будет достаточно выполнить несколько команд:
sudo apt install -y zfs
В других дистрибутивах. например, CentOS или Fedora ситуация немного сложнее, сначала вам придется добавить официальный репозиторий, а затем установка zfs и самого набора утилит и модулей ядра:
sudo yum install http://download.zfsonlinux.org/epel/zfs-release.el7_3.noarch.rpm
$ sudo yum install zfs
Затем осталось включить загрузить модуль ядра с поддержкой этой файловой системы:
sudo modprobe zfs
Теперь файловая система установлена и готова к использованию. Дальше нам нужно выбрать разделы и создать на них файловые системы. Для настройки zfs используется утилита zpool, но для начала давайте рассмотрим ее синтаксис и возможности. Файловая система может быть расположена на нескольких разделах или жестких дисках, поэтому на уровне ядра формируется общий пул (куча), а к нему уже подключаются разделы. Тут можно провести аналогию с группой томов LVM.
Команда zpool
Это основной инструмент управления разделами и функциональными возможностями ZFS, поэтому вам важно его освоить. Общий синтаксис команды достаточно прост, но у нее есть множество подкоманд, которые имеют свой синтаксис и параметры:
$ zpool команда параметры опции устройства
Как я уже сказал, параметры и опции для каждой команды свои, а в качестве устройства может указываться пул или физический раздел на жестком диске. Теперь рассмотрим основные команды и их предназначение, чтобы вы могли немного ориентироваться, а более детальные параметры разберем уже на примерах:
- add — добавить раздел к существующему пулу;
- attach — добавить раздел или жесткий диск к пулу файловой системы;
- clean — очистить все ошибки дисков;
- create — создать новый пул из физического раздела, на котором будут размещены виртуальные диски;
- destroy — удалить пул разделов zfs;
- detach — отключить физический раздел от пула;
- events — посмотреть сообщения ядра, отправленные модулем zfs;
- export — экспортировать пул для переноса в другую систему;
- get — посмотреть параметры пула;
- set — установить значение переменной;
- history — отобразить историю команд zfs;
- import — импортировать пул;
- iostat — отобразить статистику ввода/вывода для выбранного пула zfs;
- list — вывести список всех пулов;
- offline/online — выключить/включить физическое устройство, данные на нем сохраняются, но их нельзя прочитать или изменить;
- remove — удалить устройство из пула;
- replace — перенести все данные со старого устройства не новое;
- scrub — проверка контрольных сумм для всех данных;
- status — вывести статус пула.
Это были все основные опции команды, которые мы будем использовать. Теперь рассмотрим примеры настройки zfs и управления разделами.
Как пользоваться ZFS
Настройка ZFS не очень сильно отличается от Btrfs, все базовые действия выполняются очень просто, вы сами в этом убедитесь.
Создание файловой системы
Сначала посмотрим есть ли уже созданные пулы ZFS. Для этого выполните такую команду:
sudo zpool list
Если вы устанавливаете эту файловую систему в первый раз, то здесь будет пустой список. Теперь создадим пул на основе существующего раздела, мы будем использовать раздел /dev/sda6
sudo zpool create -f pool0 /dev/sda6
Хотя вы можете использовать не только раздел, а целый диск. Теперь смотрим еще раз список пулов:
sudo zpool list
Затем смотрим состояние нашего пула с помощью команды status, здесь выводится больше подробной информации. Если у вас есть несколько дисков, вы можете настроить RAID массив, чтобы данные хранились не на одном разделе, а синхронно копировались на несколько, это может в несколько раз увеличить производительность.
sudo zpool create pool0 zraid /dev/sda /dev/sdb /dev/sdc
Обратите внимание, что диски должны иметь одинаковый раздел. Если вам не нужен RAID, вы можете настроить обычное зеркалирование на второй диск. Это увеличивает надежность хранения данных:
sudo zpool create pool0 mirror sda sdb
Теперь данные будут писаться на оба диска. Такую же вещь можно проделать с разделами, но здесь нет смысла, поскольку если жесткий диск накроется, то данные вы потеряете, а прироста производительности не увидите. Вы можете использовать даже файлы, для создания файловых систем.
Вы можете добавить новый жесткий диск или раздел к пулу:
sudo zpool attach pool0 /dev/sdd
Или удалить устройство из пула:
sudo zpool detach pool0 /dev/sdd
Чтобы удалить пул используйте команду destroy:
sudo zpool destroy pool0
Для проверки раздела на ошибки используйте команду scrub:
sudo zpool scrub pool0
Статистику использования пула можно посмотреть с помощью команды iostat:
sudo zpool iostat pool0
Файловые системы ZFS
Теперь нужно создать файловые системы на только что созданном пуле. Создадим три файловые системы, data, files и media. Для этого используется команда zfs:
sudo zfs create pool0/data
$ sudo zfs create pool0/files
$ sudo zfs create pool0/media
Файловые системы готовы, дальше рассмотрим монтирование zfs.
Монтирование ZFS
Точка монтирования для пула и для каждой созданной в нем файловой системы создается в корневом каталоге. Например, в нашем случае точки монтирования выглядят так:
Или можно использовать такую команду:
Чтобы размонтировать файловую систему для одного из созданных разделов используйте команду zfs umount:
sudo zfs umount /pool0/data
Затем можно ее обратно примонтировать:
sudo zfs mount pool0/data
Параметры файловой системы
Кроме всего прочего, вы можете настроить различные параметры файловой системы ZFS, например, можно изменить точку монтирования или способ сжатия. Вы можете посмотреть все текущие параметры для файловой системы или пула с помощью команды:
sudo zfs get all pool0/files
Сначала включим сжатие:
sudo zfs set compression=gzip pool0/files
Затем отключим проверку контрольных сумм:
sudo zfs set checksum=off pool0/files
Смотрим точку монтирования:
sudo zfs get mountpoint pool0/files
Затем установим свою:
sudo zfs set mountpoint=/mnt pool0/files
Теперь раздел будет монтироваться в /mnt, настройки можно изменить для каждого из разделов.
Снимки состояния ZFS
Снапшоты zfs или снимки состояния могут использоваться восстановления данных. Благодаря особенностям файловой системы снимки можно создавать мгновенно. Для создания снимка просто наберите:
sudo zfs snapshot pool0/files pool0/files@shot1
Для восстановления используйте:
sudo zfs rollback pool0/files@shot1
Посмотреть список снимков вы можете командой:
sudo zfs list -t snapshot
А удалить ненужный снимок:
sudo zfs destory pool0/files@shot1
Выводы
В этой статье мы рассмотрели как работает файловая система zfs, как выполняется настройка zfs и как ее использовать. Это очень перспективная файловая система, с огромным набором функций, которая способна сравняться, а в некоторых областях и обойти Btrfs. Надеюсь, эта информация была полезной для вас, если у вас остались вопросы, спрашивайте в комментариях!