ZFS

Практическое руководство по ZFS DigitalOcean

Практическое руководство по ZFS DigitalOcean

OpenZFS: практическое руководство по использованию DigitalOcean

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

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

Единственное ограничение, с которым вы можете столкнуться, - это аппаратное обеспечение. Использование нескольких дисков в различной конфигурации означает, что у вас есть много дисков, которые можно использовать! Вот где на помощь приходит DigitalOcean (DO).

Примечание. Если вы знакомы с DO и с тем, как настраивать ключи SSH, вы можете сразу перейти к части обсуждения ZFS. В следующих двух разделах показано, как настроить виртуальную машину в DigitalOcean и подключить к ней блочные устройства с помощью

Введение в DigitalOcean

Проще говоря, DigitalOcean - это поставщик облачных услуг, где вы можете запускать виртуальные машины для своих приложений. Вы получаете безумную пропускную способность и все SSD-хранилище для запуска ваших приложений. Он нацелен на разработчиков, а не на операторов, поэтому пользовательский интерфейс намного проще и понятнее.

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

В этом руководстве мы будем использовать две функции DigitalOcean:

  1. Капли: Капля - это их слово для виртуальной машины, работающей под управлением операционной системы со статическим общедоступным IP-адресом. Нашим выбором ОС будет Ubuntu 16.04 LTS.
  2. Блочное хранилище: Блочное хранилище похоже на диск, подключенный к вашему компьютеру. Кроме того, здесь вы можете выбрать размер и количество дисков, которые вам нужны.

Зарегистрируйтесь в DigitalOcean, если вы еще этого не сделали.

Для входа на виртуальную машину есть два способа: один - использовать консоль (для которой пароль будет отправлен вам по электронной почте) или вы можете использовать опцию ключа SSH.

Базовая настройка SSH

MacOS и другие пользователи UNIX, у которых есть терминал на своем рабочем столе, могут использовать его для SSH в свои капли (SSH-клиент установлен по умолчанию почти во всех Unix), а пользователь Windows может захотеть загрузить Git Bash.

Как только вы войдете в свой терминал, введите следующие команды:

$ mkdir -p ~ /.ssh
$ cd ~ /.ssh
$ ssh-keygen -y -f имя вашего ключа

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

Создается другой файл с именем YourKeyName.паб и это ваш открытый ключ, который вы предоставите DigitalOcean при создании капли. Он обрабатывает шифрование и дешифрование сообщений на сервере, как закрытый ключ на вашем локальном компьютере.

Создание вашей первой капли

После регистрации в DO вы готовы создать свою первую дроплет.  Выполните следующие шаги:

1. Нажмите кнопку создания в правом верхнем углу и выберите Капля вариант.

2. На следующей странице вы сможете выбрать характеристики вашей капли. Мы будем использовать Ubuntu.

3. Выберите размер, даже вариант 5 долларов в месяц подходит для небольших экспериментов.

4. Выберите ближайший к вам дата-центр, чтобы снизить задержки. Остальные дополнительные параметры можно пропустить.

Примечание: не добавляйте объемы сейчас. Мы добавим их позже для ясности.

5. Нажмите на Новые ключи SSH и скопируйте все содержимое YourKeyName.паб в него и дайте ему имя. Теперь просто нажмите на Создавать и ваша капля готова к работе.

6. Получите IP-адрес вашей капли на панели управления.

7. Теперь вы можете подключиться к вашей капле по SSH как пользователь root с вашего терминала, используя команду:

$ ssh root @ 138.68.97.47 -i ~ /.ssh / YourKeyName

Не копируйте приведенную выше команду, так как ваш IP-адрес будет другим. Если все работает правильно, вы получите приветственное сообщение на своем терминале и войдете на свой удаленный сервер.

Добавление блочного хранилища

Чтобы получить список блочных устройств хранения в вашей виртуальной машине, в терминале используйте команду:

$ lsblk

Вы увидите только один диск, разделенный на три блочных устройства. Это установка ОС и мы не будем с ними экспериментировать. Для этого нам нужно больше устройств хранения.

Для этого перейдите на панель управления DigitalOcean и нажмите Cвоссоздавать кнопку, как на первом шаге, и выберите параметр громкости. Прикрепите его к своей капле и дайте ему подходящее имя. Добавьте три таких объема, повторив этот шаг еще два раза.

Теперь, если вы вернетесь к своему терминалу и наберете lsblk, вы увидите новые записи в этом списке. На скриншоте ниже 3 новых диска, которые мы будем использовать для тестирования ZFS.

В качестве последнего шага, прежде чем переходить к ZFS, вы должны сначала пометить свои диски по схеме GPT. ZFS лучше всего работает со схемой GPT, но на блочном хранилище, добавленном в ваши капли, есть метка MBR. Следующая команда устраняет проблему, добавляя метку GPT к вашим недавно подключенным блочным устройствам.

$ sudo parted / dev / sda mklabel gpt

Примечание: он не разделяет блочное устройство, он просто использует утилиту parted для присвоения глобально уникального идентификатора (GUID) блочному устройству. GPT означает таблицу разделов GUID, и она отслеживает каждый диск или раздел с меткой GPT на нем.

Повторите то же самое для SDB а также SDC.

Теперь мы готовы приступить к использованию OpenZFS с достаточным количеством дисков для экспериментов с различными механизмами.

Zpools и VDEV

Чтобы начать создание вашего первого Zpool. Вы должны понимать, что такое виртуальное устройство и каково его предназначение.

Виртуальное устройство (или Vdev) может быть одним диском или группой дисков, которые отображаются в zpool как одно устройство. Например, три устройства по 100 ГБ, созданные выше sda, sdb и sdc все могут быть собственными vdev, и вы можете создать zpool с именем бак, из него, который будет иметь емкость хранения трех дисков, вместе взятых, что составляет 300 ГБ
Сначала установите ZFS для Ubuntu 16.04:

$ apt установить zfs
$ zpool создать резервуар sda sdb sdc
$ zpool статус бак

Ваши данные равномерно распределяются по трем дискам, и если какой-либо из дисков выйдет из строя, все ваши данные будут потеряны. Как вы можете видеть выше, диски сами являются vdevs.

Но вы также можете создать zpool, в котором три диска реплицируют друг друга, что называется зеркалированием.

Сначала уничтожьте ранее созданный пул:

$ zpool уничтожить танк

Чтобы создать зеркальный vdev, мы будем использовать ключевое слово зеркало:

$ zpool создать зеркало резервуара sda sdb sdc

Теперь общий объем доступного хранилища составляет всего 100 ГБ (используйте список zpool чтобы увидеть это), но теперь мы можем выдержать до двух отказов дисков в vdev зеркало-0.

Когда у вас заканчивается пространство и вы хотите добавить больше хранилища в свой пул, вам придется создать еще три тома в DigitalOcean и повторить шаги в Добавление блочного хранилища сделайте это с еще 3 блочными устройствами, которые будут отображаться как vdev зеркало 1. Вы можете пока пропустить этот шаг, просто знайте, что это можно сделать.

$ zpool добавить зеркало резервуара sde sdf sdg

Наконец, есть конфигурация raidz1, которая может использоваться для группировки трех или более дисков в каждом vdev и может выдержать отказ 1 диска на vdev и дать общее доступное хранилище 200 ГБ.

$ zpool уничтожить танк
$ zpool создать резервуар raidz1 sda sdb sdc

В то время как список zpool показывает чистую емкость необработанного хранилища, список zfs а также df -h команды показывают фактическое доступное хранилище zpool. Поэтому всегда рекомендуется проверять доступное хранилище с помощью список zfs команда.

Мы будем использовать это для создания наборов данных.

Наборы данных и восстановление

Традиционно мы монтировали файловые системы, такие как / home, / usr и / temp, в разные разделы, а когда у нас не хватало места, приходилось добавлять символические ссылки на дополнительные устройства хранения, добавленные в систему.

С участием zpool добавить вы можете добавлять диски в тот же пул, и он продолжает расти в соответствии с вашими потребностями. Затем вы можете создавать наборы данных, которые являются термином zfs для файловой системы, например / usr / home и многих других, которые затем живут в zpool и совместно используют все доступное для них хранилище.

Чтобы создать набор данных zfs в пуле бак используйте команду:

$ zfs создать резервуар / набор данных1
Список $ zfs

Как упоминалось ранее, пул raidz1 может выдержать отказ до одного диска. Итак, давайте проверим это.

$ zpool оффлайн танк sda

Теперь пул отключен, но не все потеряно. Мы можем добавить еще один том, SDD, используя DigitalOcean и присвоив ему метку gpt, как раньше.

дальнейшее чтение

Мы рекомендуем вам опробовать ZFS и ее различные функции столько, сколько захотите, в свободное время. Обязательно удалите все тома и капли, как только вы закончите, чтобы избежать непредвиденных счетов в конце месяца.

Вы можете узнать больше о терминологии ZFS здесь.

Лучшие приложения для сопоставления геймпадов для Linux
Если вам нравится играть в игры на Linux с помощью геймпада вместо стандартной системы ввода с клавиатуры и мыши, для вас есть несколько полезных прил...
Полезные инструменты для геймеров Linux
Если вам нравится играть в игры на Linux, скорее всего, вы использовали приложения и утилиты, такие как Wine, Lutris и OBS Studio, для улучшения игров...
Игры HD Remastered для Linux, ранее не выпускавшиеся для Linux
Многие разработчики и издатели игр придумывают HD-ремастеры старых игр, чтобы продлить жизнь франшизы, порадовать фанатов, требующих совместимости с с...