Типы файловых систем, их предназначение и отличия

Разрешение и запрет совместного использования файловых систем ZFS

Подобно точкам монтирования, ZFS может автоматически разрешать совместное использование файловых систем с помощью свойства sharenfs. Этот метод позволяет не изменять файл /etc/dfs/dfstab при добавлении новой файловой системы. Свойство sharenfs представляет собой список разделенных запятыми параметров для команды share. Специальное значение on является псевдонимом для параметров совместного использования по умолчанию, согласно которым все пользователи имеют разрешения read/write. Специальное значение off указывает на то, что файловая система не управляется ZFS и может совместно использоваться при помощи традиционных средств, таких как файл /etc/dfs/dfstab. Все файловые системы, у которых для свойства sharenfs указано значение, отличное от off , определяются как совместно используемые при начальной загрузке.

Управление семантикой совместного использования

По умолчанию все файловые системы не подлежат совместному использованию. Для разрешения совместного использования новой файловой системы применяется синтаксис zfs set, аналогичный следующему:

# zfs set sharenfs=on tank/home/eschrock

Это свойство наследуется, и файловые системы автоматически определяются как совместно используемые при их создании, если для наследуемого свойства не установлено значение off. Например:

# zfs set sharenfs=on tank/home
# zfs create tank/home/bricker
# zfs create tank/home/tabriz
# zfs set sharenfs=ro tank/home/tabriz

Системы tank/home/bricker и tank/home/tabriz изначально являются совместно используемыми и открытыми для записи, поскольку наследуют свойство sharenfs от tank/home. При установке для этого свойства значения ro (только чтение) система tank/home/tabriz становится совместно используемой только для чтения, вне зависимости от свойства sharenfs , настроенного для tank/home.

Запрет совместного использования файловых систем ZFS

В то время как для большинства файловых систем разрешение или запрет совместного использования устанавливаются автоматически в ходе начальной загрузки, создания и уничтожения, некоторые файловые системы требуют явного запрета совместного использования. Для этого применяется команда zfs unshare. Пример:

# zfs unshare tank/home/tabriz

Выполнение этой команды приводит к запрету совместного использования файловой системы tank/home/tabriz. Для запрета совместного использования всех файловых систем ZFS необходимо указать параметр - a.

# zfs unshare -a

Разрешение совместного использования файловых систем ZFS

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

# zfs share tank/home/tabriz

Для разрешения совместного использования всех файловых систем ZFS можно использовать параметр -a.

# zfs share -a

Старые модели совместного использования

Если для свойства sharenfs установлено значение off, то ZFS не предпринимает попыток разрешить или запретить совместное использование файловой системы. Этот параметр позволяет выполнять администрирование традиционными средствами, например с помощью файла /etc/dfs/dfstab.

В отличие от традиционной команды mount, традиционные команды share и unshare по-прежнему могут использоваться в файловых системах ZFS. Таким образом, можно вручную настроить совместное использование файловой системы и выбрать параметры, отличные от значений свойства sharenfs. Использовать такую административную модель не рекомендуется. Необходимо выбрать, будет ли управление совместным использованием в NFS осуществляться полностью через ZFS или посредством файла /etc/dfs/dfstab. Административная модель ZFS значительно проще и требует меньших усилий, чем традиционная модель. Однако в некоторых случаях может оказаться удобнее управлять совместным использованием файловой системы согласно уже знакомой модели.

Отправка и получение потоковых представлений сложных моментальных снимков ZFS

В этом разделе описано использование параметров команды zfs send - I и - R для отправки и получения потоковых представлений сложных моментальных снимков.

При отправке и получении потоковых представлений моментальных снимков ZFS необходимо помнить следующее.

  • Параметр zfs send - I используют для отправки всех инкрементных потоков из одного снимка в совокупный снимок. Или этот параметр используют для отправки инкрементного потока из исходного снимка для создания клона. Для получения инкрементного потока исходный снимок уже должен существовать на принимающей стороне.

  • Параметр zfs send - R используют для отправки потока репликации всех дочерних файловых систем. При получении сохраняются все свойства, снимки, файловые системы-потомки и клоны.

  • Оба параметра можно использовать для отправки потока инкрементной репликации.

    • Сохраняются изменения свойств, а также результаты операций переименования и уничтожения снимков и файловых систем.

    • Если параметр zfs recv -F не указан при получении потока репликации, результаты операций уничтожения наборов данных игнорируются. Синтаксис zfs recv -F в этом случае также сохраняет свой смысл отката при необходимости.

    • Что касается других вариантов (не zfs send -R) - i или -I, если используется параметр - I, отправляются все снимки от snapA до snapD. Если используется параметр - i, отправляются только снимки snapD (для всех дочерних).

  • Для получения всех новых типов потоков zfs send принимающая система должна выполнять версию программного обеспечения, поддерживающую их отправку. Версия потока увеличивается.

    Однако можно получить доступ к потокам из старых версий пула с помощью новой версии программного обеспечения. Например, можно отправлять и получать потоки, созданные с новыми параметрами, в и из пула версии 3. Но при этом для получения потока, отправленного с новыми параметрами, должно выполняться последнее программное обеспечение.

Пример 7–1 Примеры: отправка и получение потоковых представлений сложных моментальных снимков ZFS

Установка файловой системы ZFS

Сначала мы должны убедиться, что включены основные, ограниченные, универсальные и мультиверсные источники программного обеспечения.. Чтобы убедиться, что мы выполним следующую команду в терминале (Ctrl + Alt + T):

sudo apt edit-sources

Нажмите Enter, чтобы продолжить.

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

Чтобы добавить главный репозиторий в терминале (Ctrl + Alt + T) напишем:

sudo apt-add-repository main

Если нам нужно добавить источники ограниченный напишем:

sudo apt-add-repository restricted

Если вам нужны исходники вселенная, мы наберем:

sudo apt-add-repository universe

И для источников мультиленная:

sudo apt-add-repository multiverse

После этого мы выполняем следующую команду, чтобы обновить кеш из репозитория пакетов apt:

sudo apt update

Теперь мы можем запустить следующую команду, чтобы установить файловую систему ZFS в Ubuntu 18.04 LTS:

sudo apt-get install zfsutils-linux

Системные свойства ZFS, доступные только для чтения

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

Ниже перечислены системные свойства, доступные только для чтения. Их описание приведено в .

  • available

  • creation

  • mounted

  • origin

  • compressratio

  • referenced

  • type

  • used

    Для получения подробной информации см. Свойство used.

  • usedbychildren

  • usedbydataset

  • usedbyrefreservation

  • usedbysnapshots

Для получения дополнительной информации об учете пространства, включая сведения о свойствах used, referenced и available, см. Учет пространства ZFS.

Свойство used

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

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

При определении объема используемого, доступного и занятого пространства не учитываются отложенные изменения. Как правило, отложенные изменения существуют в течение нескольких секунд. Запись изменения на диск с помощью команды fsync(3c) или O_SYNC не гарантирует немедленного обновления информации об использовании пространства.

Просмотр информации о свойствах usedbychildren, usedbydataset , usedbyrefreservation и usedbysnapshots возможен с помощью команды zfs list - o space. Данные свойства делят свойство used на пространства, занимаемые дочерними элементами. Дополнительная информация приведена в .

Определение требований к пространству для хранения данных перед созданием пула устройств хранения данных ZFS

  1. Определите доступные устройства.

    В примере хранилища в разделе Создание пула устройств хранения данных ZFS предполагается, что диски /dev/dsk/c2t0d0 и /dev/dsk/c0t1d0 полностью доступны для использования.

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

  2. Выберите тип репликации данных.

    ZFS поддерживает несколько типов репликации данных, определяющих, какие типы отказов оборудования являются нефатальными для пула. ZFS поддерживает настройки без избыточности (с чередованием полос), а также зеркалирование и RAID-Z (вариант RAID-5).

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

    Для получения дополнительной информации о функциях репликации ZFS см. Функции репликации пула устройств хранения данных ZFS.

Создание и уничтожение снимков ZFS

Снимки создаются с помощью команды zfs snapshot, использующей в качестве единственного аргумента имя создаваемого снимка. Имя снимка указывается следующим образом:

filesystem@snapname
volume@snapname

Имя снимка должно соответствовать соглашениям по присвоению имен, описанным в разделе Требования к именованию компонентов ZFS.

В следующем примере создается снимок tank/home/ahrens с именем friday.

# zfs snapshot tank/home/ahrens@friday

При помощи параметра -r можно создать снимки для всех дочерних файловых систем. Пример:

# zfs snapshot -r tank/home@now
# zfs list -t snapshot
NAME                   USED  AVAIL  REFER  MOUNTPOINT
tank/home@now             0      -  29.5K  -
tank/home/ahrens@now      0      -  2.15M  -
tank/home/anne@now        0      -  1.89M  -
tank/home/bob@now         0      -  1.89M  -
tank/home/cindys@now      0      -  2.15M  -

Снимки не имеют настраиваемых свойств. В отношении снимка также не могут применяться свойства набора данных.

# zfs set compression=on tank/home/ahrens@tuesday
cannot set compression property for 'tank/home/ahrens@tuesday': snapshot
properties cannot be modified

Для уничтожения снимков используется команда zfs destroy. Пример:

# zfs destroy tank/home/ahrens@friday

При наличии снимков набора данных этот набор не может быть уничтожен. Пример:

# zfs destroy tank/home/ahrens
cannot destroy 'tank/home/ahrens': filesystem has children
use '-r' to destroy the following datasets:
tank/home/ahrens@tuesday
tank/home/ahrens@wednesday
tank/home/ahrens@thursday

Кроме того, если были созданы клоны снимка, необходимо их уничтожить перед уничтожением снимка.

Для получения дополнительной информации о подкоманде destroy см. Уничтожение файловой системы ZFS.

Переименование снимков ZFS

Снимки можно переименовывать, однако переименование должно выполняться в рамках пула и набора данных, в котором они были созданы. Пример:

# zfs rename tank/home/cindys@083006 tank/home/cindys@today

Следующий краткий синтаксис эквивалентен полному синтаксису переименования снимка, приведенному в примере выше.

# zfs rename tank/home/cindys@083006 today

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

# zfs rename tank/home/cindys@today pool/home/cindys@saturday
cannot rename to 'pool/home/cindys@today': snapshots must be part of same 
dataset

Можно рекурсивно переименовывать снимки с помощью команды zfs rename -r. Пример:

# zfs list
NAME                         USED  AVAIL  REFER  MOUNTPOINT
users                        270K  16.5G    22K  /users
users/home                    76K  16.5G    22K  /users/home
users/home@yesterday            0      -    22K  -
users/home/markm              18K  16.5G    18K  /users/home/markm
users/home/markm@yesterday      0      -    18K  -
users/home/marks              18K  16.5G    18K  /users/home/marks
users/home/marks@yesterday      0      -    18K  -
users/home/neil               18K  16.5G    18K  /users/home/neil
users/home/neil@yesterday       0      -    18K  -
# zfs rename -r users/home@yesterday @2daysago
# zfs list -r users/home
NAME                        USED  AVAIL  REFER  MOUNTPOINT
users/home                   76K  16.5G    22K  /users/home
users/home@2daysago            0      -    22K  -
users/home/markm             18K  16.5G    18K  /users/home/markm
users/home/markm@2daysago      0      -    18K  -
users/home/marks             18K  16.5G    18K  /users/home/marks
users/home/marks@2daysago      0      -    18K  -
users/home/neil              18K  16.5G    18K  /users/home/neil
users/home/neil@2daysago       0      -    18K  -

Что такое файловая система

Полезные данные, такие как файлы и каталоги, напрямую на диск не записываются. Между разделом диска и файлами существует прослойка в виде файловой системы.

Файловая система – это средство, которое определяет различные правила работы с файлами, например:

  • как данные будут располагаться на диске;
  • как будет происходить запись, поиск, чтение или удаление файлов;
  • какие метаданные будут использоваться;
  • как обезопасить файлы от порчи (например при некорректном выключении компьютера);

Метаданные – данные о данных, например файл это данные, а метаданные это:

  • дата его создания;
  • пользователь создавший этот файл;
  • тип файла;
  • права доступа к этому файлу;
  • и подобная информация о файле.

Разные файловые системы имеют разные ограничения, например:

  • максимальный размер раздела;
  • наибольший размер файла;
  • максимальная длина имени файла.

Установщик Ubuntu 20.04 имеет несколько меньший выбор:

Далее пробежимся по этим файловым системам:

  • Ext2
  • Ext3
  • Ext4
  • btrfs
  • JFS
  • XFS
  • FAT16
  • FAT32

JFS

JFS — это журналированная файловая система. На момент выхода в свет в 1999 году была наиболее производительной из существовавших файловых систем. Сейчас по функциональности сравнима с ext4, но менее популярна.

Вот некоторые её особенности:

  • максимальная длина имени файла 255 B;
  • максимальный размер файла 4 PB (4000 TB);
  • максимальный размер раздела 32 PB (32000 TB);
  • контрольные суммы;
  • поддержка acl.

Так как по функциональности эта файловая система сравнима с ext4, но по характеристикам и популярности отстаёт, то в Ubintu установщик уже не предлагает использовать её. Можно использовать, если у вас будут храниться файлы размером более 16 ТБ, хотя и в этом случае лучше выбрать XFS.

Создание файловой системы ZFS

Файловые системы ZFS создаются с помощью команды zfs create. Подкоманда create может иметь только один аргумент: имя создаваемой файловой системы. Имя файловой системы указывается в качестве пути, начиная с имени пула:

имя_пула/имя_файловой_системы

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

В следующем примере файловая система с именем bonwick создается в файловой системе tank/home.

# zfs create tank/home/bonwick

ZFS автоматически монтирует новую файловую систему в случае ее успешного создания. По умолчанию файловые системы монтируются как /набор_данных с использованием пути, указанного для файловой системы с помощью подкоманды create. В этом примере новая файловая система bonwick монтируется как /tank/home/bonwick. Дополнительная информация об автоматическом управлении точками монтирования приведена в разделе Управление точками монтирования ZFS.

Для получения дополнительной информации о команде zfs create см. zfs(1M).

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

В следующем примере для файловой системы tank/home указывается и создается точка монтирования /export/zfs.

# zfs create -o mountpoint=/export/zfs tank/home

Для получения дополнительной информации о свойствах файловой системы см. Введение в свойства ZFS.

Поколение Y, или поколение Миллениум, Next (1984—2000)

Ценности: свобода, развлечения, результат как таковой. В систему ценностей этих людей также включены понятия «гражданский долг» и «мораль», «ответственность», но при этом психологи отмечают их наивность и умение подчиняться. На первый план для поколения Y выходит немедленное вознаграждение.

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

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

Важные особенности. Почти все представители поколения Y не приучены к самостоятельности, которая былаприсуща их родителям — «иксам» и дедушкам —«бумерам». Они выросли уверенными в собственной ценности. В связи с тем, что внешняя среда вокруг них менялась очень быстро в период их взросления, им стали присущи такие черты, как желание получать немедленное вознаграждение за проделанную работу, абсолютное неверие в отдаленную перспективу. Когда ему говорят, что надо поработать десять лет в организации, и твой труд будет вознагражден обеспеченной жизнью, он отвечает: «Какие десять лет? У нас может быть другая страна через десять лет. Ведь жизнь так быстро меняется. Десять лет назад не было ни смартфонов, ни быстрого интернета, ни даже Шенгенской зоны в Европе».

И он прав. Если для прежних поколений десятилетиями ничего не менялось (а для их предшественников — так и столетиями), в его жизни, кроме стремительных перемен, ничего не было. Он не знает другой жизни.

Еще один важный аспект для «игреков» — это мода, бренды. Даже спортом они занимаются не для того, чтобы победить, быть здоровым или лучше себя чувствовать, а потому, что это модно и приносит удовольствие. Если «игреки» будут выбирать спорт, то это будет скорее красивый спорт, нежели полезный.

Создание пула устройств хранения данных ZFS

  1. Перейдите в режим root или выберите аналогичную роль с соответствующим профилем прав ZFS.

    Для получения дополнительной информации о профилях прав ZFS см. Профили прав ZFS.

  2. Выберите имя пула.

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

  3. Создайте пул.

    Например, создайте зеркальный пул с именем tank.

    # zpool create tank mirror c1t0d0 c2t0d0
    

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

    Для получения дополнительной информации о создании пулов устройств хранения данных см. Создание пула устройств хранения данных ZFS.

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

  4. Просмотрите результаты.

    Определить, был ли пул успешно создан, позволяет команда zpool list.

    # zpool list
    NAME                    SIZE    USED   AVAIL    CAP  HEALTH     ALTROOT
    tank                     80G    137K     80G     0%  ONLINE     -

    Для получения дополнительной информации о просмотре статуса пула см. Запрос состояния пула устройств хранения данных ZFS.

Создание иерархии файловых систем ZFS

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

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

Удаление делегированных разрешений ZFS (zfs unallow)

Можно удалить ранее предоставленные разрешения с помощью команды zfs unallow.

Предположим, разрешения create, destroy, mount и snapshot делегированы следующим образом:

# zfs allow cindys create,destroy,mount,snapshot tank/cindys
# zfs allow tank/cindys
-------------------------------------------------------------
Local+Descendent permissions on (tank/cindys)
        user cindys create,destroy,mount,snapshot
-------------------------------------------------------------

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

# zfs unallow cindys tank/cindys
# zfs allow tank/cindys

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

ZFS — это современная файловая система, специально разработанная для обеспечения функций, недоступных в традиционных файловых системах UNIX. Она был первоначально разработана в Sun с намерением открыть исходную файловую систему, чтобы ее можно было портировать в другие операционные системы. После приобретения Oracle Sun некоторые из оригинальных инженеров ZFS основали OpenZFS для обеспечения совместной совместной разработки версии с открытым исходным кодом. Чтобы отличать себя от версий Oracle ZFS, OpenZFS использует флаги функций. Флаги функций используются для тегов функций с уникальными именами, чтобы обеспечить переносимость между реализациями OpenZFS, запущенными на разных платформах, если все флаги функций, включенные в пуле ZFS, поддерживаются обеими платформами.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: