Введення у файлову систему Z (ZFS) для Linux

ZFS зазвичай використовується хардерами даних, любителями NAS та іншими фанатами, які воліють довіряти власній резервній системі зберігання, а не хмари. Це відмінна файлова система, яка використовується для керування кількома дисками даних, і конкурує з деякими з кращих установок RAID.

Фото Кенні Луї.


Що таке 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 http://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 http://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, щоб переконатися, що його правильно встановлено. Ви повинні отримати такий висновок:

Ми зараз використовуємо нову установку сервера Ubuntu, використовуючи тільки один жорсткий диск.

Налаштування ZFS

Тепер, припустимо, ми вставили ще шість жорстких дисків у наш комп'ютер.


$ sudo fdisk -l | grep Error $ sudo fdisk -l | grep Error покаже нам шість жорстких дисків, які ми щойно встановили. Зараз вони непридатні для використання, оскільки не містять таблиці розділів.

Як ми згадували раніше, одна з приємних речей в ZFS - те, що нам не потрібно турбуватися про розділи (хоча ви можете, якщо хочете). Давайте почнемо з того, що візьмемо три наших жорстких диска і помістимо їх в пул зберігання, виконавши наступну команду:

$ 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:


Як бачите ,/geek1 вже змонтовано і готовий до використання.

Якщо ви хочете побачити, які три диски ви вибрали для свого пулу, ви можете запустити sudo zpool status:

На даний момент ми створили пул з динамічною смугою 9 ТБ (по суті, RAID 0). Якщо ви не знаєте, що це означає, уявіть, що ми створили файл розміром 3 КБ в/geek1. 1 КБ автоматично перейде в SDB, 1 КБ в SDC і 1 КБ в SDD. Потім, коли ми будемо читати файл розміром 3 КБ, кожен жорсткий диск надасть нам 1 КБ, об'єднуючи в собі швидкість трьох дисків. Це прискорює запис і читання даних, а також означає, що у нас є єдина точка відмови. Якщо вийде з ладу тільки один жорсткий диск, ми втратимо наш файл розміром 3 КБ.

Припускаючи, що захист ваших даних важливіший, ніж швидкий доступ до них, давайте розглянемо інші популярні налаштування. Спочатку ми видалимо створений zpool, щоб ми могли використовувати ці диски в більш надлишковій установці:

$ sudo zpool destroy geek1


Бем, наш зпул зник. На цей раз давайте використовуємо наші три диски для створення пулу 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.

COM_SPPAGEBUILDER_NO_ITEMS_FOUND