Как установить и настроить ZFS в Ubuntu – CloudSavvy IT
Файловая система ZFS обеспечивает огромные емкости, зеркалирование RAID и механизмы защиты от коррупции прямо из коробки. Узнайте, как установить Ubuntu с ZFS и как создать зеркальный пул.
Что такое ZFS?
ZFS – это продвинутая файловая система, созданная Sun Microsystems для использования с их Операционная система Solaris. После приобретения Oracle компании Sun в 2009 году ZFS теперь принадлежит Oracle Corporation.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Однако, как типичный акт альтруизма, начиная с 2005 года, Sun выпустила версию ZFS с открытым исходным кодом. Неизбежно, это было перенесено на Linux, где оно получило более широкое распространение. Версия ZFS с открытым исходным кодом – openZFS – управляется и поддерживается OpenZFS проект.
ZFS – это отказоустойчивая файловая система большой емкости. ZFS изначально означало файловую систему Zettabyte. Архитектура ZFS основана на 128 битах, а не на более распространенных 64 битах другой файловой системы. Возможность работать с более крупными числовыми значениями – один из факторов, благодаря которым ZFS способна обрабатывать зеттабайты хранилища. Чтобы дать вам представление о том, что это значит, зеттабайт – это миллиард терабайт.
В настоящее время ZFS поддерживает хранение до 256 файлов. зебибиты. Зебибайт (270 байт) больше зеттабайта (1021 байт), но не на порядок. ZFS – это гораздо больше, чем просто емкость – как бы ошеломляюще она ни была. ZFS функционирует как собственный менеджер томов и RAID-контроллер. Он имеет встроенные функции, такие как истинное копирование при записи, которые защищают ваши данные от повреждения. Он изначально сочетает в себе функции, обеспечивающие объединение, клонирование и копирование файловых систем, а также функциональность, подобную RAID.
Ubuntu уже несколько лет предлагает ZFS, но всегда с предупреждениями и оговорками. В Ubuntu 20.10 предупреждения были удалены. Canonical официально поддерживает ZFS, но только при полной настройке диска. Чтобы получить эту поддержку, вам необходимо установить ZFS при установке Ubuntu. Варианты ZFS по-прежнему спрятаны, но они есть и больше не для бесстрашных или безрассудных.
С выходом Ubuntu 21.10 в октябре 2021 года самое время посмотреть, как развивается предложение ZFS в Ubuntu.
Поиск параметров ZFS во время установки
Во время установки Ubuntu экран «Тип установки» позволяет вам стереть диск, на который вы устанавливаете Ubuntu, или сделать что-нибудь еще. Нажмите кнопку «Дополнительные функции».
Откроется диалоговое окно «Дополнительные функции».
Установите переключатель «Стереть диск и использовать ZFS» и нажмите кнопку «ОК».
На экране «Тип установки» отобразится «Выбран ZFS», чтобы показать, что вы выбрали использование ZFS.
Нажмите кнопку «Продолжить» и завершите установку как обычно.
Если на вашем компьютере установлено несколько жестких дисков, вы сможете выбрать, как они будут использоваться ZFS. Ubuntu предложит предлагаемую конфигурацию, но вы можете настроить ее по своему усмотрению.
Но что, если вы добавите несколько жестких дисков после установки Ubuntu? Как настроить ZFS для использования нового хранилища? Вот что мы рассмотрим дальше.
Мы установили Ubuntu с ZFS на единственный жесткий диск тестовой машины, которую мы использовали для исследования этой статьи. Мы добавили еще два жестких диска, что в сумме дало компьютеру три жестких диска. На одном жестком диске была установлена Ubuntu, а два новых диска были пустыми, неформатированными и отключенными.
Первое, что нам нужно сделать, это определить, как Ubuntu относится к новым жестким дискам. Команда lsblk выводит список всех блочных устройств, установленных на вашем компьютере. Мы можем указать, какие столбцы вывода мы хотим видеть в результатах.
lsblk -o имя, размер, fstype, тип, точка монтирования
За параметром -o (вывод) следуют столбцы, которые мы хотим видеть. Мы выбрали:
- name: имя, которое Ubuntu использует для обозначения жесткого диска.
- размер: размер жесткого диска. Если на жестком диске более одного раздела, все они перечислены, и отображается размер каждого раздела.
- fstype: файловая система жесткого диска или раздела.
- Тип: указывает ли строка на диск, раздел, привод CD-ROM или псевдоустройство с обратной связью.
- точка монтирования: точка монтирования файловой системы на жестком диске или разделе.
Есть несколько петлевых устройств squashfs, пронумерованных от loop0 доloop6. Каждый раз, когда вы устанавливаете приложение snap, создается одно из этих псевдоустройств. Это часть инкапсуляции и песочницы, которая оборачивается вокруг каждого приложения Snap.
Первый жесткий диск указан как / dev / sda. Это диск емкостью 32 ГБ с пятью разделами, перечисленными как / dev / sda1 – / dev / sda5. Они по-разному отформатированы. Это диск, который был в компьютере, когда мы устанавливали Ubuntu.
Наши два новых жестких диска перечислены как / dev / sdb и / dev / sdc. Это тоже диски на 32 ГБ, но они не отформатированы и не смонтированы.
Пулы, RAID 0, RAID 1
Чтобы использовать новые жесткие заклепки, мы добавляем их в бассейн. Вы можете добавить в пул столько дисков, сколько захотите. Есть два способа сделать это. Вы можете настроить пул так, чтобы вы могли использовать все дисковое пространство каждого жесткого диска в Конфигурация RAID 0или вы можете настроить их так, чтобы пул предлагал только объем дискового пространства наименьшего жесткого диска в пуле в конфигурации RAID 1.
Преимущество RAID 0 – это пространство. Но предпочтительной – и очень рекомендуемой – конфигурацией является RAID 1. RAID 1 зеркалирует данные на всех дисках в пуле. Это означает, что у вас может произойти сбой жесткого диска, файловая система и ваши данные останутся в безопасности, а ваш компьютер будет работать. Вы можете заменить поврежденный диск и добавить новый диск в свой пул.
Напротив, с RAID 0 сбой одного жесткого диска делает вашу систему неработоспособной до тех пор, пока вы не замените поврежденный диск и не выполните восстановление из резервных копий.
Чем больше дисков у вас в пуле RAID 1, тем он надежнее. Минимум, который вам понадобится для RAID 1, – это два диска. Отказ одного из дисков будет неудобством, но не катастрофой. Но, конечно, серьезной проблемой был бы отказ обоих жестких дисков одновременно. Таким образом, ответ будет заключаться в объединении как можно большего количества жестких дисков.
Но, конечно, на практике существует ограничение на количество дисков, которое вы хотите – или можете себе позволить – выделить для одного пула. Если у вас есть восемь запасных жестких дисков, установка двух четырехдисковых пулов RAID 1, вероятно, будет лучшим использованием оборудования, чем один восьмидисковый пул. И помните, что в пуле RAID 1 может храниться только самый маленький жесткий диск в пуле, поэтому всегда старайтесь использовать диски одинакового размера в одном пуле.
Создание пула RAID 1
Мы определили наши новые жесткие диски как / dev / sdb и / dev / sdc. Чтобы создать пул ZFS RAID 1, мы используем эту команду:
sudo zpool создать облака avvyit зеркало / dev / sdb / dev / sdc
Компоненты команды:
- sudo: мы меняем конфигурацию системы, поэтому нам нужно использовать sudo для получения привилегий root.
- zpool: это команда управления пулом ZFS.
- create: это действие, которое мы хотим, чтобы zpool выполнял за нас.
- cloudsavvyit: Это имя пула, который мы хотим создать.
- mirror: мы хотим, чтобы наши данные отображались на всех дисках, что дает нам пул RAID 1. Отсутствие параметра «зеркало» создает пул RAID 0.
- / dev / sdb: первый из наших новых жестких дисков.
- / dev / sdc: второй из наших новых жестких дисков.
Замените «cloudsavvyit» именем, которое вы хотите назвать своим пулом, и замените / dev / sdb и / dev / sdc на идентификаторы ваших новых жестких дисков.
Создание бассейна немного противоречит климату. Если все пойдет хорошо, вы бесцеремонно вернетесь в командную строку. Мы можем использовать действие status с командой zpool, чтобы увидеть статус нашего нового пула.
sudo zpool статусные облака
Наш новый пул создан, он в сети, два наших новых диска находятся в пуле, и ошибок нет. Все выглядит великолепно. Но где же бассейн? Посмотрим, покажет ли lsblk нам, где он был смонтирован.
lsblk -o имя, размер, fstype, тип, точка монтирования
Мы видим, что наши новые жесткие диски / dev / sdb и / dev / sdc были разбиты на два раздела каждый, но для них не указана точка монтирования. Пулы не монтируются, как обычные жесткие диски. Например, в файле / etc / fstab для пулов ZFS нет записи. По умолчанию точка монтирования создается в корневом каталоге. Он имеет то же название, что и бассейн.
ls /
Если вы хотите создать точку монтирования в другом месте, используйте параметр -m (точка монтирования) при создании пула и укажите путь к месту, где вы хотите создать точку монтирования. Вы также можете дать точке монтирования другое имя.
sudo zpool create -m / путь / к / имя-точки-монтирования облака avvyit зеркало / dev / sdb / dev / sdc
Предоставление пользователям доступа к пулу
Пул существует, но хранить в нем данные может только пользователь root. Конечно, это не то, что нам нужно. Мы хотим, чтобы другие пользователи имели доступ к пулу.
Для этого мы:
- Создайте каталог в пуле.
- Создайте новую группу.
- Сделайте новую группу владельцем группы для каталога.
- Добавьте пользователей, которым необходим доступ к хранилищу данных, в новую группу.
Эта схема обеспечивает большую гибкость. Мы можем создать столько каталогов хранения данных, сколько нам нужно, с разными группами, которые будут владеть ими. Предоставить пользователям доступ к различным областям хранения так же просто, как добавить их в соответствующие группы.
Мы будем использовать groupadd для создания группы пользователей. Наша группа называется «csavvy1». Затем мы воспользуемся командой usermod, чтобы добавить пользователя по имени «dave» в новую группу. Параметр -a (добавить) добавляет новую группу в список существующих групп, в которых находится пользователь. Без этой опции пользователь удаляется из всех существующих групп и добавляется в новую. Это вызовет проблемы, поэтому обязательно используйте параметр -a.
sudo groupadd csavvy1 sudo usermod -a -G csavvy1 dave
Чтобы их новое членство в группе вступило в силу, пользователь должен выйти и снова войти в систему.
Теперь мы создадим в пуле каталог с именем «data1».
sudo mkdir / cloudsavvyit / data1
Команда chgrp позволяет нам установить группу-владельца каталога.
sudo chgrp csavvy1 / cloudsavvyit / data1
Наконец, мы установим групповые разрешения с помощью chmod. «S» – это специальный бит SGID. Это означает, что файлы и каталоги, созданные в каталоге «data1», унаследуют группу-владельца этого каталога.
sudo chmod g + rwsx / cloudsavvyit / data1 /
Наш пользователь вышел из системы и вернулся в нее. Давайте попробуем создать файл в новом каталоге хранилища данных в нашем новом пуле RAID 1 ZFS.
коснитесь /cloudsavvyit/data1/new-file.txt
И посмотрим, как это было создано.
ls / cloudsavvyit / data1 -lh
Успех. Что, если мы попытаемся создать другой файл вне нашей области хранения data1?
коснитесь /cloudsavvyit/new-file2.txt
Это не соответствует ожиданиям. Наши разрешения работают. Наш пользователь может управлять файлами только в том каталоге хранилища данных, к которому ему было предоставлено разрешение на доступ.
Уничтожить бассейн
Будьте осторожны с этой командой. Прежде чем продолжить, убедитесь, что у вас есть резервные копии. Если вы уверены, что действительно хотите, и подтвердили, что у вас есть другие копии данных в пуле, вы можете уничтожить пул с помощью этой команды:
sudo zpool уничтожить облака
Замените «cloudsavvyit» названием пула, который вы собираетесь уничтожить.
У вас только один жесткий диск?
Если у вас только один жесткий диск или если на вашем компьютере несколько жестких дисков, но их размер слишком сильно различается, чтобы сформировать полезный пул, вы все равно можете использовать ZFS. Вы не получите зеркалирование RAID, но встроенные механизмы защиты от коррупции и защиты данных по-прежнему полезны и убедительны.
Но помните, что отсутствие файловой системы – с зеркалированием RAID или без него – означает, что вы можете игнорировать резервные копии.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)