Zfs открыть в windows

image

Делая поиск на Хабру по слову ZFS, я обнаружил почти полсотни статей так или иначе упоминающих замечательную файловую систему c таким именем. Отдельно, к примеру, можно упомянуть достадочно свежие материалы «ZFS on Linux: вести с полей 2017» и «ZFS — лучшая файловая система (пока)». Делал этот поисковый запрос я вот почему…

Уже более 7 лет люди задаются вопросом, «как получить доступ к ZFS из Windows?». И приблизительно 6 лет вменяемого и практичного ответа на этот вопрос не существовало. Речь даже не о производительности, сама возможность хотя бы нативно читать данные в Windows из томов отформатированных под файловую систему ZFS будоражит мозг многих технарей и сисадминов. И вот однажды один энтузиаст решил изменить унылое положение дел c отсутствиеем поддержки ZFS в самой популярной потребительской десктопной ОС. Странно только, что за год эта новость до сих пор не добралась до Хабра. Думаю, стоит это исправить.

И так встречайте — ZFSin, нативный полнофункциональный драйвер файловой системы ZFS для Windows. Исходные коды лицензированы под Common Development and Distribution License (CDDL). Драйвер находится в альфа-стадии и не подходит для продакшн-окружений, но уже многое умеет.

RomanStrlcpy нашел видео с OpenZFS Summit 2017, где ZFSin был представлен:

Когда проект драйвера был только опубликован на GitHub, было еще не понятно, насколько серьезны намерения разработчика, и как далеко он готов зайти в развитии возможностей драйвера. Первоначально драйвер распространялся только в виде исходных текстов и годился только для отладочных экспериментов. Для этого автор предлагал скачать и запустить две виртуальные машины, в одной из которых происходила компиляция и деплоемент драйвера во вторую — тестовую (целевую) виртуальную машину с тестовым пулом ZFS.

Текущий прогресс по функционалу драйвера на момент конца мая 2018:

image

Теперь же, по прошествии года после первоначальной публикации, разработчик продемонстрировал намерения развивать проект, функциональность драйвера была расширена, стабильность возросла, поэтому появилась возможность распространения в драйвера виде бинарных сборок. Хотя это не указано прямо, на данный момент бинарные сборки ZFSin совместимы только с Windows 10 x64, однако недавно в исходные коды была возвращена возможность генерации 32-разрядных билдов, а автор не исключил возможности добавления поддержки более старых версий Windows.

Установка бинарного релиза:

  1. Скачайте и распакуйте свежий релиз драйвера
  2. Отключите проверку цифровой подписи драйверов, (например так bcdedit.exe -set testsigning on) и перезагрузитесь
  3. Запустите CMD с правами Администраиора
  4. Выполните ZFSinstall.bat
  5. Выберите «продолжить установку все равно» во всплывающем окне «неизвестный издатель»
  6. Выполните команду «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.

UPD Разработчик пошел навстречу просьбам и начал публикацию 32-битной бинарной версии драйвера.

Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку


THIS IS THE OLD PORT: Please move over to
https://github.com/openzfsonwindows/openzfs


To setup a development environment for compiling ZFS.

Download free development Windows 10 image from Microsoft.

https://developer.microsoft.com/en-us/windows/downloads/virtual-machines

and create two VMs.

  • Host (running Visual Studio and Kernel Debugger)
  • Target (runs the compiled kernel module)

The VM images comes with Visual Studio 2017, which we use to compile the driver.

It is recommended that the VMs are placed on static IP, as they can
change IP with all the crashes, and you have to configure the remote
kernel development again.

Go download the Windows Driver Kit 10

https://developer.microsoft.com/en-us/windows/hardware/windows-driver-kit

and install on both VMs. You will need both the SDK and WDK:
Download the SDK with the Visual Studio 2017 community edition first and install it.
It will update the already installed Visual Studio.
Then install the WDK. At the end of the installer, allow it to install the Visual Studio extension.

On Target VM, complete the guide specified here, under
section «Prepare the target computer for provisioning».

https://msdn.microsoft.com/windows/hardware/drivers/gettingstarted/provision-a-target-computer-wdk-8-1?f=255&MSPPError=-2147217396

Which mostly entails running:

C:\Program Files (x86)\Windows Kits\10\Remote\x64\WDK Test Target Setup x64-x64_en-us.msi

  • reboot Target VM

On the Host VM, continue the guide to configure Visual Studio 2017.

  • Load Visual Studio 2017, there is no need to load the project yet.
  • Menu > Driver > Test > Configure Devices
  • Click «Add New Device»
  • In «Display name:» enter «Target»
  • In «Device type:» leave as «Computer»
  • In «Network host name:» enter IP of Target VM, for me «172.16.248.103»
  • Provisioning options: o Provision device and choose debugger settings.
  • Click «Next >»

It now confirms that it talked to the Target, and note here that
«Host IP» it that of the Host VM, for me, «172.16.248.102», and not to
be confused by the Target IP entered on previous screen.

  • Click «Next >»

Watch and wait as remote items are installed on the Target VM. It
will most likely reboot the Target VM as well.

I’ve had dialog boxes pop up and I agree to installation, but I am not
sure they are supposed to. They probably shouldn’t, it would seem it
failed to put WDKRemoteUser in Administrators group. If that happens,
use «lusrmgr.msc» to correct it.

The task «Creating system restore point» will most likely fail and
that is acceptable, however, if other tasks fail, you may need to
retry until they work.

At the end of the run, the output window offers a link to the full
log, which is worth reading if you encounter issues.

When things fail, I start a CMD prompt as Administrator, and paste in
the commands that fail, from the log file. It would be nice if this
process just worked though.

If your version of .NET newer, just move along.

The Target VM should reboot, and login as «WDKRemoteUser».

It is recommended you get GIT bash for Windows and install:

https://git-scm.com/downloads


Handling configuration errors with Visual Studio 2019 & WDK 10:

There are some issues with Visual Studio 2019 which can cause the following problem in setting up kernel debugging.
ERROR: Task “Configuring kernel debugger settings (possible reboot)” failed to complete successfully. Look at the logs in the driver test group explorer for more details on the failure.

This problem is related to MSVC debug tool location mismatch, and as a workaround use the following steps to mitigate this problem:

As Administrator, run Developer Command Prompt for VS 2019 in your Host VM
Run the following commands in the VS Developer Command Prompt:

cd /d %VCToolsRedistDir%\debug_nonredist
MKLINK /J x86\Microsoft.VC141.DebugCRT x86\Microsoft.VC142.DebugCRT
MKLINK /J x64\Microsoft.VC141.DebugCRT x64\Microsoft.VC142.DebugCRT

Retry configuration by following guide to configure Visual Studio 2017 mentioned above.


Host and Target VMs are now configured.

First time you load the project it might default to

Debug : ARM

you probably want to change ARM ==> X64.

  • Load ZFSin solution

  • Menu > Debug > ZFSin Properties

  • Configuration Properties > Debugging
    «Debugging tools for Windows — Kernel Debugger»
    Remote Computer Name: Target

  • Configuration Properties > Driver Install > Deployment
    Target Device Name: Target
    [Tick] Remove previous driver versions
    O Hardware ID Driver Update
    Root\ZFSin

You can run DbgView on the Target VM to see the kernel prints on that VM.

Run the compiled Target

  • Compile solution
  • Menu > Debug > Start Debugging (F5)

wait a while, for VS2017 to deploy the .sys file on Target and start it.

Target VM optionals.

If you find it frustrating to do development work when Windows Defender or
Windows Updates run, you can disable those in gpedit.msc

  • Computer Configuration > Administrative Templates >
    Windows Components >
    Windows Defender
    Windows Updates

Milestones

✅ Compile SPL sources

  • Godzillion warnings yet to be addressed

✅ Port SPL sources, atomics, mutex, kmem, condvars

  • C11 _Atomics in kmem not yet handled

✅ Compile ZFS sources, stubbing out code as needed

✅ Include kernel zlib library

✅ Load and Unload SPL and ZFS code

✅ Port kernel zfs_ioctl.c to accept ioctls from userland

✅ Compile userland libspl, libzpool, libzfs, …

✅ Include pthread wrapper library

  • Replaced with thin pthread.h file

✅ Include userland zlib library

✅ Compile cmd/zpool

✅ Port functions in libzpool, libzfs. Iterate disks, ioctl

✅ Test ioctl from zpool to talk to kernel

✅ Port kernel vdev_disk.c / vdev_file.c to issue IO

✅ Port over cmd/zfs

✅ Add ioctl calls to MOUNT and create Volume to attach

✅ Add ioctl calls to UNMOUNT and detach and delete Volume

✅ Port kernel zfs_vnops.c / zfs_vnops_windows.c

  • Many special cases missing, flags to create/read/etc

✅ Correct file information (dates, size, etc)

✅ Basic DOS usage

✅ Simple Notepad text edit, executables also work.

✅ Basic drag’n’drop in Explorer

✅ zfs send / recv, file and pipe.

✅ ZVOL support

✅ git clone ZFS repo on ZFS mounted fs

✅ Compile ZFS on top of ZFS

❎ Scrooge McDuck style swim in cash


Design issues that need addressing.

  • Windows does not handle EFI labels, for now they are parsed with
    libefi, and we send offset and size with the filename, that both
    libzfs and kernel will parse out and use. This works for a proof
    of concept.

Possibly a more proper solution would be to write a thin virtual
hard disk driver, which reads the EFI label and present just the
partitions.

  • vdev_disk.c spawns a thread to get around that IoCompletionRoutine
    is called in a different context, to sleep until signalled. Is there
    a better way to do async in Windows?

  • ThreadId should be checked, using PsGetCurrentThreadId() but
    it makes zio_taskq_member(taskq_member()) crash. Investigate.

  • Functions in posix.c need sustenance.

  • The Volume created for MOUNT has something wrong with it, we are
    unable to query it for mountpoint, currently has to string compare a
    list of all mounts. Possibly also related is that we can not call
    any of the functions to set mountpoint to change it. This needs to
    be researched.

  • Find a way to get system RAM in SPL, so we can size up the kmem as
    expected. Currently looks up the information in the Registry.
    kmem should also use Windows signals
    «\KernelObjects\LowMemoryCondition» to sense pressure.

Thinking on mount structure. Second design:

Add dataset property WinDriveLetter, which is ignored on Unix system.
So for a simple drive letter dataset:

zfs set driveletter=Z pool

The default creating of a new pool, AND, importing a UNIX pool, would
set the root dataset to

driveletter=?:

So it is assigned first-available drive letter. All lower datasets
will be mounted inside the drive letter. If pool’s WinDriveLetter is
not set, it will mount «/pool» as «C:/pool».


Installing a binary release

Latest binary files are available at GitHub releases

If you are running windows 10 with secure boot on and/or installing an older release you will need to enable unsigned drivers from an elevated CMD:

  • bcdedit.exe -set testsigning on
  • Then reboot. After restart it should have Test Mode bottom right corner of the screen.

After that either

  • Run OpenZFSOnWindows.exe installer to install
  • Would you like to install device software? should pop up, click install
    • If installing an unsigned release, click «Install anyway» in the «unknown developer» popup

Or if you do not want to run the Installer, run this command by hand from elevated CMD:

  • zfsinstaller.exe install .\ZFSin.inf
  • Would you like to install device software? should pop up, click install
    • If installing an unsigned release, click «Install anyway» in the «unknown developer» popup

Run zpool.exe status to confirm it can talk to the kernel

Failure would be:

Unable to open \\.\ZFS: No error.

Success would be:


Creating your first pool.

The basic syntax to creating a pool is as below. We use the pool name
«tank» here as with Open ZFS documentation. Feel free to pick your own
pool name.

# zpool create [options] tank disk
  - Create single disk pool

# zpool create [options] tank mirror disk1 disk2
  - Create mirrored pool ("raid1")

# zpool create [options] tank raidz disk1 disk2 disk3 .... diskn
  - Create raidz ("raid5") pool of multiple disks

The default options will «mostly» work in Windows, but for best compatibility
should use a case insensitive filesystem.

The recommended options string for Windows is currently:

zpool create -O casesensitivity=insensitive -O compression=lz4 \
     -O atime=off -o ashift=12 tank disk
  • Creating filebased pools would look like:
# fsutil file createnew C:\poolfile.bin 200000000
# zpool.exe create tank \\?\C:\poolfile.bin

Note that "\\?\C:\" needs to be escaped in bash shell, ie
"\\\\?\\C:\\".

        TEST                   ONLINE       0     0     0
        \??\C:\poolfile.bin  ONLINE       0     0     0
  • Creating a HDD pool

First, locate disk name

# wmic diskdrive list brief
VMware, VMware Virtual S SCSI Disk Device  \\.\PHYSICALDRIVE2  VMware, VMware Virtual S SCSI Disk Device  0           5362882560
# zpool create tank PHYSICALDRIVE2

Creating a ZVOL virtual hard disk

Creating a virtual hard disk (ZVOL) is done by passing «-V » to the «zfs create» command.

# zfs create -V 2g tank/hello

Which would create a disk of 2GB in size, called «tank/hello».
Confirm it was created with:

# wmic diskdrive list brief
Caption                           DeviceID            Model                            Partitions  Size
ZVOL tank/hello SCSI Disk Device  \\.\PHYSICALDRIVE2  ZVOL tank/hello SCSI DiskDevice  0           2105671680

Exporting the pool

If you have finished with ZFS, or want to eject the USB or HDD that the
pool resides on, it must first be exported. Similar to «ejecting» a
USB device before unplugging it.

Importing a pool

If a zpool has been created on a disk partition from a different system make
sure the partition label contains «zfs». Otherwise zpool import won’t
recognize the pool and will fail with «no pools available to import».

Uninstalling the driver

If you used the Installer, you can browse to «C:\Program Files (x86)\OpenZFS On Windows»
and run the «uninst000.exe» Uninstaller program.

You can also use «Add Remove Programs» from the Settings menu, and
click on «OpenZFS On Windows-debug version x.xx» and select Uninstall.

If you did not use the Installer, you can manually uninstall it:

zfsinstaller uninstall .\ZFSin.inf

To verify that the driver got uninstalled properly you can check «zpool.exe status».

When uninstalled with success, «zpool.exe status» should return:

Unable to open \\.\ZFS: No error.

If the driver is still there, it would be:

A reboot might be necessary to uninstall it completely.

Tuning

You can use the registry to tune various parameters.
Also, there is kstat to dynamically change parameters.

Nightly builds

There are nightly builds available at AppVeyor

  • These builds are currently not signed and therefore require test mode to be enabled.

There also are test builds available here. These are «hotfix» builds for allowing people to test specific fixes before they are ready for a release.

Операционная система Linux является достаточно гибкой системой. Это позволяет использовать ее как на настольных компьютерах, так и на серверах. Главное выбрать правильную файловую систему, которая будет отвечать именно вашим требованиям. В этой статье мы детально рассмотрим файловую систему ZFS.

Файловая система ZFS

Содержание

  1. Что являет собой файловая система ZFS?
  2. История развития файловой системы ZFS
  3. Структура файловой системы ZFS
  4. Возможности файловой системы ZFS
  5. Недостатки файловой системы ZFS
  6. Безопасность данных в ZFS
  7. ZFS и Mac OS
  8. Как открыть ZFS накопитель в Windows?
  9. Лучшие альтернативы файловой системе ZFS

Что являет собой файловая система ZFS?

Изначально перед разработчиками файловой системы ZFS стояла задача создать суперсовременную файловую систему, которая могла бы работать с огромными объемами данных. При этом не должна снижаться производительность, плюс файловая система ZFS должна была обладать всеми современными функциями.

Компания Sun Microsystems для своей операционной системы Solaris хотела создать новый тип файловой системы, которая опережала бы время. Поэтому в ней было реализовано достаточно большое количество новаторских решений, таких как структура размещения данных, поддержка пулов и многое другое.

Даже сама концепция файловой системы ZFS была новаторской – ZFS должна была содержать в себе менеджер логических томов, обеспечивать удобное управление томами и придерживаться принципов легковесных файловых систем. Ну и на додачу к всему этому ZFS должна была обеспечивать избыточность.

И вот, в 2005 году команда разработчиков под руководством Меттью Арена и Джефа Бонвика представила файловую систему, отвечающую всем этим требованиям.

ZFS получилась очень быстрой, технологичной и новаторской. Кроме того, она 128-битная, вместо привычных 64-бита. Таким образом разработчики сделали огромный акцент на ее актуальности в будущем.

Фактически ZFS смогла собрать воедино многие решения, которые используются в других файловых системах по отдельности. К примеру, файловая система так или иначе использует LVM (менеджер томов), Linux RAID (хоть и несколько модифицированный), некоторые функции XFS, снапшоты и многое другое. Если вы хотите узнать больше информации о Linux RAID – прочтите статью «RAID – что это такое и какой тип лучше использовать».

Технология LVM детально описана в статье «LVM – что это такое, преимущества и недостатки»

Нельзя не упомянуть, что файловая система ZFS использует технологию copy on write. Это означает, что во время перезаписи файла физически он не перезаписывается. Вместо этого выделяется новый блок и туда записывается новая копия. Затем, вместо удаления старых файлов обновляются метаданные, которые указывают на новый блок, а оригинальная информация будет удалена только в случае нехватки места на диске. Такое решение сильно увеличивает возможности восстановления данных, так как в случае повреждения информации вы всегда можете просмотреть предыдущую версию файлов.

Использование метода copy-on-write позволяет не использовать журналирование вовсе и иметь при этом возможность восстановления утерянных данных.

Все вышеописанные преимущества и огромный потенциал файловой системы ZFS стали причиной, почему многие обратили на нее внимание и до сих пор ее обсуждают.

История развития файловой системы ZFS

После релиза файловой системы ZFS ее исходный код был интегрирован в ядро операционной системы Solaris. В том же году начались порты для других операционных систем и уже к 2008 году ZFS была портирована для FreeBSD и начались работы по портированию ZFS для Linux. Однако, процесс портирования был усложнен переходом на CDDL (Common Development and Distribution License) лицензию. Она хоть и основана на принципах свободного распространения ПО, однако противоречит принципам лицензирования GNU/Linux. Это привело к тому, что порт доработали, однако в операционной системе Linux, ZFS можно использовать в сильно ограниченном режиме. Чтобы решить этот вопрос современные дистрибутивы Linux предлагают методы для установки ZFS. То есть, пользователь сначала устанавливает нужный дистрибутив Linux, а затем использует предложенный дистрибутивом способ, чтобы установить файловую систему ZFS.

Наиболее эффективными методами установки ZFS на Linux является использование модуля FUSE или установка отдельного модуля ядра ZFS on Linux.

Вскоре после этого компания Oracle приобрела Sun Microsystems вместе со всеми лицензиями и закрыла код ZFS. Соответственно, дальнейшая свободная разработка была невозможной. Это стало причиной перехода многих ключевых разработчиков в другие компании и создания проекта OpenZFS, в котором придерживаются концепции свободной разработки.

Однако лицензию так и не изменили, так как многие авторскими правами на ZFS обладает достаточно большое количество разработчиков, которые разошлись по других компаниях или разъехались по миру. Соответственно проще было оставить все как есть и использовать методы, предложенные дистрибутивами Linux, нежели добиваться разрешения каждого из разработчиков

На сегодняшний день существует 37 версий файловой системы ZFS, каждая из которых привносит новые улучшения.

Стоит также отметить, что файловая система ZFS активно развивается. Если учесть ее технический потенциал, и добавить к этому постоянное улучшение быстродействия и других функций – можно сделать вывод, что ZFS через несколько лет может стать системой №1 для серверных систем.

Структура файловой системы ZFS

Структура файловой системы ZFS оформлена в виде дерева Меркла, или Хэш-дерева. Для начала, стоит сказать, что дерево хешей используется в блокчейне криптовалют (к примеру, в Bitcoin или Ethereum). Фактически файловая система ZFS являет собой менеджер дисков и LVM в одной упаковке.

Структура файловой системы ZFS

То есть, на самом низком уровне несколько физических дисков объединяются в некую виртуальную группу – VDEV (Virtual Device). Таких групп может быть достаточно большое количество. Также на этом уровне обеспечивается избыточность. Чередование происходит внутри каждой группы дисков. Можно выбрать Mirror (аналог RAID 1) или RAID-Z (работает по принципу RAID-5 с несколькими модификациями). Последний тип делится на несколько уровней: RAID-Z1 – использует два диска для хранения данных и один данных четности, RAID-Z2 – использует два диска для хранения данных и два диска для хранения данных четности, и RAID-Z3 – использует два диска для данных пользователя и три диска для данных четности. Выбор типа RAID-Z осуществляется в зависимости от того, что больше нужно пользователю – надежность или производительность.

Затем, все VDEV (группы дисков) объединяются в общий пул. Фактически это LVM, который объединяет в себе несколько RAID массивов.

Поверх всей этой структуры находится сама файловая система с пользовательскими данными.

Структура файловой системы ZFS позволяет динамически добавлять новые группы дисков причем, каждая группа может иметь собственную конфигурацию. На программном уровне она воспринимается как отдельный VDEV независимо от конфигурации.

Возможности файловой системы ZFS

В этой части статьи мы рассмотрим самое интересное – возможности файловой системы ZFS и разберемся в чем ее технологичность и почему же люди так ее любят.

В ZFS разработчики реализовали очень большое количество полезных функций, среди которых наиболее заметны следующие:

1) Сильно увеличен максимальный размер записываемого файла – теперь он составляет 16 эксбибайт;

2) Максимальный размер тома достигает 256 зебибайт (ZiB), количество таких томов может быть любым;

3) ZFS является 128-битной файловой системой – на практике это означает, что она предоставляет емкость 16 миллионов миллионов 32 или 64-битных систем. Это означает, что заполнить такой 128-битный пул практически невозможно. Один из создателей ZFS Джеф Бонвик даже пошутил на этот счет. Он сказал, что для обеспечения работоспособности пула таких размеров нужно больше энергии чем для того, чтобы вскипятить океан;

4) Снапшоты используются для слежения за состоянием системы – в снимке записано оригинальное состояние файловой системы и состояние на данный момент. Если файл удаляется из системы – он также удаляется и из снимка. При записи новой информации – выделяются новые блоки. Главная особенность заключается в том, что никакого дополнительного пространства для снимков не нужно;

5) Проверка целостности данных и автоматическое их исправление – каждый раз, когда записываются новые данные – файловая система создает для них чек-сумму (контрольную сумму). При чтении данных происходит сравнивание чек-суммы. При наличии несоответствий файловая система отмечает ошибку и автоматически пытается ее исправить;

6) Минимум две копии контрольных сумм для метаданных – обычно они находятся в разных местах для обеспечения большей безопасности;

7) Высокая скорость сжатия на лету – тут многое зависит от алгоритма. К примеру, при использовании алгоритма LZ4, ZFS без проблем может показать скорость записи 800 Мб/с на одно ядро, а скорость чтения будет не ниже 4.5 Гб/с.

8) Атомарность – файловая система ZFS является атомарной за счет применения дерева Меркла. Целостность блоков гарантируется транзакционностью файловой системы. Такое решение позволяет не использовать WAL-лог. Минусом такого решения является необходимость знания большого количества команд и утилит;

9) Поддержка пулов – диски можно объединять в группы VDEV, которые в свою очередь можно объединять в пулы;

10) Высочайшая скорость работы – ZFS без проблем может работать с сотней пулов (не дисков, а именно пулов) без потери производительности;

11) Возможность создать легковесную файловую систему – в ZFS манипулирование файловой системой происходит легче нежели в других файловых системах. Все манипуляции больше похожи на работу с каталогами, нежели с файловой системой;

12) Благодаря использованию метода копирования при записи – вы никогда не потеряете файл во время его записи на диск;

13) Автоматически расширяемый канал передачи данных – при подключении дополнительных дисков нужно увеличить пропускную способность, иначе производительность будет снижаться. В ZFS это учли. Поэтому при подключении новых VDEV файловая система автоматически настроит диски и расширит канал передачи данных;

14) Возможность планировать работу с данными – эта возможность становится полезной, к примеру, на серверах. То есть, когда возникает «простой процессора» вы можете использовать эти ресурсы для работы с данными. Таким образом можно более эффективно использовать аппаратные ресурсы вашей машины.

Как видите ZFS это достаточно функциональная файловая система и это мы еще не перечислили мелкие нововведения, которые повышают удобство и функциональность системы. Но самое главное – при помощи файловой системы ZFS вы можете создать огромное, быстрое и расширяемое локальное хранилище.

Недостатки файловой системы ZFS

В предыдущем пункте этой статьи мы рассмотрели главные преимущества файловой системы ZFS. Теперь пришла пора поговорить о ее недостатках, коих тоже хватает:

  1. Не слишком быстрая работа на жестких дисках – из-за своей структуры ZFS требует быстрого случайного доступа, коим не могут похвастаться жесткие диски. Соответственно, при увеличении количества жестких дисков производительность может снижаться. Известны случаи, когда на домашнем компьютере с не слишком быстрым жестким диском производительность настолько падала, что пользоваться компьютером было невыносимо. Соответственно весь потенциал вы сможете получить только на SSD накопителях;
  2. Необходимость в знании большого количества команд и утилит – чтобы получить максимальный эффект вы должны уметь очень хорошо «общаться» с этой файловой системой;
  3. Невозможность изменить структуру дисков в VDEV – вы можете только один раз настроить каждую группу дисков VDEV (количество дисков, избыточность и т.д.). После применения конфигурации внести изменения не получится. В настоящее время уже разрабатывается патч, который сможет исправить эту проблему;
  4. Необходимость в большом количестве оперативной памяти – несмотря на то, что в минимальных требованиях указан минимальный объем ОЗУ в 4ГБ, на практике лучше всего использовать компьютер не ниже 8 ГБ и больше.
  5. Большой уровень фрагментации данных – возникает из-за особенностей работы файловой системы. На сегодняшний день отсутствует нормальный дефрагментатор;
  6. Нельзя уменьшить количество VDEV – исправление этой проблемы планируется в ближайшем будущем;
  7. Отсутствие распределения квот между пользователями – на сегодняшний день этот вопрос решают путем создания файловой системы разных размеров для каждого пользователя;
  8. Нельзя смешивать VDEV и ZPOOL – то есть вы не сможете создать аналог RAID 10 или RAID 01, так как избыточность можно организовать только на нижнем уровне, внутри каждой группы дисков VDEV;
  9. Возможность сильного падения производительности при удалении большого количества данных;
  10. Повышенная нагрузка на процессор при использовании RAID Z – возникает из-за необходимости расчёта данных четности. Такая же ситуация наблюдается и при использовании программного массива RAID 5. Однако RAID 5 обычно используется в хранилищах меньшего размера. Хранилища ZFS обычно очень большие, соответственно железо должно быть очень мощное;

Однако, не смотря на все недостатки, на сегодняшний день не существует файловой системы, которая могла бы столь эффективно работать с большими хранилищами. А учитывая активное развитие ZFS – становится ясной причина ее популярности.

Безопасность данных в ZFS

В файловой системе ZFS большое количество внимания уделили не только работе с большими объемами данных, но и их безопасности. Согласитесь, было бы не очень приятно, если бы данные пула размером в сто дисков вдруг исчезли из-за поломки одного накопителя.

Одним из методов защиты данных стало внедрение RAID Z. Как уже упоминалось выше, эта технология построена на массиве RAID 5. В случае поломки любого накопителя RAID Z позволяет просто вытянуть сломанный жесткий диск и вставить новый. Главное, чтобы он был такого же размера. Все остальное файловая система сделает сама. Пользователь заметит только небольшое снижение производительности, вызванное пересчетом алгоритма и дальнейшим восстановлением данных на новый диск.

Файловая система ZFS автоматически анализирует свое состояние путем сравнения снапшотов. В случае возникновения неполадок ZFS исправит ошибку, а если это будет невозможным – вы увидите сообщение, но все равно сможете восстановить данные. Все дело в методе «copy on write» на котором построена вся ZFS. При перезаписи новые данные записываются в новый блок, не изменяя при этом старые данные.

Эта же технология предотвращает потерю данных вследствие отключения питания во время изменения файла.

SHA-256 — еще одна технология, которая защищает данные от потери. Во время записи файловая система автоматически генерирует контрольную сумму файла и при копировании рассчитывает ее снова. Если при сравнен6ии возникнут различия – ZFS сразу же распознает ошибки.

Применение вышеперечисленных технологий заметно снижает вероятность потери или повреждения данных. Это еще одна причина, почему многие большие проекты обратили свое внимание на файловую систему ZFS.

ZFS и Mac OS

В 2009 году компания Apple объявила о портировании файловой системы ZFS для Mac OS. К сожалению, процесс портирования так и не был завершен и к презентации новой версии Mac OS все упоминания о ZFS были удалены. Причины отказа от ZFS не раскрываются.

Как открыть ZFS накопитель в Windows?

Поскольку на сегодняшний день Windows является наиболее распространённой системой в мире, рано или поздно возникает необходимость открыть ZFS накопитель в Windows. Причин может быть много – начиная от банального переноса файлов и заканчивая более специализированными задачами.

Так или иначе операционная система Windows не поддерживает ZFS из коробки, поскольку нативными файловыми системами Windows являются NTFS и FAT (16, 32).

Но что делать, если нужно открыть ZFS накопитель в Windows?

Существует несколько способов как это сделать.

Первый способ заключается в использовании программы RS Partition Recovery. Программа проста в использовании и позволяет сразу же работать с данными на ZFS диске. Вам даже перезагружать компьютер не нужно.

Логотип RS Partition Reсovery

Но самое главное – вы можете восстановить утерянные данные в случае их пропажи, повреждения файловой структуры диска или его форматирования. Функция восстановления заметно выделяет RS Partition Recovery на фоне конкурентов, так как нередко Windows некорректно работает с файловой системой ZFS. Это может привести к потере важных данных.

Также стоит отметить, RS Partition Recovery поддерживает ВСЕ современные файловые системы, включая Btrfs, Ext2,3,4, XFS, HFS, UFS и многие другие.

Все вышеперечисленные возможности программы RS Partition Recovery делают ее программой «must have» для каждого пользователя.

Второй способ заключается в установке особого драйвера под названием ZFSin.

Этот драйвер добавляет поддержку ZFS на нативном уровне. Но, на деле все не так радужно, как это выглядит на первый взгляд.

Дело в том, что достаточно часто драйвер ZFSin конфликтует с драйверами операционной системы. Но самое печальное то, что почти всегда это приводит к синему экрану смерти Windows или выходу операционной системы из строя.

На додачу, если во время конфликта драйверов ваша ZFS-флэшка будет подключена к системе – очень высокая вероятность повреждения данных или логической структуры накопителя.

Таким образом, вместо поддержки ZFS на Windows вы с большой долей вероятности можете получить нерабочую операционную систему. Это и есть причина, почему первый способ более предпочтительный, нежели второй.

Лучшие альтернативы файловой системе ZFS

Если проанализировав все преимущества и недостатки вы не уверены, что хотите использовать ZFS, или вам не хочется изучать огромное количество команд – вы можете рассмотреть лучшие альтернативы этой файловой системе.

Если говорить об альтернативах для домашнего использования – лучшей альтернативой будет использование Ext4. Да, она медленнее чем ZFS и не обладает многими современными функциями.

Но, в то же время она надежна, проста в обслуживании и обеспечивает производимость достаточную для большинства пользователей.

Linux ноутбук

Если речь идет об использовании на сервере – наилучшей альтернативой смело можно назвать файловую систему Btrfs. Также, как и ZFS она активно развивается, но в то же время она заметно проще в обслуживании и обеспечивает достаточную производительность. Из минусов Btrfs можно назвать еще не слишком зрелую экосистему и сравнительно меньшие объемы обрабатываемых данных (по сравнению с ZFS).

Выбор файловой системы полностью зависит от нужд и умений пользователя. Мы же только показали сильные и слабые стороны файловой системы ZFS и надеемся, что помогли вам сделать правильный выбор.

Часто задаваемые вопросы

ZFS умеет быстро работать с очень большими хранилищами, обладает сквозной проверкой целостности файловой системы и обеспечивает избыточность на программном уровне. Это современная файловая система, в которой много внимания уделено безопасности и быстродействию.

Для того, чтобы использовать ZFS на Linux используйте модули ядра FUSE или ZFS on Linux. В противном случае функционал ZFS будет сильно урезан из-за лицензионных ограничений.

Воспользуйтесь программой RS Partition Recovery. Она очень удобна и позволяет восстановить утерянные данные практически в несколько кликов независимо от используемой файловой системы.

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

Чтобы открыть ZFS-флэшку в Windows лучше всего использовать программу RS Partition Recovery, так как использование разного рода драйверов для ZFS может стать причиной выхода Windows из строя. RS Partition Recovery обеспечивает высокую скорость работы с накопителем и удобна в использовании.

Introduction

In today’s digital age, data storage and management have become increasingly complex. With the rise of cloud computing and virtualization, users are looking for flexible and scalable storage solutions. ZFS (Zettabyte File System) is a popular choice among users due to its advanced features, such as data integrity, snapshots, and replication. However, accessing a ZFS volume in Windows can be a daunting task, especially for those who are new to ZFS. In this article, we will explore the process of accessing a ZFS volume in Windows, including the necessary software and configuration requirements.

Understanding ZFS

Before we dive into the process of accessing a ZFS volume in Windows, it’s essential to understand the basics of ZFS. ZFS is a file system that was originally developed by Sun Microsystems and is now maintained by the OpenZFS project. It’s designed to provide a high-performance, scalable, and reliable storage solution. ZFS offers advanced features such as:

  • Data integrity: ZFS uses checksums to ensure data integrity and detect errors.
  • Snapshots: ZFS allows users to create snapshots of their data, which can be used for backup and recovery purposes.
  • Replication: ZFS enables users to replicate their data across multiple devices, ensuring high availability and redundancy.

Hardware Requirements

To access a ZFS volume in Windows, you’ll need the following hardware:

  • ZFS enclosure: You’ll need a ZFS enclosure that supports USB 3.0 or higher. This enclosure should have at least 8 bays to accommodate multiple hard drives or solid-state drives (SSDs).
  • Hard drives or SSDs: You’ll need multiple hard drives or SSDs to create a ZFS volume. The number of drives required will depend on the size of the volume you want to create.
  • Windows machine: You’ll need a Windows machine with a compatible operating system (Windows 7 or later).

Software Requirements

To access a ZFS volume in Windows, you’ll need the following software:

  • ZFS on Linux: You’ll need to install ZFS on Linux on your Windows machine. This will provide the necessary drivers and utilities to access the ZFS volume.
  • Windows Subsystem for Linux (WSL): You’ll need to enable WSL on your Windows machine. This will allow you to run a Linux environment within Windows.
  • ZFS tools: You’ll need to install the ZFS tools on your Windows machine. These tools will provide the necessary utilities to manage and access the ZFS volume.

Configuring ZFS on Linux

To configure ZFS on Linux, follow these steps:

  1. Install ZFS on Linux: Download and install the ZFS on Linux package on your Windows machine.
  2. Enable WSL: Enable WSL on your Windows machine by following the instructions provided by Microsoft.
  3. Create a Linux environment: Create a new Linux environment within WSL by running the command wsl --install.
  4. Install ZFS tools: Install the ZFS tools on your Linux environment by running the command sudo apt-get install zfsutils-linux.

Configuring ZFS on Windows

To configure ZFS on Windows, follow these steps:

  1. Install ZFS on Linux: Install ZFS on Linux on your Windows machine.
  2. Create a ZFS volume: Create a new ZFS volume by running the command sudo zpool create -f mypool /dev/sdb1 /dev/sdc1 /dev/sdd1.
  3. Format the ZFS volume: Format the ZFS volume by running the command sudo zfs set mountpoint=/mnt mypool.
  4. Mount the ZFS volume: Mount the ZFS volume by running the command sudo mount /dev/mapper/my-pool /mnt.

Accessing the ZFS Volume in Windows

To access the ZFS volume in Windows, follow these steps:

  1. Open File Explorer: Open File Explorer on your Windows machine.
  2. Navigate to the ZFS volume: Navigate to the ZFS volume by clicking on the This PC icon and then clicking on the ZFS volume.
  3. Access the ZFS volume: Access the ZFS volume by clicking on the ZFS volume and then clicking on the Open button.

Conclusion

Accessing a ZFS volume in Windows can be a complex process, but with the right software and configuration requirements, it’s achievable. By following the steps outlined in this article, you should be able to access your ZFS volume in Windows and take advantage of its advanced features. Remember to always follow best practices for data integrity and security when working with ZFS.

Troubleshooting Tips

If you encounter any issues while accessing your ZFS volume in Windows, try the following troubleshooting tips:

  • Check the ZFS configuration: Check the ZFS configuration to ensure that it’s correct and that the ZFS volume is properly mounted.
  • Check the Linux environment: Check the Linux environment to ensure that it’s properly configured and that the ZFS tools are installed.
  • Check the Windows Subsystem for Linux (WSL): Check the WSL to ensure that it’s properly configured and that the Linux environment is running correctly.

Additional Resources

For more information on accessing a ZFS volume in Windows, refer to the following resources:

  • ZFS on Linux documentation: The ZFS on Linux documentation provides detailed information on configuring and managing ZFS on Linux.
  • Windows Subsystem for Linux (WSL) documentation: The WSL documentation provides detailed information on configuring and managing WSL on Windows.
  • ZFS tools documentation: The ZFS tools documentation provides detailed information on using the ZFS tools to manage and access ZFS volumes.
    Access a ZFS Volume in Windows: A Q&A Guide
    =====================================================

Introduction

In our previous article, we explored the process of accessing a ZFS volume in Windows. However, we understand that some users may still have questions and concerns about accessing a ZFS volume in Windows. In this article, we will address some of the most frequently asked questions about accessing a ZFS volume in Windows.

Q: What is ZFS and why do I need it?

A: ZFS (Zettabyte File System) is a popular file system that provides advanced features such as data integrity, snapshots, and replication. You may need ZFS if you want to create a high-performance, scalable, and reliable storage solution.

Q: What are the system requirements for accessing a ZFS volume in Windows?

A: To access a ZFS volume in Windows, you’ll need a Windows machine with a compatible operating system (Windows 7 or later), a ZFS enclosure, multiple hard drives or SSDs, and the necessary software (ZFS on Linux, Windows Subsystem for Linux (WSL), and ZFS tools).

Q: How do I install ZFS on Linux on my Windows machine?

A: To install ZFS on Linux on your Windows machine, you’ll need to download and install the ZFS on Linux package, enable WSL, create a Linux environment, and install the ZFS tools.

Q: How do I create a ZFS volume in Windows?

A: To create a ZFS volume in Windows, you’ll need to create a new ZFS volume by running the command sudo zpool create -f mypool /dev/sdb1 /dev/sdc1 /dev/sdd1, format the ZFS volume by running the command sudo zfs set mountpoint=/mnt mypool, and mount the ZFS volume by running the command sudo mount /dev/mapper/my-pool /mnt.

Q: How do I access the ZFS volume in Windows?

A: To access the ZFS volume in Windows, you’ll need to open File Explorer, navigate to the ZFS volume, and click on the Open button.

Q: What are some common issues that I may encounter while accessing a ZFS volume in Windows?

A: Some common issues that you may encounter while accessing a ZFS volume in Windows include:

  • ZFS configuration errors: Check the ZFS configuration to ensure that it’s correct and that the ZFS volume is properly mounted.
  • Linux environment issues: Check the Linux environment to ensure that it’s properly configured and that the ZFS tools are installed.
  • Windows Subsystem for Linux (WSL) issues: Check the WSL to ensure that it’s properly configured and that the Linux environment is running correctly.

Q: How do I troubleshoot issues with accessing a ZFS volume in Windows?

A: To troubleshoot issues with accessing a ZFS volume in Windows, you can try the following:

  • Check the ZFS configuration: Check the ZFS configuration to ensure that it’s correct and that the ZFS volume is properly mounted.
  • Check the Linux environment: Check the Linux environment to ensure that it’s properly configured and that the ZFS tools are installed.
  • Check the Windows Subsystem for Linux (WSL): Check the WSL to ensure that it’s properly configured and that the Linux environment is running correctly.

Q: What are some additional resources that I can use to learn more about accessing a ZFS volume in Windows?

A: Some additional resources that you can use to learn more about accessing a ZFS volume in Windows include:

  • ZFS on Linux documentation: The ZFS on Linux documentation provides detailed information on configuring and managing ZFS on Linux.
  • Windows Subsystem for Linux (WSL) documentation: The WSL documentation provides detailed information on configuring and managing WSL on Windows.
  • ZFS tools documentation: The ZFS tools documentation provides detailed information on using the ZFS tools to manage and access ZFS volumes.

Conclusion

Accessing a ZFS volume in Windows can be a complex process, but with the right software and configuration requirements, it’s achievable. By following the steps outlined in this article and addressing some of the most frequently asked questions, you should be able to access your ZFS volume in Windows and take advantage of its advanced features. Remember to always follow best practices for data integrity and security when working with ZFS.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Не удается сохранить знак в кодировке windows 1251
  • Windows 7 ваше подключение не защищено
  • Windows movie maker вики
  • Вызов загрузочного меню windows 7
  • Windows 2000 programming from the ground up