Фото Кенни Луи.
Что такое ZFS и почему я должен использовать его?
Файловая система Z - это бесплатный менеджер логических томов с открытым исходным кодом, созданный Sun Microsystems для использования в операционной системе Solaris. Некоторые из наиболее привлекательных функций:
Бесконечная масштабируемость
Ну, это не технически бесконечная, но это 128-битная файловая система, способная управлять данными zettabytes (один миллиард терабайт). Независимо от того, сколько пространства на жестком диске у вас есть, ZFS будет подходящим для управления им.
Максимальная целостность
Все, что вы делаете внутри ZFS, использует контрольную сумму для обеспечения целостности файла. Вы можете быть уверены, что ваши файлы и их избыточные копии не будут сталкиваться с тихим повреждением данных. Кроме того, в то время как ZFS занят спокойно проверять ваши данные на предмет целостности, он будет делать автоматический ремонт в любое время.
Объединение накопителей
Создатели ZFS хотят, чтобы вы думали об этом как о том, как ваш компьютер использует ОЗУ. Когда вам нужно больше памяти на вашем компьютере, вы кладете еще одну палочку, и все готово. Аналогично ZFS, когда вам нужно больше места на жестком диске, вы кладете другой жесткий диск, и все готово. Не нужно тратить время на разбиение на разделы, форматирование, инициализацию или делать что-либо еще на ваших дисках - когда вам нужен пул большего хранилища, просто добавьте диски.
RAID
ZFS поддерживает множество уровней RAID, обеспечивая при этом производительность, сопоставимую с производительностью аппаратных RAID-контроллеров. Это позволяет сэкономить деньги, упростить настройку и получить доступ к превосходным уровням RAID, которые улучшила ZFS.
Установка ZFS
Поскольку мы только освещаем основы этого руководства, мы не собираемся устанавливать ZFS в качестве корневой файловой системы. В этом разделе предполагается, что вы используете ext4 или какую-либо другую файловую систему и хотите использовать ZFS для некоторых дополнительных жестких дисков. Вот команды для установки ZFS в некоторых из самых популярных дистрибутивов Linux.
Solaris и FreeBSD должны уже поставляться с установленной и готовой к использованию ZFS.
Ubuntu:
$ sudo add-apt-repository ppa:zfs-native/stable $ sudo apt-get update $ sudo apt-get install ubuntu-zfs
Debian:
$ su - # wget https://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_2%7Ewheezy_all.deb # dpkg -i zfsonlinux_2~wheezy_all.deb # apt-get update # apt-get install debian-zfs
RHEL / CentOS:
$ sudo yum localinstall --nogpgcheck https://archive.zfsonlinux.org/epel/zfs-release-1-3.el6.noarch.rpm $ sudo yum install zfs
Если у вас есть другой дистрибутив, ознакомьтесь с zfsonlinux.org и нажмите на свой дистрибутив в списке «Пакеты» для получения инструкций по установке ZFS.
По мере продолжения этого руководства мы будем использовать Ubuntu, потому что это, по-видимому, выбор # 1 для Linux-разработчиков. Вы все равно должны следовать, несмотря ни на что, поскольку команды ZFS не будут меняться в разных дистрибутивах.
Установка занимает довольно много времени, но как только она закончена, запустите
$ sudo zfs list
чтобы убедиться, что он установлен правильно. Вы должны получить такой вывод:
Настройка ZFS
Предположим, мы добавили еще шесть жестких дисков в наш компьютер.
$ sudo fdisk -l | grep Error
покажет нам шесть жестких дисков, которые мы только что установили. В настоящее время они недоступны, поскольку они не содержат какой-либо таблицы разделов.
$ sudo zpool create -f geek1 /dev/sdb /dev/sdc /dev/sdd
zpool create
это команда, используемая для создания нового пула хранения,
-f
переопределяет любые возникающие ошибки (например, если на диске (дисках) уже есть информация о них),
geek1
имя пула хранения и
/dev/sdb /dev/sdc /dev/sdd
это жесткие диски, которые мы вкладываем в пул.
После того, как вы создали свой пул, вы сможете увидеть его с помощью
df
команды или
sudo zfs list
:
Если вы хотите посмотреть, какие три диска вы выбрали для своего пула, вы можете запустить
sudo zpool status
:
До сих пор мы создали динамический пул 9 бит (фактически, RAID 0). Если вы не знакомы с тем, что это значит, представьте, что мы создали файл размером 3 КБ на / geek1. 1 КБ автоматически перейдет на sdb, 1 KB на sdc и 1 KB на sdd. Затем, когда мы переходим к чтению файла 3 КБ, каждый жесткий диск будет представлять нам 1 КБ, объединяя скорость трех дисков. Это позволяет быстро записывать и считывать данные, но также означает, что у нас есть одна точка отказа. Если сбой только одного жесткого диска, мы потеряем наш файл размером 3 КБ.
Предполагая, что защита ваших данных важнее, чем быстрый доступ к ним, давайте взглянем на другие популярные настройки. Во-первых, мы удалим zpool, который мы создали, чтобы мы могли использовать эти диски в более избыточной настройке:
$ sudo zpool destroy geek1
Бам, наш zpool ушел. На этот раз, давайте использовать наши три диска для создания RAID-Z пула. RAID-Z - это, в основном, улучшенная версия RAID 5, поскольку она позволяет избежать «записи дыры» с помощью копирования на запись. Для RAID-Z требуется как минимум три жестких диска, и это своего рода компромисс между RAID 0 и RAID 1. В пуле RAID-Z вы по-прежнему получаете скорость полосового уровня, но также должны иметь распределенную четность. Если один диск в вашем пуле умирает, просто замените этот диск, и ZFS автоматически перестроит данные на основе информации о четности с других дисков. Чтобы потерять всю информацию в вашем пуле хранения, два диска должны были бы умереть. Чтобы сделать вещи еще более избыточными, вы можете использовать RAID 6 (RAID-Z2 в случае ZFS) и иметь двойную четность.
Для этого мы можем использовать тот же
zpool create
как и раньше, но укажите
raidz
после имени пула:
$ sudo zpool create -f geek1 raidz /dev/sdb /dev/sdc /dev/sdd
df -h
показывает, что наш пул из 9 ТБ теперь сокращен до 6 ТБ, поскольку 3 ТБ используются для хранения информации о паритете. С
zpool status
мы видим, что наш пул в основном такой же, как и раньше, но теперь использует RAID-Z.
Чтобы показать, как легко добавлять больше дисков в наш пул хранения, добавим еще три диска (еще 9 ТБ) в наш пул хранения geek1 в качестве другой конфигурации RAID-Z:
$ sudo zpool add -f geek1 raidz /dev/sde /dev/sdf /dev/sdg
В итоге мы получаем:
Сага продолжается …
Мы едва увидели поверхность ZFS и ее возможности, но, используя то, что вы узнали в этой статье, вы должны теперь создать резервные пулы хранения ваших данных. Вернитесь к нам для будущих статей о ZFS, см. Страницы руководства и найдите вокруг бесконечные нишевые руководства и видео Youtube, охватывающие функции ZFS.